obb簡介
??OBB(Opaque Binary Blob)文件格式,是安卓游戲通用數(shù)據(jù)包。在一些大型游戲上較為常見,同時還附以Data文件,亦或是md5.dat文件出現(xiàn)。通常在游戲開始前,程序會自動將obb解包至/sdcard/Android/data或者是/android/obb目錄下,但也有游戲不會解包,直接讀取。
前言
??游戲要上架谷歌商店 除了要接好谷歌SDK外,谷歌還要求提交商店的apk必須在100M以下,對于游戲來說幾乎都會大于100M,所以提交商店apk拆分成基礎(chǔ)apk(小于100M)+obb文件,兩個文件一起上傳GooglPlay,用戶下載的時候會連同apk+obb一起下載到用戶手機(jī)上,當(dāng)然對于用戶來說,完全感受不到區(qū)別的。
1.Unity導(dǎo)出OBB文件步驟如下
打開Unity工程 File --- Build Settings ---Android --- Player Settings --- Publishing Settings --- Split Application Binary

??選擇Build System : Gradle 來構(gòu)建AS工程和OBB文件
2.Unity構(gòu)建OBB工程和AS資源

??如圖所示GradleBuild.png,構(gòu)建成一份安卓資源和obb文件,將構(gòu)建的src資源放入對應(yīng)AS工程中,obb文件放入手機(jī)指定路徑。

??如圖所示:androidProject.png,這里面包含了google 相關(guān)的依賴資源和Unity交互代碼,把Unity生成AS工程放入對應(yīng)文件即可(箭頭所示)。運(yùn)行后生成apk即,正常情況下生成的基礎(chǔ)apk是可以單獨(dú)運(yùn)行,因缺少obb資源包 游戲會卡在某個階段,但并不會引起程序崩潰。

??:obb可以理解為就是一份游戲資源,圖片obb.png紅線所標(biāo)注一定要和AndroidManifest.xml中的:
<meta-data android:name="unity.build-id" android:value="49abe192-850d-4f39-8461-a9c11795c7b3" />value值對應(yīng)上,不然會導(dǎo)致obb無法自動合并。
3.OBB文件格式
??obb文件有命名規(guī)范,如果命名規(guī)范不對程序無法讀到對應(yīng)文件導(dǎo)致基礎(chǔ)包無法合并資源 ,從而無法完整運(yùn)行游戲。命名規(guī)則如下
??格式 : main.<Bundle Version Code>.<包名>.obb
??例如 : main.15.com.game.demo.obb

4.測試obb文件是否能正常的跑通游戲
? ?如果我們先運(yùn)行基礎(chǔ)APK /Android/obb/com.game.demo/文件夾會自動創(chuàng)建,如果沒有運(yùn)行我們需要手動創(chuàng)建對應(yīng)文件夾。例如我的測試機(jī)路徑 :
Honor NOTE 8\內(nèi)部存儲\Android\obb\com.game.demo\main.15.com.game.demo.obb
結(jié)語
??第一次寫blog,如果那里寫的有問題不吝指教,寫blog的目的很明確:記錄下自己的學(xué)習(xí)和工作經(jīng)驗(yàn),分享給有需要的人。