A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Gestire il tempo di avvio
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La procedura di avvio è una catena di azioni che inizia dalla ROM di avvio, seguita dal bootloader, dal kernel, da Init, da Zygote e da system server (in grassetto è indicato il processo di avvio specifico di Android). Nella procedura di avvio specifica per i veicoli, i servizi iniziali come la videocamera di retrovisione devono essere avviati durante l'avvio del kernel.
Ordina |
Componente |
Android |
Android Automotive |
1 |
ROM di avvio |
Carica la prima fase del bootloader nella RAM interna. |
2 |
Bootloader |
Inizializza le memorie, verifica la sicurezza e carica il kernel. |
3 |
Scoppiettio |
Configura i controller di interruzione, la protezione della memoria, le cache e la pianificazione; avvia i processi dello spazio utente. |
Il processo della videocamera di retrovisione (RVC) inizia all'inizio del boot del kernel. Al termine della procedura, il GPIO del VMCU attiva la visualizzazione del RVC sul display. |
4 |
Procedura di inizializzazione |
Analizza gli script init.rc , monta i file system, avvia Zygote, avvia
il processo di sistema. |
L'HAL del veicolo (VHAL) si avvia durante la fase di inizializzazione come parte dei servizi di base. Può essere spostato in stati precedenti a seconda di ServiceManager; richiede la rimozione
delle dipendenze dalle librerie condivise (ad esempio init). |
5 |
Zigote |
Configura il runtime Java e la memoria di inizializzazione per gli oggetti Android. |
6 |
Server di sistema |
Primo componente Java del sistema, avvia i servizi Android di base. |
CarService si avvia dopo l'avvio di tutti i servizi di sistema. |
Ottimizzare il tempo di avvio
Per migliorare il tempo di avvio del sistema, segui le seguenti linee guida:
-
Kernel. Carica solo i moduli in uso e inizializza solo i componenti hardware in uso.
-
init.rc
- Fai attenzione alle operazioni di blocco (servizio rispetto all'invocazione del comando).
- Avvia solo ciò che viene utilizzato.
- Impostare la priorità corretta per i servizi.
-
Zigote. Ottimizzazione del precaricamento dei corsi (specifica l'elenco dei corsi da caricare).
-
Package Manager
-
Server di sistema. Avvia solo i servizi di sistema utilizzati.
Per assistenza con l'ottimizzazione, Google fornisce i seguenti strumenti:
-
Utilizza packages/services/Car/tools/bootanalyze/bootanalyze.py
per analizzare i log di logcat e
dmesg.
-
Utilizza packages/services/Car/tools/bootio/
per registrare l'I/O per i processi durante il booting. Devi compilare il kernel con flag specifici (fai riferimento al file README.md
).
Avvia i servizi in anticipo
Nella sequenza di avvio, alcuni servizi potrebbero essere avviati prima dell'avvio di Android.
Fotocamera posteriore
La videocamera di retrovisione (RVC) deve essere gestita nel kernel. Il VMCU notifica il processo del kernel nativo quando il veicolo inserisce la retromarcia, dopodiché il processo del kernel nativo mostra l'immagine RVC sul display. L'HAL del veicolo può controllare il RVC utilizzando
hardware/libhardware/include/hardware/vehicle_camera.h
.
Vehicle HAL (VHAL)
Alcuni sistemi potrebbero dover leggere e mettere in buffer i dati CAN (ad esempio la velocità del veicolo, lo stato della marcia)
durante le prime fasi della sequenza di avvio in attesa dell'avvio del servizio nello spazio utente
(che si verifica più avanti nella sequenza di avvio). Questo scenario richiede che il VNS e i controller HAL e CAN inizino molto presto, in genere entro pochi secondi.
-
I sistemi che possono montare rapidamente /system
possono semplicemente avviare il gestore dei servizi e poi VNS in anticipo.
-
Il sistema che non riesce a montare rapidamente /system
deve spostare sia il gestore dei servizi sia il VNS
nell'immagine di avvio del kernel e collegare tutte le librerie dipendenti in modo statico.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Manage boot time\n\nThe boot process is a chain of actions starting from the boot ROM, followed by the bootloader,\nkernel, **Init** , **Zygote** , and **system server** (bold\nindicates Android-specific boot process). In the automotive-specific boot process, early services\nsuch as rearview camera (RVC) must start during the kernel boot.\n\n| Order | Component | Android | Android Automotive |\n|-------|---------------|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 1 | Boot ROM | Loads the first stage of the boot loader into internal RAM. ||\n| 2 | Bootloader | Inits memories, verifies for security, and loads kernel. ||\n| 3 | Kernel | Sets up interrupt controllers, memory protection, caches, and scheduling; launches user space processes. | **Rearview camera (RVC)** process starts early in kernel boot. After the process is up, GPIO from VMCU triggers RVC to show on display. |\n| 4 | Init process | Parses `init.rc` scripts, mounts file systems, launches Zygote, launches system process. | **Vehicle HAL (VHAL)** starts during init phase as part of core services. Can be moved to earlier states depending on ServiceManager; requires removing dependencies on shared libraries (such as init). |\n| 5 | Zygote | Sets up Java Runtime and init memory for Android objects. ||\n| 6 | System server | First Java component in the system, starts core Android services. | **CarService** starts after all system services are started. |\n\nOptimize boot time\n------------------\n\nTo improve boot time in your system, use the following guidelines:\n\n- **Kernel.** Load only the modules in use and initialize only the hardware\n components in use.\n\n- `init.rc`\n\n - Watch for blocking operations (service compared to command invocation).\n - Start only what is used.\n - Setting correct priority for services.\n- **Zygote.** Class preloading optimization (specify the list of classes to\n load).\n\n- **Package Manager**\n\n - Optimize product image to include only APKs in use.\n\n - [Enable DEX\n preoptimization](/docs/core/runtime/configure#compilation_options).\n\n- **System server.** Start only the system services that are used.\n\nFor help with optimization, Google provides the following tools:\n\n- Use `packages/services/Car/tools/bootanalyze/bootanalyze.py` to analyze logcat and\n dmesg logs.\n\n- Use `packages/services/Car/tools/bootio/` to record I/O for processes during the\n boot. You must compile the kernel with specific flags (refer to the `README.md`\n file).\n\nStart services early\n--------------------\n\nIn the boot sequence, some services might start before Android starts to boot.\n\n### Rearview camera\n\nThe rearview camera (RVC) should be handled in the kernel. The VMCU notifies the native kernel\nprocess when the vehicle shifts into Reverse, after which the native kernel process displays the\nRVC image onto the display. The vehicle HAL can control the RVC using\n`hardware/libhardware/include/hardware/vehicle_camera.h`.\n\n### Vehicle HAL (VHAL)\n\nSome systems might need to read and buffer CAN data (for example, vehicle speed, gear status)\nduring the early stages of the boot sequence while waiting for the user-space service to start\n(which occurs later in the boot sequence). This scenario requires VNS and the HAL and CAN\ncontrollers to start very early, typically within a few seconds.\n\n- Systems that can quickly mount `/system` can simply launch service manager then\n VNS early.\n\n- System that can't quickly mount `/system` must move both service manager and VNS\n to the kernel boot image and link all dependent libraries statically."]]