Устранение распространенных проблем с производительностью, Устранение распространенных проблем с производительностью, Устранение распространенных проблем с производительностью, Устранение распространенных проблем с производительностью

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

В этом разделе представлены руководства, объясняющие базовое поведение платформы Android для каждого типа проблем и пошагово описывающие, как диагностировать, профилировать и устранять их с помощью таких инструментов, как Android Studio Profiler, Perfetto, Logcat и ApplicationExitInfo .

Стабильность

  • ANR : Диагностика и устранение ошибок «Приложение не отвечает» (ANR), вызванных блокировкой потоков пользовательского интерфейса, операциями ввода-вывода основного потока, конфликтами блокировок или медленной работой широковещательных приемников.
  • Сбои : Прочитывайте трассировки стека, анализируйте вывод Logcat и предотвращайте необработанные исключения и сигналы от собственных систем.

Рендеринг и запуск

  • Медленная отрисовка : Выявление и устранение пропущенных или зависших кадров пользовательского интерфейса ( >16ms и >700ms ), вызванных ресурсоемкими операциями компоновки, проходами привязки или задержками основного потока.
  • Медленные сессии (только игры) : Измерьте частоту кадров с помощью SurfaceFlinger и оптимизируйте частоту кадров в играх, используя Android Frame Pacing (Swappy), Vulkan и Android Dynamic Performance Framework (ADPF).
  • Время запуска приложения : понимание внутренних механизмов холодного, теплого и горячего запуска, измерение времени до первоначального отображения (TTID) и времени до полного отображения (TTFD), а также оптимизация процесса запуска.

Управление памятью

Работа с батареей и фоновые процессы

Оптимизация прав доступа и сборки

  • Отказ в предоставлении доступа : Запрашивайте разрешения во время выполнения в контексте и четко объясняйте пользователям обоснование предоставления разрешений.
  • Оптимизация кода DEX : настройте правила сжатия, обфускации и оптимизации R8 для уменьшения размера DEX и повышения производительности во время выполнения.
,

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

В этом разделе представлены руководства, объясняющие базовое поведение платформы Android для каждого типа проблем и пошагово описывающие, как диагностировать, профилировать и устранять их с помощью таких инструментов, как Android Studio Profiler, Perfetto, Logcat и ApplicationExitInfo .

Стабильность

  • ANR : Диагностика и устранение ошибок «Приложение не отвечает» (ANR), вызванных блокировкой потоков пользовательского интерфейса, операциями ввода-вывода основного потока, конфликтами блокировок или медленной работой широковещательных приемников.
  • Сбои : Прочитывайте трассировки стека, анализируйте вывод Logcat и предотвращайте необработанные исключения и сигналы от собственных систем.

Рендеринг и запуск

  • Медленная отрисовка : Выявление и устранение пропущенных или зависших кадров пользовательского интерфейса ( >16ms и >700ms ), вызванных ресурсоемкими операциями компоновки, проходами привязки или задержками основного потока.
  • Медленные сессии (только игры) : Измерьте частоту кадров с помощью SurfaceFlinger и оптимизируйте частоту кадров в играх, используя Android Frame Pacing (Swappy), Vulkan и Android Dynamic Performance Framework (ADPF).
  • Время запуска приложения : понимание внутренних механизмов холодного, теплого и горячего запуска, измерение времени до первоначального отображения (TTID) и времени до полного отображения (TTFD), а также оптимизация процесса запуска.

Управление памятью

Работа с батареей и фоновые процессы

Оптимизация прав доступа и сборки

  • Отказ в предоставлении доступа : Запрашивайте разрешения во время выполнения в контексте и четко объясняйте пользователям обоснование предоставления разрешений.
  • Оптимизация кода DEX : настройте правила сжатия, обфускации и оптимизации R8 для уменьшения размера DEX и повышения производительности во время выполнения.