Ö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
-
Ürün resmini, yalnızca kullanımdaki APK'ları içerecek şekilde optimize edin.
-
-
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.