日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

APK Expansion Files / Obb 接入介绍

發布時間:2025/6/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 APK Expansion Files / Obb 接入介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

APK Expansion Files / Obb 接入介紹

APK Expansion Files 是谷歌官方提供的APK分包下載策略, 依賴工程已經包含在SDK中.

官方資料


  • 文檔

使用方法


1. 導入依賴工程

依賴工程放在SDK文件夾中/SDK/extras/google/文件夾下, 需要依賴market_apk_expansion與market_licensing.

說明1: market_apk_expansion對market_licensing有依賴

說明2: 如果出現Android App crashes on Lollipop - Service Intent must be explicit: [duplicate]類似的報錯, 請參照鏈接修改工程代碼licensing工程BUG

2. 打包OBB文件
  • 官方文檔-使用JOBB打包OBB文件
3. 客戶端接入

OBB是通過谷歌后臺public key與包名進行資源匹配, 請確保這兩項正確.

  • 繼承service, receiver

    • 繼承 BroadcastReceiver

      用于在游戲運行的時候檢查是否需要下載資源文件, 重寫`onReceive(Context, Intent)`方法, 示例@Overridepublic void onReceive(Context context, Intent intent) {try {DownloaderClientMarshaller.startDownloadServiceIfRequired(context,intent, SampleDownloaderService.class);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}
    • 繼承DownloaderService

      新建一個class, 繼承`DownloaderService`, 重寫了里面的三個方法, * `getPublicKey()`, 需要在return中返回游戲的`public key`. * `getSALT()`, 需要在return中返回SALT需要返回一個隨機字節數組, 格式如下public static final byte[] SALT = new byte[] { 1, 42, -12, -1, 54, 98, -100, -12, 43, 2, -8, -4, 9, 5, -106, -107, -33, 45, -1, 84}; * `getAlarmReceiverClassName()`返回之前繼承`BroadcastReceiver`的className, 示例@Overridepublic String getAlarmReceiverClassName() {return SampleAlarmReceiver.class.getName();}
  • AndroidManifest.xml相關配置

    聲明權限:

    <!-- Required to access Google Play Licensing --><uses-permission android:name="com.android.vending.CHECK_LICENSE" /><!-- Required to download files from Google Play --><uses-permission android:name="android.permission.INTERNET" /><!-- Required to keep CPU alive while downloading files(NOT to keep screen awake) --><uses-permission android:name="android.permission.WAKE_LOCK" /><!-- Required to poll the state of the network connectionand respond to changes --><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /><!-- Required to check whether Wi-Fi is enabled --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><!-- Required to read and write the expansion files on shared storage --><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />聲明service, receiver:<service android:name=".SampleDownloaderService" /><receiver android:name=".SampleAlarmReceiver" />
  • 下載Activity的配置

    • onCreate中添加初始化代碼

      示例
      @Override

  • protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try{Intent notifierIntent = new Intent(this, MainActivity.class);notifierIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,notifierIntent, PendingIntent.FLAG_UPDATE_CURRENT);// 如果需要, 開始下載serviceint startResult =DownloaderClientMarshaller.startDownloadServiceIfRequired(this,pendingIntent, SampleDownloaderService.class);if (startResult != DownloaderClientMarshaller.NO_DOWNLOAD_REQUIRED) {// 開始下載mDownloaderClientStub = DownloaderClientMarshaller.CreateStub(this,SampleDownloaderService.class);return;}}catch(Throwable e) {e.printStackTrace();}}* 接入接口Activity中implements`IDownloaderClient`.* `onServiceConnected()`當service連接的時候會調用此方法, 請添加如下邏輯, 獲得service對象mRemoteService = DownloaderServiceMarshaller.CreateProxy(m);mRemoteService.onClientUpdated(mDownloaderClientStub.getMessenger());* `onDownloadStateChanged()`下載狀態發生變化的時候, 會調用此方法* `onDownloadProgress()`下載進度進行中會不斷調用此方法, 用于更新下載的狀態* service其他API* `requestPauseDownload()`暫停下載* `requestContinueDownload()`繼續下載* `setDownloadFlags()`下載標識設置. 目前只提供一個標識, `IDownloaderService.FLAGS_DOWNLOAD_OVER_CELLULAR`, 如果設置, 玩家可以通過移動網絡下載, 否則只能在WIFI狀態進行下載 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的APK Expansion Files / Obb 接入介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。