Ein Projekt in Android Studio for Platform (ASfP) enthält alles, was Ihren Arbeitsbereich für Ihre AOSP-Codebasis definiert, von Quellcode und Assets bis hin zu Testcode und Soong-Build-Konfigurationen.
ASfP basiert auf dem IntelliJ-Arbeitsbereichsmodell und erstellt große Plattformprojekte. Beim Start wird Ihr Projektmodell aus zwischengespeicherten Snapshots wiederhergestellt. Inhalte im Verzeichnis out/ und generierte gen-Dateien werden aus den Projekt-Suchbereichen ausgeschlossen, damit die Symbol- und Dateinavigation schnell bleibt.
Projektkonfiguration (.asfp-project)
Die YAML-Datei .asfp-project im Stammverzeichnis Ihres Projektverzeichnisses steuert die ASfP-Projektkonfiguration. In dieser Datei wird definiert, welche Verzeichnisse, Soong-Module, Sprachen und Build-Flags in Ihren Arbeitsbereich aufgenommen werden.
Sie können Ihre Projektkonfiguration jederzeit mit einer der folgenden Optionen öffnen:
- Wählen Sie im Hauptmenü ASfP > Project > Open Config aus.
- Doppelklicken Sie im Stammverzeichnis des Toolfensters Project auf
.asfp-project. - Klicken Sie in der Symbolleiste des Toolfensters Soong auf Open Config.
Nachdem Sie .asfp-project bearbeitet haben, führen Sie eine Projektsynchronisierung aus, damit Ihre Änderungen übernommen werden.
Freigabefähige Projektvorlagen (Export und Import)
Teams, die am selben Subsystem arbeiten (z. B. SystemUI, Einstellungen, SurfaceFlinger oder Automotive), können eine Standardkonfiguration .asfp-project als Vorlage freigeben:
In Vorlage exportieren: rechtsklicken Sie auf den
.asfp-projectEditor-Tab oder wählen Sie ASfP > Project > Export Config to Template aus, um eine freigabefähige Vorlagen datei zu speichern.
Import from template: Wenn Sie im Einrichtungsassistenten für Projekte ein neues Projekt erstellen, wählen Sie Import from template aus und wählen Sie die freigegebene
.asfp-projectYAML-Datei aus, um Verzeichnisse, Module und Build-Einstellungen vorab auszufüllen.
Konfigurationsparameter
Die Datei .asfp-project unterstützt die folgenden Parameter:
repo
Erforderlich: Absoluter Pfad zum Stammverzeichnis Ihres Android-Plattform-Repository-Checkouts.
repo: /path/to/aosp
lunch
Erforderlich: Das Lunch-Ziel in Verbindung mit Ihrem Projekt. Wird für alle Soong-Build-, Synchronisierungs- und Bereitstellungsaktionen verwendet.
lunch: aosp_cf_x86_64_phone-aosp_current-userdebug
directories
Optional: Verzeichnisse, die in Ihr Projekt aufgenommen oder daraus ausgeschlossen werden sollen (relativ zum
repo Stammverzeichnis). Verzeichnisse mit symbolischen Links und Quellstämme werden unterstützt.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Optional: Bestimmte Soong-Module, die in Ihr Projekt aufgenommen oder daraus ausgeschlossen werden sollen.
Funktioniert in Verbindung mit directories. Sowohl vollständige als auch abgekürzte Modulnamen werden unterstützt.
modules:
include:
- SystemUI
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
Optional: Relative Pfade, die als Testquellstämme markiert werden sollen, wenn die automatische Testquellheuristik von ASfP manuell überschrieben werden muss.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
Optional: Die Unterstützung für Java, Kotlin und Android.bp ist standardmäßig aktiviert. Fügen Sie cpp für C und C++ oder rust für die Unterstützung der Rust-Sprache hinzu:
other_languages:
- cpp
- rust
build_config
Optional: Benutzerdefinierte Flags oder Umgebungsvariablen, die an Soong-Build Aufrufe übergeben werden, die von der IDE ausgelöst werden (einschließlich Synchronisierungen, Gutter-Builds und Ausführungskonfigurationen):
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
Synchronisierungsmodi und Soong-Toolfenster
ASfP bietet je nach Workflow-Anforderungen mehrere Möglichkeiten, Ihr IDE-Projekt mit Ihrem AOSP-Checkout zu synchronisieren. Sie können auf diese Aktionen über das Menü ASfP > Sync oder das Toolfenster Soong zugreifen:
- Sync Project: Analysiert Ihre konfigurierten Verzeichnisse und Module und aktualisiert die IDE-Indexierung und -Abhängigkeiten.
- Partial Sync: Synchronisiert nur eine bestimmte Teilmenge von Modulen oder Verzeichnissen, wodurch Zeit gespart wird, wenn Sie in einem lokalisierten Bereich der Struktur arbeiten.
- No-Build Sync: Aktualisiert die IDE-Projektstruktur und die Quellstämme, ohne einen Soong-Build-Schritt auszuführen. Dies ist nützlich, wenn Sie Quelldateien hinzugefügt oder verschoben oder bereits über das Terminal erstellt haben.
- Sync and Full Build: Kombiniert die Projektsynchronisierung mit einem vollständigen Soong Build in einem einzigen Schritt.
Im Toolfenster Soong (View > Tool Windows > Soong) werden Echtzeit-Statusindikatoren für jeden Synchronisierungsaufgabenknoten, Build-Schaltflächen für den Schnellzugriff und die Ausführung von Soong-Befehlen angezeigt.
In-Editor-Build, Bereitstellung und Navigation von Android.bp
ASfP bietet integrierte Editorunterstützung für Android.bp-Dateien:
Build-, Ausführungs- und Debug-Ziele über den Gutter
Öffnen Sie eine beliebige Android.bp-Datei in Ihrem Projekt, um Ziele über zwei Gutter-Symbole zu erstellen oder zu starten:
- Build-Symbol (alle benannten Module): Wird neben
name:für jedes benannte Modul (cc_library_shared,java_library,rust_binary,android_app, und Testziele) angezeigt, um dieses Soong-Ziel zu erstellen (Build "<module>"). - Symbol für Ausführen oder Debuggen (
*_test,*_test_hostundandroid_app): Klicken Sie neben einem Testmodul oder einerandroid_app-Deklaration auf Run, um das Modul auszuführen oder zu debuggen.android_test-Module werden überatestdebuggt undcc_test*- undrust_test*-Module werden unter dem integrierten LLDB gestartet.

