- sintaxis:
<profileable android:shell=["true" | "false"] android:enabled=["true" | "false"] />
- se incluye en:
<application>
- descripción:
- Especifica cómo los generadores de perfiles pueden acceder a esta aplicación.
- atributos:
android:shell
-
Indica si el usuario del dispositivo puede generar perfiles de esta aplicación mediante herramientas de depuración locales, como las siguientes:
- APIs de seguimiento de
android.os.Trace
(Android 11 y versiones anteriores) simpleperf
- Comandos
am profile
- Generadores de perfiles
perfetto
(memoria nativa, memoria Java, CPU)
false
, estas herramientas y APIs solo funcionarán cuando una app seadebuggable
. Las apps depurables incurren en una degradación del rendimiento significativa y variada, y no son útiles para medir el tiempo con precisión. Recomendamos este elemento para las mediciones de rendimiento locales a fin de obtener resultados precisos.Este elemento está diseñado para usarse en compilaciones de lanzamiento y producción a fin de habilitar la generación de perfiles local. Esto genera un riesgo mínimo acerca de la exposición de datos: las herramientas de creación de perfiles del host y el proceso del shell no pueden leer los datos de la memoria. Solo se pueden leer los seguimientos de pila, que suelen estar ofuscados o carecen de símbolos en las compilaciones de lanzamiento.
- APIs de seguimiento de
android:enabled
-
Especifica si los servicios del sistema o las herramientas de shell pueden perfilar la aplicación.
Para la última, también debes configurar
android:shell
. Si es falso, no se puede perfilar la aplicación. El valor predeterminado es true. Este atributo se agregó en el nivel de API 30.
- primera inclusión:
- Nivel de API 29
<perfilable>
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (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"]]