日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

快速開始

本文介紹如何在當前 Android App 的基礎上集成 mPaaS 提供的 Hotpatch 熱修復功能。

目前,熱修復支持原生 AAR 接入和組件化接入兩種方式。

  1. 添加 SDK

  2. 初始化熱修復(僅原生 AAR 接入需要)

  3. 生成熱修復補丁

  4. 發布熱修復補丁

  5. 觸發熱修復補丁

前置條件

添加 SDK

原生 AAR 方式

參考 管理組件依賴,通過 組件管理(AAR)在工程中安裝 熱修復(HOTFIX)組件。

組件化方式

在 Portal 和 Bundle 工程中通過 組件管理安裝 熱修復(HOTFIX)組件。更多信息,參考 管理組件依賴

初始化熱修復

原生 AAR 接入

如果需要使用熱修復功能,您還需要完成以下兩步操作。

  1. 需要將 Application對象重新繼承為 QuinoxlessApplicationLike,并注意將該類防混淆。此處以 MyApplication 為例。

     @Keep
     public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks {
      private static final String TAG = "MyApplication";
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          Log.i(TAG, "attacheBaseContext");
      }
      @Override
      public void onCreate() {
          super.onCreate();
          Log.i(TAG, "onCreate");
          registerActivityLifecycleCallbacks(this);
      }
      @Override
      public void onMPaaSFrameworkInitFinished() {
          MPHotpatch.init(); 
          LoggerFactory.getTraceLogger().info(TAG, getProcessName());
      }
      @Override
      public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
          Log.i(TAG, "onActivityCreated");
      }
      @Override
      public void onActivityStarted(Activity activity) {
      }
      @Override
      public void onActivityResumed(Activity activity) {
      }
      @Override
      public void onActivityPaused(Activity activity) {
      }
      @Override
      public void onActivityStopped(Activity activity) {
      }
      @Override
      public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
      }
      @Override
      public void onActivityDestroyed(Activity activity) {
      }
     }
  2. 在 AndroidManifest.xml 文件中將 Application對象指向 mPaaS 提供的 Application對象。將剛剛生成的 MyApplication 類添加到 key 為 mpaas.quinoxless.extern.application的 meta-data中。示例如下:

     <application
         android:name="com.alipay.mobile.framework.quinoxless.QuinoxlessApplication" >
         <meta-data
              android:name="mpaas.quinoxless.extern.application"
              android:value="com.mpaas.demo.MyApplication" 
              />
     </application>

    其中 com.mpaas.demo.MyApplication是您自定義的 Application 代理類,繼承 QuinoxlessApplicationLike

組件化接入

由于已經集成了相關內容,因此該接入方式不需要做任何變更。

生成熱修復補丁

參見 生成熱修復包

發布熱修復補丁

參見 發布熱修復包

觸發熱修復補丁

本節結合 代碼示例中的 熱修復 示例,對熱修復過程進行詳細的說明介紹。

該代碼示例中的修復內容是彈出的 Toast 中的內容。

  • 修復前單擊 模擬需要被熱修復的點擊事件 按鈕,彈出如下圖所示的 Toast。  2

  • 進行修復單擊 觸發熱修復部署檢測 按鈕,觸發熱修復的下載。在下載完成后,徹底關閉 Demo 應用并重新啟動。

  • 修復后單擊 模擬需要被熱修復的點擊事件 按鈕,會彈出 “當前點擊事件已被熱修復”的 Toast。  3

問題排查

  • 不要使用非正規方式引入 apache-httpclient、apache-commons,具體參考 Android 應用開發者平臺官方文檔

  • 不要使用非正規方式引入 NFC 系統相關的 SDK。

  • 確定沒有繼承任何 Application 相關的類,確定使用 ApplicationLike 代替。

熱修復日志請使用 Tag:DynamicRelease 過濾。

  • 下載階段:可以同時過濾 RPCException,如果有相關的異常,那么下載不會成功。

    說明

    若出現 RPC 相關異常,可根據錯誤碼進行排查,詳細信息參考 RPC 調用

  • 合并補丁階段:可以過濾 immediately=true,如果發現相關日志,則表示合并補丁成功。合并補丁成功之后,理論上只要重啟 App,補丁就會生效。