總體說來,Android App Bundle打包有3種方式,每種方式都有成功上架Google Play進行測試通過,因此實用程度還是挺高的。能够理解以下內容的前提是會打apk包,知道如何生成Asset Bundle文件,這塊內容可以參考我的上一篇文章。

一、使用Unity3D自帶功能打aab包

圖1

此方法最簡單,勾選打包選項"Build App Bunlde(Goole Play)"即可。在點擊Build的時候就會提示保存xxx.aab文件。【注意】這種方式打出的aab包的大小必須在150M以內,否則無法上架Google,不過這對於小遊戲來說應該是足够了。

二、使用Google提供的插件(新增)

下載地址:https://github.com/google/play-unity-plugins/releases

在今年6月份開始研究打aab包的時候,Google還沒有提供這種方式,對於需要從APK+OBB模式轉成AAB+Asset Pack模式還是一件比較麻煩的事情(參考方法三),也許是Google良心發現,所以才提供了一個折中的方案。

    打包步驟:

1. 下載插件com.google.android.appbundle,導入Unity3D。

2. 通過菜單Google->Android App Bundle->Asset Delivery Settings... 打開配置界面(如下圖2展示)。

3. 勾選Separate Base APK Asset(如下圖3展示)。

4. 然後通過菜單Google->Build Android App Bundle...即可打出aab包。

圖2

圖3

圖3的英文也介紹的比較詳細,無需額外對資源加載等做處理,【注意】只需要將打好的Asset Bundle文件拷貝的StreamingAssets目錄即可。這也是正常打APK包需要的步驟,因此接入項目非常的簡單,而且可以正常上架,無需考慮150M包大小的限制。

三、使用Google的分發模式(AAB + Asset Pack)

這是Google官方之前針對aab包提供的默認方式,而且通過官方的介紹文檔可以知道這種方式提供了CDN,如果完全接入後可以免去自己搭建CDN的環境。

Play Asset Delivery (PAD) 將 app bundle 的優勢帶到遊戲中。它允許超過 150 MB 的遊戲替換舊版擴展文件 (OBB),方法是將包含遊戲所需的所有資源的單個工件發布到 Play。PAD 提供了靈活的分發模式、自動更新、壓縮和增量修補功能,並且可免費使用。使用 PAD,所有資源包均在 Google Play 上托管和提供,因此您無需使用內容分發網絡 (CDN) 向玩家提供遊戲資源。

打包步驟:

1. 下載插件com.google.play.assetdelivery,並導入Unity(這裏可能也需要下載步驟二的插件)。

2. 通過菜單Google->Android App Bundle->Asset Delivery Settings... 打開配置界面(如圖2展示)。

3. 【注意】這次不勾選Separate Base APK Asset選項,而是通過下面的Asset Pack Configuration界面進行Asset Bundle配置。

4. 點擊Add Folder...按鈕選擇項目的Asset Bundle文件目錄。

a.【注意1】這裏不能將Asset Bundle文件放在StreamingAssets目錄。

b.【注意2】Asset Bundle文件的總數不得超過50個

c.【注意3】這裏針對Asset Bundle的命名也有要求,類似代碼變量名。

【備注】 針對超過50個Asset Bundle的可以使用AssetPack,就是先將Asset Bundle使用Google提供的API方法打成AssetPack(該方法可用,但未測試過)。

5. 針對每個Asset Bundle文件設置其分發模式,最簡單就全部設置為Install Time模式(如下圖4)。

6. 設置完成後再通過Google->Build Android App Bundle...即可打成aab包,裏面的內容可以通過解壓軟件打開查看(如圖5)。

圖4

圖5

四、總結和另外的注意事項。    

圖6

上圖是某次上架測試過程中的錯誤提示(需注意API等級)。若參照我上面提供的三種方式且滿足Google的上架條件,基本上可以正常上架。另外,如果使用方法三進行aab打包的話,還需要額外針對加載Asset Bundle文件的方法進行修改,不可使用AssetBundle.LoadFromXXX的方法,需要導入 Play Asset Delivery 庫,然後調用 RetrieveAssetBundleAsync() 方法加載 AssetBundle(可去官網查看例子)。

大體的內容就介紹到這裏,如果還有疑問歡迎一起溝通交流,我也是菜鳥一枚。

文章來自我的公眾號,大家如果有興趣可以關注,具體掃描關注下圖。

