Android系统架构及优化之道
需积分: 9 47 浏览量
更新于2024-08-25
收藏 4.13MB PPT 举报
Android 程序优化关心时间代价
Android 程序优化是指对 Android 应用程序进行优化,减少时间代价,提高应用程序的性能和效率。在 Android 开发中,了解系统的组成和特点、系统启动过程、框架结构、Native 库、用户空间驱动程序、Linux 内核、HAL 机制、Bionic 运行库、SurfaceFlinger 表面渲染、Browser 和 DalvikVM 等都是非常重要的。
Android 系统组成与特点:
Android 系统由应用程序、框架、Native 库、用户空间驱动程序、Linux 内核五个部分组成。其中,应用程序包括 Android 内置程序、Google 闭源程序、Vendor 程序等;框架包括 AndroidCoreCode、Vendorextensions 等;Native 库包括功能函数库、音视频库、SQLite、OpenGL/ES、Webkit、FreeType、SSL 等;用户空间驱动程序包括 CameraService、SurfaceFlinger、AudioFlinger 等;Linux 内核是 Android 系统的核心。
系统启动过程:
Android 系统的启动过程包括 InitialProgramLoader、SecondProgramLoader、Linuxkernel、init 等几个阶段。在这个过程中,Linux 内核会加载系统的各种驱动程序和服务,并启动系统的各种进程。
时间代价分析:
在 Android 开发中,时间代价是非常重要的。从pipe里写1字节到无缓存向flash写入少量数据,时间代价从0.04ms到5-200+ms不等。因此,在开发中需要关心时间代价,选择合适的优化策略,以提高应用程序的性能和效率。
Binder RPC 调用:
在 Android 中,Binder RPC 调用是非常常用的。它可以实现进程间的通信,但是时间代价比较高,约为0.12ms。因此,在开发中需要合理地使用 Binder RPC 调用,以避免时间代价的增加。
flash 存储读取和写入:
flash 存储读取和写入是非常常用的操作,但是时间代价比较高。无缓存从flash读取1字节需要5-25ms,而无缓存向flash写入少量数据需要5-200+ms。因此,在开发中需要合理地使用flash存储,避免大量的读取和写入操作。
视频播放和延迟:
在 Android 中,视频播放是一个非常常用的操作。60 fps 视频的一帧需要16ms,而24 fps 视频的一帧需要41ms。人类可以觉察到的延迟是100-200ms。因此,在开发中需要合理地处理视频播放和延迟,以提供良好的用户体验。
网络延迟:
在 Android 中,网络延迟是一个非常重要的问题。在3G网络上ping,延迟变化很大,约为108/350/500/800ms。因此,在开发中需要合理地处理网络延迟,以提供良好的用户体验。
TCP 设置和 HTTP 下载:
在 Android 中,TCP 设置和 HTTP 下载是一个非常常用的操作。TCP 设置需要约1-6+ seconds,而用HTTP通过3G下载6k数据需要约1-6+ seconds。因此,在开发中需要合理地使用 TCP 设置和 HTTP 下载,以提高应用程序的性能和效率。
Android 程序优化是指对 Android 应用程序进行优化,减少时间代价,提高应用程序的性能和效率。在开发中需要合理地使用各种技术和策略,以提供良好的用户体验。
2011-07-04 上传
2019-03-22 上传
2020-09-03 上传
2019-03-30 上传
2021-12-24 上传
2023-01-09 上传
2019-05-30 上传
双联装三吋炮的娇喘
- 粉丝: 17
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