前面我講到了如何接入阿里百川熱修復的準備工作 如何使用阿里百川hotfix熱修復功能(一)
如果申請通過了,應該就是這樣的,顯示已開通:
點擊進入後臺,可以看到,會自動生成android 和ios 兩個版本的appId。appId我們在後面集成會用到。點擊管理,可以看到生成的rsa密鑰:
這樣,我們就可以開始集成了:
1. android studio集成方式:
添加maven倉庫地址:打開項目找到app的build.gradle文件,添加如下配置:
添加gradle座標版本依賴:
compile
'com.alibaba.sdk.android.plugins.jar:alisdk-utdid:0.0.1'
依賴即可
如果遠程依賴失敗,可以使用官方demo提供的jar進行使用:
2.添加權限
<!
-- 網絡權限 -->
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<!
-- 外部存儲讀權限 -->
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
將你之前申請的appsecret和rsa文件填入
<meta-data
android:name=
"com.taobao.android.hotfix.APPSECRET"
android:value=
"your-app-secret"
/>
<meta-data
android:name=
"com.taobao.android.hotfix.RSASECRET"
android:value=
"your-rsa-secret"
/>
-keep
class
*
extends
java.lang.annotation.Annotation
-keepclasseswithmembernames
class
*
{
native
<methods>;
}
-keep
class
com.alipay.euler.andfix.**{
*;
}
-keep
class
com.taobao.hotfix.aidl.**{*;}
-keep
class
com.ta.utdid2.device.**{*;}
-keep
class
com.taobao.hotfix.HotFixManager{
public
*;
}
請複製下載SDK(SDK下載&版本更新記錄裏“SDK”項下載下來,
然後解壓)加入so文件,不然會報錯。
5.初始化
初始化應該儘可能的早.
強烈推薦在Application.onCreate()
中進行SDk初始化以及查詢服務器是否有可用補丁的操作.
這裏用到了appId:
private void initApp() { this.appId = "78962-1"; //替換掉自己應用的appId try { this.appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; } catch (Exception e) { this.appVersion = "1.6"; } } private void initHotfix() { HotFixManager.getInstance().initialize(this, appVersion, appId, true, new PatchLoadStatusListener() { @Override public void onload(int mode, int code, String info, int handlePatchVersion) { // 補丁加載回調通知 if (code == PatchStatusCode.CODE_SUCCESS_LOAD) { /** code: 1 補丁加載成功 code: 6 服務端沒有最新可用的補丁 code: 12 當前應用已經存在一箇舊補丁, 應用重啓嘗試加載新補丁 code: 13 補丁加載失敗, 導致的原因很多種, 比如UnsatisfiedLinkError等異常, 此時應該嚴格檢查logcat異常日誌 */ // TODO: 10/24/16 表明補丁加載成功 MyLog.e("補丁加載成功:code=",code+"--------"); } else if (code == PatchStatusCode.CODE_ERROR_NEEDRESTART) { // TODO: 10/24/16 表明新補丁生效需要重啓. 業務方可自行實現邏輯, 提示用戶或者強制重啓, 建議: 用戶可以監聽進入後臺事件, 然後應用自殺 MyLog.e("新補丁生效需要重啓:code=",code+"--------"); } else { // TODO: 10/25/16 其它錯誤信息, 查看PatchStatusCode類說明 MyLog.e("補丁加載:code=",code+"--------"); } } }); /** * queryNewHotPatch()方法主要用於查詢服務器是否有新的可用補丁, 如果查詢到可用的話, 首先下載補丁到本地, 然後應用原本沒有補丁, 那麼第一個補丁會立刻加載應用已經存在一個補丁, 首先會把之前的補丁文件刪除, 然後不立刻加載, 而是等待下次應用重啓再加載該補丁 補丁在後臺發佈之後, 並不會主動下行推送到客戶端, 需要手動調用queryNewHotPatch方法查詢後臺補丁是否可用. 只會下載補丁版本號比當前應用存在的補丁版本號高的補丁, 比如當前應用已經下載了版本號爲5的補丁, 那麼只有後臺發佈的補丁版本號>5纔會重新下載. */ HotFixManager.getInstance().queryNewHotPatch(); }
這裏就算是接入完成了,是不是很簡單。我們接下來就可以進行打補丁patch了。
進入上一篇:如何使用阿里百川hotfix熱修復功能(二)
進入下一篇:如何使用阿里百川hotfix熱修復功能(三)