Что такое files на андроиде и для чего он предназначен

Что за программа Google Files Go, какие у нее функции и нужны ли Root-права?

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Еще в 2017 году компания Google загрузила в Play Market приложение Google Files Go. Истинным фанатам Андроида это приложение знакомо, а вот тем, кто с ним еще не сталкивался, будет полезно у знать, что это за программа такая — «Google Files Go».

Google Files Go — что это за программа

Что умеет Google Files Go

освобождать место на телефоне, используя рекомендации самого приложения;

делит ь ся файлами без подключения к сети;

сохранять резервные копии файлов в облаке, чтобы не захламлять телефон.

Освобождая место в телефоне, Google Files Go может:

удалить одинаковые файлы;

уничтожить старые фото и картинки из чатов;

удалить неиспользуемые приложения;

удалить любой другой ненужный контент.

При работе с памятью на телефоне Google Files Go:

может удалять весь ненужный контен т п рямо в самом приложении.

Для улучшения производительности вашего телефона Google Files Go:

просит предоставить контроль над файлами телефона и будет их удалять только с вашего согласия;

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

само приложение весит всего 10 МБ и не работает в фоновом режиме, чтобы не перегружать ваш телефон ; работать оно будет только при запуске.

Для работы с файлами Google Files Go предлагает :

удобный поиск нужных файлов по их названию или используя фильтры и категории;

использовать облачные технологии, в частности вы можете при помощи этого приложения копировать свои файлы на Гугл.Диск, тем самым файлы всегда будут рядом с вами, д аже если вы удалите их с телефона;

возможность переносить файлы с телефона на карту памяти всего в несколько нажатий.

Вот и получается, что Google Files Go — это не просто «чистильщик» телефона, но и удобный файловый менеджер.

Как установить Google Files Go

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

Заключение

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Иерархия папок в Android – что в них есть и где мои файлы

По умолчанию Google не оснащает девайсы под управлением Android полноценным файловым менеджером, поскольку это противоречит политике компании. Доступ к различным файлам осуществляется с помощью соответствующих приложений – фото, видео, текстовый редактор и т. д. Но рано или поздно необходимость доступа непосредственно к файлам всё же возникает.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначенРабота со структурой папок и файлов в Android.

Понимание файловой системы

В какой папке находятся контакты и другие данные на Android? Формат файловой системы Android не похож на оболочку Windows. Вот как организована внутренняя память здесь:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Память устройства будет содержать несколько папок, созданных Android. Некоторые из них генерируются и используются приложениями для хранения кэш-файлов, поэтому не следует их изменять или удалять. Но если удалить только их содержимое, можно освободить немало места. Как найти директории загрузок или Bluetooth? Вот они:

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

Как управлять файлами и использовать файловую систему на Android

Прозрачность и функциональность файловой системы Android является одним из её преимуществ перед iOS. Она позволяет вам легко работать с файлами, открывая их в любом приложении… если вы знаете, как это сделать и куда устанавливаются новые приложения. Android по умолчанию оснащён портированным файловым менеджером. Некоторые производители предварительно устанавливают собственные, более мощные утилиты. В противном случае для полноценного управления файловой структурой Android понадобится стороннее приложение. Вот что вам нужно знать.

Как получить доступ к встроенному файловому менеджеру Android

В устройствах Android 6.x (Marshmallow) или новее есть встроенный файловый менеджер, он просто скрыт в настройках. Откройте Настройки-Память-Другое, и вы получите полный список всех файлов и папок в памяти смартфона. Приложение также можно вывести отдельным ярлыком на рабочий экран. В версии Nougat Android 7 файловый менеджер является частью приложения «Загрузки», но по сути это одно и то же. Здесь отображаются определённые типы файлов, такие как изображения, видео, музыка и загрузки. Чтобы получить доступ к полной файловой системе телефона, зайдите в Настройки-Память-Другое.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Сторонний менеджер

Но встроенный менеджер довольно слаб по сравнению с некоторыми вариантами, доступными в Google Play. Для более эффективного управления файлами установите один из доступных файловых менеджеров. Solid Explorer – один из самых популярных файловых менеджеров в Play Market. Он имеет мощные встроенные функции, такие как доступ к облачной учётной записи и возможность запуска двух окон в ландшафтном режиме (на любом устройстве!). Хорошо работает поддержка клиентов и часто выходят обновления. Через 2 недели бесплатная пробная версия закончится, и за дальнейшее использование придётся заплатить 2 доллара.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

ES File Explorer – один из лучших root-файл менеджеров, доступных в Google Play Store. Одной из основных особенностей утилиты является использование Корзины, где хранятся недавно удалённые данные. Это бесплатное приложение не только содержит все основные функции управления файлами, но также имеет возможность управлять любыми приложениями на рутированном смартфоне. Возможности утилиты:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Root Browser File Manager – мощный и эффективный проводник с внушительным функционалом. Особенности:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

File Manager + позволяет управлять файлами и папками на устройстве, NAS и в облачном сервисе. Управляйте файлами как в локальной папке, так и в облачном хранилище. Поддерживает все действия проводника, такие как просмотр, поиск, навигация по структуре папок, копировать/вставить, вырезать/удалить, переименовать, распаковывать и сортировать. Полный контроль над файлами мультимедиа, документами и APK. Доступ к удалённому или совместному хранилищу, например, к NAS и FTP-серверу. Проанализируйте локальное хранилище, чтобы удалить ненужные файлы.

