第2019章 06-05 自由人生

Changed Objects Count:类对象实例变化数(增加数+减少数)

New Count:类对象新增数量

GC Count:类对象释放数量

New-GC=常驻,常驻理想状态下不应存在,如果必须存在请控制在合理范围内(1-20)

TIPS:内存泄露查找诀窍:闭环一次和多次对比操作,看对象变化

原则上,反复操作,内存应该起伏稳定在一个区间内,如果出现曲线持续上升,就肯定存在内存泄露(但要尽量排除外来干扰,比如手Q被动接收各种消息)

2)方法二、详细分析。取dump(a)、dump(c)、dump(d),在dump(d)上finder->TwoExecutionThreeDump,在-2S中指定dump(c),-1S中指点dump(a)

FirstInc、SecondInc分别为第一次使用和第二次使用之后的内存增量,两次都有大量增量的对象,着重分析对象作用和引用者,确定增量是否合理,此处需要代码能力和对源码的熟悉程度较强。

6.3 电量测试

合流标准(建议安装release包):

6.3.1 挂机5分钟CPU<0%

0)该项检测目的:切后台、灭屏,9成9的用户应该都是希望该程序就不要再耗我的电了,CPU持续占用的apk必然会上耗电榜。

apt选中apk进程,指定监控CPU,挂机5分钟后观察CPU曲线

有时并不能完美的达到0%占用,比如手QMSF就一直都在工作,来消息CPU就波动下,因此请酌情分析。

6.3.3 合理使用wakelock

0)该项检测目的:wakelock会锁定屏幕,防止手机自动休眠,亮屏是非常耗电的。

1)项目接入xcode可静态扫描wakelock的不合理使用

2)未接入xcode可如下分析:adb shell cat /proc/wakelocks

原则上长时间停留在当前场景,不存在长时间未释放的wakelock

6.3.4 避免无端电量消耗

0)该项检测目的:新开界面耗电时长控制(音视频除外)经过时间1分钟,CPU < 50%单核主频1G),即使长时间使用功能也要保证更长的续航时间。