2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
부팅 시간 관리
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
부팅 프로세스는 부트 ROM에서 시작된 작업의 체인이며, 부트로더, 커널, Init, Zygote, 시스템 서버가 뒤따라 나옵니다 (굵게 표시된 부분은 Android 관련 부팅 프로세스임). 자동차 관련 부팅 프로세스에서는 초기 서비스(예: 후방 카메라(RVC))가 커널 부팅 중에 시작해야 합니다.
주문 |
구성요소 |
Android |
Android Automotive |
1 |
Boot ROM |
부트로더의 첫 번째 단계를 내부 RAM에 로드합니다. |
2 |
부트로더 |
메모리를 초기화하고 보안을 확인하며 커널을 로드합니다. |
3 |
커널 |
인터럽트 컨트롤러, 메모리 보호, 캐시, 예약을 설정하고 사용자 공간 프로세스를 실행합니다. |
후방 카메라 (RVC) 프로세스는 커널 부팅 초기에 시작됩니다. 프로세스가 실행되면 VMCU의 GPIO에서 RVC를 트리거하여 화면에 표시합니다. |
4 |
Init 프로세스 |
init.rc 스크립트를 파싱하고, 파일 시스템을 마운트하며, Zygote 및 시스템 프로세스를 시작합니다. |
차량 HAL(VHAL)은 핵심 서비스의 일부로 init 단계에서 시작됩니다. ServiceManager에 따라 초기 상태로 이동할 수 있습니다. 공유 라이브러리(예: init)의 종속 항목을 삭제해야 합니다. |
5 |
Zygote |
Android 객체의 Java 런타임 및 init 메모리를 설정합니다. |
6 |
시스템 서버 |
시스템의 첫 번째 자바 구성요소로, 핵심 Android 서비스를 시작합니다. |
CarService는 모든 시스템 서비스가 시작된 후에 시작됩니다. |
부팅 시간 최적화
시스템의 부팅 시간을 개선하려면 다음 가이드라인을 따르세요.
-
커널. 사용 중인 모듈만 로드하고 사용 중인 하드웨어 구성요소만 초기화합니다.
-
init.rc
- 차단 작업(명령어 호출과 비교되는 서비스)을 확인합니다.
- 사용된 항목만 시작합니다.
- 서비스의 올바른 우선순위를 설정합니다.
-
Zygote 클래스를 미리 로드하는 것을 최적화합니다(로드할 클래스 목록을 지정).
-
패키지 관리자
-
시스템 서버 사용된 시스템 서비스만 시작합니다.
Google에서는 최적화에 도움이 되는 도구를 다음과 같이 제공합니다.
서비스 빠른 시작
부팅 시퀀스에서 Android 부팅이 시작되기 전에 일부 서비스가 시작될 수 있습니다.
후방 카메라
후방 카메라(RVC)는 커널에서 처리해야 합니다. VMCU는 차량이 역방향으로 전환되면 네이티브 커널 프로세스에 알립니다. 이후 네이티브 커널 프로세스는 RVC 이미지를 디스플레이에 표시합니다. 차량 HAL은 hardware/libhardware/include/hardware/vehicle_camera.h
를 사용하여 RVC를 제어할 수 있습니다.
VHAL(차량 HAL)
일부 시스템에서는 부팅 시퀀스 초기 단계 중에 사용자 공간 서비스 (부팅 시퀀스에서 나중에 발생함)가 시작되기를 기다리는 동안 CAN 데이터(예: 차량 속도, 기어 상태)를 읽고 버퍼링해야 할 수도 있습니다. 이 시나리오에서는 매우 일찍 시작하기 위해(일반적으로 몇 초 이내) VNS와 HAL 및 CAN 컨트롤러가 필요합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 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."]]