- Syntaxe :
<profileable android:shell=["true" | "false"] android:enabled=["true" | "false"] />
- Contenu dans :
<application>
- Description :
- Indique comment les profileurs peuvent accéder à cette application.
- Attributs :
android:shell
-
Spécifie si l'utilisateur de l'appareil peut profiler cette application via des outils de débogage locaux tels que les suivants :
- API de traçage
android.os.Trace
(Android 11 et versions antérieures) simpleperf
- Commandes
am profile
- Profileurs
perfetto
(mémoire native, mémoire Java, processeur)
false
, ces API et outils ne fonctionneront que si l'application estdebuggable
. Les applications débogables entraînent une dégradation importante et variable des performances, et ne sont pas utiles pour mesurer les codes temporels avec précision. Cet élément est vivement recommandé pour mesurer les performances en local, afin d'obtenir des résultats précis.Cet élément est conçu pour être utilisé en version de production pour permettre le profilage local. Cela pose un risque minimal d'exposition des données : aucune donnée mémoire n'est lisible par les outils de profilage d'hôte et le processus shell. Seules les traces de la pile sont lisibles, et elles sont généralement obscurcies ou dépourvues de symboles dans les builds.
- API de traçage
android:enabled
-
Spécifie si l'application peut être profilée par des services système ou des outils shell.
Dans ce dernier cas, vous devez également définir
android:shell
. Si la valeur est "false", l'application ne peut pas du tout être profilée. La valeur par défaut est "true". Cet attribut a été ajouté au niveau d'API 30.
- Première apparition :
- Niveau d'API 29
<profileable>
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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"]]