【问题标题】:Storage limit in raw and asset folder in androidandroid中原始和资产文件夹中的存储限制
【发布时间】:2013-02-21 06:15:23
【问题描述】:

我想在我的应用程序的原始文件夹中存储一些视频/音频文件。

我不知道raw和asset文件夹的存储限制。

谁能告诉我我可以在原始和资产文件夹中存储多少数据。

如果我将批量数据存储在这些文件夹中,会影响执行速度或从市场下载应用程序的大小吗?

提前致谢。

【问题讨论】:

  • asset 或 raw 中的每个文件在压缩前需要小于 1MB。 APK总大小不能超过50MB;如果是这样,您将需要一个扩展 apk。
  • @323go: 好的,所以我可以在原始文件夹中添加数据,直到我的 apk 大小低于 50 MB。是吗?
  • 你可以。但是,单独加载丰富的内容可能是一个更好的主意。加快安装和更新速度。

标签: android android-resources


【解决方案1】:

Android2.3发布新的aapt后,现在对任何资源都没有限制。限制是旧的aapt由于系统性能原因造成的,现在不应该发生。

【讨论】:

【解决方案2】:

根据The reason for Assets and Raw Resources in Android

raw 文件夹和Assets 文件夹之间的主要区别。

  • 由于 raw 是 Resources (res) 的子文件夹,Android 将自动为其中的任何文件生成ID。然后将这个
    ID 存储为一个R class,作为对
    的引用 一个文件,这意味着可以从其他 Android 类轻松访问它
    和方法,甚至在 Android XML 文件中。使用自动
    生成的 ID 是在 Android 中访问文件的最快方式。

  • Assets 文件夹是一个“appendix” 目录。 R 类不会为放置在那里的文件生成 ID,因此它较少 兼容一些Android类和方法。还有,很多 访问其中的文件较慢,因为您需要获取 基于字符串处理它还有 1MB 的大小限制 对于放置在那里的文件,但有些操作更容易 通过将文件放置在此文件夹中来完成,例如复制数据库文件 到系统内存。没有(简单的)方法可以创建 Android 对 Assets 文件夹中文件的 XML 引用。

将被 apk 压缩的任何资源的限制为 1MB,无论是在原始目录中还是在 assets 下。这是因为它在构建时被 apk 压缩,并依赖手机上的手机硬件资源来解压缩它。施加了 1MB 的限制,以便手机可以将其解压缩,即使资源有限。

HERE 中查看更多有关原始文件夹大小的使用以及更多信息。 另请查看 Android 应用程序文件大小限制博客HERE

【讨论】:

【解决方案3】:

当您直接从资产文件夹或原始文件夹加载大尺寸文件时,会出现很多问题。有时可能会导致 android 中的虚拟机预算错误。

为了解决您的问题将您的资源放在服务器中。在第一次安装您的应用程序时加载它们并将它们存储在 sd 卡中。然后从您的 sd 卡将它们访问到您的应用程序中......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多