Önyükleme süresini yönet

Önyükleme işlemi, önyükleme ROM'undan başlayarak, önyükleyici, çekirdek, Init , Zygote ve sistem sunucusunun takip ettiği bir eylemler zinciridir (kalın, Android'e özgü önyükleme işlemini gösterir). Otomotive özgü önyükleme sürecinde, arka görüş kamerası (RVC) gibi erken hizmetlerin çekirdek önyüklemesi sırasında başlatılması gerekir.

Emir Bileşen Android Android Otomotiv
1 Önyükleme ROM'u Önyükleyicinin ilk aşamasını dahili RAM'e yükler.
2 Önyükleyici Anıları başlatır, güvenliği doğrular ve çekirdeği yükler.
3 Çekirdek Kesinti denetleyicilerini, bellek korumasını, önbellekleri ve zamanlamayı ayarlar; Kullanıcı alanı işlemlerini başlatır. Arka görüş kamerası (RVC) işlemi çekirdek önyüklemesinin başlarında başlar. İşlem tamamlandıktan sonra VMCU'dan GPIO, ekranda gösterilmesi için RVC'yi tetikler.
4 İşlemi başlat init.rc komut dosyalarını ayrıştırır, dosya sistemlerini bağlar, Zygote'u başlatır, sistem sürecini başlatır. Araç HAL'si (VHAL), temel hizmetlerin bir parçası olarak başlangıç ​​aşamasında başlar. ServiceManager'a bağlı olarak daha önceki durumlara taşınabilir; paylaşılan kitaplıklara (init gibi) bağımlılıkların kaldırılmasını gerektirir.
5 Zigot Android nesneleri için Java Runtime'ı ve başlangıç ​​belleğini ayarlar.
6 Sistem sunucusu Sistemdeki ilk Java bileşeni temel Android hizmetlerini başlatır. CarService, tüm sistem servisleri başlatıldıktan sonra başlar.

Önyükleme süresini optimize edin

Sisteminizdeki önyükleme süresini iyileştirmek için aşağıdaki yönergeleri kullanı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, komut çağırmayla karşılaştırıldığında).
    • Yalnızca kullanılanı başlatın.
    • Hizmetler için doğru önceliğin ayarlanması.
  • Zigot. Sınıf önyükleme optimizasyonu (yüklenecek sınıfların listesini belirtin).

  • Paketleme yöneticisi

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

Optimizasyon konusunda yardım için Google 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.

  • Önyükleme sırasındaki işlemlere yönelik G/Ç'yi kaydetmek için packages/services/Car/tools/bootio/ kullanın. Çekirdeği belirli bayraklarla derlemelisiniz ( README.md dosyasına bakın).

Hizmetleri erken başlatın

Önyükleme sırasında bazı hizmetler, Android önyüklemeye başlamadan önce başlayabilir.

Dikiz kamera

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

Araç HAL'i (VHAL)

Bazı sistemlerin, kullanıcı alanı hizmetinin başlamasını beklerken (önyükleme sırasında daha sonra gerçekleşir) önyükleme sırasının ilk aşamalarında CAN verilerini (örneğin araç hızı, vites durumu) okuması ve ara belleğe alması gerekebilir. Bu senaryo, VNS ile HAL ve CAN denetleyicilerinin çok erken, genellikle birkaç saniye içinde başlamasını gerektirir.

  • Hızlı bir şekilde bağlanabilen sistemler /system servis yöneticisini ve ardından VNS'yi erken başlatabilir.

  • Hızlı bir şekilde bağlanamayan sistem /system hem hizmet yöneticisini hem de VNS'yi çekirdek önyükleme görüntüsüne taşımalı ve tüm bağımlı kitaplıkları statik olarak bağlamalıdır.