2013-01-06 17 views
1

我正在開發一個在圖像,視頻和其他資源上很沉重的應用程序。什麼是適當的地方來存儲所有這些信息?我可以通過編程的方式看到原始文件夾可能是最容易處理的,但是對此的正確策略是什麼?res/raw,assets還是sdcard?

+2

如果數據並且代碼相當靜態並且符合50MB apk限制,您可以將其包含在資產中。請記住,所有這些都會在每次更新時下載。您可能需要查看Expansion APK文件,或者將資源分發到Google基礎架構之外並將其存儲在SD卡上。 – 323go

+0

@ 323go事實上,隨着新的智能更新功能,整個應用程序是不是重新下載每次更新 –

回答

4
  • 資產的項目非常糟糕的地方,已經被壓縮 - 當你建立你的應用程序的將嘗試被壓縮,這將有性能影響。也在減壓。
  • RES /生是如果你有圖片提前一個很好的路要走,特別是如果你不婉啓動應用程序,從而讓用戶等待後下載它們。
  • Sdcard應該給你最多的空間。但是,您將需要從網上下載資源,我想不出用應用程序將它們發送出去的方式,並將它們移動到SD卡中。當你從網上下載的資源確保您將它們保存在目錄:

    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); 
        } 
    } 
    

否則你可能的資源,在用戶的設備等的畫廊是可用

+0

感謝,這將清除對我來說,雖然我不就上傳到了市場,但供個人使用的計劃,所以我我可能會首先使用SD卡自己上傳資源。 –

0

請記住,如果你把它存儲在水庫或原始文件夾將包含在您的APK文件,這將使你的編譯和上傳到Play商店較長,也使從Play商店用戶下載和更新需要更長的時間。

如果媒體是相當靜態的,在幾個兆,使其成爲大幹快上的側下載並存儲在一個單獨的文件夾,用戶可以選擇一個zip文件。這樣,您可以將介質與更新應用程序分開更新。

如果你走的zip文件路徑,你應該檢查出的APK擴展文件的支持,谷歌打了。 http://developer.android.com/google/play/expansion-files.html

請注意,如果您使用擴展,其他商店(Amazon,Nook等)仍然需要在您的應用中下載zip文件支持。

- 詹姆斯