Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android熱修復:Andfix和Hotfix,兩種方案的比較與實現

Android熱修復:Andfix和Hotfix,兩種方案的比較與實現

編輯:關於Android編程

android的熱修復技術我看的最早的應該是QQ空間團隊的解決方案,後來真正需要了,才仔細調查,現在的方案中,阿裡有兩種Dexposed和Andfix框架,由於前一種不支持5.0以上android系統,所以阿裡系的方案我們就看Andfix就好。Hotfix框架算是對上文提到的QQ空間團隊理論實現。本文旨在寫實現方案,捎帶原理。

Andfix

引入

框架官網:https://github.com/alibaba/AndFix

使用android studio開發,引入如下:

compile ‘com.alipay.euler:andfix:0.4.0@aar‘

原理

下面是個修復的過程圖,供我們更好地理解。

技術分享

可以看出,andfix的修復是方法級的,對有bug的方法進行替換。

做補丁

官方有給使用方式,不過比較簡略,所以會有些修改。我的思路是把補丁制作好,然後放到服務器上,客戶端下載補丁到指定文件夾,然後修復。
首先要有補丁的制作工具,官方也為我們准備好了:這裡
解壓後,我們把修復前的apk和修復後的apk,keystore(為了方便,我就用debug的keystore了)放到這個文件夾裡,如下:
技術分享
其中需要用命令做補丁文件,就是需要一個修復前的apk和修復後的apk做對比,命令含義如下:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> 命令 : apkpatch.bat -f new.apk -t old.apk -o output1 -k debug.keystore -p android -a androiddebugkey -e android -f <new.apk> :新版本 -t <old.apk> : 舊版本 -o <output> : 輸出目錄 -k <keystore>: 打包所用的keystore -p <password>: keystore的密碼 -a <alias>: keystore 用戶別名 -e <alias password>: keystore 用戶別名密碼

技術分享
然後會在outputdic裡生成一個後綴是.apatch的文件:
技術分享
改名成out.apatch,這就是我們的補丁。

打補丁

如何使用補丁呢?和把大象裝進冰箱是一樣步驟。
下面直接上代碼了:
第一步:把補丁放到服務器。
簡單起見,用的xampp,寫了段php代碼,起到下載的功能就可以了。