Оглавление:
Конфиденциальность и безопасность будут в центре внимания Android Q. Это хорошая вещь для каждого пользователя, особенно когда многие изменения не требуют никаких действий с нашей стороны. Эксперты по безопасности, обеспокоенные безопасностью наших телефонов, означают, что мы можем продолжать использовать их как обычно, и выигрывают все, кроме потенциального хакера или мошенника. Но одно существенное изменение в фундаментальной функции Android - совместное использование ваших файлов между приложениями - это большие изменения, которые приведут к большой обратной реакции разработчиков приложений: Scoped Storage.
Как работает Scoped Storage
Когда-то Android работал как любая другая настольная операционная система, когда дело дошло до доступа к вашим файлам; такие вещи, как документы, фотографии, музыка или что-либо еще, что вы хотели сохранить на своем устройстве, были открыты для любого другого приложения. Вы сказали, что это нормально для приложения, чтобы сделать это, когда вы установили его, и это просто так. Используя собственный пользовательский интерфейс приложения, вы можете просматривать файловую систему и просматривать все ваши общедоступные файлы.
С Android 4.4 KitKat Google начал вносить изменения и добавлять ограничения на то, как приложение может обращаться к файлам, которые ему не принадлежали, а с Android 5.1 была реализована Storage Access Framework. Это дало приложениям возможность доступа к файлам в других папках с помощью Android API вместо стандартных операций с файлами. Оно работает. Он медленный и довольно непопулярный, но он доступен, и к настоящему моменту почти каждый разработчик приложения, которому необходим этот вид глобального доступа, по крайней мере попробовал его, чтобы увидеть, насколько он подходит или не основан на их потребностях.
В Android Q Scoped Storage все становится более строгим и простым одновременно. Совместимому приложению предоставляется собственная папка для пользовательских данных. Приложения уже имеют личную изолированную папку для хранения необходимых файлов, и это недоступно для любого другого приложения. Scoped Storage дает возможность создать вторую папку для файлов, создаваемых приложением, потому что мы использовали его и сказали создать их. Думайте о приложении как о диктофоне, например; ему нужно где-то хранить аудиофайлы, которые он создает.
Приложению не требуется разрешение на чтение или запись какого-либо файла в этой папке, поэтому вам не предлагается предоставлять какие-либо разрешения при первом запуске в отношении местоположений чтения и записи файла. Приложениям также необходимо разрешение для каждой папки, к которой они хотят получить доступ, но не владеют.
Разработчики были подготовлены к использованию специфических методов для доступа к файлам начиная с Lollipop, но они очень непопулярны.
«Общие» папки, такие как «Музыка» или «Изображения», имеют встроенный метод получения доступа (на данный момент - это может быть временно, пока Android Q находится в бета-версии), но все остальные папки на внешнем хранилище, которое является вашим бесплатным внутренним хранилищем и вашим SD карта, если у вас есть, теперь требуется специальное разрешение для доступа. Теперь подумайте о приложении, похожем на файловый менеджер, и о том, как оно должно обращаться к каждой папке на вашей SD-карте и во внутренней памяти.
Разработчики, которым необходим доступ к папкам, не принадлежащим их приложению, должны будут использовать API-интерфейсы Storage Access Framework. Это означает, что он должен запросить API, чтобы увидеть, существуют ли файлы и узнать местоположение устройства, а затем попросить пользователя разрешить его использование. Это был рекомендуемый лучший способ доступа к файлам со времен Android Lollipop, так что он не совсем новый. Но с Android Q теперь это строго соблюдается и больше не является «необязательным».
Зачем делать это изменение?
Google приводит две веские причины, по которым он делает это изменение: безопасность и сокращение остатков «беспорядка в приложениях».
На фронте безопасности это изменение делает несколько вещей. Прежде всего, он останавливает вредоносные приложения, которые зависят от того, предоставили ли вы доступ к конфиденциальным данным, потому что вы не прочитали то, что видели в диалоговом окне, а просто нажали «да». Это случается достаточно часто, и к нему необходимо обратиться, чтобы защитить правонарушителей. И мы все сделали это.
Это также позволяет разработчику иметь свое собственное пространство в хранилище вашего устройства, которое является частным, без запроса каких-либо особых разрешений (см. Первую причину снова) при первом запуске. И никакое другое приложение не может получить доступ к любому документу, который оно создает, без вашего согласия.
Причина изменения хороша, но само изменение не принимается хорошо.
Сокращение беспорядка приложения не требует особых объяснений. Когда вы удаляете приложение, файлы и папки, которые оно удаляет по всему хранилищу вашего устройства, как только вы даете ему разрешение на это, остаются позади. Достаточно этих остатков может начать влиять на производительность, особенно если файлы используют общее имя, которое может повторяться другим приложением. Если разработчик создает приложение, которое создает мультимедиа, например, приложение камеры или музыкальный рекордер, он может использовать стандартные папки мультимедиа для хранения созданных вами вещей, чтобы они не удалялись при удалении приложения.
Не написано в камне
Android Q все еще находится в бета-версии; это означает, что разработчикам рекомендуется установить его и оставить отзыв. В настоящее время отзывы о Scoped Storage не очень хорошие. Есть даже петиция, которая просит Google удалить функцию и переосмыслить ее реализацию.
Разработчики делятся своими разочарованиями по официальным каналам обратной связи, и хотя Google иногда может чувствовать себя неподвижным объектом, он слушает. Помимо всего прочего, Android - это платформа приложений, и разработчики не хотят ломать популярные приложения.
Все может измениться до того, как Android Q выйдет в финал, когда дело доходит до Scoped Storage. Или это может быть удалено полностью. Мы узнаем, когда увидим это осенью 2019 года.
Android Q: все, что вам нужно знать!