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安裝。和一般用戶的流程不一樣。可能是這個異常操作導致應用寶出問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章