Un projet dans Android Studio for Platform (ASfP) contient tout ce qui définit votre espace de travail pour votre codebase AOSP, du code source et des éléments au code de test et aux configurations de compilation Soong.
Basé sur le modèle d'espace de travail IntelliJ, ASfP crée des projets de plate-forme volumineux et restaure votre modèle de projet à partir d'instantanés mis en cache au démarrage. Le contenu du répertoire out/ et les fichiers gen générés sont exclus des étendues de recherche de projet afin que la navigation dans les symboles et les fichiers reste rapide.
Configuration du projet (.asfp-project)
Le fichier YAML .asfp-project, situé à la racine du répertoire de votre projet, contrôle la configuration du projet ASfP. Ce fichier définit les répertoires, les modules Soong, les langages et les indicateurs de compilation inclus dans votre espace de travail.
Vous pouvez ouvrir la configuration de votre projet à tout moment à l'aide de l'une des options suivantes :
- Sélectionnez ASfP > Project > Open Config (ASfP > Projet > Ouvrir la configuration) dans le menu principal.
- Double-cliquez sur
.asfp-projectà la racine de la fenêtre d'outil Project (Projet). - Cliquez sur Open Config (Ouvrir la configuration) dans la barre d'outils de la fenêtre d'outil Soong.
Après avoir modifié .asfp-project, exécutez une synchronisation de projet pour que vos modifications prennent effet.
Modèles de projet partageables (exportation et importation)
Les équipes travaillant sur le même sous-système (tel que SystemUI, Settings, SurfaceFlinger ou Automotive) peuvent partager une configuration .asfp-project standard en tant que modèle :
Export to template (Exporter vers un modèle) : faites un clic droit sur l'onglet de l'éditeur
.asfp-projectou sélectionnez ASfP > Project > Export Config to Template (ASfP > Projet > Exporter la configuration vers un modèle) pour enregistrer un fichier de modèle partageable.
Import from template (Importer à partir d'un modèle) : lorsque vous créez un projet dans l' assistant de configuration de projet, sélectionnez Import from template et choisissez le fichier YAML partagé
.asfp-projectpour préremplir les répertoires, les modules et les paramètres de compilation.
Paramètres de configuration
Le fichier .asfp-project accepte les paramètres suivants :
repo
Obligatoire : chemin absolu vers la racine de votre extraction du dépôt de la plate-forme Android.
repo: /path/to/aosp
lunch
Obligatoire : cible de lancement associée à votre projet. Utilisé pour toutes les actions de compilation, de synchronisation et de déploiement Soong.
lunch: aosp_cf_x86_64_phone-aosp_current-userdebug
directories
Facultatif : répertoires à inclure ou à exclure de votre projet (par rapport à la racine
repo). Les répertoires et les racines sources liés symboliquement sont acceptés.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Facultatif : modules Soong spécifiques à inclure ou à exclure de votre projet.
Fonctionne en association avec directories. Les noms de modules complets et abrégés sont acceptés.
modules:
include:
- SystemUI
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
Facultatif : chemins relatifs à marquer comme racines sources de test lorsque l'heuristique de source de test automatique d'ASfP nécessite un forçage manuel.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
Facultatif : la compatibilité avec Java, Kotlin et Android.bp est activée par défaut. Ajoutez cpp pour la compatibilité avec les langages C et C++ ou rust pour la compatibilité avec le langage Rust :
other_languages:
- cpp
- rust
build_config
Facultatif : indicateurs personnalisés ou variables d'environnement transmis aux appels de compilation Soong déclenchés par l'IDE (y compris les synchronisations, les compilations de gouttière et les configurations d'exécution) :
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
Modes de synchronisation et fenêtre d'outil Soong
ASfP offre plusieurs façons de synchroniser votre projet IDE avec votre extraction AOSP en fonction de vos besoins de workflow. Accédez à ces actions depuis le menu ASfP > Sync (ASfP > Synchroniser) ou la fenêtre d'outil Soong :
- Sync Project (Synchroniser le projet) : analyse les répertoires et les modules configurés, puis met à jour l'indexation et les dépendances de l'IDE.
- Partial Sync (Synchronisation partielle) : synchronise uniquement un sous-ensemble ciblé de modules ou de répertoires, ce qui permet de gagner du temps lorsque vous travaillez dans une zone localisée de l'arborescence.
- Synchronisation sans compilation : actualise la structure du projet IDE et les racines sources sans exécuter d'étape de compilation Soong. Cette option est utile lorsque vous avez ajouté ou déplacé des fichiers sources ou que vous avez déjà effectué une compilation à partir du terminal.
- Sync and Full Build (Synchroniser et compiler complètement) : combine la synchronisation du projet avec une compilation Soong complète en une seule étape.
La fenêtre d'un outil Soong (View > Tool Windows > Soong (Affichage > Fenêtres d'outil > Soong)) affiche des indicateurs d'état en temps réel pour chaque nœud de tâche de synchronisation, des boutons de build à accès rapide et l'exécution des commandes Soong.
Compilation, déploiement et navigation Android.bp dans l'éditeur
ASfP fournit une compatibilité intégrée de l'éditeur pour les fichiers Android.bp :
Compiler, exécuter et déboguer des cibles à partir de la gouttière
Ouvrez n'importe quel fichier Android.bp de votre projet pour compiler ou lancer des cibles à partir de deux icônes de gouttière :
- Icône de compilation (tous les modules nommés) : s'affiche à côté de
name:sur chaque module nommé (cc_library_shared,java_library,rust_binary,android_app, et les cibles de test) pour compiler cette cible Soong (Build "<module>"). - Icône d'exécution ou de débogage (
*_test,*_test_hostetandroid_app) : cliquez sur Run (Exécuter) à côté d'un module de test ou d'une déclarationandroid_apppour exécuter ou déboguer le module. Les modulesandroid_testsont débogués viaatest, et les modulescc_test*etrust_test*sont lancés sous LLDB intégré.