Если вам необходим доступ к записям календаря или заметкам, необходимо отталкиваться от используемого приложения. Все файлы данных утилит находятся в папке /data/. В File Explorer от NextApp есть новые способы передачи файлов между Android и компьютером, встроена поддержка нескольких Windows, что позволяет одновременно просматривать два окна, а также поддержка большинства форматов файлов и документов, в которых хранятся приложения. Доступ к сетевому компьютеру, включая FTP, WebDAV и SMB. Просмотр аудиоконтента, плейлистов, альбомов и исполнителей.

Как добавить свои собственные мелодии и звуки уведомлений

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

Шаг 1. Загрузка аудио на устройство

Для начала вам нужно скачать мелодию звонка или звук уведомления прямо на ваше устройство Android или перенести её с компьютера на внутреннее хранилище. Android поддерживаются форматы MP3, M4A, WAV и OGG, поэтому практически любой аудиофайл, который вы можете скачать, будет работать.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Шаг 2. Скопируйте звуковые файлы в соответствующую папку

После того, как вы загрузили звуковой файл, вам нужно переместить его в нужную папку. Здесь необходимо использовать сторонний файловый менеджер. Рассмотрим процедуру на примере ES File Explorer. После установки проводника откройте его и перейдите в папку «Download» во внутренней памяти или на SD-карте (в зависимости от настроек девайса). Выделите файл длинным нажатием, затем в меню нажмите Вырезать. Нажмите кнопку «Назад» один раз, чтобы вернуться в предыдущий каталог. Здесь откройте папку Ringtones, затем нажмите «Вставить». Если на вашем устройстве нет папки «Ringtones», просто создайте её.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Шаг 3. Перезагрузите смартфон

После переноса рингтона в нужную папку перезагрузите телефон или планшет, чтобы Android мог увидеть файл. Откройте «Настройки» и перейдите к «Звук и уведомление». Выберите «Рингтон» или «Мелодия уведомления по умолчанию», найдите в списке стандартных сигналов свой и установите его в качестве мелодии звонка. Если вы используете SD-карту, получить доступ к каталогу Android можно также и через cardreader и ПК. При этом могут обнаружиться новые каталоги, которые не отображаются в проводнике Android. Тем более в том случае, если вы используете одну и ту же SD-карту на нескольких устройствах.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

В какой папке находятся контакты и другие данные

Доступ к этим документам можно получить только с использованием root и стороннего файлового менеджера. Файл с контактами называется contacts.db или contacts2.db, и располагается по пути:

Текстовые сообщения и MMS также хранятся в паке data:

Для их сохранения или переноса на другой девайс понадобится специальное ПО. Например, SMS Backup & Restore или другое подобное. Такой софт работает по одному принципу – запустите утилиту – Backup SMS – укажите путь для сохранения и дождитесь окончания операции. После этого скопируйте файл на ПК или другое устройство. Восстановить SMS можно с помощью той же утилиты. Выберите Restore SMS, укажите путь где хранятся смс и дождитесь окончания восстановления.

Управление данными и файлами в Android напоминает навигацию по каталогам Windows или Linux. Только здесь необходимо получить специальные разрешения на изменение системных данных – root-права.

Источник

Назначение папок в файловой системе Android

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Последнее обновление: 26/08/2020

Файловая система андроид гораздо проще чем может показаться, и состоит всего из 6-ти разделов. Мы опишем назначение каждого раздела и подробно рассмотрим структуру папок в разделе data. Чтобы уверено сортировать и перемещать файлы на внутреннем накопителе, требуется знать назначение папок в файловой системе андроид. В статье мы подробно узнаем, в каких папках хранится пользовательская информация, а где данные приложения, удаление или перемещение которых нарушит работу установленных программ.

Разделы памяти Android

Так как Android – ОС на базе Linux, то файловая система андроид включает шесть разделов. По умолчанию пользователю доступен только раздел внутренней памяти – data. Доступ или изменение файлов других разделов, без ROOT прав запрещен.

Папки в разделе data

Закачка файлов, скриншоты или установка приложений осуществляется в разные папки раздела DATA.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

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

Вывод

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

А вот удаление/перемещение файлов за пределами раздела data, гарантировано нарушит целостность системы и сделает работу устройства не стабильной. В таком случае поможет сброс до заводских установок или повторная запись прошивки. Поэтому при наличии ROOT прав, не желательно трогать файлы системного раздела.

Источник

Папки в Android-смартфоне и что они означают

Константин Иванов

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Файловые менеджеры на Android могут быть удобным инструментом для организации хранения данных в вашем смартфоне, но сама структура Android (или ее кажущееся отсутствие) c непривычки может показаться несколько запутанной. Данные приложений, картинки, музыка – и доступ к этому всему из одной корневой папки – это несколько иной подход к иерархической структуре, чем то, к чему привыкли пользователи ПК и Mac, и подход этот дает пользователям намного больше возможностей, чем iOS.

В Android вы не сможете получить доступ к глубоко спрятанным системным файлам через обычный файловый менеджер или с помощью подключения к ПК. Но это не значит, что вы можете удалить по своей прихоти любой файл, какой захотите. Давайте посмотрим, как организованы типичные папки в памяти устройства, для чего они нужны и что из этого вы можете удалить, а что нет.

Иерархия памяти устройства на Android

