前言
前段时间收到某游戏发热严重, 这是一个非常模糊的表达, 或者说这里面包含的变量信息太多了, 如何一层层抽丝剥茧排除一些关键性的变量就变得尤为重要.
本篇文章就详细的记录下整个分析过程与解决方案, 并采用自问自答的方式, 进行讲解, 方便大家遇到类似问题有自己的一套方法论.
文章本身并不涉及详细技术细节,只提供源码,具体技术原理可以私下沟通.
内容概要
- 什么是发热以及发热的原因
- 建立相对统一的测试环境
- 数据采集并建立初步认知
3.1 温度只能用于宏观趋势, 并不能精准量化(量化标准的建立)
3.2 自研游戏和竞品游戏到底有多少差距?(建立参考系)
3.3 什么原因引发了上面差异?(分析原因)
3.4 围绕着GPU我们能做什么分析?(进一步分析原因)
3.5 耗电占比分析(找出凶手)
- 直面发热本身
4.1 温度对于我们就没有参考价值了么?
4.2 Android温度采样系统
4.3 结合自动化建立温度监控系统
什么是发热以及发热的原因
- 手机发热的程度,与环境温度、使用场景、散热条件等多方因素有关。
- 受限于机身尺寸,手机不能像电脑等设备一样通过风扇散热,手机运行时,CPU、内存等产生的热量一般通过机身向外传导。
- 在一些高功耗的场景下,如玩手机游戏、连续摄像、升级手机系统等,机身发热是正常现象,当停止高功耗应用后,手机机身温度能快速恢复正常。
- 及时清理后台应用,如果您的手机有高耗电应用在后台运行,会持续占用 CPU 资源,容易导致发热和耗电快。
- 电池老化也会引发发热问题
建立相对统一的测试环境
为了建立统一的测试环境, 我们必须排除除游戏以外的其他关键性因素, 这里罗列出以下相关因素,保持标准一致. 后面所有的性能测试和数据分析都基于这个测试环境: