Android
开发中,性能优化策略十分重要Android
性能优化的详细攻略, 含:优化方向、缘由 & 具体优化方案,但愿大家会喜欢文章较长,建议预留较长时间阅读 / 收藏html
性能优化的目的是为了让应用程序App
更快、更稳定 & 更省。具体介绍以下:面试
(Crash)
和 无响应(ANR)
的问题针对上述目的,需优化的性能指标 含:流畅性、稳定性、资源节省性数据库
因为咱们打开的页面大可能是
Activity
,下面将给出加速启动Activity
的方式小程序
优化缘由(即 页面显示速度慢的缘由) a. 页面需绘制的内容(布局 & 控件)太多,从而致使页面测量时间过长 b. 绘制效率太低,从而致使绘制时间过长缓存
优化方案 布局优化 & 绘制优化。具体请看文章:性能优化
ANR
状况,从而致使 应用程序响应速度慢关于
ANR
的简介以下网络
- 多线程的方式 包括:
AsyncTask
、继承Thread
类、实现Runnable
接口、Handler
消息机制、HandlerThread
等- 注:实际开发中,当一个进程发生了
ANR
后,系统会在/data/anr
目录下建立一个文件traces.txt
,经过分析该文件可定位出ANR
的缘由
合理的刷新机制多线程
动画的使用架构
下面,总结 关于流畅性的性能优化方案框架
Android
应用稳定性的缘由有不少,主要是:应用崩溃(Crash)
、应用无响应(ANR)
这2个错误的结果将致使程序没法使用
(Crash)
、应用无响应(ANR)
优化原理 尽可能避免应用程序出现 ANR
状况
优化方案 使用多线程,将大量 & 耗时操做放在工做线程中执行
- 多线程的方式 包括:
AsyncTask
、继承Thread
类、实现Runnable
接口、Handler
消息机制、HandlerThread
等- 关于多线程的使用,可看我写的关于多线程的文集:多线程系列
- 注:实际开发中,当一个进程发生了
ANR
后,系统会在/data/anr
目录下建立一个文件traces.txt
,经过分析该文件可定位出ANR
的缘由
Crash
不少状况是由于 内存溢出,即OOM
;故 需避免出现 OOM
现象内存溢出 简介:
下面,总结 关于稳定性的性能优化方案
优化缘由 因为移动设备的硬件性能有限,故减小应用程序的资源消耗显得十分重要
优化方向 内存大小、安装包大小、耗电量 & 网络流量
优化缘由 避免因不正确使用内存 & 缺少管理,从而出现 内存泄露(ML)
、内存溢出(OOM)
、内存空间占用过大 等问题,最终致使应用程序崩溃(Crash
)
优化方向 常见的内存问题以下
Bitmap
相关特别在移动网络下,用户下载应用时,对安装包大小的要求更高,所以减少安装包大小可以让更多用户愿意下载 & 使用产品
优化缘由 每次获取资源时 都经过流量 & 网络加载的方式,将耗费大量网络流量
优化方案 主要经过 缓存 减小网络流量,采用三级缓存方案:即 内存缓存 - 硬盘缓存- 数据库- 文件 - 网络缓存
具体描述:当加载资源时,先从内存缓存中寻找;若内存缓存中没有,则从文件缓存中寻找;若文件缓存中没有,最终再经过流量从网络中加载获取
6.4 减小应用的耗电量
App
的功能发展,人们的平常生活都离不开智能手机 & 各式各样的应用程序App
,故 应用程序的耗电量指标则显得十分重要具体优化方案以下:
下面,总结 关于资源节省性的性能优化方案
App
项目的持续性需求;虽项目一开始时,性能优化的优先级较低,但当应用程序App
的用户体量达到必定规模时,性能优化 则很是重要Android
开发中的性能优化 全部知识,含:优化方向、缘由 & 具体优化方案,下面用2张图总结:
想学习更多Android知识,请加入Android技术开发交流 7520 16839
进群与大牛们一块儿讨论,还可获取Android高级架构资料、源码、笔记、视频
包括 高级UI、Gradle、RxJava、小程序、Hybrid、移动架构、React Native、性能优化等全面的Android高级实践技术讲解性能优化架构思惟导图,和BATJ面试题及答案!
群里免费分享给有须要的朋友,但愿可以帮助一些在这个行业发展迷茫的,或者想系统深刻提高以及困于瓶颈的朋友,在网上博客论坛等地方少花些时间找资料,把有限的时间,真正花在学习上,因此我在这免费分享一些架构资料及给你们。但愿在这些资料中都有你须要的内容。
Android高级技术大纲,以及系统进阶视频,及面试题和答案
面试题及答案
Android高级技术大纲
Android 进阶视频资料