Başlatma 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. Otomotiv cihazlara özel ö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 Yapay Zeka 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üvenlik için doğrular ve çekirdeği yükler.
3 Çekirdek Kesme denetleyicileri, bellek koruması, önbellekler ve planlamayı ayarlar; 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'daki GPIO, RVC'yi ekranda gösterilmesi için 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 önceki durumlara taşınabilir; paylaşılan kitaplıklardaki (init gibi) bağımlılıkların kaldırılmasını gerektirir.
5 Zigot 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şlemlerine dikkat edin (hizmet çağırmaya kıyasla hizmet).
    • 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, optimizasyona yardımcı olmak için aşağıdaki araçları sağlar:

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

  • Başlatma sırasındaki işlemler için G/Ç kaydetmek için 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ı sistemlerin, başlatma sırasının ilk aşamalarında kullanıcı alanı hizmetinin başlamasını beklerken (açma işleminin sonraki aşamalarında gerçekleşir) CAN verilerini (örneğin, 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 hizmetini hızlıca ekleyebilen sistemler servis yöneticisini ve ardından VNS'yi erkenden 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.