編輯:關於Android編程
android的熱修復技術我看的最早的應該是QQ空間團隊的解決方案,後來真正需要了,才仔細調查,現在的方案中,阿裡有兩種Dexposed和Andfix框架,由於前一種不支持5.0以上android系統,所以阿裡系的方案我們就看Andfix就好。Hotfix框架算是對上文提到的QQ空間團隊理論實現。本文旨在寫實現方案,捎帶原理。
框架官網: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代碼,起到下載的功能就可以了。
前兩天研究了一下NDK開發,然而沒有成功。今天興趣盎然,再試試,不知道會不會成功,我將記錄我在學習過程中遇到的一些困難,以及成功後的效果。我當前的狀態是以及學習了一段時間
微信出了電腦版,在收到視頻後,視頻是保存在哪呢?微信電腦版視頻存在哪裡? 微信電腦版視頻文件夾位置就讓下載吧小編來告訴你吧 1、首先我們打開手機上的微信,
1 背景 很久沒有更新博客了,忙裡偷閒產出一篇。寫這片文章主要是去年項目中的一個需求,當時三下五除二的將其實現了,但是源碼的閱讀卻一直扔在那遲遲沒有時間理會,
Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用戶體驗, 同時也為程序員帶來新的負擔. 動態權限管理就是這樣, 一方面讓用戶更加容易的控制自己