AOSP는 Soong 빌드 시스템을 사용하여 Android를 빌드합니다. Soong은 kati GNU Make 클론 도구와 Ninja 빌드 시스템 구성요소를 사용하여 Android의 빌드 속도를 높입니다.
Soong 빌드 파일을 청사진 파일이라고 하며 이름은 Android.bp입니다. 이러한 파일은 구문과 의미가 Bazel BUILD 파일과 유사합니다.
Android.bp 파일 형식에 대한 자세한 내용은 Android.bp 파일 형식을 참고하세요.
Make 파일을 Android.bp 파일로 변환하는 방법에 관한 자세한 내용은 Make 및 Soong 비교를 참고하세요.
기능 출시 플래그 및 빌드 플래그
기능 출시 플래그는 테스트되지 않은 코드를 테스트된 코드에서 분리하는 데 사용되는 바이너리 플래그입니다. AOSP 외부 개발 브랜치의 자체 미러를 유지관리하는 경우 이러한 플래그를 사용하여 미러링된 코드를 안정적으로 유지할 수 있습니다. 공개 외부 개발 브랜치에 코드를 제공하는 경우 검토자가 코드에 플래그를 구현하도록 요청할 수 있습니다.
빌드 플래그는 코드 라이브러리를 선택적으로 포함하는 등 빌드를 수정하는 데 사용되는 빌드 시간 문자열 상수입니다.
다양한 코드 브랜치에 관한 자세한 내용은 출시 수명 주기를 참고하세요.
기능 출시 플래그와 빌드 플래그에는 빌드 파일을 변경해야 합니다. 이러한 플래그와 빌드에서 사용하는 방법에 대한 자세한 내용은 기능 출시 플래그 개요를 참고하세요.
R8을 사용한 코드 및 리소스 축소
Soong은 R8 컴파일러를 사용하여 android_app, android_test, 설치 가능한 java_library 모듈과 같이 DEX 바이트 코드를 컴파일하는 Java 및 Kotlin 타겟을 축소하고 최적화합니다. android_library 및 정적 java_library과 같은 정적 라이브러리에서 optimize 블록은 소비자 유지 규칙을 연결하고 내보냅니다.
R8 최적화 및 유지 규칙 구성에 관한 자세한 내용은 R8로 플랫폼 코드 및 리소스 최적화를 참고하세요.