Android Broadcast
14.2K subscribers
3.53K photos
347 videos
11 files
5.92K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab
加入频道
#R8 #Optimization #Kotlin

"R8 Optimization: Staticization" by Jake Wharton|Google

Новая часть статей о компиляции Java кода в Android. В новой статье рассматривается R8 - замена ProGuard от Google. R8 - это не отдельная утилита, а расширение D8, либо более простая формула R8 = D8 + оптимизации.

В статье рассматривается первая оптимизация, которую выполняет R8 - конвертация обычных методов в статические. Вы можете узнать о том, как это выполняется для Companion Object классов в Kotlin.
#R8 #Optimization #Kotlin

"R8 Optimization: Null Data Flow Analysis" by Jake Warton|Google

Продолжение статей о том какие оптимизации выполняются в R8. В новой статье вы узнаете о том как оптимизируется работа с null.
#R8 #Optimization #Kotlin

R8 Optimization: Null Data Flow Analysis (Part 2)
R8 Optimization: Null Data Flow Analysis (Part 1)

Продолжение серии статей от Jake Wharton про оптимизации, которые выполняет R8 в Kotlin коде. В статье рассматривает о том как R8 избавляется от сервисного кода по проверки Java объектов на null.
#GooglePlay #AppBundle #Optimization

16 reasons to publish your apps and games with the Android App Bundle

Еще не начали публиковать свои приложения с помощью Android App Bundle в Google Play? Тогда изучите 16 причин почему это стоит сделать уже сегодня!
#Kotlin #Optimization

Kotlin: cleaning Java bytecode before release

Многие говорят о том, что Kotlin генерирует много дополнительного Java байткода и результат не оптимальный. Это незначительно влияет на производительность и объем кода. Это не мешает Java сторонникам на этом факте говорить, что их язык лучше.

В статье разбирается как можно избавиться от дополнительно генерированного Java байткода Kotlin компилятором и не платить цену за удобные фичи языка от JetBrains.
#R8 #Optimization #jakeWharton

R8 Optimization: Class Reflection and Forced Inlining

В новой серии статей Jake Wharton рассказывает о том как R8 умеет оптимизировать некоторые вызовы рефлексии и принудительный inline методов с помощью -alwaysinline.

Бойся ProGuard - R8 все качает мышцы и наращивает фичи
#R8 #JakeWharton #Optimization

R8 Optimization: Enum Ordinals and Names

Продолжение серии статей об оптимизациях, который выполняют R8. В этот раз разбираются Enum:
👉 inline вызовов функции ordinal()
👉 замена вызова функции name() на соответствующую строковую константу
#Obfuscation #Resources #Optimization

AabResGuard - A tool used to obfuscate aab resources

Чтоба защитить свой код от злоумышленников и оптимизировать его исполнение в Android разработке применяют R8/ProGuard. Но эти утилиты оптимизируют только Java byte code. А что с остальными файлами в AAB/APK? Ответ - ничего. Google не предоставляет каких либо инструментов для оптимизации ресурсов.

Энтузиасты решили исправить это и сделать тулзу, которая сможет выполнять с ресурсами:
🔥 Убрать дублирующиеся значения
🔥 Удалять ненужные файлы из папок META-INFO/ и lib/
🔥 Обфусцировать названия ресурсов
🔥 Удалять заданные строки из конечной билда

Проект пока находится в стадии разработке, но я с нетерпением жду стабильного релиза!
#Optimization

App size reduction at Microsoft SwiftKey

История того как в Microsoft оптимизировали размер SwiftKey на Android.

В статье разбирают:
👉 Зачем оптимизировать размер APK
👉 Оптимизация кода
👉 Оптимизация ресурсов
👉 Оптимизация нативного кода
#OkHttp #Networking #Optimization

Maximizing OkHttp connection reuse

Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.

К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Security.insertProviderAt(Conscrypt.newProvider(), 1);
#optimization #performance

Improving App Startup: Lessons from the Facebook App

История оптимизации времени запуска Android приложения Facebook. Кода и конкретных советов не приводится, но рассказывается про том как замеряли время запуска по метрикам Time-To-Initial-Display (отписывался фон) и Time-To-Full-Display (полная отрисовка). Статья содержит советы как делать и откуда начинать, а также на что обратить внимание во время оптимизации
#optimization

Reducing Android app size in practice at LinkedIn (7 мин)

LinkedIn делится своим практиками для снижения размера приложения: App Bundle, Dynamic Delivery, использование R8 и Resource Shrinking и др. Ничего нового для себя не узнал, но вот если мы не занимались вопросом оптимизации - рекомендую почитать
#compose #optimization

Jetpack Compose — Optimize list performance with Key (4 мин)

Статья об оптимизации построения вертикальных списков на основе Column