- sintaksis:
<profileable android:shell=["true" | "false"] android:enabled=["true" | "false"] />
- terdapat dalam:
<application>
- deskripsi:
- Menentukan cara profiler mengakses aplikasi ini.
- atribut:
android:shell
-
Menentukan apakah pengguna perangkat dapat membuat profil aplikasi ini melalui alat proses debug lokal atau tidak, seperti berikut:
- API pelacakan
android.os.Trace
(Android 11 dan yang lebih lama) simpleperf
- Perintah
am profile
- Profiler
perfetto
(memori native, memori Java, CPU)
false
, alat dan API ini hanya berfungsi saat aplikasidebuggable
. Aplikasi yang dapat di-debug akan mengalami penurunan performa yang signifikan dan bervariasi, serta tidak dapat digunakan untuk mengukur waktu secara akurat. Elemen ini sangat direkomendasikan untuk pengukuran performa lokal untuk mendapatkan hasil yang akurat.Elemen ini dirancang agar dapat digunakan dalam rilis, atau produksi, build untuk mengaktifkan pembuatan profil lokal. Hal ini memiliki risiko minimal pada eksposur data - tidak ada data memori yang dapat dibaca oleh alat pembuatan profil host dan proses shell. Hanya pelacakan tumpukan yang dapat dibaca, yang biasanya di-obfuscate atau tidak memiliki simbol dalam build rilis.
- API pelacakan
android:enabled
-
Menentukan apakah aplikasi dapat dibuat profilnya oleh layanan sistem atau alat shell.
Untuk pilihan yang terakhir, Anda juga menetapkan
android:shell
. Jika nilainya adalah salah (false), aplikasi tersebut tidak dapat dibuat profilnya sama sekali. Nilai defaultnya adalah benar (true). Atribut ini ditambahkan di level API 30.
- diperkenalkan di:
- Level API 29
<dapat dibuat profil>
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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"]]