Поскольку Android – это операционная система на базе Linux, в вашем телефоне файловая система также организована по принципу Linux. В этой системе на каждом устройстве есть шесть основных разделов: boot, system, recovery, data, cache и misc. Карты памяти microSD также имеют собственную иерархию памяти. Устройства, несущие на борту Android 7.0 Nougat, получили возможность непрерывного обновления за счет того, что в пару к системному разделу создается второй и один из них в фоне обновляется, а при перезагрузке происходит переключение, позволяющее обновленной системе заработать.

Вот краткое описание того, что содержится в каждой папке.

Без root–прав пользователи Android могут иметь доступ только к разделу с данными, который открывается вам, когда вы подключаете устройство к своему ПК или используете файловый браузер. Если память вашего телефона может быть расширена при помощи карты, память карты также включается в этот раздел с данными, доступными через ПК или просмотрщик файлов.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Обычно у вас есть доступ только данным приложений, которые хранятся в разделе пользовательских данных. Для доступа к остальной памяти вам потребуются root-права

Приложения и папки в разделе данных

Итак, бегло окинув взглядом основные папки, мы отметили, что у нас нет доступа к загрузочным файлам, файлам восстановления и или системным файлам Android, когда мы просто просматриваем файлы при помощи браузера. Из чего следует утешительный вывод: нельзя просто так взять и вызвать своими действиями крах системы. Совсем другая ситуация возникает, когда у вас есть root-права. Так или иначе, с тем, что хранится в данном разделе, надо быть поаккуратнее: определенные приложения могут задействовать данные, которые здесь сохранены, и перемещение или удаление их может повлечь за собой нестабильную работу системы.

Теперь давайте посмотрим, что находится в разделе данных на вашем устройстве. Для того, чтобы это было возможно, в телефонах с Android версий Marshmallow или Nougat есть свой файловый менеджер, который дает доступ ко всему разделу. Эту опцию можно найти в меню Настройки- Память-Накопитель-Другое. Ряд аппаратов на более старых версиях Android могут иметь, а могут не иметь собственный файловый менеджер, зависит от производителя.

В качестве альтернативы есть множество сторонних приложений, доступных в Play Store, которые выполняют ту же самую роль, например, FX File Explorer или Total Commander.

Можно также управлять вашими файлами с вашего ПК при помощи подключения по USB. Стоит только удостовериться, что ваш телефон находится в режиме MTP (Передача файлов), чтобы вы могли видеть все свои файлы.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Получить доступ к памяти вашего устройства можно при помощи ПК или напрямую через файловый браузер

Если у вас есть ощущение, что память устройства выглядит переполненной и папок слишком много, приглядитесь к ним. Вы увидите многочисленные папки, связанные с приложениями, возможно, даже остатки от тех приложений, что вы уже удалили. Как правило, лучше не трогать никакие папки приложений, но если вы помните, что приложение было удалено, а папка от него осталась, ее удаление вреда не причинит. Скорее всего, она пустая или в ней остались какие-то бесполезные лог-файлы.

Даже если вы не устанавливали большого количества приложений, по умолчанию этот раздел с пользовательскими данными может содержать ряд папок – в них хранятся ваши контакты, музыка, картинки и все остальное. Вот самые основные папки, не связанные со сторонними приложениями, которые вы можете найти.

Итак, какие папки мне можно (или нужно) удалять?

Не уверен – не удаляй. Это справедливо для всех папок приложений, и трогать их не стоит, за исключением тех случаев, когда вы точно знаете, что хотите сделать. Добавлять и удалять файлы из любых папок с медиа абсолютно безопасно, но постарайтесь в порыве наведения порядка не снести саму папку. Если вы видите, что папка пуста, например, ничего нет в папке Alarms, вы, можете подумать, что она и сама не нужна. Но, с другой стороны, папка не занимает много места. И возможно, она потребуется какому-либо приложению впоследствии, поэтому так ли вам необходимо ее удалять?

Со временем встроенная память вашего устройства будет содержать гораздо больше папок, чем было перечислено выше. Вы будете устанавливать и удалять все большее число приложений. Поэтому наводить порядок в своем устройстве никогда не повредит, ну, разве что вы вообще редко перемещаете файлы в своем телефоне, скачиваете и удаляете их. И еще, удаление пустой папки не освободит вам дополнительного места в памяти. Так что, если требуется выиграть место, лучше посмотрите, какие вы можете удалить ненужные приложения/фильмы, которые не станете пересматривать и т.п.

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

Источник

Как работает Android, часть 4

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Всем привет! Мы нашли время продолжить серию статей про внутреннее устройство Android. В этой статье я расскажу о процессе загрузки Android, о содержимом файловой системы, о том, как хранятся данные пользователя и приложений, о root-доступе, о переносимости сборок Android и о проблеме фрагментации.

Пакеты

Как я уже говорил раньше, архитектура Android построена вокруг приложений. Именно приложения играют ключевую роль в устройстве многих частей системы, именно для гармоничного взаимодействия приложений выстроена модель activity и intent’ов, именно на изоляции приложений основана модель безопасности Android. И если оркестрированием взаимодействия компонентов приложений занимается activity manager, то за установку, обновление и управление правами приложений отвечает package manager (пакетный менеджер — в shell его можно вызвать командой pm ).

