开发Android个大资产项目;安装到设备总是需要很长时间

Developing an Android project with large assets; installing to device always takes a long time

我正在 Android Studio 中开发 Android 应用程序。我的资产文件夹中有大文件,所以 code -> build -> install -> run 循环的 'install' 步骤需要很长时间,我的意思是几分钟(5 到 10)。

减少时间的最佳方法是什么?

我唯一的想法是在开发时使用较小的资产数据。

问题是资产并不经常改变。

是否有任何其他方法可以获取资产 "pre-installed",这样它们就不必作为应用程序的一部分被一遍又一遍地安装(至少在开发过程中如此)

资产文件夹由一个大型 sqlite 文件以及无数图像和声音文件组成,所有这些文件加起来超过 500MB。

我发现使用 "Expansion packs" 和 "Opaque Binary Files" 是一种很好的方法,如下所述:

https://developer.android.com/google/play/expansion-files.html

https://developer.android.com/studio/command-line/jobb.html

这是我的做法:

1) 将资产文件夹中的所有内容移动到其他地方。

当然你可以自由地将东西保留在资产中,但就我而言,我可以没有它们。

2) 使用 jobb 工具从您的资产创建一个 obb 文件。

假设你的包名是me.name.app

jobb -d appAssets -o main.1.me.name.app.obb -pn me.name.app -pv 1

您可能需要根据您的软件包版本更改 -pv

这里选择的命名 main.1.me.name.app.obb 不是随意的;这是 Play 商店在您上传文件时将其重命名的名称。请参阅文档的 File Name 部分。

3) 弄清楚应该将 obb 文件放在哪里。这是从 Play 商店下载应用程序时 Android 将放置您的文件的路径。我还没有将它部署到 Play 商店,所以据我所知,这一步可能会有一些错误。

obb 的路径在文档中描述为 <shared-storage>/Android/obb/<package-name>/,其中 <shared-storage> 可以从 Environment.getExternalStorageDirectory() 获得,包名是 me.name.app 根据我们的示例,所以 obb 的路径是:

Environment.getExternalStorageDirectory() + "/Android/obb/me.name.app/main.1.me.name.app.obb"

在我的 Android 上,外部存储似乎位于“/storage/emulated/0/”,但我认为它可能因设备而异。

找到路径后,将 obb 文件放在那里。

4) 在您的应用中,使用 StoreManager.mountObb 将 obb 挂载到新的根路径。将此根路径存储在全局对象中并在您的应用程序代码中使用它。

您必须检查您的代码并更改依赖于 AssetsManager 的任何部分并将其更改为使用常规文件路径。

您的应用程序 (apk) 文件大小现在小得多,但您仍然可以访问您的资产。