1

在这个精美的过于复杂的框架中,人们究竟是如何完成如此简单的事情的?

是的,我已经阅读了有关 Android 数据存储的文档,大约 54.5 次。但是我找不到文档描述如何在编译时将文件放在外部存储上的任何地方。

这就是我想要做的:我想在我的应用程序中包含几个(大)(10-20mb)音频文件。当然,我不希望这些存储在内部存储中,因为它们太大了。所以将它们放在 res/raw 中不是一种选择(因为,如果我理解正确的话,res/raw 中的东西将被放置在手机的内部存储中,对吗?)

该文档仅声明“如果要在编译时存储静态文件,请使用 res/raw”。现在,如果 Android 足够聪明,可以将这些文件完全单独放在外部存储上,那么我永远都很棒。但不知何故,我对此表示怀疑。感谢所有帮助:)(对不起,如果我有一种态度,我只是在这么简单的事情上花了太多时间)

再次感谢 :)

更新:我最终从应用程序下载文件,而不是在安装时包含它们。谢谢你们的帮助!

我在尝试通过 url 下载时遇到问题,花了很多时间试图让它工作,最后问题是因为我没有在 android manifest 文件中声明正确的权限!所以对于任何想要在他们的应用程序中下载东西的人,不要忘记在 android 清单中设置权限,这里是我需要的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

将这些放在标签的开头

4

3 回答 3

0

如果您的大文件在 APK 中,它们将存储在 APK 存储的任何位置 - 这可以是内部的或外部的,这似乎不是您想要的。您最可能的选择似乎是将文件放在网站上,并且在您的应用程序第一次运行期间,它必须注意到文件不存在并在安装后检索它们。

于 2011-08-29T00:04:14.023 回答
0

您应该如何在编译时将文件放在外部存储上。

我假设上面是一个错字,你的意思是在 install time

至于您的要求 - 在安装过程中,无法指示 Android 应用程序管理器将 APK 的不同部分解压缩到不同的位置。

除此之外,不能保证 APK 下载会进入内部或外部内存存储(除非另有删除,否则它将保留在那里)。

更进一步,即使设备具有外部存储,也不能保证在安装时可用或有足够的可用空间。

在这一点上,我想知道大小为 10-20MB 的音频文件——它们要么很长(持续时间),要么是以高比特率编码的。如果是后者,那么这没有多大意义,因为大多数移动设备的音频再现相当差(相对而言)......只是一些想法需要考虑。

我个人认为 mah 建议在安装后下载可能是更好的方法,但我对外部存储可用性的评论仍然成立。

于 2011-08-29T00:16:04.693 回答
0

在 Android 上解决问题的正确方法是“不要将它们与您的应用程序一起使用”。只需在第一次启动时从您的 Web 服务器下载它们(使用 HTTP 客户端 API),或者,如果这些文件将独立于应用程序本身进行升级,则将它们准备为单独的“应用程序”供用户通过 Market 下载。

于 2011-08-29T05:00:12.037 回答