Каждый APK при сборке должен быть подписан разработчиком с использованием цифровой подписи. Android проверяет наличие этой подписи при установке приложения, а при обновлении уже установленного приложения дополнительно сравнивает публичные ключи, которыми подписаны старая и новая версия; они должны совпадать, что гарантирует, что новая версия была создана тем же разработчиком, что и старая. (Если бы этой проверки не было, злоумышленник мог бы создать пакет с таким же именем, как и у существующего приложения, убедить пользователя установить его, «обновляя» приложение, и получить доступ к данным этого приложения.)

Само обновление пакета представляет собой установку его новой версии вместо старой с сохранением данных и полученных от пользователя разрешений. Можно и «откатывать» (downgrade) приложения до более старых версий, но при этом по умолчанию Android стирает сохранённые новой версией данные, поскольку старая версия может быть не способна работать с форматами данных, которые использует новая версия.

Как я уже говорил, обычно код каждого приложения выполняется под собственным Unix-пользователем (UID), что и обеспечивает их взаимную изоляцию. Несколько приложений могут явно попросить Android использовать для них общий UID, что позволит им получать прямой доступ к файлам друг друга и даже, при желании, запускаться в одном процессе.

Хотя обычно одному пакету соответствует один файл APK, Android поддерживает пакеты, состоящие из нескольких APK (это называется раздельными APK, или split APK). Это лежит в основе таких «магических» возможностей Android, как динамическая загрузка дополнительных модулей приложения (dynamic feature modules) и Instant Run в Android Studio (автоматическое обновление кода запущенного приложения без его полной переустановки и, во многих случаях, даже без перезапуска).

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Файловая система

Устройство файловой системы — один из самых важных и интересных вопросов в архитектуре операционной системы, и устройство файловой системы в Android — не исключение.

Интерес представляет, во-первых, то, какие файловые системы используются, то есть в каком именно формате содержимое файлов сохраняется на условный диск (в случае Android это обычно flash-память и SD-карты) и как обеспечивается поддержка этого формата со стороны ядра системы. Ядро Linux, используемое в Android, в той или иной степени поддерживает большое количество самых разных файловых систем — от используемых в Windows FAT и NTFS и используемых в Darwin печально известной HFS+ и современной APFS — до сетевой 9pfs из Plan 9. Есть и много «родных» для Linux файловых систем — например, Btrfs и семейство ext.

Стандартом де-факто для Linux уже долгое время является ext4, используемая по умолчанию большинством популярных дистрибутивов Linux. Поэтому нет ничего неожиданного в том, что именно она и используется в Android. В некоторых сборках (и некоторыми энтузиастами) также используется F2FS (Flash-Friendly File System), оптимизированная специально для flash-памяти (впрочем, с её преимуществами всё не так однозначно).

Во-вторых, интерес представляет так называемый filesystem layout — расположение системных и пользовательских папок и файлов в файловой системе. Filesystem layout в «обычном Linux» заслуживает более подробного описания (которое можно найти, например, по этой ссылке); я упомяну здесь только несколько наиболее важных директорий:

Android использует похожий, но заметно отличающийся filesystem layout. Вот несколько самых важных из его частей:

Суффикс в названии папок приложений — 16 случайных байт, закодированных в Base64. Использование такого суффикса не позволяет другим приложениям «угадать» путь к приложению, о существовании которого им знать не следует. В принципе, список установленных на устройстве приложений и путей к ним не является секретом — его можно получить через стандартные API — но в некоторых случаях (а именно, для Instant apps) на доступ к этим данным накладываются ограничения.

Для хранения изменяемых данных каждому приложению выделяется папка в /data/data (например, /data/data/com.google.android.youtube для YouTube). Доступ к этой папке есть только у самого приложения — то есть только у UID, под которым запускается это приложение (если приложение использует несколько UID, или несколько приложений используют общий UID, всё может быть сложнее). В этой папке приложения сохраняют настройки, кэш (в подпапках shared_prefs и cache соответственно) и любые другие нужные им данные:

Система знает о существовании папки cache и может очищать её самостоятельно при нехватке места. При удалении приложения вся папка этого приложения полностью удаляется, и приложение не оставляет за собой следов. Альтернативно, и то, и другое пользователь может явно сделать в настройках:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Это выделяемое каждому приложению хранилище данных называется внутренним хранилищем (internal storage).

Кроме того, в Android есть и другой тип хранилища — так называемое внешнее хранилище (external storage — это название отражает изначальную задумку о том, что внешнее хранилище должно было располагаться на вставляемой в телефон внешней SD-карте). По сути, внешнее хранилище играет роль домашней папки пользователя — именно там располагаются такие папки, как Documents, Download, Music и Pictures, именно внешнее хранилище открывают файловые менеджеры в качестве папки по умолчанию, именно к содержимому внешнего хранилища Android позволяет получить доступ компьютеру при подключении по кабелю.

Как я упомянул выше, исходно предполагалось, что внешнее хранилище действительно будет располагаться на внешней SD-карте, поскольку в то время объём SD-карт значительно превышал объём встраиваемой в телефоны памяти (в том же самом HTC Dream её было лишь 256 мегабайта, из которых на раздел data выделялось порядка 90 мегабайт). С тех пор многие условия изменились; в современных телефонах часто нет слота для SD-карты, зато устанавливается огромное по мобильным меркам количество встроенной памяти (например, в Samsung Galaxy Note 9 её может быть до 512 гигабайт).

