ProfileInstaller

  
Ermöglicht es Bibliotheken, Kompilierungs-Traces vorab zu füllen, die von ART gelesen werden sollen.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alphaversion
2. Oktober 2024 1.4.1 - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von ProfileInstaller hinzufügen möchten, müssen Sie Ihrem Projekt das Maven-Repository von Google hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:

Cool

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.3.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.4

Version 1.4.1

2. Oktober 2024

androidx.profileinstaller:profileinstaller:1.4.1 wurde veröffentlicht. Version 1.4.1 enthält diese Commits.

Fehlerkorrekturen

  • Die Unterstützung für die Aufzeichnung von Baseline-Profilen mit mehreren Prozessen wurde durch sequenzielle Signalisierung mehrerer Prozesse behoben. Für diese Fehlerbehebung müssen sowohl das Modul „Macrobenchmark/Baseline Profile“ als auch die App auf androidx.benchmark:benchmark-macro:1.4.0-alpha02 aktualisiert werden. (I0f519, b/366231469)androidx.profileinstaller:profileinstaller:1.4.1

Version 1.4.0

18. September 2024

androidx.profileinstaller:profileinstaller:1.4.0 wurde veröffentlicht. Version 1.4.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.3.0

  • ProfileInstaller unterstützt jetzt das Erfassen und Installieren von Profilen bei API 35 und höher. Updates für ProfileInstaller sollten für Updates der Plattformversion nicht mehr erforderlich sein. (6f9f6fa)
  • Behebung eines Absturzes beim Setzen von Shadern unter Android U (API 34) und in Emulatoren. (I031ca, b/274314544)
  • Fehler bei der Transcodierung des Methodenflags im V_015S-Profilformat beheben (aosp/2906631, aosp/2847740)

Version 1.4.0-rc01

4. September 2024

androidx.profileinstaller:profileinstaller:1.4.0-rc01 enthält keine Änderungen gegenüber der letzten Betaversion. Version 1.4.0-rc01 enthält diese Commits.

Version 1.4.0-beta01

21. August 2024

androidx.profileinstaller:profileinstaller:1.4.0-beta01 wurde ohne Änderungen gegenüber der letzten Alphaversion veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

Version 1.4.0-alpha02

7. August 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.

Neue Funktionen

  • API 35-Unterstützung zum Profile Installer hinzugefügt. (6f9f6fa)

Fehlerkorrekturen

  • Die manuelle Kennzeichnung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies bei Verwendung von R8 mit AGP 7.3 oder höher (z.B. R8 Version 3.3) und für alle Builds bei Verwendung von AGP 8.1 oder höher (z.B. D8 Version 8.1) automatisch über die API-Modellierung erfolgt. Kunden, die AGP nicht verwenden, wird empfohlen, auf D8 Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (If6b4c, b/345472586)

Version 1.4.0-alpha01

7. Februar 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha01 wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Dem Profilprüfer wurde ein Fehlercode für das Fehlen eines eingebetteten Profils hinzugefügt. (Ifb109, b/313928520)
  • Behebung eines Absturzes beim Setzen von Shadern unter Android U (API 34) und in Emulatoren. (I031ca, b/274314544)
  • Unterstützung für Android U im Profil-Installationsprogramm aktiviert. (Iaf177)
  • Das Problem wurde behoben, dass das Profilinstallationsprogramm unter Android U fehlgeschlagen ist, weil das aktuelle Profil beim Start des Prozesses nicht leer erstellt wurde. (Ie3899)
  • Fehler bei der Bitmap-Transcodierung im V_015S-Profilformat behoben (aosp/2906631) und (aosp/2847740)

Version 1.3

Version 1.3.1

3. Mai 2023

androidx.profileinstaller:profileinstaller:1.3.1 wurde veröffentlicht. Version 1.3.1 enthält diese Commits.

Fehlerkorrekturen

  • Unterstützung für Android U im Profil-Installationsprogramm aktiviert (Iaf177)
  • Das Problem wurde behoben, dass das Profilinstallationsprogramm unter Android U fehlgeschlagen ist, weil das aktuelle Profil beim Start des Prozesses nicht leer erstellt wurde. (Ie3899)

