dex2oat导致机器很卡的问题分析

上周末碰到玩游戏爆卡,周一过来连上adb看个究竟,发现dex2oat进程占用的cpu很高,游戏运行中一直是大于70%

dex2oat应该是在安装app的时候转化java代码到机器码,这样会大幅提高程序效率。对于app来说这个应该只会跑一次,但是在我手机上dex2oat一直是处于运行状态,这个很奇怪。看日志:

08-21 12:21:47.476 I/dex2oat (15925): /system/bin/dex2oat --dex-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/dex/classes.dex.jar --oat-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/odex/classes.dex.dex
08-21 12:21:47.486 I/dex2oat (15926): /system/bin/dex2oat --dex-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/dex/test.dex.jar --oat-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/odex/test.dex.dex
08-21 12:21:47.549 I/dex2oat (15927): /system/bin/dex2oat --dex-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/dex/classes2.dex.jar --oat-file=/data/user/0/com.tencent.android.qqdownloader/tinker/patch-7af6000d/odex/classes2.dex.dex
有三个进程同时开启了dex2oat,处理的文件是qq下载的三个jar文件。博主当然不可能有腾讯app相关的代码了,只能进行推测:

1.com.tencent.android.qqdownloader存放的是腾讯的某些热更新文件

2.由于Android默认的是只在安装时启用一次dex2oat,那么热更新的文件当然需要自己去主动处理转换成oat文件。

3.腾讯app运行dex2oat的判断条件一直是满足的,所以一直会跑。

博主的机器也比较特殊,一直是公司的开发样机,所以经常刷软件版本,上周五还刷过,就是这次刷机莫名造成了机器爆卡,影响心情

删除游戏问题依然没有解决,删除应用宝问题解决。然后重装应用宝,应用宝重装游戏问题不再。

公司网络没法下游戏,为了节省手机流量(一个游戏三百多Mb),我是从/data/app中adb pull出base.apk,刷机后再adb install安装。和一般用户的流程不一样。可能是这个异常操作导致应用宝出问题。

你可能感兴趣的:(android,bug)