-
這節課有用查看全部
-
?查看全部
-
123查看全部
-
記筆記查看全部
-
vv拒絕查看全部
-
記錄查看全部
-
生成補丁包的關鍵命令查看全部
-
dalvik虛擬機走multidex,art虛擬機不走multidex,因為art是加載aot,為dex的編譯指令文件查看全部
-
ide識別到multidexenable為true后,在執行dx命令是追加了--multidex參數查看全部
-
jjjkhhgvvgg查看全部
-
記筆記查看全部
-
代碼熱修復原理:
將補丁dex插入到pathList.dexElements中的首位,優先加載熱修復補丁dex。
查看全部 -
編譯期:
運行期:
- 判斷java.vm.version是否需要dex文件處理
- davilk虛擬機:apk中二級dex文件解壓到應用特定目錄 -- 得到二級文件列表:SecondaryDexes -- 二級文件列表出入ClassLoader中
- 二級文件注入ClassLoader:首先反射獲取PathClassLoader的pathList字段 -- pathList再次反射 -- 獲取內部的dexElements字段 -- 為前期解壓獲取的二級dex文件:classes2.dex、classesN.dex文件生成對應的Elements數組 -- 最后將Elements元素追加到pathList.dexElements的尾部
- 后續需要加載某個類:遍歷dexElements數組,挨個查找是否有要找的類。
查看全部 -
Dex安裝?
查看全部 -
Java類加載機制:
.class 文件 --> ClassLoader --> 類加載到虛擬機中,運行
Android類加載機制:
PathClassLoader加載.dex文件,找出在dex中要運行的類
查看全部
舉報
0/150
提交
取消