Andfix熱修復框架原理及原始碼解析-下篇
如果沒有看過上篇的建議從上篇看起。先大概回憶下,上一篇分析了mPatchManager.init("1.0"),addPatch()方法。還有通過分析打補丁工具,瞭解補丁檔案是怎麼生成的。下面就來講講我們如何去讀它。思緒回到Application的loadPatch()方法。
這個方法就是遍歷mPatchs,就是上篇介紹的儲存patch的一個集合。根據補丁名找到對應的類,做為引數傳給fix();
前面一直提到dexFile,這裡做一個簡單的介紹,它就是被類載入器使用的操作Dex檔案的類。我註釋都寫的很清楚,遍歷dexFile檔案中所有的類, 如果有需要修改的類集合中在這個Dex檔案中找到了一樣的類,則使用loadClass(String, ClassLoader)載入這個類, 然後呼叫fixClass(String, ClassLoader)修復這個類。
親們看註釋吧,更加詳細點。這個方法就是找到有問題的類,和相關方法,作為引數傳給replaceMethod().
繼續看註釋,這裡呼叫了AndFix.addReplaceMethod(src, method).
這裡就涉及到jni,jni簡單的入門總結。
我們找到檔案開啟。
可以看到它分為Art和Dalvik分別處理,我們art以5.0為例看看。
再看看Dalvik裡面
好了,就分析到這裡了。
相關資料工具及demo下載地址:http://pan.baidu.com/s/1hsdcs7a
轉載請註明轉自:http://blog.csdn.net/u011176685/article/details/50984885
相關文章
- Andfix熱修復框架原理及原始碼解析-上篇框架原始碼
- Alibaba-AndFix Bug熱修復框架原理及原始碼解析框架原始碼
- 【Android 熱修復】美團Robust熱修復框架原理解析Android框架
- Alibaba-AndFix Bug熱修復框架的使用框架
- 熱修復框架原始碼剖析(上)框架原始碼
- Android中熱修復框架Robust原理解析+並將框架程式碼從"閉源"變成"開源"(下篇)Android框架
- Android熱修復原理(一)熱修復框架對比和程式碼修復Android框架
- 阿里熱修復AndFix的使用教程阿里
- Android熱更新方案之阿里AndFix 原理以及原始碼解析Android阿里原始碼
- Android 熱修復 - 各框架原理學習及對比Android框架
- Android 熱修復 Tinker 接入及原始碼淺析Android原始碼
- Android 熱修復 Tinker接入及原始碼淺析Android原始碼
- Android熱修復原理Android
- 你值得知道的Android 熱修復,以及熱修復原理Android
- 【Spring原始碼分析】AOP原始碼解析(下篇)Spring原始碼
- 深入探索Android熱修復技術原理讀書筆記 —— 程式碼熱修復技術Android筆記
- CORS原理及@koa/cors原始碼解析CORS原始碼
- Android 熱修復 Tinker 原始碼分析之DexDiff / DexPatchAndroid原始碼
- InnoDB MVCC實現原理及原始碼解析MVC原始碼
- Tinker 熱修復框架 簡單上手教程框架
- 【Mybatis原始碼解析】- 整體架構及原理MyBatis原始碼架構
- 熱修復(一)原理與實現詳解
- 簡單易懂的tinker熱修復原理分析
- 熱修復——深入淺出原理與實現
- Android 熱修復 Tinker Gradle Plugin 解析AndroidGradlePlugin
- 深入探索Android熱修復技術原理讀書筆記 —— 熱修復技術介紹Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 資源熱修復技術Android筆記
- JVM CPU Profiler技術原理及原始碼深度解析JVM原始碼
- 熱修復初探
- 筆記 深入探索Android熱修復技術原理筆記Android
- Android進階(八)熱修復基本原理Android
- EventBus原理與原始碼解析原始碼
- Android 熱補丁動態修復框架小結Android框架
- Android 增量更新完全解析 是增量不是熱修復Android
- ARouter路由框架原始碼解析路由框架原始碼
- weex eros框架原始碼解析ROS框架原始碼
- Android 熱修復Android
- 你期待已久的熱修復—Tinker熱修復整合總結