今天验收一个项目的时候发现这程序挂在大厅不看视频都能煎鸡蛋,用电比充点还快,所以就决定查下这软件到底是干了点什么
1.首先先看下到底用了多少cpu
果然很离谱,我什么都不干,就已经这么高,一般的游戏都没这么高
2.这个时候介绍下如何看什么函数占用了大量cpu
主要用的是strace
使用方法:
①.推送strace到一个文件夹
adb shell #adb shell
su #获取管理员权限
chmod 777 /data/ #改变权限 不然会没有权限
adb push strace /data/ #推送
3.切换到strace的目录 输入
5651是PID
结果:可以发现大量的调用了ioctl 这里就截图一部分实际有好几百行 这就是导致cpu极高的原因
ioctl 解释