快,稳,省,小,这四点很形象的代表了性能的四个方面,同时也让我们知道我们App现在是否是款性能良好的APP,如果有一项不达标,那么说明我们的应用有待优化。
1.布局优化
关于布局优化的思想很简单,就是尽量减少布局文件的层级。
2.避免过度绘制
过度绘制(Overdraw)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。
3.绘制优化
绘制优化是指View的onDraw方法要避免执行大量的操作。
4.内存泄漏优化
内存泄漏是开发过程中的一个需要重视的问题,但是由于内存泄露问题对开发人员的经验和开发意识有较高的要求,因此也是开发人员最容易犯的错误之一。
5.内存优化
尽量在开发过程中注意代码的内存泄漏。
通过工具做内存的泄漏分析。
响应速度优化
避免在主线程中做耗时操作。
6.线程优化
线程优化的思想是采用线程池,避免在程序中存在大量的Thread。
7.动画优化
在实现动画效果时,需要根据不同场景选择合适的动画框架来实现。有些情况下,可以用硬件加速方式来提供流畅度。
8.耗电优化
蓝牙(经典蓝牙,低功耗蓝牙)
优化:在不使用的时候尽量关闭
移动网络请求
优化:尽量在wifi的网络中去请求数据。在移动网络情况下,尽量减少网络数据的请求。
WakeLock通过控制系统是否进入休眠。
息屏以后停止所有的动画和所有相关的ui操作
计算优化:除法变乘法,多使用位移运算,可以利用内存来换取计算量(空间换时间)。
GPS耗电
不需要的应用,关闭GPS功能。
8.响应速度优化
响应优化的主要因素是主线程进行了耗时操作,影响了响应速度。
9.Apk瘦身
应用安装包大小对应用使用没有影响,但应用的安装包越大,用户下载的门槛越高,特别是在移动网络情况下,用户在下载应用时,对安装包大小的要求更高,因此,减小安装包大小可以让更多用户愿意下载和体验产品。
10.其他性能优化的建议
①避免过度的创建对象
②不要过度使用枚举,枚举占用的内存空间要比整型大
③常量请使用static final来修饰
④使用一些Android特有的数据结构,比如SparseArray和Pair等
⑤适当采用软引用和弱引用
⑥采用内存缓存和磁盘缓存
⑦尽量采用静态内部类,这样可以避免潜在的由于内部类而导致的内存泄漏。