Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Java8 #Desugar #D8

Для любителей покапаться в том, что происходит под капотом у тулз, советую обратить внимание на статью от Jake Warton о том как работает Java 8 код на Android

https://jakewharton.com/androids-java-8-support/
#Android #Java #D8

"Android's Java 9, 10, 11, and 12 Support" - Jake Wharton

Печально признавать, но Android всегда оставал в поддержке Java от всего сообщества большого брата. Уже релизнулась Java 11, а мы все наслаждается синтаксическим сахаром от Java 8. С этим все смирились, но что будет если попробовать с помощью D8 обеспечить поддержку синтаксиса Java 9+ на Android?

В своей статье Jake продолжил раскрывать особенности работы Java на Android. По ссылке вы найдете информацию о том на какой стадии находится работа поддержки Java 9, которая уже ведется в AOSP, какие функции из Java 9+ можно завести на Android и надеемся что это скоро будет.
#D8 #Dexing #Compiler

Part 3 (final): "Avoiding Vendor- and Version-Specific VM Bugs"
Part 2: "Android's Java 9, 10, 11, and 12 Support"
Part 1: "Android's Java 8 Support"

Заключительная хардокрная статья о D8 от Jake Warton в которой он рассказывает о том как D8 отличается в dexing кода от DX и исправляет разные баги на старых версий Android и баги от корявых рук производителей устройств, которые любят переизобрести Android ОС.

О чем сможете узнать:
👉 Использование более оптимальных инструкций в D8
👉 Как D8 позволяет обходить баги, на примере OkHttp и Okio, на устрйоствах отдельных производителей
👉 Фикс бага ART ahead-of-time компилятора в Android 6.0

Вас ждет много байткода и тулинга, пристегнитесь и наберитесь терпения перед прочтением.
#D8 #R8 #CPU #JVM

Android CPU, Compilers, D8 & R8

Статья о компиляции кода в Android и как Google улучшает процесс. В ней вы найдете:
👉 JVM и ее связи с Android
👉 Как работает JVM
👉 DEX
👉 Как читать байткод
👉 Как происходит сборка Android приложения
👉 Android Runtime (ART)
👉 D8 & R8
👍1
#Java #D8 #Desugarung #JakeWharton

D8 Library Desugaring

Все Android разработчики знакомы с фрагментированностью платформы, что не дает нам использовать последнии версии Android SDK в приложениях. Google помогла в решение этой проблемы, предоставля библиотеки AndroidX.

Есть одно "НО" - проблема не решена для Java API. Android разработчики стали чувствовать проблему меньше с приходом Kotlin, но все же в JDK есть интересные API:
👉 Java 8 Stream Collection (API 24)
👉 Java 8 Date Time (API 26)
👉 Optional (API 24)
👉 CompletableFuture (API 24)
Использовать в большинстве приложений не получится т.к. наиболее распространенные minSdk - это 21 или 23.

В Android Studio 4.0 (а точнее в Android Gradle Plugin и D8) была добавлена новая возможность “core library desugaring”, которая позволяет делать бэкпорт этих API, а также новых методов, появившиеся в других API (более подробный список здесь) и исправлять баги в Java API на старых версиях Android.

В своей статье Jake разбирается как устроена новая фича в D8
#Dx #D8

The path to DX deprecation

Google объявила о 3 фазах миграции с Dx на D8, причем в фазу 2 мы уже успели войти. Во второй фазе Dx остаётся доступным, но помечается как deprecated. Баги в нем больше исправляться не будут. Пора переходить на D8.

Третья фаза начнется 1 февраля 2021 - полное удаление Dx из Android Studio и всех других инструментов сборки.

Справка: Dx и D8 - это компиляторы Java байт кода в Dex, формат байт кода для ART
#R8 #D8

When using enums and R8…

Chet Haase делиться с нами какую пользу может оказать R8 и убрать лишний JVM байткод, который генерируется Kotlin, когда вы используете его для компиляции кода на примере enum.
#Java8 #D8 #R8

Support for newer Java language APIs

Android Gradle Plugin 4.0 дал нам возможность вызывать Java API, которые появились в более поздних версиях Android SDK на всех предыдущих.

В статье вы найдете подробности о D8/R8 Java API Desugaring: как работает и какие API теперь стали доступны