Unity导出安卓obb包以及使用(基础APK+OBB)

obb简介

  OBB(Opaque Binary Blob)文件格式,是安卓游戏通用数据包。在一些大型游戏上较为常见,同时还附以Data文件,亦或是md5.dat文件出现。通常在游戏开始前,程序会自动将obb解包至/sdcard/Android/data或者是/android/obb目录下,但也有游戏不会解包,直接读取。

前言

  游戏要上架谷歌商店 除了要接好谷歌SDK外,谷歌还要求提交商店的apk必须在100M以下,对于游戏来说几乎都会大于100M,所以提交商店apk拆分成基础apk(小于100M)+obb文件,两个文件一起上传GooglPlay,用户下载的时候会连同apk+obb一起下载到用户手机上,当然对于用户来说,完全感受不到区别的。

1.Unity导出OBB文件步骤如下

打开Unity工程 File — Build Settings —Android — Player Settings — Publishing Settings — Split Application Binary

Unity导出安卓obb包以及使用(基础APK+OBB)_第1张图片
选择Build System : Gradle 来构建AS工程和OBB文件

2.Unity构建OBB工程和AS资源

Unity导出安卓obb包以及使用(基础APK+OBB)_第2张图片
如上图所示,构建成一份安卓资源和obb文件,将构建的src资源放入对应AS工程中,obb文件放入手机指定路径。

Unity导出安卓obb包以及使用(基础APK+OBB)_第3张图片


如上图所示:这里面包含了google 相关的依赖资源和Unity交互代码,把Unity生成AS工程放入对应文件即可(箭头所示)。运行后生成apk即 基 础 a p k \color{red}{基础apk} apk,正常情况下生成的基础apk是可以单独运行,因缺少obb资源包 游戏会卡在某个阶段,但并不会引起程序崩溃。

Unity导出安卓obb包以及使用(基础APK+OBB)_第4张图片


敲 重 点 \color{red}敲重点 :obb可以理解为就是一份游戏资源,上图红箭头所标注一定要和AndroidManifest.xml中的:value值对应上,不然会导致obb无法自动合并。

 

3.OBB文件格式

obb文件有命名规范,如果命名规范不对程序无法读到对应文件导致基础包无法合并资源 ,从而无法完整运行游戏。命名规则如下:

格式 : main< Bundle Version Code>.<包名>.obb
例如 : main.15.com.game.demo.obb

Unity导出安卓obb包以及使用(基础APK+OBB)_第5张图片

4.测试obb文件是否能正常的跑通游戏


   如果我们先运行基础APK /Android/obb/com.game.demo/文件夹会自动创建,如果没有运行我们需要手动创建对应文件夹。例如我的测试机路径 :

Honor NOTE 8\内部存储\Android\obb\com.game.demo\main.15.com.game.demo.obb

结语

  菜鸟一枚,第一次写blog,如果那里写的不好或者不对请多多谅解,写blog的目的很明确:记录下自己的学习和工作经验,分享给有需要的人。

你可能感兴趣的:(Unity导出安卓obb包以及使用(基础APK+OBB))