Android-在编译时存储大文件

时间:2011-08-28 23:56:10

标签: android storage compile-time

在这个美丽的过于复杂的框架中,究竟如何处理这么简单的事情?

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

这就是我想要做的事情:我想在我的应用程序中包含几个(大)(10-20mb)音频文件。当然,我不希望将它们存储在内部存储器中,因为它们太大了。因此,将它们放在res / raw中是不可取的(因为,如果我理解正确,res / raw中的内容将放在手机的内部存储器中,对吗?)

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

再次感谢:)

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

我尝试通过网址下载时遇到问题,花了很多时间试图让它工作,最后问题是因为我没有在android清单文件中声明正确的权限!所以对于那些想要在他们的应用程序中下载内容的人,不要忘记在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>

将这些放在标签的开头

之上

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

  

如何在编译时将文件放在外部存储

我假设以上是拼写错误,你的意思是 在安装时

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

除此之外,无法保证APK下载将进入内部或外部存储器存储(除非另有删除,否则将保留)。

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

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

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

答案 2 :(得分:0)

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