기본적으로 모든 기능 출시 플래그는 READ_WRITE이며 DISABLED로 설정됩니다. 기능을 테스트하려면 먼저 플래그의 플래그 값 파일을 만들어 빌드에 사용되는 기본값을 재정의해야 합니다. 플래그 값 파일에서 개별 플래그의 상태 (ENABLED 또는 DISABLED)와 권한(READ_WRITE 또는 READ_ONLY)을 설정합니다.
출시 구성은 특정 Android 빌드의 모든 플래그 값 파일 (특정 기능 사용 설정 및 사용 중지됨)이 포함된 디렉터리입니다.
AOSP는 trunk_staging와 같은 몇 가지 출시 구성과 함께 제공됩니다. 출시 구성 디렉터리는 WORKING_DIRECTORY/build/release/aconfig/에 있습니다.
참고: 이 페이지에서는 출시 구성의 작동 방식을 설명하기 위한 수단으로 기존 출시 구성에 플래그를 추가하는 방법을 보여줍니다. AOSP에 포함된 출시 구성은 Google에서 정의합니다. Google은 구성의 기능 출시 플래그를 업데이트하거나 변경하는 기여를 허용하지 않습니다. 대신 AOSP 포크에서 기본 플래그 값을 포함하여 자체 맞춤 출시 구성을 정의할 수 있습니다. 출시 구성에 관한 자세한 내용은 기능 출시 플래그 값 설정을 참고하세요.
lunch 명령어를 사용하여 타겟을 선택하면 타겟의 출시 구성도 설정됩니다. 예를 들어 다음은 trunk_staging 타겟입니다.
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
트렁크 스테이징은 Google에서 정식 출시 전에 기능을 테스트하는 데 사용하기 때문에 개발 출시 구성입니다. 이 구성은 주로 READ_WRITE 플래그를 사용하여 런타임에 기능을 사용 설정하거나 사용 중지하여 코드를 테스트할 수 있습니다.
정식 출시에서는 출시 출시 구성을 사용합니다. 출시 버전 구성은 대부분 READ_ONLY 플래그를 사용하며 해당 출시에 사용 설정된 모든 코드를 반영합니다.
trunk_staging 출시 구성에 플래그 추가
새 플래그를 테스트하려면 다음과 같이 trunk_staging 출시 구성에 추가합니다.
- WORKING_DIRECTORY/build/release/aconfig/trunk_staging/까지 경로 안내
- 플래그와 동일한 패키지 이름(예: Java용 aconfig 플래그 선언에 표시된 com.example.android.aconfig.demo.flags)으로 디렉터리를 만듭니다.
- 새 디렉터리로 이동합니다.
- 디렉터리에서 플래그 선언(.aconfig) 파일에 사용된 이름(예: Java용 aconfig 플래그 선언에 표시된 my_static_flag)과 _flag_values.textproto을 결합한 플래그 값 파일을 만듭니다. 결과 파일 이름은 my_static_flag_flag_values.textproto입니다.
- 파일을 수정하고 다음과 유사한 flag_value를 추가합니다.
각각의 의미는 다음과 같습니다.flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
- package에는 선언에 사용된 것과 동일한 패키지 이름이 포함됩니다.
- name에는 선언에 사용된 것과 동일한 이름이 포함됩니다.
- state는 ENABLED 또는 DISABLED입니다.
- permission는 READ_WRITE 또는 READ_ONLY입니다. 일반적으로 출시 구성의 일부인 플래그 값 파일의 경우 permission가 READ_ONLY로 설정됩니다.
- 파일을 저장하고 편집기를 종료합니다.
- 플래그 값 파일과 동일한 디렉터리에서 Android.bp라는 빌드 파일을 만듭니다. 이 파일은 빌드에 플래그 값 파일을 포함하는 데 사용됩니다.
- Android.bp 파일에서 다음과 유사한 aconfig_values 섹션을 만듭니다.
각각의 의미는 다음과 같습니다.aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
- name은 Soong 빌드 모듈의 고유한 이름입니다. Google은 aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all 규칙을 사용합니다. PATH_TO_RELEASE_CONFIG_DIR은 build/release입니다.
- package에는 선언에 사용된 것과 동일한 패키지 이름이 포함됩니다.
- srcs는 모든 플래그 값 파일의 목록입니다.
- 파일을 저장하고 편집기를 종료합니다.
- 현재 디렉터리 위의 디렉터리 (cd ..)로 이동합니다.
- Android.bp 파일을 수정합니다. 이 빌드 파일에는 각 플래그 값 파일과 연결된 이름(name) 목록이 포함되어 있습니다. 이전 빌드 파일 (8단계)에서 사용한 이름을 이 목록에 추가합니다.
- Android를 빌드하고 새 코드를 실행하여 플래그 값 파일의 설정에 따라 사용 설정되었는지 확인합니다.
'Android OS > : : AOSP' 카테고리의 다른 글
[빌드-기능 출시 플래그] 빌드 플래그 선언 및 사용 (0) | 2025.02.27 |
---|---|
[빌드-기능 출시 플래그] 런타임 시 플래그 값 변경 (0) | 2025.02.27 |
[빌드-기능 출시 플래그] 기능 출시 플래그로 코드 변경사항 래핑 (0) | 2025.02.27 |
[빌드-기능 출시 플래그] aconfig 플래그 선언 (0) | 2025.02.27 |
[빌드-기능 출시 플래그] 플래그 사용 및 유형 확인 (0) | 2025.02.27 |