Оснастка
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Иногда бывает сложно определить, где кроется проблема с производительностью и какой код следует оптимизировать. Начните с использования инструментов, которые помогут сузить область поиска проблемы.
Инспектор макетов
Используйте инспектор макетов для проверки макета и просмотра количества рекомпозиций.
Низкая производительность пользовательского интерфейса часто связана с ошибкой в коде, которая приводит к необходимости его многократной перекомпоновки. С другой стороны, некоторые ошибки в коде могут помешать перекомпоновке пользовательского интерфейса в нужный момент, и изменения в нём не будут отображаться на экране. Отслеживание перекомпоновок может помочь обнаружить обе эти проблемы.
Перекомпозиция сама по себе неплоха, однако неожиданная перекомпозиция может стать проблемой.
Более подробную информацию см. в документации по счетчикам перекомпоновки в инспекторе макетов.
Трассировка композиции
Используйте трассировку композиции для отслеживания компонуемых функций в системной трассировке. Трассировки часто являются лучшим источником информации при первом рассмотрении проблемы производительности. Они позволяют сформулировать гипотезу о сути проблемы и определить, с чего начать поиск.
Дополнительные ресурсы
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-30 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-30 UTC."],[],[],null,["# Tooling\n\nIt can be hard to know where a performance issue lies and what code to start\noptimizing. Start by using tools to help narrow down where your issue is.\n\nLayout Inspector\n----------------\n\nUse the [Layout Inspector](/develop/ui/compose/tooling/debug#layout_inspector) to inspect your layout and see recomposition\ncounts.\n\nIf your UI has poor performance, this is often because of a coding error that\nforces your UI to be recomposed excessively. On the other hand, some coding\nerrors can prevent your UI from being recomposed when it needs to be, which\nmeans UI changes aren't showing up on the screen. Tracking recompositions can\nhelp find both of these kinds of problems.\n\nRecomposition in itself is not bad; however, unexpected recomposition can be an\nissue.\n\nFor more information, see the Layout Inspector [recomposition counts](/develop/ui/compose/tooling/debug#recomposition-counts)\ndocumentation.\n\nComposition tracing\n-------------------\n\nUse [composition tracing](/develop/ui/compose/tooling/tracing) to trace your composable functions in a system\ntrace. Traces are often the best source of information when first looking into a\nperformance issue. They allow you to form a hypothesis of what the issue is and\nwhere to start looking.\n\nAdditional Resources\n--------------------\n\n- **[App performance guide](/topic/performance/overview)**: Discover best practices, libraries, and tools to improve performance on Android.\n- **[Inspect Performance](/topic/performance/inspecting-overview):** Inspect app performance.\n- **[Benchmarking](/topic/performance/benchmarking/benchmarking-overview):** Benchmark app performance.\n- **[App startup](/topic/performance/appstartup/analysis-optimization):** Optimize app startup.\n- **[Baseline profiles](/baseline-profiles):** Understand baseline profiles."]]