플래그 사용 및 유형 확인

기능 출시 플래그는 Google에서 안정적인 코드 브랜치를 보장하기 위한 접근 방식으로 사용합니다. 이러한 플래그는 AOSP에 특정 유형의 기여를 할 때도 필요합니다. 기능 출시 플래그를 구현하기 전에 변경사항에 플래그가 필요한지 확인합니다. 플래그가 필요한 경우 사용할 플래그 유형을 결정해야 합니다.

플래그 사용량 확인

기능 출시 플래그를 사용할 시기를 결정하려면 다음 가이드라인을 따르세요.

  • 새 기능을 추가하거나 특히 복잡한 버그를 수정하는 등 AOSP 코드베이스가 불안정해질 수 있는 변경사항을 적용하는 경우 기능 출시 플래그를 사용하세요.

  • 반대로 코드베이스의 불안정성을 유발하지 않는 코드 변경사항(예: 주석 수정)을 적용하는 경우 기능 출시 플래그를 사용할 필요가 없습니다.

플래그 유형 결정

플래그에는 aconfig 플래그빌드 플래그의 두 가지 유형이 있습니다.

Aconfig 플래그

Aconfig 플래그는 테스트 및 출시 프로세스 중에 출시되지 않은 코드의 실행을 출시된 코드와 구분하는 데 사용됩니다. Aconfig 플래그는 읽기-쓰기 또는 읽기 전용일 수 있습니다.

  • 읽기-쓰기 aconfig 플래그는 런타임에 사용 설정 (true로 설정)하거나 사용 중지 (false로 설정)할 수 있는 불리언 변수입니다. 읽기-쓰기 플래그를 사용하여 기본 브랜치의 안정성에 영향을 주지 않고 변경사항을 테스트하고 출시합니다.

  • 읽기 전용 aconfig 플래그는 런타임에 변경할 수 없는 불리언 상수입니다. 안정적이고 출시 준비가 완료된 코드의 경우 읽기 쓰기 aconfig 플래그를 읽기 전용 aconfig 플래그로 변환할 수 있습니다.

    또한 사용하는 컴파일러에 따라 읽기 전용 플래그를 사용하면 실행되지 않는 코드가 빌드에서 제외될 수 있습니다. 따라서 읽기 전용 플래그를 사용하여 출시에 포함할 준비가 되지 않은 코드를 숨길 수 있습니다.

빌드 플래그

빌드 플래그는 빌드 시간 상수 (문자열)이며 런타임 중에 변경할 수 없습니다. 다음과 같이 aconfig 플래그를 사용할 수 없는 경우에 이 플래그를 사용하세요.

  • 빌드에 포함할 사전 컴파일된 코드 또는 사전 빌드된 코드가 있습니다.
  • 빌드 시스템 자체를 변경하려고 합니다.
  • 코드 크기를 관리하기 위해 종속 항목에 플래그를 지정하려 합니다.