Açılış süresini yönetme

Önyükleme işlemi, önyükleme ROM'undan başlayıp bootloader, çekirdek, Init, Zygote ve sistem sunucusu (kalın olarak gösterilen Android'e özgü önyükleme işlemi) ile devam eden bir işlem zinciridir. Otomotiva özgü önyükleme işleminde, arka görüş kamerası (RVC) gibi erken hizmetler çekirdek önyükleme sırasında başlatılmalıdır.

Sipariş verin Bileşen Android Android Automotive
1 Önyükleme ROM'u Önyükleme yükleyicinin ilk aşamasını dahili RAM'e yükler.
2 Önyükleyici Bellekleri başlatır, güvenliği doğrular ve çekirdeği yükler.
3 Patlayan mısır Kesme denetleyicileri, bellek koruması, önbellekler ve planlama ayarlarını yapar, kullanıcı alanı işlemlerini başlatır. Arka görüş kamerası (RVC) işlemi, çekirdek önyüklemenin başlarında başlar. İşlem tamamlandıktan sonra VMCU'dan gelen GPIO, RVC'nin ekranda gösterilmesini tetikler.
4 Başlatma işlemi init.rc komut dosyalarını ayrıştırır, dosya sistemlerini bağlar, Zygote'u başlatır, sistem işlemini başlatır. Araç HAL'i (VHAL), temel hizmetlerin bir parçası olarak başlatma aşamasında başlar. ServiceManager'a bağlı olarak daha önceki durumlara taşınabilir; ortak kitaplıklara (ör. init) olan bağımlılıkların kaldırılmasını gerektirir.
5 Zygote Android nesneleri için Java Runtime'ı ve ilk belleği ayarlar.
6 Sistem sunucusu Sistemdeki ilk Java bileşenidir ve temel Android hizmetlerini başlatır. CarService, tüm sistem hizmetleri başlatıldıktan sonra başlar.

Açılış süresini optimize etme

Sisteminizin önyükleme süresini iyileştirmek için aşağıdaki yönergeleri uygulayın:

  • Çekirdek. Yalnızca kullanılan modülleri yükleyin ve yalnızca kullanılan donanım bileşenlerini başlatın.

  • init.rc

    • Engelleme işlemlerini (hizmet ve komut çağrısı karşılaştırması) izleyin.
    • Yalnızca kullanılanları başlatın.
    • Hizmetler için doğru önceliği ayarlama.
  • Zigot. Sınıf ön yükleme optimizasyonu (yüklenecek sınıfların listesini belirtin).

  • Paket Yöneticisi

  • Sistem sunucusu. Yalnızca kullanılan sistem hizmetlerini başlatın.

Google, optimizasyon konusunda yardım almak için aşağıdaki araçları sunar:

  • logcat ve dmesg günlüklerini analiz etmek için packages/services/Car/tools/bootanalyze/bootanalyze.py'ü kullanın.

  • Açılış sırasındaki işlemler için G/Ç'yi kaydetmek üzere packages/services/Car/tools/bootio/'ü kullanın. Çekirdeği belirli işaretlerle derlemeniz gerekir (README.md dosyasına bakın).

Hizmetleri erken başlatma

Bazı hizmetler, Android başlatılmadan önce önyükleme sırasında başlatılabilir.

Arka kamera

Arka görüş kamerası (RVC), çekirdekte ele alınmalıdır. VMCU, araç geri vitese geçtiğinde yerel çekirdek işlemini bilgilendirir. Ardından yerel çekirdek işlemi, RVC görüntüsünü ekranda gösterir. Araç HAL'i, hardware/libhardware/include/hardware/vehicle_camera.h'ü kullanarak RVC'yi kontrol edebilir.

Araç HAL'si (VHAL)

Bazı sistemlerde, kullanıcı alanı hizmetinin başlatılmasını beklerken (bu, önyükleme sırasının ilerleyen aşamalarında gerçekleşir) önyükleme sırasının ilk aşamalarında CAN verilerini (ör. araç hızı, vites durumu) okuması ve arabelleğe alması gerekebilir. Bu senaryoda VNS'nin, HAL ve CAN denetleyicilerinin çok erken, genellikle birkaç saniye içinde başlatılması gerekir.

  • /system'ü hızlıca bağlayabilen sistemler, hizmet yöneticisini ve ardından VNS'yi erken başlatabilir.

  • /system hızlı bir şekilde bağlayamayan sistemler hem servis yöneticisini hem de VNS'yi çekirdek önyükleme resmine taşımalı ve tüm bağımlı kitaplıkları statik olarak bağlamalıdır.