Ringkasan project dan alur kerja Soong

Project di Android Studio for Platform (ASfP) berisi semua hal yang menentukan ruang kerja Anda untuk codebase AOSP, mulai dari kode sumber dan aset hingga kode pengujian dan konfigurasi build Soong.

Dibangun di atas Model Ruang Kerja IntelliJ, ASfP membuat project platform besar dan memulihkan model project Anda dari snapshot yang di-cache saat memulai. Konten di dalam direktori out/ dan file gen yang dihasilkan dikecualikan dari cakupan penelusuran project agar navigasi simbol dan file tetap cepat.

Konfigurasi project (.asfp-project)

File YAML .asfp-project, yang terletak di root direktori project Anda, mengontrol konfigurasi project ASfP. File ini menentukan direktori, modul Soong, bahasa, dan flag build yang disertakan dalam ruang kerja Anda.

Anda dapat membuka konfigurasi project kapan saja menggunakan salah satu opsi berikut:

  • Pilih ASfP > Project > Open Config dari menu utama.
  • Klik dua kali .asfp-project di root jendela alat Project.
  • Klik Open Config di toolbar jendela alat Soong.

Setelah mengedit .asfp-project, jalankan sinkronisasi project agar perubahan Anda diterapkan.

Template project yang dapat dibagikan (ekspor dan impor)

Tim yang mengerjakan subsistem yang sama (seperti SystemUI, Settings, SurfaceFlinger, atau Automotive) dapat membagikan konfigurasi .asfp-project standar sebagai template:

  • Export to template: Klik kanan tab editor .asfp-project atau pilih ASfP > Project > Export Config to Template untuk menyimpan file template yang dapat dibagikan.

    Mengekspor konfigurasi project ASfP ke template yang dapat dibagikan

  • Impor dari template: Saat membuat project baru di wizard penyiapan project, pilih Impor dari template dan pilih file YAML .asfp-project bersama untuk mengisi otomatis direktori, modul, dan setelan build.

Parameter konfigurasi

File .asfp-project mendukung parameter berikut:

repo

Wajib: Jalur absolut ke root checkout repositori platform Android Anda.

repo: /path/to/aosp

lunch

Wajib: Target peluncuran yang terkait dengan project Anda. Digunakan untuk semua tindakan build, sinkronisasi, dan deployment Soong.

lunch: aosp_cf_x86_64_phone-aosp_current-userdebug

directories

Opsional: Direktori yang akan disertakan atau dikecualikan dari project Anda (relatif terhadap root repo). Direktori dan root sumber yang di-symlink didukung.

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

Opsional: Modul Soong tertentu yang akan disertakan atau dikecualikan dari project Anda. Berfungsi bersama dengan directories. Nama modul lengkap dan singkat didukung.

modules:
  include:
    -   SystemUI
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

Opsional: Jalur relatif untuk ditandai sebagai root sumber pengujian saat heuristik sumber pengujian otomatis ASfP memerlukan penggantian manual.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

Opsional: Dukungan Java, Kotlin, dan Android.bp diaktifkan secara default. Tambahkan cpp untuk C dan C++ atau rust untuk dukungan bahasa Rust:

other_languages:
  -   cpp
  -   rust

build_config

Opsional: Flag kustom atau variabel lingkungan yang diteruskan ke pemanggilan build Soong yang dipicu oleh IDE (termasuk sinkronisasi, build gutter, dan konfigurasi run):

build_config:
  flags:
    -   -j64
  env:
    SOONG_PARTIAL_COMPILE: true
    SOONG_ALLOW_MISSING_DEPENDENCIES: true

Mode sinkronisasi dan jendela alat Soong

ASfP menyediakan beberapa cara untuk menyinkronkan project IDE dengan checkout AOSP, tergantung pada kebutuhan alur kerja Anda. Akses tindakan ini dari menu ASfP > Sync atau jendela alat Soong:

  • Sinkronkan Project: Menganalisis direktori dan modul yang dikonfigurasi, lalu memperbarui pengindeksan dan dependensi IDE.
  • Sinkronisasi Parsial: Hanya menyinkronkan subset modul atau direktori yang ditargetkan, sehingga menghemat waktu saat bekerja di area pohon yang dilokalkan.
  • No-Build Sync: Memperbarui struktur project IDE dan root sumber tanpa menjalankan langkah build Soong—berguna saat Anda telah menambahkan atau memindahkan file sumber atau sudah membangun dari terminal.
  • Sync and Full Build: Menggabungkan sinkronisasi project dengan build Soong penuh dalam satu langkah.

