Android Q покажут, как обычно, на Googe I/O. Уже сейчас известно, что в систему встроят полноценную темную тему, а все стандартные приложения компании к моменту выхода новой версии Android будут обновлены под данное нововведение. Однако тёмная тема — не главное в Android Q. APEX – вот, что может по своей глобальности соответствовать Project Treble.
Что же такое APEX?
Для Android экосистема APEX является чем-то новым, но не в случае с Linux-дистрибутивами. Суть APEX заключается в возможности точечного обновления библиотек системы, в Linux так и происходит. Можно обновить ядро, оставив при этом среду рабочего стола GNOME нетронутой. Android не позволяет отдельно обновить библиотеку (для этого необходимо выпускать обновление всей системы), так как раздел с системными библиотеками и фреймворками не имеет прав на запись (read-only), в Linux же используется раздел с правами на чтение и запись.
Что такое библиотека?
Это заранее скомпилированный код, который может быть использован другими программами. В них хранятся общие методы классов, к которым обращаются Android-приложения. Библиотеки уменьшают размер APK-файлов приложений, так как некоторая функциональность уже бывает заложена в методах и не требует повторной реализации в каждом отдельном приложении. Библиотеки хранятся в папке /system/lib и /system/lib64. Их, как уже говорилось выше, нельзя обновить отдельно от всей системы, но APEX решает проблему.
С появлением APEX в Android Q обновление библиотек будет похоже на обновление обычных приложений
В Android используется файл ld.config.txt, в котором прописаны пути к папкам с библиотеками. Этот файл нельзя изменять, что являлось проблемой для APEX. Google решила её путем размещения в APEX-пакетах локальных файлов ld.config.txt, в которых прописаны пути к дополнительным и обновленным библиотекам.
В настоящее время компания работает над созданием C-интерфейса между APEX-пакетами, так как библиотеки (даже обновленные) должны иметь интерфейсы для взаимодействия друг с другом по общему протоколу.
Какова цель?
Google таким образом пытается создать базовые APEX-библиотеки, которые будут обновляться без необходимости выпуска глобального обновления. Это может касаться даже обновлений безопасности, необходимость в которых пропадёт с появлением APEX-пакетов.