Version 1.3.0

22. März 2023

androidx.profileinstaller:profileinstaller:1.3.0 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • Ein NullPointerException in ProfileInstallReceiver wurde behoben. (b/243851384)
  • Die ProfileVerifier API wurde hinzugefügt, um innerhalb der App zu prüfen, ob ein Baseline-Profil erstellt, geplant oder fehlt (I263a4, b/246653809)
  • Es wird ein neuer Shell-Broadcast hinzugefügt, mit dem Macrobenchmark In-Memory-Profildaten vollständig auf die Festplatte auslagern kann, damit sie in die Generierung des Baseline-Profils einbezogen werden. Dies ist erforderlich, um mit der Macrobenchmark-Bibliothek Baseline-Profile mit BaselineProfileRule zu erfassen und die Profilleistung mit CompilationMode.Partial(warmupIterations) zu bewerten.
  • Diagnosecode zum Erkennen komprimierter Baseline-Profile hinzugefügt Komprimierte Baseline-Profile können aufgrund des CPU-Overheads nicht vom Profileinstaller in Makrobenchmarks oder in der Produktion installiert werden. Sie sollten beim Erstellen Ihrer App vermieden werden. Aktualisieren Sie dazu entweder auf Studio/AGP Electric Eel oder auf bundletool Version 1.13.1(I86413, b/261998144).
  • Es wurden Hooks für den Makro-Benchmark hinzugefügt, um Profile zu erfassen und den Shader-Cache zu löschen, die für die Generierung von Baseline-Profilen oder Makro-Benchmarks auf nicht gerooteten Geräten erforderlich sind (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)

Version 1.3.0-rc01

8. März 2023

androidx.profileinstaller:profileinstaller:1.3.0-rc01 wurde ohne Änderungen seit der letzten Betaversion veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta01

8. Februar 2023

androidx.profileinstaller:profileinstaller:1.3.0-beta01 wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

API-Änderungen

  • Die Unterstützung für die Verarbeitung komprimierter Profile wurde entfernt. Das Öffnen und Dekomprimieren führt beim Starten zu einer CPU-Auslastung von mehreren Zehntel Millisekunden. Stattdessen wurde eine Diagnose hinzugefügt, um falsch komprimierte Baseline-Profile zu erkennen. (I86413, b/261998144)

Version 1.3.0-alpha03

11. Januar 2023

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • Aktiviert die Verarbeitung komprimierter oder unkomprimierter Baseline-Profile (Ic61a0)
  • MacrobenchmarkScope.dropShaderCache() stürzt nicht mehr ab, da die Broadcast-Registry im Manifest von Profileinstaller korrigiert wurde (I5c728, b/258619948)

Version 1.3.0-alpha02

9. November 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

API-Änderungen

  • Es wurde ein Hook für Benchmarks hinzugefügt, um den Shader-Cache zu löschen und so eine gleichbleibende Leistung bei kalten Starts zu gewährleisten, insbesondere bei der Kompilierung mit Profilen aus Aufwärmiterationen. Dieses Update ist erforderlich, um Kaltstarts mit benchmark-macro-junit4:1.2.0-alpha05 oder höher zu erfassen. Informationen zu den API-Änderungen der Benchmark-Bibliothek finden Sie auf der Seite Benchmark 1.2.0-alpha07. (Ia5171, b/231455742)

Version 1.3.0-alpha01

24. Oktober 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha01 wurde veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

API-Änderungen

  • Die ProfileVerifier API wurde hinzugefügt, um innerhalb der App zu prüfen, ob ein Baseline-Profil erstellt, geplant oder fehlt (I263a4, b/246653809)
  • Fügt einen neuen Shell-Broadcast hinzu, der es MacroBenchmark ermöglicht, speicherinterne Profildaten vollständig auf das Laufwerk zu leeren, damit sie bei der Erstellung von Referenzprofilen berücksichtigt werden. Dies ist erforderlich, um mit der Macrobenchmark-Bibliothek Baseline-Profile mit BaselineProfileRule zu erfassen und die Profilleistung mit CompilationMode.Partial(warmupIterations) zu bewerten. (Ie0a7d, b/250083467, b/253094958)