Jendela alat Soong (View > Tool Windows > Soong) menampilkan indikator status real-time untuk setiap node tugas sinkronisasi, tombol build akses cepat, dan eksekusi perintah Soong.


Build, deployment, dan navigasi Android.bp dalam editor

ASfP menyediakan dukungan editor terintegrasi untuk file Android.bp:

Membangun, menjalankan, dan men-debug target dari gutter

Buka file Android.bp apa pun di project Anda untuk mem-build atau meluncurkan target dari dua ikon gutter:

  • Ikon build (semua modul bernama): Muncul di samping name: pada setiap modul bernama (cc_library_shared, java_library, rust_binary, android_app, dan target pengujian) untuk mem-build target Soong tersebut (Build "<module>").
  • Ikon Jalankan atau Debug (*_test, *_test_host, dan android_app): Klik Jalankan di samping modul pengujian atau deklarasi android_app untuk menjalankan atau men-debug modul. Modul android_test di-debug melalui atest, dan modul cc_test* dan rust_test* diluncurkan di bawah LLDB bawaan.

Membangun, menjalankan, dan men-debug modul dari ikon gutter Android.bp

Konfigurasi menjalankan flash dan deployment kontekstual

Untuk modul yang dapat di-deploy dalam file Android.bp, Anda dapat membuat dan meluncurkan konfigurasi eksekusi Soong Deploy kontekstual dari gutter atau menu konteks klik kanan dengan fitur berikut:

  • Metode deployment: Deploy menggunakan adb, skrip shell kustom, adevice, atau flashall.
  • Pre-run Soong build hooks: Mem-build modul Soong target secara otomatis sebelum men-deploy ke perangkat terhubung atau perangkat virtual Cuttlefish.

Memilih konfigurasi run Adevice atau Flashall di ASfP

Berpindah antara kode sumber dan Android.bp

Dari file atau direktori sumber mana pun di jendela alat Project, tab editor, atau menu konteks editor, klik kanan dan pilih Open Corresponding Android.bp File. ASfP menemukan dan menandai deklarasi modul Android.bp yang mengompilasi file tersebut, menyelesaikan blok defaults, pola srcs karakter pengganti, dan link simbolis.

Tindakan menu konteks Open Corresponding Android.bp File

Dokumentasi tooltip dan kecerdasan editor Android.bp

  • Navigasi lintas file dan jumlah penggunaan: Klik Control pada referensi modul, file srcs, atau soong_config_module_type untuk beralih ke deklarasinya. Petunjuk inlay N Usages yang dapat diklik akan muncul di samping nama modul dan target srcs bersama, dan modul library yang tidak direferensikan akan diredupkan secara visual.
  • Tooltip dokumentasi properti Soong: Arahkan kursor ke properti mana pun dalam file Android.bp—termasuk properti yang tercakup dalam target atau arsitektur di bagian target, arch, dan multilib—untuk melihat tanda tangan dan dokumentasi jenis Soong secara inline.

Tooltip dokumentasi properti Android.bp dan petunjuk inlay Penggunaan


Pengelolaan perangkat virtual Cuttlefish dan pencerminan multilayar

ASfP menyertakan plugin Cuttlefish bawaan untuk platform, Android Automotive OS (AAOS), dan developer Software-Defined Vehicle (SDV) yang menggunakan perangkat virtual Cuttlefish yang di-build secara lokal:

  • Penyiapan multiperangkat di Pengelola Perangkat: Buat dan kelola penyiapan perangkat virtual Cuttlefish multiperangkat di Pengelola Perangkat menggunakan checkout AOSP lokal Anda ($ANDROID_BUILD_TOP dan $ANDROID_PRODUCT_OUT).
  • Pencerminan tampilan multi-layar di jendela alat Cuttlefish: Buka View > Tool Windows > Cuttlefish untuk pencerminan tampilan multi-layar Cuttlefish bawaan sehingga Anda dapat melihat dan berinteraksi dengan beberapa layar otomotif sekaligus untuk alur kerja AAOS dan SDV.

Jendela alat Cuttlefish dan pencerminan tampilan multilayar di ASfP