Alibaba-AndFix Bug熱修復框架的使用
AndFix
這篇主要介紹alibaba的AndFix專案的使用,下一篇介紹 AndFix原理及原始碼解析。
Github:https://github.com/alibaba/AndFix
AndFix介紹
AndFix是一個Android App的線上熱補丁框架。使用此框架,我們能夠在不重複發版的情況下,線上修改App中的Bug。AndFix就是 “Android Hot-Fix”的縮寫。
就目前來說,AndFix支援Android 2.3到6.0版本,並且支援arm 與 X86系統架構的裝置。完美支援Dalvik與ART的Runtime。
AndFix 的補丁檔案是以 .apatch 結尾的檔案。
AndFix是阿里巴巴開源專案。
Android上如何使用
1.在自定義Application中初始化,為了更早的修復應用中的bug。
package com.euler.andfix;
import android.app.Application;
import com.alipay.euler.andfix.patch.PatchManager;
/**
* MainApplication 2015-11-12 下午2:07:11
*
* @author 喬曉鬆 965266509@qq.com
*/
public class MainApplication extends Application {
public PatchManager mPatchManager;
@Override
public void onCreate() {
super.onCreate();
// 初始化patch管理類
mPatchManager = new PatchManager(this);
// 初始化patch版本
mPatchManager.init("1.0");
// 載入已經新增到PatchManager中的patch
mPatchManager.loadPatch();
}
}
2.如果有新的補丁需要修復,下載完成後,進行以下操作
//新增patch,只需指定patch的路徑即可,補丁會立即生效
mPatchManager.addPatch(path);
3.當apk版本升級,需要把之前patch檔案的刪除,需要以下操作
//刪除所有已載入的patch檔案
mPatchManager.removeAllPatch();
patch檔案的生成
使用工具:apkpatch-1.0.3
原理:根據兩個apk包,生成一個差異檔案,就是所謂的補丁檔案即patch檔案。
命令 : 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 使用者別名密碼
執行完命令,就會在輸出目錄中輸出.apatch檔案:
new-c293df7dbc23f11214fdd020ea78d3b8.apatch:就是patch檔案。
.apatch檔案根目錄內容:
META_INF檔案下內容:
PATCH.MF檔案內容:注:Patch-Classes就是改動過的class.
客戶端請求伺服器介面(api),伺服器根據使用者傳遞的資料分析是否有需要修復的bug。
如果有bug需要修復,就下載伺服器指定的.apatch檔案的連結,下載完後及時載入並修復,使用addpatch(path)方法,補丁會立即生效。
在Android Studio使用
maven dependency:
<dependency>
<groupId>com.alipay.euler</groupId>
<artifactId>andfix</artifactId>
<version>0.3.1</version>
<type>aar</type>
</dependency>
or gradle dependency:
dependencies {
compile 'com.alipay.euler:andfix:0.3.1@aar'
}
在Eclipse使用
把Java層的程式碼引入到你的工程,配置Ndk開發環境並把jni Native程式碼新增進來。
程式碼混淆(ProGuard)
-keep class * extends java.lang.annotation.Annotation
-keepclasseswithmembernames class * {
native <methods>;
}
AndFix原理:Alibaba-AndFix Bug熱修復框架原理及原始碼解析
相關文章
- Alibaba-AndFix Bug熱修復框架原理及原始碼解析框架原始碼
- Android熱修復原理(一)熱修復框架對比和程式碼修復Android框架
- 【Android 熱修復】美團Robust熱修復框架原理解析Android框架
- Flutter 使用 bugly 進行異常上報與熱修復Flutter
- 熱修復框架原始碼剖析(上)框架原始碼
- 阿里熱修復AndFix的使用教程阿里
- Tinker 熱修復框架 簡單上手教程框架
- Oracle bug的手工修復Oracle
- 你值得知道的Android 熱修復,以及熱修復原理Android
- 你期待已久的熱修復—Tinker熱修復整合總結
- 熱修復初探
- Andfix熱修復框架原理及原始碼解析-上篇框架原始碼
- Andfix熱修復框架原理及原始碼解析-下篇框架原始碼
- Android 熱補丁動態修復框架小結Android框架
- Android 熱修復Android
- 在 Java 中運用動態掛載實現 Bug 的熱修復Java
- 微軟修復Bug的補丁產生了新的Bug微軟
- Android 熱修復 - 各框架原理學習及對比Android框架
- 我的IT人生:修復別人的BUG
- Android熱修復原理Android
- robust 熱修復實踐
- Nagios4.0.8 bug修復iOS
- PHP再次更新Bug修復版本PHP
- Robust 2.0:支援Android R8的升級版熱修復框架Android框架
- 手把手帶你打造一個 Android 熱修復框架Android框架
- PHP DIY 系列------框架篇:6. 簡單測試與 bug 修復PHP框架
- 熱修復和外掛化
- Tinker熱修復整合總結
- Android 熱修復總結Android
- 熱修復預備知識
- 淺析“熱更新”(熱修復)解決方案
- 被冰封的 Bug:Fishhook Crash 修復紀實Hook
- 程式設計師如何修復婚姻的Bug?程式設計師
- 程式設計師如何修復婚姻的 bug?程式設計師
- CSS之樣式無效BUG的修復CSS
- flexible.js 相容bug修復FlexJS
- 從.Net框架Bug的提交到修復程式碼成功合併到.NET CoreFX主框架
- 熱更新之Bugly框架的詳細整合框架