1

我正在开发一个包含大量图像、视频和其他资源的应用程序。存储所有这些信息的合适位置是什么?我可以看到以编程方式原始文件夹可能是最容易处理的,但是正确的策略是什么?

4

2 回答 2

4
  • 资产对于已经压缩的项目来说真的很糟糕——当你构建你的应用程序时,这些项目将被尝试压缩,这会对性能产生影响。也在减压。
  • 如果您提前拥有图像,则 Res / raw 是一个不错的选择,特别是如果您不想在启动应用程序后下载它们,从而让用户等待。
  • SD卡应该给你最大的空间。但是,您要么需要从网上下载资源,我想不出一种方法将它们与应用程序一起运送,然后将它们移动到 sdcard。当您从 Internet 下载资源时,请确保将它们存储在以下子文件夹中:

    private File getResourceFilePath(String ralativePath, Context context) {
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            return new File(context.getExternalFilesDir(null), ralativePath);
        } else {
            return new File(context.getFilesDir(), ralativePath);
        }
    }
    

否则,您将面临资源在用户设备库中可用的风险等。

于 2013-01-06T15:36:28.163 回答
0

请记住,如果您将其存储在 res 或 raw 文件夹中,它将包含在您的 apk 文件中,这将使您的编译和上传到 Play 商店的时间更长,也使用户从 Play 商店下载和更新的时间更长。

如果媒体是相当静态的并且超过几兆,则将其制作为一个 zip 文件,该文件可以在旁边下载并存储在一个单独的文件夹中,供用户选择。这样,您可以在更新应用程序的同时更新媒体。

如果您走 zip 文件路线,您应该查看 google play 的 APK 扩展文件支持。http://developer.android.com/google/play/expansion-files.html

请注意,如果您使用扩展,其他商店(亚马逊、Nook 等)仍需要在您的应用程序中下载 zip 文件支持。

-詹姆士

于 2013-01-06T15:34:14.387 回答