Wie benutzt man aapt2, wo ist die Dokumentation?

12

Ich habe aapt p verwendet, um Ressourcen zu paketieren und R.java zu generieren.

Aber als ich auf Android 24 aktualisiert habe, habe ich aapt2.exe gefunden.

Soll ich aapt2.exe verwenden? Wie benutze ich es? Ich konnte keine Dokumentation darüber finden.

    
chenie 07.02.2017, 05:25
quelle

3 Antworten

10

Es gibt einige große Unterschiede zwischen der Funktionsweise von AAPT und AAPT2.

Kompilieren und verknüpfen

Die Grundidee hinter AAPT2 ist, abgesehen von den neuen Features, dass es den "Paket" -Schritt in zwei Teile teilt: "Kompilieren" und "Verknüpfen". Es verbessert die Leistung, denn wenn nur eine Datei geändert wird, müssen Sie nur diese eine Datei neu kompilieren und alle Zwischendateien mit dem Befehl 'link' verknüpfen.

restriktiver

AAPT2 versucht so früh wie möglich die meisten Fehler zu finden. Beim Wechsel von AAPT zu AAPT2 können daher viele Fehler auftreten, die darauf hinweisen, dass einige Elemente falsch verschachtelt sind oder dass einige Referenzen falsch sind. Weitere Informationen zur neuen Einschränkung finden Sie in der Android Studio 3.0-Dokumentation .

Verwendung

In Android Studio 3.0 ist AAPT2 standardmäßig aktiviert (mit Android Gradle Plugin 3.0.0). Wenn Sie jedoch AAPT2 in Ihrem eigenen Skript verwenden möchten, müssen Sie die Art der Verarbeitung Ihrer Ressourcen ändern. Für den 'Paket'-Befehl mit AAPT würden Sie das Ressourcenverzeichnis mit dem -S übergeben. Bei AAPT2 müssen Sie zuerst jede Ressource mit dem Befehl 'compile' kompilieren und erst dann alle kompilierten Dateien mit dem Flag -R übergeben.
Zum Beispiel:

%Vor%

Verwenden Sie stattdessen:

%Vor%

Kennzeichen

Es gibt mehr Unterschiede in der Flag-Verwendung, zum Beispiel werden die beiden '- pseudo-localize' und '- no-crunch' Flags während des Kompilierschrittes pro Datei verwendet. Umfassende Informationen über AAPT2-Flags erhalten Sie unter:

%Vor%     
Izabela Orlowska 30.10.2017 14:16
quelle
5
  

Hinweis: Behandle dies als Ergänzung zu Izabelas Antwort

Dies ist (Stand Feb 2018) ziemlich schlecht dokumentiert. Die Autoren des Overlay Manager Service in Android O stellten kürzlich ihre Arbeit vor und sprachen über AAPT2 in ihren Folien (siehe Folien 12-14 für den Kontext).

Schauen Sie auch im Zweifelsfall auf den Quellcode: Ссылка .

    
scorpiodawg 15.02.2018 23:16
quelle
-1

Fügen Sie in Ihrer Datei "gradle.properties" die folgende Zeile hinzu: android.enableAapt2=true

Quelle

    
afathman 18.05.2017 20:02
quelle

Tags und Links