簡體   English   中英

Android - 存儲下載內容的位置,內部存儲與外部存儲?

[英]Android – Where to store downloaded content, internal versus external storage?

關於在我的應用程序中存儲下載內容的位置的許多單獨但相關的問題。

我有一個從中央服務器下載內容的應用程序。 此內容有時是高級內容,或者至少是發布者不希望其自由分發的內容。 我知道“外部”存儲很容易訪問,而“內部”存儲是受保護的,除非電話是根的。

如果應用程序安裝在SDCARD上(因為我的配置是),那么SDCARD上的“內部”存儲也是物理上的嗎? 因此,如果我的SDCARD安裝的應用程序下載了100MB的內容到內部存儲,那么它實際上是在SDCARD上結束了,還是最終在設備的物理板載存儲中?

如果應用程序安裝在SDCARD上,並且帶有下載內容的“內部”存儲器位於SDCARD上,那么它是以開放格式物理存儲還是加密? 我似乎記得讀過存儲在SDCARD上的應用程序是加密的。 這也適用於“內部”存儲嗎?

(刪除有關將文件存儲在單個目錄中的問題,如Context.getDir()意味着可以在內部存儲中創建和維護目錄系統)

有更好的方法嗎?

做了一堆實驗,並在摩托羅拉Droid 2上使用Android 2.2得出以下結論:

  • 當應用程序安裝/移動到SDCARD時,它將作為.asec文件存儲在SDCARD上隱藏的/.android_secure目錄中。 這是一個加密和壓縮的文件。
  • 當應用程序在“內部存儲器”中創建數據文件時,它們存儲在設備的內部存儲器中, 而不是存儲在SDCARD中。
  • 應用程序的“設置/管理應用程序”詳細信息對話框具有“數據”的值 - 這是應用程序在其內部存儲中使用的數據量,即內部存儲器中不在SDCARD上的數據量
  • 外部存儲最終會在/ Android / data目錄下的SDACRD上運行
  • 清除“設置/管理應用程序詳細信息”對話框中的數據確實會擦除所有內容,這意味着已安裝的應用程序需要具有足夠的知識/邏輯來處理“無數據”情況。

我的應用是一個下載內容應用。 這一切對我來說意味着:

  • 將我的小應用程序存儲在SDCARD上幾乎沒有什么實際價值,因為它將在手機上消耗的大部分存儲將位於設備的內部存儲器中。 當然,除了允許應用程序安裝在SDCARD上總是好的。
  • 如果用戶擦除了安裝包,則需要能夠恢復用戶下載的內容。
  • 在內部存儲器中存儲唯一安裝ID的概念很有效,直到用戶刪除應用程序的數據,從而導致計算新的安裝ID。 因此,為了能夠記住已經下載到設備的內容,需要用戶在中央服務器上創建/登錄應用程序從頭開始的用戶帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM