Projelere genel bakış ve Soong iş akışları

Android Studio for Platform'daki (ASfP) bir proje, AOSP kod tabanınız için çalışma alanınızı tanımlayan her şeyi (kaynak kodu ve öğelerden test koduna ve Soong derleme yapılandırmalarına kadar) içerir.

IntelliJ Workspace Model üzerine inşa edilen ASfP, büyük platform projeleri oluşturur ve başlangıçta proje modelinizi önbelleğe alınmış anlık görüntülerden geri yükler. out/ dizinindeki içerikler ve oluşturulan gen dosyaları, sembol ve dosya gezinme işlemlerinin hızlı kalması için proje arama kapsamlarından hariç tutulur.

Proje yapılandırması (.asfp-project)

Proje dizininizin kök dizininde bulunan .asfp-project YAML dosyası, ASfP proje yapılandırmasını kontrol eder. Bu dosya, çalışma alanınıza hangi dizinlerin, Soong modüllerinin, dillerin ve derleme işaretlerinin dahil edileceğini tanımlar.

Aşağıdaki seçeneklerden birini kullanarak proje yapılandırmanızı istediğiniz zaman açabilirsiniz:

  • Ana menüden ASfP > Project > Open Config'i (ASfP > Proje > Yapılandırmayı Aç) seçin.
  • Project (Proje) araç penceresinin kök dizininde .asfp-project dosyasını çift tıklayın.
  • Soong araç penceresi araç çubuğunda Open Config'i (Yapılandırmayı Aç) tıklayın.

.asfp-project dosyasını düzenledikten sonra değişikliklerinizin geçerli olması için proje senkronizasyonu çalıştırın.

Paylaşılabilir proje şablonları (dışa ve içe aktarma)

Aynı alt sistem üzerinde çalışan ekipler (ör. SystemUI, Settings, SurfaceFlinger veya Automotive) standart bir .asfp-project yapılandırmasını şablon olarak paylaşabilir:

  • Şablona aktar: Paylaşılabilir bir şablon dosyası kaydetmek için .asfp-project düzenleyici sekmesini sağ tıklayın veya ASfP > Proje > Yapılandırmayı Şablona Aktar'ı seçin.

    ASfP proje yapılandırmasını paylaşılabilir bir şablona aktarma

  • Şablondan içe aktar: Proje kurulum sihirbazında yeni bir proje oluştururken Şablondan içe aktar'ı seçin ve dizileri, modülleri ve derleme ayarlarını önceden doldurmak için paylaşılan .asfp-project YAML dosyasını seçin.

Yapılandırma parametreleri

.asfp-project dosyası aşağıdaki parametreleri destekler:

repo

Zorunlu: Android platformu depo ödeme kök dizininizin mutlak yolu.

repo: /path/to/aosp

lunch

Zorunlu: Projenizle birlikte kullanılan lansman hedefi. Tüm Soong derleme, senkronizasyon ve dağıtım işlemleri için kullanılır.

lunch: aosp_cf_x86_64_phone-aosp_current-userdebug

directories

İsteğe bağlı: Projenize dahil edilecek veya projenizden hariç tutulacak dizinler (repo köküne göre). Sembolik bağlantılı dizinler ve kaynak kökleri desteklenir.

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

modules

İsteğe bağlı: Projenize dahil edilecek veya projenizden hariç tutulacak belirli Soong modülleri. directories ile birlikte çalışır. Hem tam hem de kısaltılmış modül adları desteklenir.

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

test_sources

İsteğe bağlı: ASfP'nin otomatik test kaynağı sezgisel yöntemlerinin manuel olarak geçersiz kılınması gerektiğinde test kaynağı kökleri olarak işaretlenecek göreli yollar.

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

other_languages

İsteğe bağlı: Java, Kotlin ve Android.bp desteği varsayılan olarak etkindir. C ve C++ için cpp, Rust dil desteği için rust ekleyin:

other_languages:
  -   cpp
  -   rust

build_config

İsteğe bağlı: IDE tarafından tetiklenen Soong derleme çağrılarına (senkronizasyonlar, gutter derlemeleri ve çalıştırma yapılandırmaları dahil) iletilen özel işaretler veya ortam değişkenleri:

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

Senkronizasyon modları ve Soong araç penceresi

ASfP, iş akışı ihtiyaçlarınıza bağlı olarak IDE projenizi AOSP çıkışınızla senkronize etmenin birden fazla yolunu sunar. Bu işlemlere ASfP > Sync menüsünden veya Soong araç penceresinden erişebilirsiniz:

  • Sync Project: Yapılandırılmış dizinlerinizi ve modüllerinizi analiz eder, IDE dizine ekleme ve bağımlılıklarını günceller.
  • Kısmi Senkronizasyon: Modüllerin veya dizinlerin yalnızca hedeflenen bir alt kümesini senkronize ederek ağacın yerelleştirilmiş bir alanında çalışırken zaman kazandırır.
  • Derlemesiz Senkronizasyon: Soong derleme adımını çalıştırmadan IDE proje yapısını ve kaynak köklerini yeniler. Kaynak dosyaları eklediğinizde veya taşıdığınızda ya da terminalden derleme yaptığınızda kullanışlıdır.
  • Senkronizasyon ve Tam Derleme: Proje senkronizasyonunu tek bir adımda tam Soong derlemesiyle birleştirir.

