在外部存储器/ SD卡上缓存图像的推荐路径

时间:2013-04-22 20:27:21

标签: android android-sdcard android-external-storage

当我在Android文件传输或Astro文件管理器中查看我的SD卡根目录时,它很乱,因为应用程序存储了整个文件。

作为开发人员,我们通过缓存图像/文件等遵循最佳实践来使我们的应用程序更快,我们使用Environment.getExternalStorageDirectory()来获取外部存储的根(不是硬编码/ SD卡)。但接下来会发生什么?理想的世界我们遵循一个惯例,将我们的缓存文件转储到外部存储的开放字段上?

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

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

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

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

2 个答案:

答案 0 :(得分:6)

根据开发人员文档

  

保存缓存文件

     

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

     

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

     

/ Android设备/数据/&LT;程序包&GT; /高速缓存/

     

&lt; package_name&gt;是您的Java样式包名称,例如“com.example.android.app”。

此处有更多信息

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

希望有所帮助

答案 1 :(得分:1)

Developer Guide表示文件应存储在目录/Android/data/<package_name>/files/中,这似乎是一些应用程序存储其文件的地方。作为一个额外的好处,这里的文件将在您的应用程序被卸载后被删除,并且不会使根目录混乱。我认为将缓存文件放在/Android/data/<package_name>/cache/中可能是一个不错的选择!

相关问题