【Unity3D】Android App Bundle(aab)打包上架Google Play介紹的更多相關文章

  1. Flutter - You need to use a different version code for your APK or Android App Bundle because you already have one with version code 1.

    前兩天提交了一個版本Google Play,結果今天收到拒絕的郵件,說App內購有問題. 於是把設置裏面的支付寶和微信打賞功能關閉,又打了一個aab. 然後上傳到Google Play,結果提示 Yo ...

  2. 穀歌發布基於機器學習的Android APP安全檢測系統:Google Play Protect

    Google Play作為眾所周知的在線應用市場,因為審查制度的松散,經常會有一些惡意軟件偽裝成其他應用混入其中.此前阿裏聚安全小編就報道了2例關於惡意軟件偽裝在Google Play上的事件:< ...

  3. Android APP壓力測試(一)之Monkey工具介紹

    Android APP壓力測試(一) 之Monkey工具介紹 前言 本文主要介紹Monkey工具.Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕.滑動. ...

  4. Unity上線google商店 用IL2Cpp打包64比特版本和Android APP Bundle優化 及產生的bug

    ios剛上線,這邊著手改成android版本,我開始使用的是unity2017.4.1版本 上傳穀歌商店是出現這兩個警告: 要支持64比特,但是在2017版本上沒有找到64比特的打包選項,猜測應該是版本的 ...

  5. Android App的簽名打包三步驟

    1.簽名的意義 為了保證每個應用程序開發商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經安裝的程序,我們需要對我們發布的APK文件進行唯一簽名,保證我們每次發布的版本 ...

  6. Android App的簽名打包(晋級篇)

    http://blog.csdn.net/linghu_java/article/details/6701666 Andriod應用程序如果要在手機或模擬器上安裝,必須要有簽名! 1.簽名的意義 為了 ...

  7. android app多渠道分發打包

    1.  美團多渠道包的方法論 1) maven編譯多次 2) apktool一次包,解開重新打  (個人傾向於這個) 3) http://tech.meituan.com/mt-apk-packagi ...

  8. 安卓新發布機制----app bundle

    Android App Bundle是一種改進的應用程序打包方式,能大幅度减少應用體積 unity可以直接導出appbundle,只需要在導出的時候勾選 但是通常項目有sdk離不開java端,我這裏是 ...

  9. Android App安裝包瘦身計劃

    Android App安裝包瘦身計劃 Android App安裝包體積優化: 理由, 指標和可以采用的方法. 本文內容歸納如下圖: 為什麼要安裝包瘦身 安裝包需要瘦身嗎? 不需要嗎? 安裝包要瘦身的主 ...

  10. Android APP壓力測試(三)之Monkey日志自動分析脚本

    Android APP壓力測試(三) 之Monkey日志自動分析脚本 前言 上次說要分享Monkey日志的分析脚本,這次貼出來分享一下,廢話不多說,請看正文. [目錄] 1.Monkey日志分析脚本 ...

隨機推薦

  1. 中文字符串轉換為十六進制Unicode編碼字符串

    package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Uni ...

  2. 學習C++的第三天

    1.sort函數(默認昇序排序(從小到大)) 要使用此函數只需用#include <algorithm> sort即可使用,語法描述為:      sort(begin,end),錶示一個 ...

  3. Linux 計劃任務 Crontab 筆記與總結(4)crontab 的日志

    /var/log/cron 文件保存 cron 的任務執行記錄 cd /var/log/ ls -l cron* 會發現每天都會有 cron 日志的變化 使用 tail -f cron 能够查看今天的 ...

  4. 新浪SAE中文分詞接口

    最近發現新浪SAE平臺上竟然也提供分詞功能,分詞效果也還不錯,由新浪愛問提供的分詞服務,研究了一番,做了一個簡易版的在線調用接口(get方式,非post) 官網說明:http://apidoc.sin ...

  5. [BZOJ1385] [Baltic2000] Division expression (數學)

    Description 除法錶達式有如下的形式: X1/X2/X3.../Xk 其中Xi是正整數且Xi<=1000000000(1<=i<=k,K<=10000) 除法錶達式應 ...

  6. 【zabbix教程系列】二、zabbix特點

    一.度量收集 從任何設備,系統,應用上收集指標,收集指標的方法有: 多平臺zabbix代理 SNMP and IPMI 代理 無代理監控用戶服務 自定義方法 計算和聚合 用戶端web監控  二.問題發 ...

  7. 跟踪mqttv3源碼(一)

    Spring整合MQTT pom.xml <!-- MQTT消息隊列 --> <dependency> <groupId>org.eclipse.paho</ ...

  8. spring jpa 語法

    摘自http://www.cnblogs.com/BenWong/p/3890012.html Table 2.3. Supported keywords inside method names Ke ...

  9. linux 上配置tomcat、mysql 開機啟動

    1.tomcat 開機啟動 方法一.修改系統文件 (已經嘗試,可以) 1.修改/etc/rc.d/rc.local vi /etc/rc.d/rc.local 2.添加下面兩行脚本,記住是兩行,僅僅第 ...

  10. PyCharm2017破解版安裝

    PyCharm2017破解版安裝步驟: 1.右擊軟件壓縮包選擇解壓到pycharm2017. 2.在解壓文件夾裏面找到pycharm-professional-171.3780.47,右擊打開. 3. ...