Подтвердить что ты не робот

Существует ли максимальный размер для внутреннего хранилища android для приложения?

Я хочу сохранить json файл со всеми данными приложения (что-то похожее на предпочтение), но я не уверен, что такое размер предела, потому что если приложение can not использует этот файл, оно не будет функционировать, вероятно. эта информация известна заранее, и ОС резервирует некоторое пространство для вашего приложения или его на основе имеющегося размера.

Обновление: Я действительно не забочусь о внешнем хранилище, поскольку он не всегда доступен на устройстве и может быть изменен (SD-карта), и я мог бы проверить на внутреннее хранилище, используя это, но это не так что я хочу знать, что я хочу знать, если для устройства требуется объем памяти для внутреннего хранилища?

4b9b3361

Ответ 1

Если вы используете Environment.getExternalStorageDirectory() (или Context.getExternalFilesDir() для уровня API 8 и выше), как место для вашего json файла, то я полагаю, что размер будет ограничен доступным пространством во внешнем хранилище (обычно это SD-карта). Я считаю, что для большинства устройств фиксированные ограничения встроены в Android для внешнего хранения файлов. (Внутреннее хранилище - это другое дело. Производители устройств могут налагать предельные ограничения, возможно, до 100 МБ, которые могут использоваться для всех приложений.)

ОБНОВЛЕНИЕ: обратите внимание, что в соответствии с определением совместимости для Android 2.3 (раздел 7.6.1) устройства должны иметь довольно немного памяти:

Реализации устройств ДОЛЖНЫ иметь не менее 150 МБ энергонезависимого хранилища для пользовательских данных. То есть раздел /data должен быть не менее 150 МБ.

Помимо вышеперечисленных требований, для реализаций устройств ДОЛЖНО иметь не менее 1 ГБ энергонезависимого хранилища для пользовательских данных. Обратите внимание, что это более высокие требования планируется стать жестким минимумом в будущей версии Android. Решения устройств настоятельно рекомендуется встречаться эти требования сейчас, иначе они могут не соответствовать совместимости для будущей версии Android.

Это пространство используется всеми приложениями, поэтому оно может заполняться. Для каждого приложения нет гарантированного минимального хранилища. (Такой гарантированный минимум был бы бесполезен для приложений, которым нужно хранить больше, чем минимум, и это будет пустой тратой для приложений, которые меньше хранят.)

Изменить: определение для Android 4.0

Реализации устройств ДОЛЖНЫ иметь не менее 350 МБ энергонезависимого хранилища для пользовательских данных. То есть раздел /data ДОЛЖЕН быть не менее 350 МБ.

Из определения для Android 4.3

Реализации устройств ДОЛЖНЫ иметь не менее 512 МБ энергонезависимого хранилища для пользовательских данных. То есть раздел данных должен быть не менее 512 МБ.

Интересно, что рекомендация о том, что реализации ДОЛЖНА предоставить не менее 1 ГБ, осталась прежней.

Ответ 2

Я никогда не видел, чтобы это ограничивало одно приложение, и я протестировал его с сохранением некоторых довольно больших (200 МБ) видеофайлов в папке "Файлы файлов" раньше.

Для внутреннего хранилища я полагаю, что ваш единственный ограниченный объем внутреннего хранилища, доступный для всех приложений для совместного использования. Который, как упоминалось в @Ted Hopp, довольно мал на некоторых более старых и более дешевых устройствах. Но на более новых и более высокопроизводительных устройствах они начали набивать их до разумной суммы, хотя даже если у устройства много места, его все равно можно использовать другими приложениями (так что вам нужно проверить, что произойдет в этот сценарий).

Также стоит отметить, что если вы используете внешнее хранилище, такое как SD-карта, то ваш json файл будет технически редактироваться пользователем. Они могут открыть его в текстовом редакторе и начать менять исходные значения, если у них есть желание. (Это также возможно, если вы решите использовать внутреннее хранилище, но для этого потребуется корневое устройство, тогда как если оно хранится на SD-карте, не потребуется root)

Итак, если вы сохраняете информацию, что вы предпочитаете, чтобы у пользователя не было возможности вручную редактировать, вы можете принять это во внимание.