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