С другой стороны, у многих устройств всё-таки есть слот для SD-карты. Вставленную в Android-устройство SD-карту можно использовать как обычный внешний диск (не превращая её во внутреннее или внешнее хранилище системы) — сохранять на неё файлы, открывать хранящиеся на ней файлы, использовать её для перенесения файлов на другие устройства и т.п. Кроме того, Android позволяет «заимствовать» SD-карту и разместить внутреннее и внешнее хранилище на ней (это называется заимствованным хранилищем — adopted storage). При этом система переформатирует SD-карту и шифрует её содержимое — хранящиеся на ней данные невозможно прочесть, подключив её к другому устройству.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Подробнее почитать про всё это можно, например, вот в этом посте и в официальной документации для разработчиков приложений и для создателей сборок Android.

Загрузка

Традиционный подход к безопасности компьютерных систем ограничивается тем, чтобы защищать систему от программных атак. Считается, что если у злоумышленника есть физический доступ к компьютеру, игра уже проиграна: он может получить полный доступ к любым хранящимся на нём данным. Для этого ему достаточно, например, запустить на этом компьютере произвольную контролируемую им операционную систему, позволяющую ему обойти любые накладываемые «основной» системой ограничения прав, или напрямую подключить диск с данными к другому устройству. При желании, злоумышленник может оставить компьютер в работоспособном состоянии, но пропатчить установленную на нём систему, установить произвольные бэкдоры, кейлоггеры и т.п.

Именно на защиту от программных атак ориентирована модель ограничения прав пользователей в Unix (и основанная на ней технология app sandbox в Android); само по себе ограничение прав в Unix никак не защищает систему от пользователя, пробравшегося в серверную и получившего физический доступ к компьютеру. И если серьёзные многопользовательские сервера можно и нужно охранять от неавторизованного физического доступа, к персональным компьютерам — а тем более мобильным устройствам — такой подход просто неприменим.

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

Именно с этими двумя направлениями защиты связана модель безопасной загрузки в Android.

Verified Boot

Процесс загрузки Android построен так, что он, с одной стороны, не позволяет злоумышленникам загружать на устройстве произвольную ОС, с другой стороны, может позволять пользователям устанавливать кастомизированные сборки Android (и другие системы).

Прежде всего, Android-устройства, в отличие от «десктопных» компьютеров, обычно не позволяют пользователю (или злоумышленнику) произвести загрузку со внешнего носителя; вместо этого сразу запускается установленный на устройстве bootloader (загрузчик). Bootloader — это относительно простая программа, в задачи которой (при загрузке в обыкновенном режиме) входят:

Flashing, unlocking, fastboot и recovery

Кроме того, bootloader поддерживает дополнительную функциональность для обновления и переустановки системы.

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

Это делается путём использования второй «фичи» bootloader’а, направленной на обновление и переустановку системы — поддержки перезаписи (flashing) содержимого и структуры разделов по командам с подсоединённого по кабелю компьютера. Для этого bootloader способен загружаться в ещё один специальный режим, который называют fastboot mode (или иногда просто bootloader mode), поскольку обычно для общения между компьютером и bootloader’ом в этом режиме используется протокол fastboot (и соответствующий ему инструмент fastboot из Android SDK со стороны компьютера).

Некоторые реализации bootloader’а используют другие протоколы. В основном это касается устройств, выпускаемых компанией Samsung, где специальная реализация bootloader’a (Loke) общается с компьютером по собственному проприетарному протоколу (Odin). Для работы с Odin со стороны компьютера можно использовать либо реализацию от самих Samsung (которая тоже называется Odin), либо свободную реализацию под названием Heimdall.

Конкретные детали зависят от реализации bootloader’а (то есть различаются в зависимости от производителя устройства), но во многих случаях установка recovery и сборок Android, подписанных ключом производителя устройства, просто работает без дополнительных сложностей:

Таким образом можно вручную обновлять систему; а вот установить более старую версию не получится: функция, известная как защита от отката, не позволит bootloader’у загрузить более старую версию Android, чем была загружена в прошлый раз, даже если она подписана ключом производителя, поскольку загрузка старых версий открывает дорогу к использованию опубликованных уязвимостей, которые исправлены в более новых версиях.

Кроме того, многие устройства поддерживают разблокировку bootloader’а (unlocking the bootloader, также известную как OEM unlock) — отключение проверки bootloader’ом подписи системы и recovery, что позволяет устанавливать произвольные сборки того и другого (у части производителей это аннулирует гарантию). Именно так обычно устанавливаются такие популярные дистрибутивы Android, как LineageOS (бывший CyanogenMod), Paranoid Android, AOKP, OmniROM и другие.

Поскольку разблокировка bootloader’а всё-таки позволяет загрузить на устройстве собственную версию системы, в целях безопасности при разблокировке все пользовательские данные (с раздела data) принудительно удаляются. Если систему переустанавливает сам пользователь, а не злоумышленник, после переустановки он может восстановить свои данные из бэкапа (например, из облачного бэкапа на серверах Google или из бэкапа на внешнем носителе), если злоумышленник — он получит работающую систему, но не сможет украсть данные владельца устройства.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

После установки предпочитаемых сборок recovery и системы bootloader стоит заблокировать обратно, чтобы снова защитить свои данные в случае попадания устройства в руки злоумышленников.