Configurations d'exécution de déploiement et de flash contextuels
Pour les modules déployables dans les fichiers Android.bp, vous pouvez créer et lancer des configurations d'exécution Soong Deploy (Déploiement Soong) contextuelles à partir de la gouttière ou du menu contextuel (clic droit) avec les fonctionnalités suivantes :
- Méthodes de déploiement : déployez à l'aide de
adb, de scripts shell personnalisés, deadevice, ou deflashall. - Hooks de compilation Soong avant l'exécution : compilez automatiquement le module Soong cible avant de le déployer sur votre appareil connecté ou votre appareil virtuel Cuttlefish.

Passer du code source à Android.bp
À partir de n'importe quel fichier source ou répertoire dans la fenêtre d'un outil Project (Projet), l'onglet de l'éditeur ou le menu contextuel de l'éditeur, effectuez un clic droit et sélectionnez Open Corresponding Android.bp File (Ouvrir le fichier Android.bp correspondant). ASfP localise et met en surbrillance la déclaration de module Android.bp qui compile ce fichier, en résolvant les blocs defaults, les modèles srcs génériques et les liens symboliques.

Intelligence de l'éditeur Android.bp et documentation des info-bulles
- Navigation entre les fichiers et nombre d'utilisations : cliquez sur n'importe quelle référence de module
, fichier
srcsousoong_config_module_typeen appuyant sur la touche Ctrl pour accéder à sa déclaration. Des indications cliquablesN Usages(N utilisations) s'affichent à côté des noms de modules et des ciblessrcspartagées, et les modules de bibliothèque non référencés sont visuellement estompés. - Info-bulles de documentation sur les propriétés Soong : placez le pointeur sur n'importe quelle
propriété d'un fichier
Android.bp(y compris les propriétés à portée d'architecture ou de cible soustarget,arch, etmultilib) pour afficher sa signature de type Soong et sa documentation intégrées.

Gestion des appareils virtuels Cuttlefish et duplication multi-écran
ASfP inclut un plug-in Cuttlefish intégré pour les développeurs de plates-formes, d'Android Automotive OS (AAOS) et de véhicules définis par logiciel (SDV) qui travaillent avec des appareils virtuels Cuttlefish créés localement :
- Configuration multi-appareils dans le gestionnaire d'appareils : créez et gérez des configurations d'appareils virtuels Cuttlefish multi-appareils dans le Device Manager (Gestionnaire d'appareils) à l'aide de votre extraction AOSP locale (
$ANDROID_BUILD_TOPet$ANDROID_PRODUCT_OUT). - Duplication d'écran multi-écran dans la fenêtre d'outil Cuttlefish : ouvrez View > Tool Windows > Cuttlefish pour la duplication d'écran multi-écran Cuttlefish intégrée afin de pouvoir afficher et interagir avec plusieurs écrans automobiles à la fois pour les workflows AAOS et SDV.
