Android 性能优化

2019-04-18  本文已影响0人  邓浩发_1a14

1.读写文件设置合理的缓冲大小,8k。

2.解压缩,文件在本地存储并且全部解压缩zipfile效率比zipstream效率高,因为缓冲大小影响。如果文件在服务端,或者只解压前面部分文件或者大量小文件,zipstream效率更高,因为流。

3.对象序列化objectstream外层套bytearraystream或bufferedstream,否则会按照对象个数读写文件,导致读写次数多。

4.数据库连接打开操作只进行一次,app退出时关闭数据库连接。

5.bitmap使用decodestream,传bufferedinputstream。

6.内存相关,图片缓存,activity内存泄露,频繁gc导致卡顿,图片缓存使用lru,因为weakreference会导致大量gc。线程池runnable持有外部类对象导致内存泄露,和handler处理机制一样。定时器,退出时停止。

7.内存检测工具leakcanary,leakinspector

8.webview运行在指定的独立进程,退出页面时结束进程,防止内存泄露。

9.图片bitmap rgb565 占2字节

10.图片放的文件夹不对,会导致内存问题,尽量使用高清图放在高密度的文件夹中。xxhdrawable xxhmimap

11.网络传输,dns缓存,ip直连,文本压缩,图片webpng,jpg,

12.线程数不能太多,页面不可见时,该停掉的业务线程就停掉,cpu转换为gpu,例如编解码,图像处理。

13.耗电相关,息屏判断停止无用业务,alarmmanager重用,尽量只有一个,相关业务聚合一起。记得释放wakelock,设置不计数。

14.bitmapshader实现圆角图片

15.静态反编译enjarify、jadx,动态注入调用的系统函数xposed

上一篇 下一篇

猜你喜欢

热点阅读