具体的堆栈信息 & 发热信息平台展示如下:
文章插图
图片
文章插图
图片
由于电池温度、CPU 使用率是针对运行时发热场景最直观的指标,且我们一期重点关注发热场景的治理,不针对元器件 Hook 等耗电场景进行持续深入分析,故当前得物侧是以电池温度、CPU 使用率为第一第二指标 建立核心的发热问题四象限,优先关注高温、高 CPU 的问题场景 。
文章插图
图片
在数据分析过程中,我们遇到了数据上的效率排查效率不够高、问题精度不够准的情况 。
- 如何定位是高温场景是发生在 App 内部 , 且在使用过程中明显上升的? 通过过滤从启动开始即高温、后台切换回来即高温的场景,重点关注在 App 内部温度上升的场景 。
- 线上的采样后仍旧单日有 6w+ 数据的上报,我们如何筛选出更为核心的数据?当前的做法是定义了温度跨度的概念,优先看在 App 内部温度跨度较大的 Case 。
- 线程存在调用 Wait 等方法阻塞的堆栈 , 消耗内核态的时间分配,但实际不消耗整体 CPU 的误报数据 。补充了线程的运行状态和 Proc 文件中记录的 State,方便优先处理 RUNNABLE线程的 CPU 高温高占用问题 。
- 手机温度上升作为渐进式的场景,如何实现温度上升场景下的页面精确归因?增加温度采样频率的同时,汇总 CPU 使用率和实时堆栈等瞬时数据作为数据支撑 , 但考虑到数据体量的情况,数据上报聚合裁剪方式仍在逐步探索更为合理的方式,力求在两者之间找到一个平衡点 。
文章插图
图片
文章插图
图片
五、收益Android 端侧发热监控自上线以来,背靠平台侧的支撑 , 陆续发现了一些问题并联合开发同学做了对应场景的治理优化工作,如:
耗时独立线程任务 接入统一线程池调度管理;
动画执行死循环监测修复;
高 IO 场景的文件读写策略优化;
高并发任务锁粒度优化;
日志库等 Json 解析频繁场景 采用效率更高的序列化方;
系统相机等系统功率过高的采集参数设备分级尝试;
基于 Webgl 的游戏场景 帧率降低和资源及时回收优化运行时内存;
....
这无疑给未来体验工作的场景技术选型、技术实现沉淀了一些有价值的经验,符合对 App 体验追求极致的高标准、高要求 。
六、未来展望【Android发热监控实践】手机发热作为渐进式的体验场景,涉及手机硬件、系统服务、软件使用、外界环境多方位因素 。对于端侧的排查上来说,当前优先级聚焦于应用层的不合理使用上,对于排查工具链路增强、问题业务归因、低电量、低功耗模式下的动态策略降低、自动化诊断报告等环节仍旧有很多值得深入挖掘的点,例如:
监控/工具增强
- App 浮层分析工具 (CPUGPU/频率/温度/功耗等信息)
- 借鉴 BatteryHistorian、SnapdragonProfiler、Systrace 等工具,实现自研TeslaLab 能力增强 。
- 发热堆栈自动分配
- 调用溯源归因精细化
- CPU 调频、动态帧率、分辨率降级
- 端内低功耗模式探索
- 单用户定向自动化分析输出诊断报告
推荐阅读
- 微信被监控怎么解除限制 微信被监控怎么解除
- poweredbyandroid是什么意思
- 56岁王祖贤匆匆现身南京高铁站,与僧人同行,不雅坐姿引发热议
- 如何做好高速公路监控员,谁知道浅谈如何做好监控工作
- 谭咏麟照片中的茅台酒引发热议,网友纷纷揣测价值与珍贵程度
- 暖贴 发热原理 暖贴发热的原理是什么
- 卡戴珊臀部意外走光!超级明星的真实尴尬瞬间,露馅故事引发热议
- 《阿盖尔:神秘特工》发布正式预告 亨利·卡维尔的发型引发热议
- 记一次 .NET 某拍摄监控软件的卡死分析
- Android用户目前面临的六大安全威胁