使用 Expansion以解决目前 APK 尺寸 50M 限制。应用中关键点:
1. 程序使用 download_library,zib_file 库支持,这两个都能在 SDK 的 extras/google 路径下找到,相应例子也能找到,对使用上Android.com上也有很好的说明。
2. 最多可有两个 Expansion文件,一个Main,一个Patch。文件名格式为 <main|patch>.<版本号>.<package name>.obb,如 main.1234.com.tonyfield.bolg.obb
3. 下载后,扩展文件存放在 getExternalStorageDirectory()
/Android/obb/<package-name>/ 路径下
4. expansion 不能超过2G限制。(fseek 也是只能在 2G 范围内。巧合吧?),实在没辙,就考虑用 patch 来扩展。
5. expansion要更新的话,apk即使不需要改变也必须增加版本号来配合
6. 上传 expansion 别着急,先把 apk 上传一遍,结束后再次上传,就能看到。哎,我习惯了这样的设计,就像无法删除绑定gmail邮箱的移动设备列表中任何一个,即使你的手机被偷了,但你还是能看到这个设备在你的账户关联列表里。google程序员连加这个功能的时间都没有吗!
7. 扩展文件名 上传后会自动变成 2中提到的名称格式,不用在本地修改
8.如果以后若干次你只是更新apk,那 expansion 文件版本还是原来那样。一旦哪天你要更新expansion文件了,那么更新的expansion文件中版本号将会和你同时上传的apk 的Androidmanifest.xml中的 versionCode 一致。所以更新expansion的时候记得调整主程序中 expansion 版本号。举例来说
第 1次上传 Apk versionCode = 1 Xpk main.1.<packagename>.obb
第 2次上传 Apk versionCode = 2 不上传 Xpk,还是 main.1.<packagename>.obb
第 3次上传 Apk versionCode = 3 不上传 Xpk,还是 main.1.<packagename>.obb
第 4次上传 Apk versionCode = 4 Xpk main.4.<packagename>.obb // 不是main.2.<packagename>.obb,这名字google dev console 说了算