Version 1.2.2

Version 1.2.2

11. Januar 2023

androidx.profileinstaller:profileinstaller:1.2.2 wird veröffentlicht. Version 1.2.2 enthält diese Commits.

Fehlerkorrekturen

  • Aktiviert die Verarbeitung komprimierter oder unkomprimierter Baseline-Profile (Ic61a0)

Version 1.2.1

Version 1.2.1

7. Dezember 2022

androidx.profileinstaller:profileinstaller:1.2.1 wird veröffentlicht. Version 1.2.1 enthält diese Commits.

Neue Funktionen

  • Profileinstaller für S_V2 (API 32) und TIRAMISU (API 33) aktivieren (b/254900303)

Version 1.2.0

Version 1.2.0

27. Juli 2022

androidx.profileinstaller:profileinstaller:1.2.0 wird veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Das ab Android 12 verwendete ART-Profilformat wird jetzt unterstützt.
  • Fügen Sie in ProfileInstallReceiver neue APIs hinzu, um bei der Verwendung von Baseline-Profilen konsistentere Ergebnisse mit Macrobenchmarks zu erzielen.

Version 1.2.0-rc01

15. Juni 2022

androidx.profileinstaller:profileinstaller:1.2.0-rc01 wurde veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

  • Diese Version ist mit androidx.profileinstaller:profileinstaller:1.2.0-beta03 identisch.

Version 1.2.0-beta03

1. Juni 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta03 wird veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.

Version 1.2.0-beta02

18. Mai 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta02 wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.

  • Keine Änderungen, zur Unterstützung der Compose-Versionen 1.2.0-beta02 erforderlich.

Version 1.2.0-beta01

11. Mai 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta01 wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

API-Änderungen

  • Fügen Sie in ProfileInstallReceiver neue APIs hinzu, um bei Verwendung von Baseline-Profilen konsistentere Ergebnisse mit Macrobenchmarks zu erzielen. (If2ae5, b/215740637)

Fehlerkorrekturen

  • Der Profile Installer zeigt eine hilfreiche Meldung an, wenn versucht wird, das Metadatenformat V_001 unter Android 12 und höher zu verwenden. (aosp/1978526, b/217502387)
  • Der Profil-Installer verwendet jetzt androidx.startup Version 1.1.1. (aosp/2077099, b/229828376)

Version 1.2.0-alpha02

26. Januar 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Diese Version ist mit 1.2.0-alpha01 identisch.

Version 1.2.0-alpha01

12. Januar 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 wurde veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Das ART-Profilformat wird ab Android 12 unterstützt.

Version 1.1.0

Version 1.1.0

9. Februar 2022

androidx.profileinstaller:profileinstaller:1.1.0 wurde veröffentlicht. Version 1.1.0 enthält diese Commits.

Version 1.1.0-rc01

15. Dezember 2021

androidx.profileinstaller:profileinstaller:1.1.0-rc01 wird seit 1.1.0-beta04 ohne Updates veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Version 1.1.0-beta04

1. Dezember 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta04 wird veröffentlicht. Version 1.1.0-beta04 enthält diese Commits.

Version 1.1.0-beta03

17. November 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta03 wird veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Aktualisiert, um Compose 1.1.0-beta03 zu unterstützen

Version 1.1.0-beta02

3. November 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta02 wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Aktualisiert, um Compose 1.1.0-beta02 zu unterstützen

Version 1.1.0-beta01

27. Oktober 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta01 wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

  • Keine Änderungen seit 1.1.0-alpha07.

Version 1.1.0-alpha07

13. Oktober 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 wurde veröffentlicht. Version 1.1.0-alpha07 enthält diese Commits.

Neue Funktionen

  • Unterstützung für Profm unter Android N hinzugefügt

Version 1.1.0-alpha06

29. September 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha06 wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

Fehlerkorrekturen

  • Behebung von Transcodierungsproblemen des Profileinstallers bei N, O und O_MR1 (I12d75)

Version 1.1.0-alpha05

