Определить использование и тип флага

Флаги запуска функций используются Google в качестве подхода к обеспечению стабильных ветвей кода. Эти флаги также требуются для определенных типов вкладов в AOSP. Перед внедрением флагов запуска функций определите, необходим ли флаг для вашего изменения. И если флаг необходим, вам следует определить тип флага для использования.

Определить использование флага

Чтобы определить, когда следует использовать флаг запуска функции, следуйте следующим рекомендациям:

  • Если вы вносите изменения, которые могут привести к нестабильности кодовой базы AOSP, например, добавляете новую функцию или исправляете особенно сложную ошибку, используйте флаг запуска функции.

  • И наоборот, если вы вносите изменение в код, которое не приведет к нестабильности кодовой базы, например, изменяете комментарии, вам не нужно использовать флаг запуска функции.

Определить тип флага

Существует два типа флагов: флаги aconfig и флаги сборки .

Флаги Aconfig

Флаги Aconfig используются для разделения выполнения невыпущенного кода от выпущенного кода во время процесса тестирования и выпуска. Флаги Aconfig могут быть доступными для чтения и записи или только для чтения:

  • Флаги aconfig для чтения и записи — это логические переменные, которые можно включить (установить в true ) или отключить (установить в false ) во время выполнения. Используйте флаг чтения и записи для тестирования и выпуска изменений, не влияя на стабильность основной ветки.

  • Флаги aconfig только для чтения — это булевы константы, которые нельзя изменить во время выполнения. Вы можете преобразовать флаги aconfig только для чтения в флаги aconfig только для чтения для кода, который стабилен и готов к выпуску.

    Кроме того, в зависимости от используемого вами компилятора, при использовании флага только для чтения код, который не выполняется, может быть исключен из сборки. Таким образом, вы можете использовать флаги только для чтения, чтобы скрыть любой код, который не готов стать частью релиза.

Флаги сборки

Флаги сборки — это константы времени сборки (строки), и вы не можете изменить их во время выполнения. Используйте эти флаги в ситуациях, когда вы не можете использовать флаги aconfig, например:

  • У вас есть предварительно скомпилированный или предварительно собранный фрагмент кода, который вы хотите включить в сборку.
  • Вы хотите внести изменения в саму сборку системы.
  • Вам нужно установить флаги вокруг зависимостей, чтобы управлять размером кода.