使用阿里百川HotFix,阿里百川hotfix

來源:互聯網
上載者:User

使用阿里百川HotFix,阿里百川hotfix

前言:首先要弄懂HotFix是幹嘛的,不然就別向下看了。這裡僅僅根據官方文檔的代碼書寫,親測可用,不做理論指導。


Android Studio整合:

    添加maven倉庫地址:

  1. repositories {
  2.    maven {
  3.        url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories"
  4.    }
  5. }

    添加gradle座標版本依賴:

  1. dependencies {
  2.     compile 'com.taobao.android:alisdk-hotfix:2.0.9'
  3. }

    許可權說明:

  1. <! -- 網路許可權 -->
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  5. <! -- 外部儲存讀許可權 -->
  6. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    配置AndroidManifest檔案:

  1. <meta-data
  2. android:name="com.taobao.android.hotfix.IDSECRET"
  3. android:value="App ID" />
  4. <meta-data
  5. android:name="com.taobao.android.hotfix.APPSECRET"
  6. android:value="App Secret" />
  7. <meta-data
  8. android:name="com.taobao.android.hotfix.RSASECRET"
  9. android:value="RSA密鑰" />

    混淆配置:

  1. #基準包使用,產生mapping.txt
  2. -printmapping mapping.txt
  3. #產生的mapping.txt在app/buidl/outputs/mapping/release路徑下,移動到/app路徑下
  4.  
  5. #修複後的項目使用,保證混淆結果一致
  6. #-applymapping mapping.txt
  7.  
  8. #hotfix
  9. -keep class com.taobao.sophix.**{*;}
  10. -keep class com.ta.utdid2.device.**{*;}

    SDK介面配置:

  1. package xin.ceet.com.tencentdemo;
  2.  
  3. import android.app.Application;
  4.  
  5. import com.taobao.sophix.PatchStatus;
  6. import com.taobao.sophix.SophixManager;
  7. import com.taobao.sophix.listener.PatchLoadStatusListener;
  8.  
  9. /**
  10.  * Created by asus on 2017/7/5.
  11.  */
  12.  
  13. public class MyApplication extends Application {
  14.     private String appVersion = "1.0.0";
  15.     @Override
  16.     public void onCreate() {
  17.         super.onCreate();
  18.         SophixManager.getInstance().setContext(this)
  19.                 .setAppVersion(appVersion)
  20.                 .setAesKey(null)
  21.                 .setEnableDebug(true)
  22.                 .setPatchLoadStatusStub(new PatchLoadStatusListener() {
  23.                     @Override
  24.                     public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
  25.                         // 補丁載入回調通知
  26.                         if (code == PatchStatus.CODE_LOAD_SUCCESS) {
  27.                             // 表明補丁載入成功
  28.                         } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
  29.                             // 表明新補丁生效需要重啟. 開發人員可提示使用者或者強制重啟;
  30.                             // 建議: 使用者可以監聽進入後台事件, 然後應用自殺
  31.                         } else if (code == PatchStatus.CODE_LOAD_FAIL) {
  32.                             // 內部引擎異常, 推薦此時清空本地補丁, 防止失敗補丁重複載入
  33.                             // SophixManager.getInstance().cleanPatches();
  34.                         } else {
  35.                             // 其它錯誤資訊, 查看PatchStatus類說明
  36.                         }
  37.                     }
  38.                 }).initialize();
  39.         SophixManager.getInstance().queryAndLoadNewPatch();
  40.     }
  41.  
  42. }

    版本說明:

  1. 說明一:patch是針對用戶端具體某個版本的,patch和具體版本綁定
  2.  
  3. eg. 應用目前的版本號是1.1.0, 那麼只能在後台查詢到1.1.0版本對應發布的補丁, 而查詢不到之前1.0.0舊版本發布的補丁.
  4. 說明二:針對某個具體版本發布的新補丁, 必須包含所有的bugfix, 而不能依賴補丁遞增修複的方式, 因為應用僅可能載入一個補丁
  5.  
  6. eg. 針對1.0.0版本在後台發布了一個補丁版本號碼為1的補丁修複了bug1, 然後發現此時針對這個版本補丁1修複的不完全, 代碼還有bug2, 在後台重新發布一個補丁版本號碼為2的補丁, 那麼此時補丁2就必須同時包含bug1和bug2的修複才行, 而不是只包含bug2的修複(bug1就沒被修複了)

    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.