15. September 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 wird veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Die Profiltranscodierung für Android Nougat und Android Oreo für Multidex-APKs wurde behoben.

Version 1.1.0-alpha04

1. September 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha04 wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • ProfileInstaller wurde korrigiert, damit Apps mit Baseline-Profilen Makro-Benchmarks mit CompilationMode.BaselineProfile einfacher ausführen können. (I42657, b/196074999)

Version 1.1.0-alpha03

18. August 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha03 wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

  • Ändern Sie das Überspringungsverhalten des Profilinstallationsprogramms, um die PackageInfo.lastUpdatedTime in einer Datei im Dateiverzeichnis der App zu protokollieren und vor der Installation des Profils bei der nächsten Ausführung zu vergleichen. (Ib93d1)
  • Profilformat auf P-, Q- und R-Geräten so anpassen, dass sie den ART-Anforderungen entsprechen (I84e89)

Version 1.1.0-alpha02

4. August 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 wurde veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.

Aktualisiert, um mit Compose 1.1.0-alpha01 kompatibel zu sein.

Version 1.1.0-alpha01

21. Juli 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha01 wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den in bestimmten Fällen der strenge Modus ausgelöst wurde.

Version 1.0

Version 1.0.4

13. Oktober 2021

androidx.profileinstaller:profileinstaller:1.0.4 wird veröffentlicht. Version 1.0.4 enthält diese Commits.

  • Aktualisiert, um Compose 1.0.4 zu unterstützen

Version 1.0.3

29. September 2021

androidx.profileinstaller:profileinstaller:1.0.3 wird veröffentlicht. Version 1.0.3 enthält diese Commits.

  • Aktualisiert, um Compose 1.0.3 zu unterstützen

Version 1.0.2

1. September 2021

androidx.profileinstaller:profileinstaller:1.0.2 wurde veröffentlicht. Version 1.0.2 enthält diese Commits.

Fehlerkorrekturen

  • Profiltranscodierung für P-, Q- und R-Geräte hinzugefügt. Auf diesen Geräten wird das Profil daher transkodiert, damit es immer von ART verwendet werden kann. Bisher wurde die Transcodierung auf diesen Plattformen übersprungen, was manchmal dazu führte, dass ART das Quellprofil nicht verarbeiten konnte. Keine Änderungen an Entwickler-APIs.

Version 1.0.1

4. August 2021

androidx.profileinstaller:profileinstaller:1.0.1 wird veröffentlicht. Version 1.0.1 enthält diese Commits.

Aktualisiert, um mit Compose 1.0.1 kompatibel zu sein.

Version 1.0.0

28. Juli 2021

androidx.profileinstaller:profileinstaller:1.0.0 wird veröffentlicht. Version 1.0.0 enthält diese Commits.

Wichtige Funktionen von 1.0.0

Profile Installer ist eine neue Bibliothek, mit der Bibliotheken und Anwendungen „Profilregeln“ definieren und ART-Profilinformationen mit einem APK bündeln können. Diese Bibliothek installiert diese Profile nach dem Start der Anwendung. Dies kann genutzt werden, um die Anwendungsleistung zu verbessern.

Weitere Informationen zu diesen Profilregeln und ihrer Funktionsweise finden Sie in den ausführlichen Versionshinweisen unter 1.0.0-beta01.

Version 1.0.0-rc02

14. Juli 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc02 wird veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Version 1.0.0-rc01

1. Juli 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc01 wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Dies ist eine RC-Release ohne Änderungen gegenüber der Betaversion.

Version 1.0.0-beta01

16. Juni 2021

androidx.profileinstaller:profileinstaller:1.0.0-beta01 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

Zweck der Bibliothek

Profile Installer ist eine neue Bibliothek, mit der Bibliotheken und Anwendungen „Profilregeln“ definieren und ART-Profilinformationen mit einem APK bündeln können. Diese Bibliothek installiert diese Profile nach dem Start der Anwendung. So lässt sich die Anwendungsleistung verbessern.

Diese Profilinstallation erfolgt mit der androidx.startup-Bibliothek. Wenn Sie die Profilinstallation aus irgendeinem Grund deaktivieren möchten, können Sie das Manifest ändern, um es zu entfernen:


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