Для разблокировки bootloader’а может также потребоваться дополнительно разрешить её из настроек системы:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Популярная сторонняя recovery, которую устанавливают большинство «флешаголиков» (flashaholics) — TWRP (Team Win Recovery Project). Она содержит тач-интерфейс и множество продвинутых «фич», в том числе возможность устанавливать части системы из сборок в виде zip-архивов, встроенную поддержку бэкапов и даже полноценный эмулятор терминала с виртуальной клавиатурой:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Шифрование диска

Современные версии Android используют пофайловое шифрование данных (file-based encryption). Этот механизм основан на встроенной в ext4 поддержке шифрования, реализованной в ядре Linux (fscrypt), и позволяет системе зашифровывать различные части файловой системы различными ключами.

По умолчанию система шифрует большинство данных пользователя, расположенных на разделе data, с помощью ключа, который создаётся на основе пароля пользователя и не сохраняется на диск (credential encrypted storage). Это означает, что при загрузке система должна попросить пользователя ввести свой пароль, чтобы вычислить с его помощью ключ для расшифровки данных. Именно поэтому первый раз после включения устройства пользователя встречает требование ввести полный пароль или графический ключ, а не просто пройти аутентификацию, приложив палец к сканеру отпечатков.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

В дополнение к credential encrypted storage в Android также используется device encrypted storage — шифрование ключом на основе данных, которые хранятся на устройстве (в том числе в Trusted Execution Environment). Файлы, зашифрованные таким образом, система может расшифровать до того, как пользователь введёт пароль. Это лежит в основе функции, известной как Direct Boot: система способна загружаться в некоторое работоспособное состояние и без ввода пароля; при этом приложения могут явно попросить систему сохранить (наименее приватную) часть своих данных в device encrypted storage, что позволяет им начинать выполнять свои базовые функции, не дожидаясь полной разблокировки устройства. Например, Direct Boot позволяет будильнику срабатывать и до первого ввода пароля, что особенно полезно, если устройство непредвиденно перезагружается ночью из-за временного отключения питания или сбоя системы.

Так называемый root-доступ — это возможность выполнять код от имени «пользователя root» (UID 0, также известного как суперпользователь). Напомню, что root — это специально выделенный Unix-пользователь, которому — за несколькими интересными исключениями — разрешён полный доступ ко всему в системе, и на которого не распространяются никакие ограничения прав.

Как и большинство других современных операционных систем, Android спроектирован с расчётом на то, что обыкновенному пользователю ни для чего не требуется использовать root-доступ. В отличие от более закрытых операционных систем, пользователи которых называют разрушение наложенных на них ограничений буквально «побегом из тюрьмы», в Android прямо «из коробки», без необходимости получать root-доступ и устанавливать специальные сторонние «твики», есть возможность:

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Тем не менее, бывает, что root доступен пользователю:

Зачем это может быть нужно? Конечно, root-доступ полезен для отладки и исследования работы системы. Кроме того, обладая root-доступом, можно неограниченно настраивать систему, изменяя её темы, поведение и многие другие аспекты. Можно принудительно подменять код и ресурсы приложений — например, можно удалить из приложения рекламу или разблокировать его платную или скрытую функциональность. Можно устанавливать, изменять и удалять произвольные файлы, в том числе в разделе system (хотя это почти наверняка плохая идея).

С более философской точки зрения, root-доступ позволяет пользователю полностью контролировать своё устройство и свою систему — вместо того, чтобы устройство и разработчики ПО контролировали пользователя.

Проблемы root-доступа

With great power comes great responsibility.

С большими возможностями приходит и большая ответственность, и совсем не всегда эту ответственность можно доверить пользователю и приложениям. Другими словами, с root-доступом связано большое количество проблем в области безопасности и стабильности системы.

Напомню, что пользователь почти всегда взаимодействует с устройством не напрямую, а через приложения. А это значит, что и root-доступ он будет использовать в основном через приложения, которые, можно надеяться, будут добросовестно пользоваться root-доступом для хороших целей. Но если на устройстве доступен root, это, в принципе, означает, что приложения могут воспользоваться им и для нехороших целей — навредить системе, украсть ценные данные, заразить систему вирусом, установить кейлоггер и т.п.

Как я уже говорил во второй статье серии, в отличие от традиционной модели доверия программам в классическом Unix, Android рассчитан на то, что пользователь не может доверять сторонним приложениям — поэтому их и помещают в песочницу. Тем более нельзя доверять приложениям root-доступ, надеясь, что они будут использовать его только во благо. Фактически, root-доступ разрушает аккуратно выстроенную модель безопасности Android, снимая с приложений все ограничения и открывая им права на доступ ко всему в системе.

С другой стороны, и приложения не могут доверять устройству, на котором подключен root-доступ, поскольку на таком устройстве в его работу имеют возможность непредусмотренными способами вмешиваться пользователь и остальные приложения. Например, разработчики приложения, содержащего платную функциональность, естественно, не захотят, чтобы проверку совершения покупки можно было отключить. Многие приложения, работающие с особенно ценными данными — например, Google Pay (бывший Android Pay) — явно отказываются работать на устройствах с root-доступом, считая их недостаточно безопасными.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Аналогично, онлайн-игры вроде популярной Pokémon GO тоже отказываются работать на root-ованных устройствах, опасаясь, что игрок сможет с лёгкостью нарушить правила игры.

Google Play и root-доступ

