- синтаксис:
<profileable android:shell=["true" | "false"] android:enabled=["true" | "false"] />
- содержится в:
-
<application>
- описание:
- Указывает, как профилировщики могут получить доступ к этому приложению.
- атрибуты:
-
android:shell
- Указывает, может ли пользователь устройства профилировать это приложение с помощью локальных инструментов отладки, таких как следующие:
- API-интерфейсы трассировки
android.os.Trace
(Android 11 и более ранние версии) -
simpleperf
- команды
am profile
- профилировщики
perfetto
(собственная память, память Java, процессор)
false
, эти инструменты и API работают только тогда, когда приложениеdebuggable
. Отлаживаемые приложения приводят к значительному и разнообразному снижению производительности и бесполезны для точного измерения времени. Этот элемент настоятельно рекомендуется для локальных измерений производительности, чтобы получить точные результаты.Этот элемент предназначен для использования в выпускных или производственных сборках для обеспечения локального профилирования. Это сопряжено с минимальным риском раскрытия данных: никакие данные памяти не могут быть прочитаны инструментами профилирования хоста и процессом оболочки. Читаемы только трассировки стека, которые в сборках релизов обычно запутаны или в них отсутствуют символы.
- API-интерфейсы трассировки
-
-
android:enabled
- Указывает, может ли приложение профилироваться с помощью системных служб или инструментов оболочки. Для последнего вы также устанавливаете
android:shell
. Если значение равно false, приложение вообще не может быть профилировано. По умолчанию верно. Этот атрибут был добавлен на уровне API 30.
-
- представлено в:
- API-уровень 29
<профилируемый>
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 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-29 UTC."],[],[],null,["# <profileable\u003e\n\nsyntax:\n:\n\n ```xml\n \u003cprofileable android:shell=[\"true\" | \"false\"] android:enabled=[\"true\" | \"false\"] /\u003e\n ```\n\ncontained in:\n: [\u003capplication\u003e](/guide/topics/manifest/application-element)\n\ndescription:\n: Specifies how profilers can access this application.\n\nattributes:\n:\n\n `android:shell`\n :\n Specifies whether the user of the device can profile this application through local debugging\n tools such as the following:\n\n - [android.os.Trace](/reference/kotlin/android/os/Trace) tracing APIs (Android 11 and lower)\n - [simpleperf](/ndk/guides/simpleperf)\n - [am profile](/studio/command-line/adb#am) commands\n - [`perfetto` profilers](/studio/command-line/perfetto) (native memory, Java memory, CPU)\n\n\n If this isn't set, or is set to `false`, these tools and APIs work only when an app is\n [debuggable](/guide/topics/manifest/application-element#debug).\n Debuggable apps incur significant and varied performance degradation and aren't useful for\n measuring timing accurately. This element is strongly recommended for local performance\n measurements, to capture accurate results.\n\n This element is designed to be usable in release, or production, builds to enable local profiling.\n It incurs minimal risk of data exposure: no memory data is readable by the host profiling tools\n and the shell process. Only stack traces are readable, which are typically obfuscated or lacking symbols\n in release builds.\n\n:\n\n `android:enabled`\n :\n Specifies whether the application can be profiled by system services or shell tools.\n For the latter, you also set [`android:shell`](#shell).\n If false, the application can't be profiled at all. The default is true.\n\n This attribute was added in API level 30.\n\nintroduced in:\n: API Level 29"]]