Android Studio for Platform (ASfP), Android Automotive OS (AAOS) Yazılım Tanımlı Araç (SDV) platformu geliştirme için önerilen entegre geliştirme ortamıdır (IDE). ASfP, SDV hizmet paketleri için Rust dahil olmak üzere AAOS SDV platformunun kullandığı tüm dilleri destekler.
Bu sayfada yalnızca SDV'ye özel kurulum ele alınmaktadır. Genel ASfP özellikleri ve iş akışları hakkında daha fazla bilgi için Android Studio for Platform sayfasını inceleyin.
ASfP yalnızca x86-64 CPU'lara sahip 64 bit Linux'ta çalışır. Yerel bir Linux iş istasyonunda veya bulutta kullanabilirsiniz. Bulut kurulumu hakkında daha fazla bilgi için Bulut geliştirme başlıklı makaleyi inceleyin.
ASfP'yi yükleme
ASfP, varsayılan olarak maksimum 30 GB yığın boyutu kullanır. Platformun tamamını dizine eklemek, özellikle aynı makinede birden fazla sanal makineye sahip Cuttlefish cihazları da çalıştırıyorsanız çok fazla bellek kullanır. Projenizin kapsamını üzerinde çalıştığınız dizinlerle sınırlı tutun ve gerekirse ASfP bellek ayarlarında maksimum yığın boyutunu ayarlayın.
ASfP, IDE içi otomatik güncellemeleri destekler. Daha fazla bilgi için Platform için Android Studio'yu güncelleme başlıklı makaleyi inceleyin. ASfP'yi indirme ve yükleme ile sistem gereksinimlerini kontrol etme hakkında daha fazla bilgi için Android Studio for Platform'u yükleme başlıklı makaleyi inceleyin.
SDV projesi oluşturma
Başlamadan önce AAOS SDV checkout'unuzu başlatın, senkronize edin ve derleyin. Ödeme sayfanızı ayarlama hakkında daha fazla bilgi için Kod konumu ve İndirme, derleme ve çalıştırma bölümlerine bakın.
SDV projesi oluşturmak için aşağıdaki adımları uygulayın:
- ASfP'de yeni bir proje oluşturun ve AAOS SDV checkout'unuzun kökünü depo checkout'u olarak seçin. Sihirbaz adımları hakkında daha fazla bilgi için Proje oluşturma veya içe aktarma başlıklı makaleyi inceleyin.
- ASfP projeyi oluşturduktan sonra ASfP > Project > Open Config'i (ASfP > Proje > Yapılandırmayı Aç) seçerek
.asfp-projectdosyasını açın. Dosyanın içeriğini aşağıdaki örnekle değiştirin ve ardından
repodeğerini ödeme sayfanızın yolu olarak ayarlayın:repo: /path/to/sdv_source lunch: sdv_core_cf-aosp_current-userdebug directories: include: - system/software_defined_vehicle/samples other_languages: - rustÇalıştığınız alan için
lunchvedirectoriesdeğerlerini güncelleyin. Dizine ekleme ve senkronizasyonun hızlı olması için yalnızca aktif olarak değiştirdiğiniz dizinleri ekleyin. Aşağıdaki tabloda yaygın SDV hedefleri ve dizinleri listelenmiştir:SDV geliştirme odağı lunchhedefÖnerilenler directoriesSDV hizmet paketleri sdv_core_cf-aosp_current-userdebugHizmet kataloğunuz ve paket dizininiz (ör. system/software_defined_vehicle/samples)SDV Core platform entegrasyonu sdv_core_cf-aosp_current-userdebugsystem/software_defined_vehicle/middleware,system/software_defined_vehicle/automotive_services,device/google/sdvSDV IVI'da SDV Gateway sdv_ivi_cf-aosp_current-userdebugsystem/software_defined_vehicle/sdv_gateway,system/software_defined_vehicle/samples/sdv_gateway,packages/services/CarSDV Media'da Ekran Güvenliği sdv_media_har_cf-aosp_current-userdebugpackages/services/display_safety,device/google/sdv_display_safetySDV IVI'da ekran güvenliği sdv_ivi_cf_ds-aosp_current-userdebugpackages/apps/Car/DriverUI,packages/services/display_safety/serviceÖdeme sayfanızda
trunk_stagingmanifesti kullanılıyorsa-aosp_current-userdebugdeğerini-trunk_staging-userdebugile değiştirin. Yerel platform koduna da göz atmak içinother_languagesdosyasınacppekleyin. Tüm yapılandırma seçenekleri hakkında daha fazla bilgi için Yapılandırma parametreleri başlıklı makaleyi inceleyin.Değişikliklerinizi uygulamak için ASfP > Sync > Sync Project'i (ASfP > Senkronize et > Projeyi senkronize et) seçin. Senkronizasyon modları (Tam Senkronizasyon, Kısmi Senkronizasyon ve Derlemesiz Senkronizasyon) ve ekibiniz için paylaşılabilir
.asfp-projectşablonlarını dışa veya içe aktarma hakkında daha fazla bilgi edinmek için Senkronizasyon modları ve Soong araç penceresi ve Paylaşılabilir proje şablonları (dışa ve içe aktarma) başlıklı makaleleri inceleyin.
SDV hizmet paketlerini dağıtma
ASfP, hizmet paketlerinizi içeren bir APEX'i doğrudan çalışan bir SDV cihazına dağıtan bir SDV eklentisi içerir. Eklenti varsayılan olarak devre dışıdır. Kullanmak için Ayarlar > Eklentiler'den SDV eklentisini etkinleştirin. APEX paketleme hakkında daha fazla bilgi için Hizmet paketleri oluşturma ve dağıtma başlıklı makaleyi inceleyin.
Dağıtım şekliniz, APEX'in cihazda zaten mevcut olup olmadığına bağlıdır:
- APEX zaten yüklüyse değişikliklerinizi doğrudan ASfP'den dağıtabilirsiniz.
- APEX yeniyse önce sistem görüntüsünü yeniden oluşturup yeniden başlatmanız veya APEX'i imzalamak için kullanılan anahtarı içeren bir sistem görüntüsü kullanmanız gerekir. Ardından ASfP'den dağıtım yapabilirsiniz.
Hizmet paketi APEX'i dağıtmak için aşağıdaki adımları uygulayın:
- SDV cihazınızı Cuttlefish eklentisiyle başlatın. Daha fazla bilgi için Cuttlefish'te SDV cihazlarını çalıştırma başlıklı makaleyi inceleyin.
- Hizmet paketinizin
apex/Android.bpdosyasını açın veapex {bloğunun yanındaki boşlukta bulunan Çalıştır simgesini tıklayın. - Açılan menüde Run 'Deploy APEX_NAME' ('Dağıt'ı çalıştır) seçeneğini belirleyin. APEX'i dağıtmadan da derleyebilir veya aynı menüden çalıştırma yapılandırmasını değiştirebilirsiniz.
Cuttlefish'te SDV cihazları çalıştırma
ASfP, yerel Cuttlefish cihazları oluşturup çalıştıran bir Cuttlefish eklentisi içerir. Eklenti için Cuttlefish ana makine düzenleyicisi gerekir. Ana makine düzenleyici yoksa ASfP, kurulum talimatlarını gösterir.
SDV cihazı oluşturmak için aşağıdaki adımları uygulayın:
- Tools > Device Manager'ı (Araçlar > Cihaz Yönetim Paneli) seçin, + simgesini tıklayın ve Create Cuttlefish Device'ı (Cuttlefish Cihazı Oluştur) seçin.
- Çoklu sanal makine kurulumu oluşturmak için Standart yapılandırmadan'ı seçin ve kurulumunuz için bir yapılandırma oluşturun veya içe aktarın (ör. SDV IVI ile SDV Core veya ekran güvenliği için SDV IVI ile SDV Media). Tek bir sanal makine oluşturmak için Yerel Android kaynak ağacı kontrolünden'i seçin.
Tüm sanal makine ekranlarını tek bir ekranda görüntülemek ve ek cihaz seçeneklerine erişmek için Cuttlefish araç penceresini kullanın. Açmak için yan paneldeki ... simgesini seçip Cuttlefish'i seçin veya Yardım > İşlem Bul bölümünde Cuttlefish'i arayın. Ekranları Çalışan Cihazlar'da tek tek de görüntüleyebilirsiniz. SDV Core, ekran olmadan çalıştığı için incelemek üzere Logcat ve Terminal'i kullanın.
Hata ayıklama ve test etme
ASfP, C++ ve Rust kodu için yerleşik bir LLDB hata ayıklayıcı içerir. ASfP'de hata ayıklama ve test etme hakkında daha fazla bilgi için Platform kodunda hata ayıklama, Rust kodunda hata ayıklama, Atest ile platform kodunu test etme ve LLDB altında cc_test ve rust_test hedeflerinde hata ayıklama başlıklı makaleleri inceleyin.
Hata ayıklayıcıyı bir hizmet paketine eklediğinizde, paketi barındıran işleme ekleyin. İşlem adları <bundle_name>:<instance_name> biçimini kullanır (ör. OrchestratorSampleRustServiceBundle:sample-main-no-conditions). Aşağıdaki komut, eşleşen işlemleri ve işlem kimliklerini listeler:
adb shell ps -A | grep <bundle_name>
Birden fazla cihaza bağlanma ve günlükleri görüntüleme gibi SDV hata ayıklama iş akışları hakkında daha fazla bilgi için SDV'de hata ayıklama başlıklı makaleyi inceleyin.
VSIDL dosyalarını düzenleme
ASfP, VSIDL Dil Sunucusu'nu (vsidl-lsp) içerir. Kataloğunuzu dil sunucusu için nasıl ayarlayacağınız hakkında daha fazla bilgi edinmek için Otomatik katalog güncellemeleri ve LSP entegrasyonu başlıklı makaleyi inceleyin. Kataloğunuzda bir CATALOG_UPDATE dosyası varsa düzenleyici, .vsidl dosyaları için aşağıdaki özellikleri sunar:
- Canlı doğrulama: Düzenleyici, VSIDL anahtar kelimelerini vurgular ve Sorunlar penceresinde söz dizimi hatalarını, çözümlenmemiş türleri ve VSIDLC doğrulama hatalarını gösterir. Doğrulama kuralları ve hata kodları hakkında daha fazla bilgi için VSIDL dil spesifikasyonuna bakın.
- Otomatik tamamlama ve dokümanlar: Anahtar kelime, mesaj, hizmet, konu ve kanal önerileri için Ctrl+Boşluk tuşlarına, doküman yorumlarını görüntülemek için Ctrl+Q tuşlarına basabilirsiniz.
- Gezinme ve biçimlendirme:
.vsidlveya.prototanımlarına gitmek için Ctrl+B, referansları bulmak için Alt+Üst Karakter+F7, dosya yapısını görüntülemek için Ctrl+F12 ve dosyayı biçimlendirmek için Ctrl+Alt+L tuşlarına basabilirsiniz.
Yapay zeka asistanları için SDV bağlamı ekleme
ASfP, Android Studio'da yapay zeka ve Soong derleme ve atest araçlarıyla yerleşik bir temsilci içerir. ASfP yapay zeka özellikleri hakkında daha fazla bilgi için Android Studio for Platform ile tanışın başlıklı makaleyi inceleyin. Yapay zeka asistanının SDV kurallarına uymasına yardımcı olmak için VSIDL kataloğunuzun kök dizinine bir AGENTS.md dosyası ekleyin.
Temsilci dosyaları hakkında daha fazla bilgi için AGENTS.md dosyalarını kullanarak Gemini'ı özelleştirme başlıklı makaleyi inceleyin.
Aşağıdaki örnek, kataloğunuza uyarlayabileceğiniz bir başlangıç noktasıdır:
# 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.