【布局篇】
1、画面流畅需要60fps,60fps需要操作在16ms内完成
2、查看界面绘制情况,减少布局层级,避免过度绘制,换句话说绘制的东西太式,导致不能在16ms内完成
3、查看界面每帧画面所需要渲染的时间,来找出性能瓶颈
Debug GPU Overdraw 调试GPU过度绘制
Profile GPU rendering GPU呈现模式分析
Show GPU view updates 查看视图更新
HierarchyViewer 查看布局
【内存篇】
年轻代 年老代 持久代
Memory Churn内存抖动,内存抖动是因为大量的对象被创建又在短时间内马上被释放
创建过多的对象使年轻代的空间达到阀值,触发GC,虽然GC运行在单独行程,但比较吃资源,会引起卡顿
Heap 查看内存快照
Memory Monitor 可以查看内存变化情况
Allocation Tracker 查看对象分配情况
内存泄漏指的是那些程序不再使用的对象无法被GC识别,这样就导致这个对象一直留在内存当中,占用了宝贵的内存空间。
利用对象池技术避免内存抖动
一般APP可使用的内存是16M
ArrayMap和HashMap相比,占用空间更少,循环遍历快,但查找、插入和删除不如HashMap
数量级一千以内使用ArrayMap,同样还有SparseArray
【网络篇】
由于发送网络请求比较耗电
1、捆绑请求,等到合适的时候再一起发送
2、预取技术,提前加载一定量的资源,避免多加载
3、压缩技术,将要传输的数据进行压缩,减少传输时间
NetworkStatistics 网络通信统计
【缓存篇】
参考文章