Android性能优化总结

布局优化:

1、尽可能减少布局层级,ConstraintLayout, include, merge, ViewStub,
Space占位不绘制
2、减少不必要或重复的背景设置

数据结构与算法:

ArrayList、LinkedList

LinkedHashMapHashMap

SparseArray与ArrayMap

线程优化:

1、不要直接new线程,使用线程池、asyncTask、rxjava、kotlin协程

内存泄漏:

1、handler
2、非静态内部类(包括匿名内部类)默认就会持有外部类的引用 3、合理释放资源bitmap、cursor、io流 4、eventbus\ BroadcastReceiver\disposable\Subscription注册、注销 5、单例(如果单例对象要引用context,请使用全局的上下文对象) 6、静态变量引用activity 7、属性动画造成内存泄露 8、WebView造成内存泄露

网络优化:

1、减少网络请求次数,服务器端适当做请求合并(api) 2、大量数据的加载采用分页的方式 3、网络数据传输采用GZIP压缩 4、合理使用缓存,减少不必要网络请求 5、上传图片时,在必要的时候压缩图片

6、提前或延时操作,避免扎堆

APK减包:

1、建议把cruncherEnabled设为false,然后通过tinypng手工压缩PNG图片
2、使用webp图片格式
3、混淆
4、尽量使用一套资源
5、在build.gradle文件中启用shrinkResources
6、最小化第三方库中资源的使用
7、纯色图片使用shape
8、减少native库的大小,使用armeabiV7架构下so包就可以了
9、对比选择最优库,不要引入多个类似功能的库

代码优化:

1、尽量使用局部变量
2、如果知道集合长度,尽量初始化时设置集合容量
3、字符串拼接不要使用“+”,而是使用StringBuilder
4、逻辑优化,理清程序逻辑,减少不必要的操作

工具使用:

1、Lint:检测未使用到资源,不规范的代码
2、第三方工具,LeakCanary、bugly

Android优化总结

你可能感兴趣的:(Android性能优化总结)