Android Studio untuk Platform (ASfP) adalah lingkungan pengembangan terintegrasi (IDE) yang direkomendasikan untuk pengembangan platform Kendaraan yang Ditentukan Software (SDV) Android Automotive OS (AAOS). ASfP mendukung semua bahasa yang digunakan platform SDV AAOS, termasuk Rust untuk paket layanan SDV.
Halaman ini hanya membahas penyiapan khusus SDV. Untuk mengetahui informasi selengkapnya tentang fitur dan alur kerja ASfP umum, lihat Android Studio untuk Platform.
ASfP hanya berjalan di Linux 64-bit dengan CPU x86-64. Anda dapat menggunakannya di workstation Linux lokal atau di cloud. Untuk mengetahui informasi selengkapnya tentang penyiapan cloud, lihat Pengembangan cloud.
Menginstal ASfP
Untuk mengetahui informasi selengkapnya tentang cara mendownload dan menginstal ASfP serta memeriksa persyaratan sistem, lihat Menginstal Android Studio untuk Platform.
Mengindekskan checkout platform menggunakan banyak memori, terutama saat Anda juga menjalankan perangkat Cuttlefish multi-VM di mesin yang sama. Jika ASfP berjalan lambat, tingkatkan ukuran heap maksimum di setelan memori ASfP agar sesuai dengan project dan mesin Anda, dan tetapkan cakupan project ke direktori yang Anda kerjakan.
Membuat project SDV
Lakukan inisialisasi, sinkronkan, dan bangun checkout SDV AAOS Anda sebelum memulai. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan checkout, lihat Lokasi kode dan Mendownload, mem-build, dan menjalankan.
Untuk membuat project SDV, ikuti langkah-langkah berikut:
- Buat project baru di ASfP dan pilih root checkout SDV AAOS Anda sebagai checkout repositori. Untuk mengetahui informasi selengkapnya tentang langkah-langkah wizard, lihat Membuat atau mengimpor project.
- Setelah ASfP membuat project, pilih ASfP > Project > Open Config untuk
membuka file
.asfp-project. Ganti konten file dengan contoh berikut, lalu tetapkan
repoke jalur checkout Anda:repo: /path/to/sdv_source lunch: sdv_core_cf-aosp_current-userdebug directories: include: - system/software_defined_vehicle/samples other_languages: - rustPerbarui
lunchdandirectoriesuntuk area yang Anda kerjakan. Agar pengindeksan dan sinkronisasi tetap cepat, sertakan hanya direktori yang aktif Anda ubah. Tabel berikut mencantumkan target dan direktori SDV umum:Fokus pengembangan SDV lunchtargetdirectoriesyang direkomendasikanPaket layanan SDV sdv_core_cf-aosp_current-userdebugKatalog layanan dan direktori paket Anda, seperti system/software_defined_vehicle/samplesIntegrasi platform inti SDV sdv_core_cf-aosp_current-userdebugsystem/software_defined_vehicle/middleware,system/software_defined_vehicle/automotive_services,device/google/sdvGateway SDV di SDV IVI sdv_ivi_cf-aosp_current-userdebugsystem/software_defined_vehicle/sdv_gateway,system/software_defined_vehicle/samples/sdv_gateway,packages/services/CarMenampilkan Keselamatan di Media SDV sdv_media_har_cf-aosp_current-userdebugpackages/services/display_safety,device/google/sdv_display_safetyKeselamatan Layar di IVI SDV sdv_ivi_cf_ds-aosp_current-userdebugpackages/apps/Car/DriverUI,packages/services/display_safety/serviceJika checkout Anda menggunakan manifes
trunk_staging, ganti-aosp_current-userdebugdengan-trunk_staging-userdebug. Untuk menjelajahi kode platform native juga, tambahkancppkeother_languages. Untuk mengetahui informasi selengkapnya tentang semua opsi konfigurasi, lihat Parameter konfigurasi.Untuk menerapkan perubahan, pilih File > Sync Project.
Men-deploy paket layanan SDV
ASfP menyertakan plugin SDV yang men-deploy APEX yang berisi paket layanan Anda langsung ke perangkat SDV yang sedang berjalan. Plugin ini dinonaktifkan secara default. Untuk menggunakannya, aktifkan plugin SDV di Settings > Plugins. Untuk mengetahui informasi selengkapnya tentang pengemasan APEX, lihat Membangun dan men-deploy paket layanan.
Cara Anda men-deploy bergantung pada apakah APEX sudah ada di perangkat:
- Jika APEX sudah diinstal, Anda dapat men-deploy perubahan secara langsung dari ASfP.
- Jika APEX baru, Anda harus membangun ulang dan meluncurkan ulang image sistem terlebih dahulu, atau menggunakan image sistem yang menyertakan kunci yang digunakan untuk menandatangani APEX. Setelah itu, Anda dapat men-deploy dari ASfP.
Untuk men-deploy APEX bundle layanan, ikuti langkah-langkah berikut:
- Mulai perangkat SDV Anda dengan plugin Cuttlefish. Untuk mengetahui informasi selengkapnya, lihat Menjalankan perangkat SDV di Cuttlefish.
- Buka file
apex/Android.bppaket layanan Anda, lalu klik ikon Run di gutter di samping blokapex {. - Di menu yang terbuka, pilih Run 'Deploy APEX_NAME'. Anda juga dapat membuat APEX tanpa men-deploy-nya atau mengubah konfigurasi run dari menu yang sama.
Menjalankan perangkat SDV di Cuttlefish
ASfP menyertakan plugin Cuttlefish yang membuat dan menjalankan perangkat Cuttlefish lokal. Plugin ini memerlukan orkestrator host Cuttlefish. Jika orkestrator host tidak tersedia, ASfP akan menampilkan petunjuk untuk menyiapkannya.
Untuk membuat perangkat SDV, ikuti langkah-langkah berikut:
- Pilih Tools > Pengelola Perangkat, klik +, lalu pilih Create Cuttlefish Device.
- Untuk membuat penyiapan multi-VM, pilih Dari konfigurasi kanonis dan buat atau impor konfigurasi untuk penyiapan Anda, seperti SDV Core dengan SDV IVI, atau SDV Media dengan SDV IVI untuk Keselamatan Tampilan. Untuk membuat VM tunggal, pilih Dari checkout pohon sumber Android lokal.
Untuk melihat semua tampilan VM di satu layar dan mengakses opsi perangkat tambahan, gunakan jendela alat Cuttlefish. Untuk membukanya, pilih ikon ... di panel samping dan pilih Cuttlefish, atau cari Cuttlefish di Bantuan > Temukan Tindakan. Anda juga dapat melihat tampilan individual di Running Devices. Karena SDV Core berjalan tanpa layar, gunakan Logcat dan Terminal untuk memeriksanya.
Proses debug dan pengujian
Untuk mengetahui informasi selengkapnya tentang proses debug dan pengujian di ASfP, lihat Men-debug kode platform dan Menguji kode platform. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan CodeLLDB untuk men-debug paket layanan Rust, lihat Debugging Rust.
Saat Anda melampirkan debugger ke paket layanan, lampirkan ke proses yang menghostingnya. Nama proses menggunakan format <bundle_name>:<instance_name>, seperti
OrchestratorSampleRustServiceBundle:sample-main-no-conditions. Perintah berikut mencantumkan proses yang cocok dan ID prosesnya:
adb shell ps -A | grep <bundle_name>
Untuk mengetahui informasi selengkapnya tentang alur kerja proses debug SDV, seperti menghubungkan ke beberapa perangkat dan melihat log, lihat Men-debug SDV.
Mengedit file VSIDL
ASfP menyertakan Server Bahasa VSIDL (vsidl-lsp). Untuk mengetahui informasi selengkapnya tentang cara menyiapkan katalog untuk server bahasa, lihat Update katalog otomatis dan integrasi LSP. Jika katalog Anda menyertakan file CATALOG_UPDATE, editor menyediakan fitur berikut untuk file .vsidl:
- Validasi langsung: Editor menandai kata kunci VSIDL dan menampilkan error sintaksis, jenis yang belum terselesaikan, dan error validasi VSIDLC di jendela Masalah. Untuk mengetahui informasi selengkapnya tentang aturan validasi dan kode errornya, lihat spesifikasi bahasa VSIDL.
- Pelengkapan otomatis dan dokumentasi: Anda dapat menekan Ctrl+Spasi untuk mendapatkan saran kata kunci, pesan, layanan, topik, dan saluran, serta menekan Ctrl+Q untuk melihat komentar dokumentasi.
- Navigasi dan pemformatan: Anda dapat menekan Ctrl+B untuk membuka definisi
.vsidlatau.proto, Alt+Shift+F7 untuk menemukan referensi, Ctrl+F12 untuk melihat struktur file, dan Ctrl+Alt+L untuk memformat file.
Menambahkan konteks SDV untuk asisten AI
ASfP menyertakan Gemini di Android Studio. Untuk mengetahui informasi selengkapnya tentang fitur ASfP, lihat Mengenal Android Studio untuk Platform. Untuk membantu Gemini atau asisten coding AI lainnya mengikuti konvensi SDV, tambahkan file AGENTS.md ke root katalog SDV Anda. Untuk mengetahui informasi selengkapnya tentang file agen, lihat
Menyesuaikan Gemini menggunakan file AGENTS.md.
Contoh berikut adalah titik awal yang dapat Anda sesuaikan dengan katalog Anda:
# AAOS SDV service catalog rules
- Implement SDV service bundles in Rust under `services/<BundleName>/src/`.
- Keep `.proto` files limited to Protobuf `message`, `enum`, and `service` definitions. Define service bundles, APEX packaging, VM placement, and SOME/IP mappings in `.vsidl` files.
- Regenerate middleware with `vsidlc` after you change `.vsidl` or `.proto` files, and leave generated files unmodified.
- Use `PascalCase` for service bundle names and lowercase `kebab-case` for topic and channel names.
- Run `vsidlc --explain <CODE>` to look up a VSIDLC error code.