1. 程式人生 > >Android 熱修復的相關總結(主要是阿裏百川的)

Android 熱修復的相關總結(主要是阿裏百川的)

else if aes stringbu tag initial att ide 新手 append

1.主流的熱修復是 QQ 、微信和阿裏百川

2.我建議使用阿裏百川的原因第一:團隊在釘釘有專門的客服 二、對於新手來說非常方便

3.操作步驟:阿裏百川的api文檔很詳細 我只說一些坑:

1》下面的初始化只能放在oncreat()中 放在其他文件中沒什麽作用

 private void initHotfix() {
String appVersion;
try {
appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
} catch (Exception e) {
appVersion = "1.0.0";
}
// initialize最好放在attachBaseContext最前面,初始化直接在Application類裏面,切勿封裝到其他類
SophixManager.getInstance().setContext(this)
.setAppVersion(appVersion)
.setAesKey(null)
.setSecretMetaData(APPID, APPSECRET, RSASECRET)
.setEnableDebug(true)
.setPatchLoadStatusStub(new PatchLoadStatusListener() {
@Override
public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {

String msg = new StringBuilder("").append("Mode:").append(mode)
.append(" Code:").append(code)
.append(" Info:").append(info)
.append(" HandlePatchVersion:").append(handlePatchVersion).toString();

Log.d(TAG, "onCreate://...... " + msg.toString());
if (msgDisplayListener != null) {
msgDisplayListener.handle(msg);
} else {
cacheMsg.append("\n").append(msg);
}
//code參數
// 補丁加載回調通知
if (code == PatchStatus.CODE_LOAD_SUCCESS) {
// 表明補丁加載成功
} else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
// 表明新補丁生效需要重啟. 開發者可提示用戶或者強制重啟;
// 建議: 用戶可以監聽進入後臺事件, 然後調用killProcessSafely自殺,以此加快應用補丁,詳見1.3.2.3
} else {
// 其它錯誤信息, 查看PatchStatus類說明

}
}
}).initialize();
/
    
SophixManager.getInstance().queryAndLoadNewPatch();

}
2》.使用補丁工具打包 先生成jar包再生成log日誌 要不log日誌為空,
3》.打完補丁的測試 如果提示包名錯誤檢查步驟1》

Android 熱修復的相關總結(主要是阿裏百川的)