安卓性能优化到底优化哪几个方面?
布局优化
- 减少布局文件的层级(测量/布局/绘制的时间减少):可以使用RelativeLayout来减少嵌套,从而达到减少层级的目的,另外在相同层级的情况下使用LinearLayout(相比于RelativeLayout更高效,因为linearlayout会进行多次测量)
- 使用include标签复用,merge标签降低层级,ViewStub来实现懒加载,另外补充一个Space可以用来占位(include 和merge的区别)
(1) 使用include可以增加视图的复用性
(2)使用merge标签可以减少视图的的层级,加快视图的绘制
参考
内存优化
- 内存泄漏
主要场景:- 非静态内部类的静态实例(非静态内部类默认持有外部类的实例)
- 资源对象未关闭(如cursor、stream、socket、bitmap)
- broadcast、service的注册与反注册问题
- 内存溢出
- 加载缩放后的图片
- 使用高性能的数据类型(比如用sparseArray代替hashmap,string、stringbuild、stringbuffer的合理使用)
- 避免创建过多的对象(如用线程池来代替自己新建线程)
网络优化
合理利用缓存,避免重复的网络请求
电量优化
避免大量的耗时操作,长连接时需要特别注意