Dies ist besonders nützlich, wenn Ihre App anspruchsvolle Startanforderungen hat und Sie die Profilinstallation manuell mit der ProfileInstaller.writeProfile API auslösen möchten.

Was sind Profilregeln?

  • Profilregeln für eine Bibliothek werden in einer Textdatei baseline-prof.txt im Verzeichnis src/main oder einem ähnlichen Verzeichnis angegeben. Die Datei enthält eine Regel pro Zeile. Eine Regel ist in diesem Fall ein Muster, das mit Methoden oder Klassen in der Bibliothek abgeglichen wird. Die Syntax für diese Regeln ist eine Obermenge des visuell lesbaren ART-Profilformats, das bei Verwendung von adb shell profman --dump-classes-and-methods ... verwendet wird. Diese Regeln können auf eine von zwei Arten auf Methoden oder Klassen ausgerichtet werden.

  • Eine Methodenregel hat das folgende Muster:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Eine Klassenregel hat das folgende Muster:

    <CLASS_DESCRIPTOR>
    
  • Hier ist <FLAGS> eines oder mehrere der Zeichen H, S und P, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.

  • <CLASS_DESCRIPTOR> ist der Deskriptor für die Klasse, zu der die Zielmethode gehört. Die Klasse androidx.compose.runtime.SlotTable hätte beispielsweise den Deskriptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> ist die Signatur der Methode und enthält den Namen, die Parametertypen und die Rückgabetypen der Methode. Die Methode fun isPlaced(): Boolean für LayoutNode hat beispielsweise die Signatur isPlaced()Z.

  • Diese Muster können Platzhalter (**, * und ?) enthalten, damit eine einzelne Regel mehrere Methoden oder Klassen umfassen kann.

Wozu dienen die Regeln?

  • Eine Methode mit dem Flag H gibt an, dass diese Methode eine "heiße" Methode ist und im Voraus kompiliert werden sollte.

  • Eine Methode mit dem Flag S wird beim Start aufgerufen und sollte vorab kompiliert werden, um die Kosten für die Kompilierung und Interpretation der Methode beim Start zu vermeiden.

  • Eine Methode mit dem Flag P gibt an, dass es sich um eine Methode handelt, die nach dem Start aufgerufen wird.

  • Eine Klasse, die in dieser Datei vorhanden ist, wird beim Start verwendet und sollte im Heap vorab zugewiesen werden, um die Kosten für das Laden der Klasse zu vermeiden.

Wie funktioniert das?

  • Bibliotheken können diese Regeln definieren, die in AAR-Artefakte gepackt werden. Wenn dann ein APK mit diesen Artefakten erstellt wird, werden diese Regeln zusammengeführt und die zusammengeführten Regeln werden verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das für das APK spezifisch ist. ART kann dieses Profil dann nutzen, wenn das APK auf den Geräten installiert ist, um im Voraus eine bestimmte Teilmenge der App zu kompilieren und so die Leistung der App zu verbessern, insbesondere bei der ersten Ausführung. Dies hat keine Auswirkungen auf Debug-fähige Anwendungen.

  • Regeldateien müssen den Namen baseline-prof.txt haben und sich im Stammverzeichnis Ihres Haupt-Quellsatzes befinden. Sie sollten eine Schwesterdatei der Datei AndroidManifset.xml sein.

  • Derzeit werden diese Dateien nur verwendet, wenn Sie das Android Gradle-Plug-in 7.0 oder höher verwenden. Außerdem ist die Funktion derzeit nur mit einem Flag in gradle.properties aktiviert:

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

Für Profile ist ein Guthaben erforderlich

  • Richtig gestaltete Profile, die Methoden und Klassen, die sich im Startpfad befinden und leistungskritisch sind, korrekt priorisieren, erzielen die besten Ergebnisse. Wenn zu viele Methoden oder Klassen in Profilen enthalten sind, kann dies jedoch negative Auswirkungen auf den Arbeitsspeicher- und Laufwerksverbrauch haben. Daher wird empfohlen, konservativ zu beginnen, wenn Sie Ihre eigenen Profilregeln definieren.