플래그 사용 및 유형 확인

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

플래그 사용량 확인

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

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

  • 반대로 주석 수정과 같이 코드베이스를 불안정하게 만들지 않는 코드 변경을 하는 경우에는 기능 출시 플래그를 사용하지 않아도 됩니다.

플래그 유형 확인

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

Aconfig 플래그

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

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

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

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

빌드 플래그

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

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