Что считать запуском приложения? От нажатия иконки приложения в лаунчере до показа интерфейса пользователю?
PY, автор LeakCanary, в новой статье рассказывает про запуск, который по его мнению начинается когда на экране нет видимых пользователю Activity. Тут еще и несколько типов стартов: холодный, прогретый и горячий.
#performance
PY, автор LeakCanary, в новой статье рассказывает про запуск, который по его мнению начинается когда на экране нет видимых пользователю Activity. Тут еще и несколько типов стартов: холодный, прогретый и горячий.
#performance
👍23👎9🔥1
Весь опыт из статьи Py вынес в библиотеку Papa (Performance of Android Production Applications), которая позволяет отслеживать разные типы событий.
ВАЖНО! Библиотека предназначается только для приложений Square и может некорректно работать у вас
#performance
ВАЖНО! Библиотека предназначается только для приложений Square и может некорректно работать у вас
#performance
👎15🤔10
В новой статье PY рассказывается как утечки памяти в Android приложении негативно влияют на отзывчивость UI. Совет - подключите LeakCanary и отслеживайте работу вашего приложения, особенно на слабых устройствах
#performance
#performance
👍45👎7
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Хотите узнать насколько хорош K2 компилятор в скорости? Разработчик взял приложения Now in Android и включил везде где можно K2 (kapt все также работает на старом компиляторе). Результаты не впечатляют пока, но надо помнить что это еще в разработке и нужно ждать когда все перейдет на K2. Подробный тест тут
#k2 #performance
#k2 #performance
👎41👍12
Особенности SRE и Observability в мобильных приложениях (12 мин)
Менеджер команд производительности и надежности рассказывает про тот как обеспечивается высокая скорость работы приложения и уменьшается количество крешей
#performance
Менеджер команд производительности и надежности рассказывает про тот как обеспечивается высокая скорость работы приложения и уменьшается количество крешей
#performance
👍12👎10
Нашел гайд по оптимизации производительности процессора и недопущение его перегрева на основе Android Dynamic Performance Framework (ADPF)
🔗 Пример с использованием API
🔗 Codelab Integrating Adaptability Features Into Your Native Game
#performance
🔗 Пример с использованием API
🔗 Codelab Integrating Adaptability Features Into Your Native Game
#performance
👍28👎5
Что нового в Jetpack Benchmark 1.2.0 (7 мин, ссылка без VPN)
Baseline Profiles
👉 Baseline Profiles получили стабильный статус
👉 Android Studio Iguana (Canary статус) содерджит шаблон для генерации Baseline Profile модуля
👉 Gradle плагин для генерации Baseline Profile
👉 Возможность задания какие классы должны быть включены и нет в Baseline Profile
Macrobenchmark
👉 MethodTracing позволит какие методы были вызваны
👉 StackSampling покажет время которое происходит в вызове каждого метода
👉 Быстрая валидация с dryRun
👉 Поддержка Perfetto SDK Tracing
👉 Замер расхода заряда батареи
Microbenchmark
👉 Профилирование теперь запускается после сбора всех метрик
👉 Возможность настройки как собирать метрики
👉 Получение состояния бенчмарка без JUint API
👉 PerfettoTraceRule позволит подробнее анализировать производительность теста
#performance
Baseline Profiles
👉 Baseline Profiles получили стабильный статус
👉 Android Studio Iguana (Canary статус) содерджит шаблон для генерации Baseline Profile модуля
👉 Gradle плагин для генерации Baseline Profile
👉 Возможность задания какие классы должны быть включены и нет в Baseline Profile
Macrobenchmark
👉 MethodTracing позволит какие методы были вызваны
👉 StackSampling покажет время которое происходит в вызове каждого метода
👉 Быстрая валидация с dryRun
👉 Поддержка Perfetto SDK Tracing
👉 Замер расхода заряда батареи
Microbenchmark
👉 Профилирование теперь запускается после сбора всех метрик
👉 Возможность настройки как собирать метрики
👉 Получение состояния бенчмарка без JUint API
👉 PerfettoTraceRule позволит подробнее анализировать производительность теста
#performance
👍10👎7
В блоге Android Developers рассказали про оптимизацию порядка файлов для ускорения инициализации нативных библиотек
#performance #ndk
#performance #ndk
👍11👎8
Improve Your Android App Performance With Baseline Profiles (9 мин, EN, ссылка без VPN) - инструкция как создать Baseline Profile в вашем приложении для ускорения его работы, в особенности при первых запусках. Как раз свежая версия Android Studio стала поддерживать генерацию профиля через UI
#androidstudio #performance
#androidstudio #performance
👍11🤯7🙏2
Разработчик рассказывает (EN, 4 мин, ссылка без VPN) как ускоряли выполнение Unit тестов в Android приложение:
👉 Отключение Crashlytics для тестов
👉 Минимизация генерации кода или замена её рефлексией
#teting #performance
👉 Отключение Crashlytics для тестов
👉 Минимизация генерации кода или замена её рефлексией
#teting #performance
👍5
Инструкция (EN, 7 мин, ссылка без VPN) по автоматизации генерации Baseline Profile на CI. Нужно будет запускать эмулятор или подключенное устройство к CI, где запустить генерацию профиля
#performance #ci
#performance #ci
👍8
Разработчик из Booking делится зачем делали своё решение для замера производительности приложения во время работы. В статье (EN, 9 мин, ссылка без VPN) рассказывается какие метрики решили замерять и как, а именно: время запуска приложения, время до показа экрана, скорость рендеринга, время простоя
Исходный код для iOS и Android
#performance #analytics
Исходный код для iOS и Android
#performance #analytics
👍11
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Jake Wharton решил каппнуть в того как лучше делать маппинг набора значений в одну строку и какую лучше выбрать реализацию. Массивы с лямбдой инициализации значений будут довольно полезны
#performance
#performance
👍23
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Ну наконец-то кто-то это сделал❗ Показывают почему не стоит использовать активно mapOf(vararg pairs: Pair<K, V>) из-за создания промежуточных объектов. Подробности в статье (5 мин)
Недавно в Android завели новые типы - ScatterMap, которые могут помочь вам ускорить работу кода и снизить нагрузку на память
#performance
Недавно в Android завели новые типы - ScatterMap, которые могут помочь вам ускорить работу кода и снизить нагрузку на память
#performance
🔥31
Стартует интересный опыт - разработчик написал одно и тоже приложения 15 раз на разных стеках UIKit, SwiftUI, XML, Compose и Compose Multiplatform и меняя другие технологии.
🔗 Часть 1 (EN, 12 мин). Методология (Ссылка без VPN)
🔗 Часть 2 (EN, 21 мин). Результаты производительности (Ссылка без VPN)
🔗 Часть 3 (EN, 10 мин). Подведение итогов (Ссылка без VPN)
#performance @android_broadcast
🔗 Часть 1 (EN, 12 мин). Методология (Ссылка без VPN)
🔗 Часть 2 (EN, 21 мин). Результаты производительности (Ссылка без VPN)
🔗 Часть 3 (EN, 10 мин). Подведение итогов (Ссылка без VPN)
#performance @android_broadcast
🔥34👍13❤1
Forwarded from Compose Broadcast (Кирилл Розов)
Осознанная оптимизация Compose 2: В борьбе с композицией (15 мин)
В статье автор делится свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему и почитать первую часть статьи
@compose_broadcast #performance
В статье автор делится свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему и почитать первую часть статьи
@compose_broadcast #performance
🔥33❤1
Генерация Baseline Profile теперь стала проще - все можно сделать через новый визард (подробности тут)
#androidstudio #performance
#androidstudio #performance
🔥21👍2
На сайте Android Developers почитайте рекомендации про работе с SQLite:
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
👍14
Чтобы ускорить синхронизацию Gradle стоит правильно описать репозитории и за какими зависимостями туда ходить. Например, в google репо стоит ходить только за androidx и google.
Такие оптимизации позволили ускорить синк с 6 минут до 3+ ( ускорение на 40%). Подробности тут
Кстати, как вариант - поднять свой собственный Nexus репозиторий, который соберет все артефакты из других репозиториев. В проекте будет один репо строго
#gradle #performance
Такие оптимизации позволили ускорить синк с 6 минут до 3+ ( ускорение на 40%). Подробности тут
Кстати, как вариант - поднять свой собственный Nexus репозиторий, который соберет все артефакты из других репозиториев. В проекте будет один репо строго
#gradle #performance
❤65🔥18👍6