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
网友评论