1.3.2.6 setTags接口 [v3.2.7新增]
該參數設置端上拉取補丁包時的標籤,可以支持條件更爲豐富的灰度發佈,以下爲簡單示例:
試用
List<String> tags = new ArrayList<>();
tags.add("test");
//此處調用在initialize()方法前
SophixManager.getInstance().setTags(tags);
試用
List<String> tags = new ArrayList<>();
tags.add("production");
//此處調用在initialize()方法前
SophixManager.getInstance().setTags(tags);
如上,設置不同的tags,同一版本號下,可以打兩個或者多個基線包,線上發佈時用production的基線包,測試環境用test的基線包,這樣就可以測試同一版本號下的同一個補丁了,兩個環境互不影響。tags可以add多個,結構爲前後非空字符串即可。生成補丁時,用同樣tags的基線包和修復包。
阿里雲 熱修復 使用文檔 和函數說明 地址:
https://help.aliyun.com/document_detail/93825.html?spm=a2c4g.11186623.6.580.492371c1mQOBkh#h2-1-4-4
2.官方使用文檔地址和工具下載地址
阿里雲 熱更新 研發平臺
https://emas.console.aliyun.com/?spm=5176.2020520001.aliyun_sidebar.46.34ab4bd3xZNL5B#/product/3613296/hotfix/25230400/2
熱更新 添加流程
1.登陸之後,點擊左側菜單欄 -> 應用管理 .可以添加應用包名一定要和應用apk 包名一致 。
2.在app build.gradle 中,添加應用 庫地址 ,
repositories {
//阿里雲倉庫
maven {
url "http://maven.aliyun.com/nexus/content/repositories/releases"
}
}
和 加載庫地址
implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.8'
3.Application 添加初始化代碼
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
initHotfix();
}
4.在主頁 查詢並加載 補丁包 -- SophixManager.getInstance().queryAndLoadNewPatch();
例如: 本應用中 在spalshAcy 應用啓動第一個頁面 查詢補丁包;
熱更新官方文檔
https://help.aliyun.com/document_detail/69874.html?spm=a2c4g.11174283.6.553.2fb13ca0BAqKte
生成補丁工具 地址:
https://help.aliyun.com/document_detail/93826.html?spm=a2c4g.11186623.2.10.23d65b84yIBmsH
調試補丁工具 地址:
生成補丁後,在掃描驗證補丁 點擊 hotfixBug 下載補丁調試工具
http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debug_tool-release.apk?spm=5176.2020520107.0.0.52da2ae9kWEcim&file=hotfix_debug_tool-release.apk
熱更新官方 demo 調試學習地址 :
https://github.com/aliyun/alicloud-android-demo/tree/master/hotfix_android_demo?spm=a2c4g.11186623.2.44.6e0261dbstWWLJ
3.使用的注意事項:
1、確保沒有新增四大組件,沒有修改AndroidManifest.xml和入口Application中的代碼。
2、如果使用了混淆,確保打包使用的新舊包的混淆保持已經確保一致,如新包apply了舊包的mapping文件。
3、如果使用了加固,確保打包使用的新舊包都是加固前的正常包。
4、如果有資源修復,確保沒有修改通知欄圖標、啓動圖標資源以及RemoteViews等系統負責展示的資源。
5、如果有SO庫的修復,確保所需要修復的SO都是以System.loadLibrary的方式,而不是以具體路徑的方式進行加載。
6、注意設置裏填好籤名信息
7、注意打補丁的舊包和新包都是未進行加固的包
8、在控制檯添加版本時注意版本號填寫要和需要熱修復的app版本一致
9、補丁打完上傳到控制檯後要用補丁測試工具掃描二維碼熱更新試試,看是否能成功,並測試打好補丁後的app
10、測試OK後先進行灰度測試,然後再全量發佈