기능 실행 플래그는 안정적인 코드 브랜치를 보장하기 위한 방법으로 Google에서 사용합니다. 이러한 플래그는 특정 유형의 AOSP 기여에도 필요합니다. 기능 출시 플래그를 구현하기 전에 변경에 플래그가 필요한지 결정합니다. 플래그가 필요한 경우 사용할 플래그의 유형을 결정해야 합니다
플래그 사용 확인
기능 실행 플래그를 사용할 시기를 결정하려면 다음 가이드라인을 따르세요.
새 기능을 추가하거나 특히 복잡한 버그를 수정하는 등 AOSP 코드베이스가 불안정해질 수 있는 변경사항을 적용하는 경우 기능 출시 플래그를 사용하세요.
반대로 코드베이스의 불안정성을 유발하지 않는 코드 변경(예: 주석 수정)을 하는 경우에는 기능 출시 플래그를 사용할 필요가 없습니다.
플래그 유형 확인
플래그에는 aconfig 플래그와 빌드 플래그라는 두 가지 유형이 있습니다.
Aconfig 플래그
Aconfig 플래그는 테스트 및 출시 프로세스 중에 출시되지 않은 코드의 실행을 출시된 코드의 실행을 분리하는 데 사용됩니다. Aconfig 플래그는 읽기-쓰기 또는 읽기 전용일 수 있습니다.
읽기-쓰기 aconfig 플래그는 런타임에 사용 설정 (
true
로 설정) 또는 사용 중지 (false
로 설정)할 수 있는 불리언 변수입니다. 읽기-쓰기 플래그를 사용하여 기본 브랜치의 안정성에 영향을 주지 않고 변경사항을 테스트하고 출시할 수 있습니다.읽기 전용 aconfig 플래그는 런타임에 변경할 수 없는 불리언 상수입니다. 읽기-쓰기 aconfig 플래그를 읽기 전용 aconfig 플래그로 변환할 수 있으며 안정적이고 출시할 준비가 된 코드를 사용할 수 있습니다.
또한 사용하는 컴파일러에 따라 읽기 전용 플래그를 사용하면 실행되지 않는 코드가 빌드에서 제외될 수 있습니다. 따라서 읽기 전용 플래그를 사용하여 출시 버전에 포함될 준비가 되지 않은 코드를 숨길 수 있습니다.
빌드 플래그
빌드 플래그는 빌드 시간 상수 (문자열)이며 런타임 중에는 변경할 수 없습니다. 다음과 같이 aconfig 플래그를 사용할 수 없는 경우에 이러한 플래그를 사용합니다.
- 빌드에 포함하려는 사전 컴파일되거나 사전 빌드된 코드가 있는 경우
- 빌드 시스템 자체를 변경하려고 합니다.
- 코드 크기를 관리하기 위해 종속 항목에 플래그를 배치하려고 합니다.