Сегодня в выпуске: отключаем и удаляем предустановленный софт без root, разбираемся с форматом распространения приложений App Bundle, запускаем короутины в основном потоке без задержек, разбираемся в многопоточном программировании, учимся держать код в чистоте и порядке, изучаем новый механизм hot reload в Android Studio и, конечно же, берем на вооружение свежие библиотеки.
 

Почитать

 

Удаляем/отключаем любые предустановленные приложения без root

How to disable any pre-installed system app bloatware on Android without root — несколько баянистая, но оттого не менее полезная статья о том, как отключить любое предустановленное на устройство приложение, не имея прав root.

Для начала необходимо активировать ADB в настройках разработчика на устройстве (как это сделать, написано на каждом углу) и установить ADB на комп. Затем с помощью любой утилиты для управления приложениями нужно узнать точное имя пакета этого приложения. Автор статьи рекомендует использовать для этого App Inspector.

Далее открываем терминал на ПК и выполняем такую команду:

$ adb shell pm disable-user --user 0 <имя_отключаемого_пакета>

В случае необходимости приложение можно включить снова:

$ adb shell pm enable <имя_отключенного_пакета>

А с помощью такой команды можно просмотреть список отключенных приложений:

$ adb shell pm list packages -d

Кроме того, приложение можно полностью удалить с устройства:

$ adb pm uninstall -k --user 0 <имя_пакета>
Список отключенных пакетов
Список отключенных пакетов
 

Разработчику

 

Все, что нужно знать об App Bundle

Android App Bundles: Getting Started — большая статья о новом формате распространения приложений App Bundle, позволяющем существенно сократить размер приложения, которое пользователям придется скачивать и устанавливать.

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

Частично эту проблему можно решить самостоятельно, разделив приложение на несколько разных версий с помощью директив buildTypes и splits системы сборки Gradle. Однако в этом случае их все приходится заливать в Google Play по отдельности, а это может превратиться в кошмар, если в результате разделения получится десяток различных версий.

App Bundle позволяет упаковать код и данные всех версий в один пакет с расширением .aab и оставить его разделение для разных смартфонов на усмотрение гуглу.

Также статья содержит другую интересную информацию:

  • App Bundle — это обычный ZIP-архив. Его можно распаковать любым архиватором, поддерживающим формат ZIP.
  • Google не просто создает из App Bundle несколько вариантов APK для разных смартфонов. Он дробит их на мелкие части, которые могут быть скачаны по мере необходимости. Например, при смене языка смартфон автоматически докачает и установит APK с нужным языковым пакетом.
  • Google уже работает над функцией Dynamic delivery, которая позволит дробить App Bundle на еще более мелкие части, разделяя не только ресурсы и нативные библиотеки, но и код самого приложения. В этом случае сначала пользователи будут устанавливать только «самую используемую» часть приложения, а дополнительные компоненты будут докачиваться при необходимости (точно так же работают Instant Apps).
  • Расщепить App Bundle на набор APK можно и самостоятельно. Для этого необходимо скачать и установить утилиту BundleTool. Использовать так (все APK будут упакованы в ZIP-архив app.apks):
$ java -jar bundletool.jar build-apks --bundle=app.aab
--output=app.apks

Или так, если ты хочешь установить их на смартфон:

$ java -jar bundletool.jar build-apks --bundle=app.aab
--output=app.apks
--ks=keystore.jks
--ks-pass=<путь_до_keystore>
--ks-key-alias=<key_alias>
--key-pass=<пароль>

Чтобы сразу установить приложение на смартфон, используй такую команду:

$ java -jar bundletool.jar install-apks --apks=app.apks
App Bundle после разделения на APK
App Bundle после разделения на APK

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Google и Samsung исправили баг, позволявший приложениям следить за пользователями через камеру

Цепочка уязвимостей позволяла злоумышленникам перехватывать контроль над камерой устройств…

Оставить мнение