android使用andfix實現熱修復

AndFix

AndFix是一個Android App的在線熱補丁框架。使用此框架,我們能夠在不重復發版的情況下,在線修改App中的Bug。AndFix就是 “Android Hot-Fix”的縮寫。

原理是將有bug的方法B檢查出來,修復這個方法B,通過apkpatch工具找出兩個dex之間的區別生成.apatch文件 然后將補丁替換上去。

就目前來說,AndFix支持Android 2.3到6.0版本,并且支持arm 與 X86系統架構的設備。完美支持Dalvik與ART的Runtime。

AndFix 的補丁文件是以 .apatch 結尾的文件。

項目地址:https://github.com/alibaba/AndFix,具體的實現原理都有介紹,不詳細贅述,制作.apatch的工具這里面也有提供

如何使用?

直接添加 AndFix aar 到項目中的 編譯依賴庫中。

maven 依賴:

Gradle依賴

因為我使用的studio實現,暫時用的gradle依賴實現

把andfix依賴進來后,在我們的application中進行初始化

1 .初始化PatchManager:

2 .載入補丁包

越早的載入補丁包越好,通常來說,我們一般都會在自定義的Application中的onCreate方法里面載入補丁包。即:

3 .添加補丁包

新的補丁包,下載后調用addPatch方法添加補丁。這個補丁會立即生效。


.apatch路徑,自己定義

接下來我來詳細介紹下.apatch文件的生成

首先把壓縮包解壓出來,把我們有bug的線上包和已經修復好的apk包放到apkpatch文件夾下,然后把你的.jks apk簽名文件也放進來,

接著,cmd運行命令行,進入我們當前的這個apkpatch-1.0.3文件夾下,運行apkapatch有詳細介紹

英文名相信大家都懂,我就不一一贅述了,第一個用法是生成.apatch文件的,第二個是合并.apatch文件的

注意:

每次產生的apatch文件用的名字不能相同的,相同會導致只有第一次的補丁能生效。

與Nuwa對比

Nuwa是另一個熱補丁框架,基于dex分包實現

與Nuwa相比,AndFix有一下優點:

不需要重啟APP即可應用補丁。

安全性更好

但是也有缺點

無法添加類和字段

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,829評論 25 708
  • 2015年以來,Android開發領域里對熱修復技術的討論和分享越來越多,同時也出現了一些不同的解決方案,如QQ空...
    日月星辰_9e1a閱讀 5,763評論 3 20
  • (24)代號099 拿到上崗證不久,南湖支行通知我錄指紋,入柜員序列。我的柜員生活,就這樣開始了。 我被分到了一個...
    白紙飄飄閱讀 946評論 0 0
  • 無數個夜,無數個瞬間都下定決心去忘記你,可是懦弱的我永遠都戰勝不了自己。 不知什么時候起在茫茫人海...
    dilllli閱讀 249評論 0 0
  • 我所理解的驚艷就是一種完美的極致。曹植的洛神賦、莫奈的睡蓮、肖邦的雨滴、香奈兒的胸針、毛爺爺的詩詞…如果用一種顏色...
    芥末涼皮閱讀 322評論 0 0