Android - Где хранить загруженный контент, внутреннее или внешнее хранилище? - PullRequest
6 голосов
/ 09 сентября 2011

Ряд отдельных, но связанных вопросов, касающихся того, где хранить загруженный контент в моем приложении.

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

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

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

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

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

1 Ответ

4 голосов
/ 12 сентября 2011

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

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

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

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