AndFix
AndFix是一個Android App的在線熱補丁框架充岛。使用此框架,我們能夠在不重復(fù)發(fā)版的情況下,在線修改App中的Bug跛溉。AndFix就是 “Android Hot-Fix”的縮寫。
原理是將有bug的方法B檢查出來扮授,修復(fù)這個方法B芳室,通過apkpatch工具找出兩個dex之間的區(qū)別生成.apatch文件 然后將補丁替換上去。
就目前來說刹勃,AndFix支持Android 2.3到6.0版本堪侯,并且支持arm 與 X86系統(tǒng)架構(gòu)的設(shè)備。完美支持Dalvik與ART的Runtime荔仁。
AndFix 的補丁文件是以 .apatch 結(jié)尾的文件伍宦。
項目地址:https://github.com/alibaba/AndFix,具體的實現(xiàn)原理都有介紹,不詳細贅述乏梁,制作.apatch的工具這里面也有提供
如何使用次洼?
直接添加 AndFix aar 到項目中的 編譯依賴庫中。
maven 依賴:
Gradle依賴:
因為我使用的studio實現(xiàn)遇骑,暫時用的gradle依賴實現(xiàn)
把andfix依賴進來后卖毁,在我們的application中進行初始化
1 .初始化PatchManager:
2 .載入補丁包
越早的載入補丁包越好,通常來說落萎,我們一般都會在自定義的Application中的onCreate方法里面載入補丁包亥啦。即:
3 .添加補丁包
新的補丁包炭剪,下載后調(diào)用addPatch方法添加補丁。這個補丁會立即生效禁悠。
接下來我來詳細介紹下.apatch文件的生成
首先把壓縮包解壓出來,把我們有bug的線上包和已經(jīng)修復(fù)好的apk包放到apkpatch文件夾下,然后把你的.jks apk簽名文件也放進來,
接著兑宇,cmd運行命令行碍侦,進入我們當前的這個apkpatch-1.0.3文件夾下,運行apkapatch有詳細介紹
英文名相信大家都懂,我就不一一贅述了,第一個用法是生成.apatch文件的隶糕,第二個是合并.apatch文件的
注意:
每次產(chǎn)生的apatch文件用的名字不能相同的瓷产,相同會導致只有第一次的補丁能生效。
與Nuwa對比
Nuwa是另一個熱補丁框架,基于dex分包實現(xiàn)
與Nuwa相比枚驻,AndFix有一下優(yōu)點:
不需要重啟APP即可應(yīng)用補丁濒旦。
安全性更好
但是也有缺點
無法添加類和字段