Menetapkan nilai flag peluncuran fitur

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

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

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

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

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

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

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

Menambahkan tanda ke konfigurasi rilis trunk_staging

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

  1. Navigasikan ke WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. Buat direktori dengan nama paket yang sama dengan tanda Anda, seperti com.example.android.aconfig.demo.flags yang ditampilkan di Mendeklarasikan tanda aconfig untuk Java.
  3. Buka direktori baru.
  4. Di direktori, buat file nilai tanda yang menggabungkan nama yang digunakan dalam file deklarasi tanda (.aconfig), seperti my_static_flag yang ditampilkan di Mendeklarasikan tanda 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
    }
    

    Dalam hal ini:

    • package berisi nama paket yang sama dengan yang digunakan dalam deklarasi.
    • name berisi nama yang sama dengan yang digunakan dalam deklarasi.
    • state adalah ENABLED atau DISABLED.
    • permission adalah READ_WRITE atau READ_ONLY. Secara umum, permission disetel ke READ_ONLY untuk file nilai tanda yang merupakan bagian dari konfigurasi rilis.
  6. Simpan file dan keluar dari editor.

  7. Di direktori yang sama dengan file nilai tanda, buat file build bernama Android.bp. File ini digunakan untuk menyertakan file nilai tanda 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.android.aconfig.test-all",
      package: "com.android.aconfig.test",
      srcs: [
        "*_flag_values.textproto",
      ]
    }
    

    Dalam hal ini:

    • name adalah nama unik untuk modul build Soong. Google menggunakan konvensi aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. Perhatikan bahwa PATH_TO_RELEASE_CONFIG_DIR adalah build/release.
    • package berisi nama paket yang sama dengan yang digunakan dalam deklarasi.
    • srcs adalah daftar semua file nilai tanda Anda.
  9. Simpan file dan keluar dari editor.

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

  11. Edit file Android.bp. File build ini berisi daftar nama (name) yang terkait dengan setiap file nilai tanda. Tambahkan nama yang Anda gunakan dalam file build sebelumnya (langkah 8) ke daftar ini.

  12. Bangun Android, dan jalankan kode baru Anda untuk memastikan kode tersebut diaktifkan sesuai setelan di file nilai tanda.