Menetapkan nilai flag peluncuran fitur

Secara default, semua flag peluncuran fitur adalah READ_WRITE dan ditetapkan ke DISABLED. Sebelum dapat menguji fitur, Anda harus mengganti nilai default yang digunakan dalam build dengan membuat file nilai flag untuk flag tersebut. Dalam file nilai flag, Anda menetapkan status flag individual (ENABLED atau DISABLED) dan izin (READ_WRITE atau READ_ONLY).

Konfigurasi rilis adalah direktori yang berisi semua file nilai flag untuk build Android tertentu (dengan fitur tertentu diaktifkan dan dinonaktifkan).

AOSP dilengkapi dengan beberapa konfigurasi rilis, seperti trunk_staging. Direktori konfigurasi rilis dapat ditemukan di bagian WORKING_DIRECTORY/build/release/aconfig/.

Saat menggunakan perintah lunch untuk memilih target, Anda juga menetapkan konfigurasi rilis untuk target tersebut. Misalnya, berikut adalah target trunk_staging:

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

Trunk staging adalah konfigurasi rilis pengembangan karena Google menggunakannya untuk menguji fitur sebelum rilis umum. Konfigurasi ini sebagian besar menggunakan flag READ_WRITE yang memungkinkan Anda menguji kode dengan fitur yang diaktifkan atau dinonaktifkan saat runtime.

Saat rilis umum, gunakan konfigurasi rilis rilis. Konfigurasi rilis rilis sebagian besar menggunakan flag READ_ONLY dan mencerminkan semua kode yang diaktifkan untuk rilis tersebut.

Menambahkan flag ke konfigurasi rilis trunk_staging

Untuk menguji flag baru, tambahkan ke konfigurasi rilis trunk_staging sebagai berikut:

  1. Buka WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. Buat direktori dengan nama paket yang sama dengan flag Anda, seperti com.example.android.aconfig.demo.flags yang ditampilkan di Mendeklarasikan flag aconfig untuk Java.
  3. Buka direktori baru.
  4. Di direktori, buat file nilai flag yang menggabungkan nama yang digunakan dalam file deklarasi flag (.aconfig), seperti my_static_flag yang ditampilkan di Mendeklarasikan flag aconfig untuk Java dengan _flag_values.textproto. Nama file yang dihasilkan adalah my_static_flag_flag_values.textproto.
  5. Edit file dan tambahkan flag_value yang mirip dengan berikut ini:

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

    Dengan:

    • package berisi nama paket yang sama yang digunakan dalam deklarasi.
    • name berisi nama yang sama yang digunakan dalam deklarasi.
    • state adalah ENABLED atau DISABLED.
    • permission adalah READ_WRITE atau READ_ONLY. Umumnya, permission ditetapkan ke READ_ONLY untuk file nilai flag yang merupakan bagian dari konfigurasi rilis.
  6. Simpan file dan keluar dari editor Anda.

  7. Di direktori yang sama dengan file nilai flag, buat file build bernama Android.bp. File ini digunakan untuk menyertakan file nilai flag dalam build.

  8. Di file Android.bp, buat bagian aconfig_values yang mirip dengan:

    aconfig_values {
      name: "aconfig-values-platform_build_release-trunk-staging-com.example.android.aconfig.demo.flags-all",
      package: "com.example.android.aconfig.demo.flags",
      srcs: [
        "*_flag_values.textproto",
      ]
    }
    

    Dengan:

    • name adalah nama unik untuk modul build Soong. Google menggunakan konvensi aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG_NAME-package.name-all. Nama ini harus cocok dengan nama yang dibuat secara otomatis oleh soong berdasarkan deklarasi aconfig_value_set di file Android.bp direktori induk. Perhatikan bahwa PATH_TO_RELEASE_CONFIG_DIR adalah build_release.
    • package berisi nama paket yang sama yang digunakan dalam deklarasi.
    • srcs adalah daftar semua file nilai flag Anda.
  9. Simpan file dan keluar dari editor Anda.

  10. Buka direktori di atas direktori saat ini (cd ..)

  11. Buat Android, dan jalankan kode baru Anda untuk memverifikasi bahwa kode tersebut diaktifkan sesuai setelan dalam file nilai flag.