기능 실행 플래그 값 설정

기본적으로 모든 기능 출시 플래그는 READ_WRITE이며 DISABLED로 설정됩니다. 기능을 테스트하려면 먼저 플래그의 플래그 값 파일을 만들어 빌드에 사용되는 기본값을 재정의해야 합니다. 플래그 값 파일에서 개별 플래그의 상태 (ENABLED 또는 DISABLED)와 권한(READ_WRITE 또는 READ_ONLY)을 설정합니다.

출시 구성은 특정 Android 빌드의 모든 플래그 값 파일 (특정 기능 사용 설정 및 사용 중지됨)이 포함된 디렉터리입니다.

AOSP는 trunk_staging와 같은 몇 가지 출시 구성과 함께 제공됩니다. 출시 구성 디렉터리는 WORKING_DIRECTORY/build/release/aconfig/에 있습니다.

lunch 명령어를 사용하여 타겟을 선택하면 타겟의 출시 구성도 설정됩니다. 예를 들어 다음은 trunk_staging 타겟입니다.

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

트렁크 스테이징은 Google에서 정식 출시 전에 기능을 테스트하는 데 사용하기 때문에 개발 출시 구성입니다. 이 구성은 주로 READ_WRITE 플래그를 사용하여 런타임에 기능을 사용 설정하거나 사용 중지하여 코드를 테스트할 수 있습니다.

정식 출시에서는 출시 출시 구성을 사용합니다. 출시 버전 구성은 대부분 READ_ONLY 플래그를 사용하며 해당 출시에 사용 설정된 모든 코드를 반영합니다.

trunk_staging 출시 구성에 플래그 추가

새 플래그를 테스트하려면 다음과 같이 trunk_staging 출시 구성에 추가합니다.

  1. WORKING_DIRECTORY/build/release/aconfig/trunk_staging/까지 경로 안내
  2. 플래그와 동일한 패키지 이름(예: Java용 aconfig 플래그 선언에 표시된 com.example.android.aconfig.demo.flags)으로 디렉터리를 만듭니다.
  3. 새 디렉터리로 이동합니다.
  4. 디렉터리에서 플래그 선언(.aconfig) 파일에 사용된 이름(예: Java용 aconfig 플래그 선언에 표시된 my_static_flag)과 _flag_values.textproto을 결합한 플래그 값 파일을 만듭니다. 결과 파일 이름은 my_static_flag_flag_values.textproto입니다.
  5. 파일을 수정하고 다음과 유사한 flag_value를 추가합니다.

    flag_value {
      package: "com.example.android.aconfig.demo.flags"
      name: "my_static_flag"
      state: DISABLED
      Permission: READ_WRITE
    }
    

    각각의 의미는 다음과 같습니다.

    • package에는 선언에 사용된 것과 동일한 패키지 이름이 포함됩니다.
    • name에는 선언에 사용된 것과 동일한 이름이 포함됩니다.
    • stateENABLED 또는 DISABLED입니다.
    • permissionREAD_WRITE 또는 READ_ONLY입니다. 일반적으로 출시 구성의 일부인 플래그 값 파일의 경우 permissionREAD_ONLY로 설정됩니다.
  6. 파일을 저장하고 편집기를 종료합니다.

  7. 플래그 값 파일과 동일한 디렉터리에서 Android.bp라는 빌드 파일을 만듭니다. 이 파일은 빌드에 플래그 값 파일을 포함하는 데 사용됩니다.

  8. 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_DIRbuild/release입니다.
    • package에는 선언에 사용된 것과 동일한 패키지 이름이 포함됩니다.
    • srcs는 모든 플래그 값 파일의 목록입니다.
  9. 파일을 저장하고 편집기를 종료합니다.

  10. 현재 디렉터리 위의 디렉터리 (cd ..)로 이동합니다.

  11. Android.bp 파일을 수정합니다. 이 빌드 파일에는 각 플래그 값 파일과 연결된 이름(name) 목록이 포함되어 있습니다. 이전 빌드 파일 (8단계)에서 사용한 이름을 이 목록에 추가합니다.

  12. Android를 빌드하고 새 코드를 실행하여 플래그 값 파일의 설정에 따라 사용 설정되었는지 확인합니다.