Kontextbezogene Ausführungs- und Flash-Konfigurationen
Für bereitstellbare Module in Android.bp-Dateien können Sie kontextbezogene Soong Deploy -Ausführungskonfigurationen über den Gutter oder das Kontextmenü erstellen und starten. Diese bieten die folgenden Funktionen:
- Bereitstellungsmethoden: Bereitstellung mit
adb, benutzerdefinierten Shell-Skripts,adevice, oderflashall. - Soong-Build-Hooks vor der Ausführung: Erstellen Sie das Ziel-Soong-Modul automatisch bevor Sie es auf Ihrem verbundenen Gerät oder dem virtuellen Cuttlefish-Gerät bereitstellen.

Zwischen Quellcode und Android.bp wechseln
Klicken Sie in einer beliebigen Quelldatei oder einem beliebigen Quellverzeichnis im Toolfenster Project , auf dem Editor-Tab oder im Kontextmenü des Editors mit der rechten Maustaste und wählen Sie Open Corresponding Android.bp File aus. ASfP sucht und hebt die Android.bp-Moduldeklaration hervor, die diese Datei kompiliert, und löst defaults-Blöcke, Platzhaltermuster für srcs und symbolische Links auf.

Android.bp-Editorintelligenz und Tooltip-Dokumentation
- Dateiübergreifende Navigation und Anzahl der Verwendungen: Klicken Sie bei gedrückter Strg-Taste auf einen beliebigen Modul
verweis, eine beliebige
srcs-Datei oder einen beliebigensoong_config_module_type, um zur Deklaration zu springen. Neben Modulnamen und freigegebenensrcs-Zielen werden anklickbare Inlay-HinweiseN Usagesangezeigt. Nicht referenzierte Bibliotheksmodule werden visuell abgeblendet. - Tooltips zur Soong-Eigenschaftsdokumentation: Bewegen Sie den Mauszeiger auf eine beliebige
Eigenschaft in einer
Android.bp-Datei, einschließlich architektur- oder zielbezogener Eigenschaften untertarget,archundmultilib, um die Soong-Typsignatur und die Dokumentation inline anzuzeigen.

Verwaltung virtueller Cuttlefish-Geräte und Spiegelung mehrerer Bildschirme
ASfP enthält ein integriertes Cuttlefish-Plug-in für Plattform-, Android Automotive OS (AAOS)- und Software-Defined Vehicle (SDV)-Entwickler, die mit lokal erstellten virtuellen Cuttlefish-Geräten arbeiten:
- Einrichtung mehrerer Geräte im Device Manager: Erstellen und verwalten Sie Setups für virtuelle Cuttlefish-Geräte mit mehreren Geräten im Device Manager mit Ihrem lokalen AOSP-Checkout (
$ANDROID_BUILD_TOPund$ANDROID_PRODUCT_OUT). - Spiegelung mehrerer Bildschirme im Toolfenster „Cuttlefish“: Öffnen Sie View > Tool Windows > Cuttlefish , um die integrierte Spiegelung mehrerer Bildschirme von Cuttlefish zu nutzen. So können Sie mehrere Automotive-Displays gleichzeitig für AAOS- und SDV-Workflows ansehen und mit ihnen interagieren.
