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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#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
#gradle #optimization

New year, faster builds (6 мин)

Набор рекомендаций как ускорить сборку вашего приложения. Ничего экстраординарного тут не найти, но вот тем кто вообще никак не задумывался об оптимизациях будет полезно изучить:
👉 Проверяйте настройку с помощью Gradle Doctor
👉 Следите за зависимостями
👉 Делайте анализ сборок, чтобы знать про проблемные места
👎15👍10
Если вы не занимались оптимизаций размера приложения и хотите этим заняться - почитайте статью (12 мин). Хороший старт чтобы понять как изучить составные части и как найти места сокращения веса APK/AppBundle

#optimization
😐23👍19🤔1