Soong araç penceresi (Görünüm > Araç Pencereleri > Soong), her senkronizasyon görevi düğümü için gerçek zamanlı durum göstergelerini, hızlı erişim derleme düğmelerini ve Soong komut yürütmesini gösterir.


Düzenleyicide Android.bp derleme, dağıtım ve gezinme

ASfP, Android.bp dosyaları için entegre düzenleyici desteği sağlar:

Hedefleri oluktan oluşturma, çalıştırma ve hatalarını ayıklama

Projenizdeki herhangi bir Android.bp dosyasını açarak iki oluk simgesinden hedefler oluşturun veya başlatın:

  • Derleme simgesi (tüm adlandırılmış modüller): Bu Soong hedefini ( "<module>" derle) derlemek için her adlandırılmış modülde (cc_library_shared, java_library, rust_binary, android_app ve test hedefleri) name: simgesinin yanında görünür.
  • Çalıştır veya Hata Ayıkla simgesi (*_test, *_test_host ve android_app): Modülü çalıştırmak veya modülde hata ayıklamak için bir test modülünün ya da android_app beyanının yanındaki Çalıştır'ı tıklayın. android_test modüllerinde atest üzerinden hata ayıklanır ve cc_test* ile rust_test* modülleri yerleşik LLDB altında başlatılır.

Android.bp oluk simgelerinden modüller oluşturma, çalıştırma ve hatalarını ayıklama

Bağlama dayalı dağıtım ve hızlı çalıştırma yapılandırmaları

Android.bp dosyalarındaki dağıtılabilir modüller için, aşağıdaki özelliklerle birlikte kenar boşluğundan veya sağ tıklama bağlam menüsünden bağlamsal Soong Deploy çalıştırma yapılandırmaları oluşturabilir ve başlatabilirsiniz:

  • Dağıtım yöntemleri: adb, özel kabuk komut dosyaları, adevice veya flashall kullanarak dağıtın.
  • Önceden çalıştırılan Soong derleme kancaları: Bağlı cihazınıza veya Cuttlefish sanal cihazınıza dağıtmadan önce hedef Soong modülünü otomatik olarak derleyin.

ASfP'de Adevice veya Flashall çalıştırma yapılandırmalarını seçme

Kaynak kodu ile Android.bp arasında geçiş yapma

Project (Proje) araç penceresi, düzenleyici sekmesi veya düzenleyici bağlam menüsündeki herhangi bir kaynak dosya ya da dizini sağ tıklayıp Open Corresponding Android.bp File'ı (İlgili Android.bp Dosyasını Aç) seçin. ASfP, bu dosyayı derleyen Android.bp modül beyanını bulup vurgular, defaults bloklarını, joker karakter srcs kalıplarını ve sembolik bağlantıları çözer.

İlgili Android.bp dosyasını aç bağlam menüsü işlemi

Android.bp düzenleyici zekası ve ipucu belgeleri

  • Dosyalar arası gezinme ve kullanım sayıları: Herhangi bir modül referansını, srcs dosyasını veya soong_config_module_type öğesini kontrol tuşuna basarak tıklayıp bildirimine gidin. Tıklanabilir N Usages yerleştirme ipuçları, modül adlarının ve paylaşılan srcs hedeflerin yanında görünür. Referans verilmeyen kitaplık modülleri ise görsel olarak soluk gösterilir.
  • Soong özelliği dokümanı ipuçları: Soong türü imzasını ve dokümanını satır içi olarak görüntülemek için işaretçiyi Android.bp dosyasındaki herhangi bir özelliğin (target, arch ve multilib altındaki mimari veya hedef kapsamlı özellikler dahil) üzerine getirin.

Android.bp özellik dokümanı ipuçları ve Kullanımlar satır içi ipuçları


Cuttlefish sanal cihaz yönetimi ve çoklu ekran yansıtma

ASfP; platform, Android Automotive OS (AAOS) ve yerel olarak oluşturulmuş Cuttlefish sanal cihazlarıyla çalışan yazılım tanımlı araç (SDV) geliştiricileri için yerleşik bir Cuttlefish eklentisi içerir:

  • Cihaz Yönetim Paneli'nde çok cihazlı kurulum: Yerel AOSP ödemenizi ($ANDROID_BUILD_TOP ve $ANDROID_PRODUCT_OUT) kullanarak Cihaz Yönetim Paneli'nde çok cihazlı Cuttlefish sanal cihaz kurulumları oluşturun ve yönetin.
  • Cuttlefish araç penceresinde çoklu ekran yansıtma: AAOS ve SDV iş akışları için birden fazla otomotiv ekranını aynı anda görüntüleyip bunlarla etkileşim kurabilmeniz amacıyla yerleşik Cuttlefish çoklu ekran yansıtma özelliğini kullanmak için Görünüm > Araç Pencereleri > Cuttlefish'i açın.

ASfP'de Cuttlefish araç penceresi ve çok ekranlı ekran yansıtma