天天看點

APK Expansion Files調查筆記

最近在調查APK Expansion Files的使用方法,在此過程中遇到不少問題,在此做一個總結

重要參考資料:

  Thank you very much

利用官方示例測試時候需要修改的地方

1 程式的包名即manifest中的package.否則無法上傳

2 将SampleDownloaderService中的BASE64_PUBLIC_KEY替換為自己的

3 将org.goodev.expansion.downloader.SampleDownloaderActivity中的xAPKS

  修改為自己的.注意此處的大小請以本地obb檔案大小為準.不要以上傳Google play

  後網頁顯示的obb大小為準

Bug描述及其修改:

1 在運作示例代碼時程式崩潰,發現是mRemoteService為空,服務沒有啟動

  以下資料亦提到該問題但是沒有給出解答

  解決方式:

  在DownloaderClientMarshaller類中

  即com.google.android.vending.expansion.downloader.DownloaderClientMarshaller類中的

  public void connect(Context c)()方法中:

  應該使用if ( !c.bindService(bindIntent, mConnection, Context.BIND_AUTO_CREATE) )

  而不是:

  if ( !c.bindService(bindIntent, mConnection, Context.BIND_DEBUG_UNBIND) )

2 在修改以上bug後程式不會崩潰,但是沒有執行下載下傳.

  發現APK Expansion Files中的幾個服務均隻執行了create()卻沒有執行commandStart()

  解決辦法:

  具體代碼:

  在方法:

  com.google.android.vending.expansion.downloader.impl.DownloaderService.startDownloadServiceIfRequired()

  應該把:

  String packageName = serviceClass.getPackage().getName();

  改成

  String packageName =   context.getPackageName();

其餘問題:

1 裝置需要支援谷歌服務,比如你采用國産的oppo手機運作時會産生證書問題

2 第一次上傳apk的時候是無法上傳obb檔案的.隻有在第二次及其以後上傳apk

  時才有上傳obb檔案的選項.

  參考資料:

3 上傳obb檔案不能立馬測試.需要等待一段時間

殘留問題:

通過以上的準備和修改已經可以下載下傳obb檔案,但是進度條等UI資訊的顯示不正常.

參考資料:

改問題還未解決,需要進一步的調查.

關于APK Expansion Files的其餘疑似bug和問題可以參閱:

<a target="_blank" href="http://code.google.com/p/android/issues/detail?id=30767">http://code.google.com/p/android/issues/detail?id=30767</a>

繼續閱讀