Google разрешает производителям предустанавливать Google Play Store и Google Play Services только на устройства, где root-доступ отключён, тем самым делая Android более привлекательной платформой для разработчиков, которые, естественно, предпочитают вкладывать ресурсы в разработку под платформы, не позволяющие пользователям с лёгкостью вмешиваться в работу их приложений. А поскольку Play Store — наиболее известный и популярный (как среди разработчиков приложений, так и среди пользователей) магазин приложений для Android, большинство производителей предпочитают предустанавливать его на свои устройства. (Есть и исключения — например, Amazon использует собственный дистрибутив Android под названием Fire OS для своих устройств — Echo, Fire TV, Fire Phone, Kindle Fire Tablet — и не предустанавливает никаких приложений от Google). Именно поэтому root-доступ по умолчанию отключён на большинстве популярных Android-устройств.

Несмотря на ограничение для производителей, Google разрешает пользователям сборок, в которых разрешён root-доступ, самостоятельно устанавливать Google Play (обычно это делается путём установки готовых пакетов от проекта Open GApps); при этом Google требует, чтобы после установки пользователь вручную зарегистрировал устройство на специально предназначенной для этого странице регистрации.

Device manufacturers work with Google to certify that Android devices with Google apps installed are secure and will run apps correctly. To be certified, a device must pass Android compatibility tests. If you are unable to add a Google Account on your Android device, your Android device software might not have passed Android compatibility tests, or the device manufacturer has not submitted the results to Google to seek approval. As a result, your device is uncertified. This means that your device might not be secure.

If you are a User wanting to use custom ROMs on your device, please register your device by submitting your Google Services Framework Android ID below.

Ограничение доступа к root

В «обычном» Linux, как и в других Unix-системах, для получения root-доступа (с помощью команд sudo и su ) пользователю требуется ввести пароль (или свой, или пароль Unix-пользователя root, в зависимости от настройки системы и конкретной команды) или авторизоваться другим способом (например, с помощью отпечатка пальца). В дополнение к собственно авторизации это служит подтверждением того, что пользователь доверяет этой программе и согласен предоставить ей возможность воспользоваться root-доступом.

Стандартная версия команды su из Android Open Source Project не запрашивает подтверждения пользователя явно, но она доступна только Unix-пользователю shell (и самому root), что полностью отрезает приложениям возможность получать root-права. Многие сторонние реализации su позволяют любому приложению получать права суперпользователя, что, как я объяснил выше, очень плохо в плане безопасности.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Magisk

Хотя это действительно невероятно круто, нужно осознавать, что возможность использовать приложения вроде Google Pay на root-ованных устройствах несмотря на встроенные в них проверки — это не решение связанных с root-доступом проблем с безопасностью. Приложения, которым пользователь доверил root-доступ, по-прежнему могут решить вмешаться в работу системы и украсть деньги пользователя через Google Pay. Проблемы с безопасностью остаются, нам лишь удаётся закрыть на них глаза.

Magisk поддерживает systemless-ную установку готовых системных «твиков» в виде Magisk Modules, специальных пакетов для установки с использованием Magisk. В таком виде доступны, например, известный root-фреймворк Xposed и ViPER, набор продвинутых драйверов и настроек для воспроизведения звука.

SoC, драйвера и фрагментация

Системы на кристалле

Аппаратное обеспечение традиционных настольных и серверных компьютеров построено вокруг материнской платы, на которую устанавливаются такие важнейшие компоненты «харда», как центральный процессор и оперативная память, и к которой затем подключаются дополнительные платы — например, графическая и сетевая — содержащие остальные компоненты (соответственно, графический процессор и Wi-Fi адаптер).

В отличие от такой схемы, в большинстве Android-устройств используются так называемые системы на кристалле (system on a chip, SoC). Система на кристалле представляет собой набор компонентов компьютера — центральный процессор, блок оперативной памяти, порты ввода-вывода, графический процессор, LTE-, Bluetooth- и Wi-Fi-модемы и т.п. — полностью реализованных и интегрированных в рамках одного микрочипа. Такой подход позволяет не только уменьшить физический размер устройства, чтобы оно поместилось в кармане, и повысить его производительность за счёт большей локальности и лучшей интеграции между компонентами, но и значительно снизить его энергопотребление и тепловыделение, что особенно актуально для мобильных устройств, питающихся от встроенной батарейки и не имеющих систем активного охлаждения.

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

О драйверах

Другой — гораздо более важный именно в контексте Android — недостаток SoC заключается в связанных с ними сложностях с драйверами. Как и в традиционных системах, основанных на отдельных платах, каждый компонент системы на кристалле — от камеры до LTE-модема — требует для работы использования специальных драйверов. Но в отличие от традиционных систем, эти драйвера обычно разрабатываются производителями систем на кристалле и специфичны для их конкретных моделей; кроме того, исходные коды таких драйверов обычно не раскрываются, да и бинарные сборки в свободный доступ производителями выкладываются совсем не всегда.

Вместо этого производитель SoC (например, Qualcomm) отдаёт готовую сборку драйверов производителям Android-устройств (например, Sony или LG), которые включают её в свою сборку Android, основанную на коде из Android Open Source Project. Так и получается, что сборка Android, предустановленная на устройстве производителем, содержит все нужные для этого устройства драйвера, а напрямую использовать сборку для одного устройства на другом невозможно.

В результате авторам сборок Android приходится прилагать отдельные усилия для поддержки каждого семейства моделей Android-устройств. Сами производители устройств совсем не всегда заинтересованы в том, чтобы выделять ресурсы на портирование своих сборок на новые версии Android. В то же время разработчикам сторонних дистрибутивов Android приходится извлекать драйвера из сборок, предустанавливаемых производителями, что связано с дополнительными сложностями и не всегда приводит к хорошему результату. У многих сторонних дистрибутивов хватает ресурсов только для поддержки наиболее популярных моделей устройств.

