Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Mengelola waktu booting
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Proses booting adalah rantai tindakan yang dimulai dari ROM booting, diikuti dengan bootloader,
kernel, Init, Zygote, dan server sistem (cetak tebal
menunjukkan proses booting khusus Android). Dalam proses booting khusus otomotif, layanan awal
seperti kamera belakang (RVC) harus dimulai selama booting kernel.
Pesan |
Komponen |
Android |
Android Automotive |
1 |
ROM Booting |
Memuat tahap pertama bootloader ke RAM internal. |
2 |
Bootloader |
Melakukan inisialisasi memori, memverifikasi keamanan, dan memuat kernel. |
3 |
Biji Jagung Meletup |
Menyiapkan pengontrol interupsi, perlindungan memori, cache, dan penjadwalan; meluncurkan proses
ruang pengguna. |
Proses kamera belakang (RVC) dimulai lebih awal saat booting kernel. Setelah
proses selesai, GPIO dari VMCU akan memicu RVC untuk ditampilkan di layar. |
4 |
Proses inisialisasi |
Mengurai skrip init.rc , memasang sistem file, meluncurkan Zygote, meluncurkan
proses sistem. |
Vehicle HAL (VHAL) dimulai selama fase inisialisasi sebagai bagian dari layanan
inti. Dapat dipindahkan ke status sebelumnya bergantung pada ServiceManager; memerlukan penghapusan
dependensi pada library bersama (seperti init). |
5 |
Zigot |
Menyiapkan Java Runtime dan memori inisialisasi untuk objek Android. |
6 |
Server sistem |
Komponen Java pertama dalam sistem, memulai layanan inti Android. |
CarService dimulai setelah semua layanan sistem dimulai. |
Mengoptimalkan waktu booting
Untuk meningkatkan waktu booting di sistem Anda, gunakan panduan berikut:
-
Kernel. Hanya muat modul yang digunakan dan lakukan inisialisasi hanya pada komponen
hardware yang digunakan.
-
init.rc
- Perhatikan operasi pemblokiran (layanan dibandingkan dengan pemanggilan perintah).
- Mulai hanya yang digunakan.
- Menetapkan prioritas yang benar untuk layanan.
-
Zigot. Pengoptimalan pramuat class (tentukan daftar class yang akan
dimuat).
-
Pengelola Paket
-
Server sistem. Mulai hanya layanan sistem yang digunakan.
Untuk membantu pengoptimalan, Google menyediakan alat berikut:
-
Gunakan packages/services/Car/tools/bootanalyze/bootanalyze.py
untuk menganalisis log logcat dan
dmesg.
-
Gunakan packages/services/Car/tools/bootio/
untuk merekam I/O untuk proses selama
boot. Anda harus mengompilasi kernel dengan flag tertentu (lihat file
README.md
).
Memulai layanan lebih awal
Dalam urutan booting, beberapa layanan mungkin dimulai sebelum Android mulai melakukan booting.
Kamera belakang
Kamera belakang (RVC) harus ditangani di kernel. VMCU memberi tahu proses kernel native
saat kendaraan beralih ke Mundur, setelah itu proses kernel native menampilkan
gambar RVC ke layar. HAL kendaraan dapat mengontrol RVC menggunakan
hardware/libhardware/include/hardware/vehicle_camera.h
.
HAL Kendaraan (VHAL)
Beberapa sistem mungkin perlu membaca dan menyimpan data CAN dalam buffering (misalnya, kecepatan kendaraan, status gigi)
selama tahap awal urutan booting sambil menunggu layanan ruang pengguna dimulai
(yang terjadi nanti dalam urutan booting). Skenario ini mengharuskan VNS serta pengontrol HAL dan CAN
dimulai sangat awal, biasanya dalam beberapa detik.
-
Sistem yang dapat memasang /system
dengan cepat dapat meluncurkan pengelola layanan, lalu
VNS lebih awal.
-
Sistem yang tidak dapat memasang /system
dengan cepat harus memindahkan pengelola layanan dan VNS
ke image booting kernel dan menautkan semua library dependen secara statis.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]