5

当我在 Android 文件传输或 Astro 文件管理器中查看我的 sd 卡根目录时,它一团糟,因为应用程序到处都存储文件。

作为开发人员,我们通过缓存图像/文件等来遵循最佳实践,以使我们的应用程序更快,并且我们使用Environment.getExternalStorageDirectory()来获取外部存储的根目录(而不是硬编码 /sdcard)。但是接下来应该怎么做?理想情况下,我们会遵循将缓存文件转储到作为外部存储的开放字段的约定吗?

以下是我从自己的设备/经验中看到的几个选项:

  • /.cache/app_name/
  • /.app_name/
  • /cache/<app_name>/
  • /data/<app_name>/
  • /com.package.name/
  • /app_name/

我目前更喜欢在设备文件管理器中默认隐藏第一个选项。

有谁知道谷歌的推荐或几个流行/大牌应用程序遵循的约定?或原因这是一个坏主意?

4

2 回答 2

9

根据开发者文档

保存缓存文件

如果您使用 API 级别 8 或更高版本,请使用 getExternalCacheDir() 打开一个文件,该文件代表您应该保存缓存文件的外部存储目录。如果用户卸载您的应用程序,这些文件将被自动删除。但是,在应用程序的生命周期中,您应该管理这些缓存文件并删除那些不需要的以保留文件空间。

如果您使用 API 级别 7 或更低,请使用 getExternalStorageDirectory() 打开表示外部存储根目录的文件,然后将缓存数据写入以下目录:

/Android/data/<package_name>/cache/

<package_name> 是您的 Java 样式的包名称,例如“com.example.android.app”。

更多信息在这里

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

希望能帮助到你

于 2013-04-25T14:34:48.080 回答
1

开发人员指南指出文件应该存储在目录中,这/Android/data/<package_name>/files/似乎是少数应用程序存储文件的地方。作为一个额外的好处,一旦你的应用程序被卸载,这里的文件就会被删除,并且不会弄乱根目录。我认为将缓存文件放入/Android/data/<package_name>/cache/可能是一个不错的选择!

于 2013-04-25T14:26:58.010 回答