2013-04-22 71 views
2

當我在Android文件傳輸或Astro文件管理器中查看我的SD卡根目錄時,這是一團糟,因爲應用程序正在將文件存儲到所有位置。在外部存儲器/ SD卡上緩存圖片的推薦路徑

作爲開發人員,我們通過緩存圖像/文件等方式遵循最佳實踐,以便更快地開發我們的應用程序,並使用Environment.getExternalStorageDirectory()來獲取外部存儲的根目錄(而不是硬編碼/ sdcard)。但接下來應該怎麼辦?理想的世界,我們會按照慣例將我們的緩存文件轉儲到外部存儲的開放式字段上?

這裏有一對夫婦,我從我自己的設備/經驗看到的選項:

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

我目前更喜歡默認情況下隱藏在設備文件管理器上的第一個選項。

有沒有人知道谷歌或大會推薦幾個流行/大牌應用程序?或者這是一個壞主意?

+0

我不知道這是最好的做法,但我使用Context.openFileOutput與MODE_PRIVATE一般。由於它的尺寸不是太大,所以我處理它不應該是一個問題afaik。 – harism 2013-04-22 20:34:11

+0

@harism謝謝,但這並沒有連接到我問的問題。 – scottyab 2013-04-22 21:12:37

回答

5

根據開發文檔

保存緩存文件

如果您使用API​​ 8級以上,使用getExternalCacheDir()打開表示外部存儲目錄中文件你應該保存緩存文件。如果用戶卸載您的應用程序,這些文件將被自動刪除。但是,在應用程序的生命週期中,應該管理這些緩存文件並刪除那些不需要的文件,以便保留文件空間。

如果您使用API​​ 7級或更低,使用getExternalStorageDirectory()打開表示外部存儲的根目錄中的文件,然後在下面的目錄中寫高速緩存數據:

/安卓/數據/ < package_name>/cache/

包名稱>是您的Java風格的包名稱,例如「com.example.android.app」。這裏

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

更多信息希望它可以幫助

+0

getExternalCacheDir()是我一直在尋找的感謝。 Plus會提出SD靜音在哪裏的問題。 – scottyab 2013-05-01 11:17:32

1

Developer Guide指出文件應該存儲在目錄/Android/data/<package_name>/files/中,這似乎是少數幾個應用程序存儲文件的地方。作爲一個額外的好處,這裏的文件將被刪除,一旦你的應用程序被卸載,它不會凌亂根。我認爲將緩存文件放在/Android/data/<package_name>/cache/可能是一個不錯的選擇!

相關問題