Чтобы понять объем хранилища, сначала давайте разберемся, как в целом работает хранилище на Android.

Есть два типа хранилища: -

  1. Внутреннее хранилище
  2. Внешнее хранилище

1 Внутреннее хранилище: каждое приложение в Android имеет свой личный каталог, к которому не могут получить доступ никакие другие приложения.

2 Внешнее хранилище: все остальное, кроме внутреннего хранилища, считается внешним хранилищем / общим хранилищем.

Что такое ограниченное хранилище?

Хранилище с ограниченным доступом было введено в Android 10, но оно является обязательным только с Android 11 и далее. Все приложения могут иметь полный доступ к своим каталогам и сохранять мультимедийные файлы в коллекциях без разрешения. Но если мы хотим изменить файлы, которыми наше приложение не владеет, мы должны создать для этого запросы (как это можно сделать, мы рассмотрим в следующем блоге).

Кроме того, вместо удаления файла мы можем поместить файлы в корзину, чтобы система Android могла автоматически удалить файл через 30 дней или, при необходимости, мы могли восстановить их.

Почему объем хранилища?

  1. При доступе к внешнему хранилищу для записи любого файла нам требуется разрешение WRITE_EXTERNAL_STORAGE, которое будет записывать в общее хранилище. Теперь, если пользователь удаляет приложение, все файлы, которые были записаны в общее хранилище, остаются там, занимая место.
  2. Большинство приложений, которым требуется разрешение READ_EXTERNAL_STORAGE, делают с ним только простые вещи, такие как доступ к коллекциям или запросы файлов, для которых им не нужно все хранилище, но они могут.

Как решаются эти проблемы?

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

Что произойдет с такими приложениями, как файловый менеджер?

Для всех приложений, которым по-прежнему требуются права на запись и чтение для всего хранилища. Было введено новое разрешение MANAGE_EXTERNAL_STORAGE для доступа ко всему в файловой системе. Но это разрешение требует ручного просмотра при отправке в Google Play, чтобы они проверили, действительно ли ваше приложение нуждается в этом разрешении.

Это разрешение также может быть включено или отключено пользователем в любое время.

Это все, что касается введения ограниченного хранилища. В следующем блоге мы увидим несколько примеров того, как использовать внутреннее хранилище для сохранения, загрузки и удаления файлов.

До скорого. Следите за новыми интересными материалами по разработке для Android. 👋 ☮️

Больше от меня.