Фрагментация

Это приводит к проблеме, известной как фрагментация: экосистема Android состоит из большого количества различных сборок — как официальных сборок от производителей устройств, так и версий сторонних дистрибутивов. Многие из них к тому же основаны на старых версиях Android, поскольку для многих устройств обновления сборок от производителя выходят медленно или не выходят совсем.

Конечно, медленное обновление экосистемы означает, что не все пользователи получают небольшие обновления интерфейса и другие видимые пользователю улучшения, которые приносят новые версии Android. Но оно приносит и две гораздо более серьёзные проблемы.

Во-первых, страдает безопасность. Хотя современные системы используют продвинутые механизмы защиты, в них постоянно обнаруживаются новые уязвимости. Обычно эти уязвимости оперативно исправляются разработчиками, но это не помогает пользователям, если обновления системы, содержащие исправления, до них никогда не доходят.

Во-вторых, фрагментация отрицательно сказывается на разработчиках приложений под Android — страдает так называемый developer experience (DX, по аналогии с user experience/UX). В теории, несмотря на внутренние различия в драйверах и пользовательском интерфейсе разных версий и сборок Android, используемые разработчиками приложений API — Android Framework, OpenGL/Vulkan и другие — должны быть переносимы и работать одинаково. На практике это, конечно, не всегда так, и разработчикам приходится тестировать и обеспечивать работу своих приложений на множестве версий и сборок Android — на разных устройствах, разных версиях системы, сторонних дистрибутивах и так далее.

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

Don’t Stop Thinking About Tomorrow

Далеко не все производители Android-устройств не считают важным своевременно выпускать обновления для своих устройств. Например, Google выпускают обновления для своих линеек Nexus и Pixel одновременно с тем, как выходит новая версия Android. У многих других производителей портирование сборок Android на его новую версию занимает месяцы, но они, тем не менее, стараются выпускать ежемесячные обновления безопасности.

Кроме того, совсем не все устройства, где используется Android, построены на основе SoC. Android вполне можно установить и на обычный «десктопный» компьютер (подойдут, например, сборки от проектов Android-x86 и RemixOS). Специальная сборка Android встроена в ChromeOS, что позволяет Chromebook’ам запускать Android-приложения наряду с Linux-приложениями и веб-приложениями. Аналогичного подхода — запуска специальной сборки Android в контейнере — придерживается проект Anbox, позволяющий использовать Android-приложения на «обыкновенных» Linux-системах. (Напомню, что Android-приложения так легко переносятся на x86-архитектуры, не требуя перекомпиляции, благодаря использованию виртуальной машины Java, о чём я рассказывал во второй статье серии.)

Что такое files на андроиде и для чего он предназначен. Смотреть фото Что такое files на андроиде и для чего он предназначен. Смотреть картинку Что такое files на андроиде и для чего он предназначен. Картинка про Что такое files на андроиде и для чего он предназначен. Фото Что такое files на андроиде и для чего он предназначен

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

Наиболее прямой способ бороться с фрагментацией — это всячески убеждать производителей устройств не забрасывать поддержку своих сборок Android. Как показывает практика, это работает, но работает недостаточно хорошо. Было бы гораздо лучше, если можно было бы разработать техническое решение, повышающее переносимость сборок Android и тем самым серьёзно облегчающее задачу авторов сборок и сторонних дистрибутивов.

И такое решение уже существует. В 2017 году Google анонсировали Project Treble — новую, ещё более модульную (по сравнению с уже существующим HAL, hardware abstraction layer) архитектуру взаимодействия драйверов (и остального софта, специфичного для конкретного устройства) с остальными частями системы. Treble позволяет устанавливать основную систему и драйвера, специфичные для устройства, на разные разделы файловой системы, и обновлять — или как угодно изменять — систему отдельно от установленных драйверов.

Treble в корне меняет ситуацию с медленным выпуском обновлений и плохой переносимостью сборок. Благодаря Treble устройства от семи разных компаний (Sony, Nokia, OnePlus, Oppo, Xiaomi, Essential и Vivo — а не только от самих Google) смогли участвовать в бета-программе Android Pie. Treble позволил Essential выпустить обновление до Android Pie для своего Essential Phone прямо в день выхода Android Pie. Одну и ту же сборку Android — один и тот же бинарный файл без перекомпиляции или каких-либо изменений — теперь можно запускать на любом устройстве, поддерживающем Treble, несмотря на то, что они могут быть основаны на совершенно разных SoC.

Влияние Treble действительно сложно переоценить. Java принесла возможность «write once, run everywhere» для высокоуровневого кода — в том числе и возможность запускать Android-приложения на компьютерах с практически любой архитектурой процессора. Treble — аналогичный прорыв, позволяющий использовать однажды написанную и скомпилированную сборку Android на устройствах с совершенно разными SoC. Теперь дело за производителями, которым нужно конвертировать свои драйвера в формат, совместимый с Treble. Можно надеяться, что через несколько лет проблемы с обновлениями Android-устройств исчезнут окончательно.

В следующей статье я планирую рассказать о низкоуровневом userspace Android: о процессе init, о Zygote, Binder, сервисах и props.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *