2011-09-09 2 views
6

Несколько отдельных вопросов, связанных с тем, где хранить загруженный контент в моем приложении.Android - Где хранить загруженный контент, внутренний или внешний накопитель?

У меня есть приложение, которое загружает контент с центрального сервера. Этот контент иногда представляет собой премиальный контент или, по крайней мере, контент, в котором издатель не хочет, чтобы он свободно распространялся. Я понимаю, что «внешнее» хранилище легко доступно, в то время как «внутреннее» хранилище защищено, если телефон не укоренен.

Если приложение установлено на SDCARD (как мое сконфигурировано для того, чтобы быть), значит, это «внутреннее» хранилище также физически находится на SDCARD? Таким образом, если установленное SDCARD приложение загружает, скажем, 100 МБ содержимого во внутреннее хранилище, то это на самом деле заканчивается на SDCARD или заканчивается в физическом встроенном хранилище устройства?

Если приложение установлено на SDCARD, а «внутреннее» хранилище с загруженным содержимым находится на SDCARD, то оно физически хранится в открытом формате или зашифровано? Я, кажется, помню, что читал, что приложение, хранящееся на SDCARD, зашифровано. Это относится также и к «внутреннему» хранилищу?

(Удаляются вопрос о хранении файлов в одном каталоге, Context.getDir() означает, что система каталогов может быть создана и поддерживается во внутренней памяти)

Есть ли лучший подход?

ответ

4

Сделал кучу экспериментов и пришли к следующим выводам с Android 2.2 на Motorola Droid 2:

  • При установке приложения/перемещается в SDCARD то она хранится в качестве .asec файла скрытый каталог /.android_secure на SDCARD. Это зашифрованный и сжатый файл.
  • Когда приложение создает файлы данных во «внутренней памяти», они хранятся во внутренней памяти устройства, не на SDCARD.
  • Диалоговое окно «Параметры/Управление информацией о приложениях» для приложения имеет значение «Данные» - это объем данных, которые приложение использует в своем внутреннем хранилище, которое находится во внутренней памяти, а не на SDCARD
  • внешнее хранилище заканчивается на SDACRD в каталоге/Android/data
  • Очистка данных из диалогового окна «Параметры/Управление приложениями» действительно уничтожает все, что означает, что установленное приложение должно обладать достаточным знанием/логикой для обработки «нет данных».

Мое приложение - это приложение для загрузки контента. Что все это значит для меня является то, что:

  • Существует мало реальная ценность в хранении моего маленького приложения на SDCARD, учитывая, что большая часть памяти он будет потреблять на телефоне будет во внутренней памяти устройства. За исключением, конечно, что его всегда хорошо, чтобы приложение могло установить на SDCARD.
  • Пакет установки должен быть способен восстановить загруженный контент пользователя, если он был удален пользователем.
  • Концепция хранения unique installation id во внутренней памяти хорошо работает, пока пользователь не удалит данные приложения и, следовательно, не будет вычисляться новый идентификатор установки.Таким образом, чтобы иметь возможность помнить, какой контент был загружен на устройство, требуется учетная запись пользователя на центральном сервере, который пользователь создает/регистрирует, всякий раз, когда приложение запускается с нуля.
Смежные вопросы