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後先進行灰階測試,然後再全量釋出