Verwendung und Typ des Flags bestimmen

Funktionsstart-Flags werden von Google verwendet, um stabile Codezweige zu gewährleisten. Diese Flags sind auch für bestimmte Arten von Beiträgen zu AOSP erforderlich. Bevor Sie die Kennzeichnung für die Einführung von Funktionen implementieren, müssen Sie festlegen, ob für Ihre Änderung ein Flag erforderlich ist. Falls ein Flag erforderlich ist, müssen Sie den Typ des zu verwendenden Flags ermitteln.

Flag-Verwendung ermitteln

Beachten Sie die folgenden Richtlinien, um zu entscheiden, wann Sie ein Flag für die Einführung einer Funktion verwenden sollten:

  • Wenn Sie eine Änderung vornehmen, die die AOSP-Codebasis instabil machen könnte, z. B. das Hinzufügen einer neuen Funktion oder das Beheben eines besonders komplexen Fehlers, verwenden Sie ein Feature-Launch-Flag.

  • Wenn Sie hingegen eine Codeänderung vornehmen, die wahrscheinlich nicht zu einer instabilen Codebasis führt, z. B. das Ändern von Kommentaren, müssen Sie kein Feature-Launch-Flag verwenden.

Flag-Typ ermitteln

Es gibt zwei Arten von Flags: aconfig-Flags und Build-Flags.

Aconfig-Flags

Aconfig-Flags werden verwendet, um die Ausführung von noch nicht veröffentlichtem Code von veröffentlichtem Code während des Test- und Release-Prozesses zu trennen. Konfigurations-Flags können Lese-/Schreibzugriff oder schreibgeschützt sein:

  • Lese-/Schreib-Aconfig-Flags sind boolesche Variablen, die Sie zur Laufzeit aktivieren (auf true setzen) oder deaktivieren (auf false setzen) können. Verwenden Sie ein Lese-/Schreib-Flag, um Änderungen zu testen und zu veröffentlichen, ohne die Stabilität eines Haupt-Branch zu beeinträchtigen.

  • Schreibgeschützte aconfig-Flags sind boolesche Konstanten, die zur Laufzeit nicht geändert werden können. Sie können Lese-/Schreib-Aconfig-Flags in schreibgeschützte Aconfig-Flags für Code konvertieren, der stabil und bereit für die Veröffentlichung ist.

    Außerdem kann es sein, dass Code, der nicht ausgeführt wird, je nach verwendetem Compiler aus dem Build ausgeschlossen wird, wenn ein schreibgeschütztes Flag verwendet wird. Sie können also schreibgeschützte Flags verwenden, um Code auszublenden, der noch nicht für eine Veröffentlichung bereit ist.

Flags erstellen

Build-Flags sind Build-Zeit-Konstanten (Strings), die zur Laufzeit nicht geändert werden können. Verwenden Sie diese Flags in Fällen, in denen Sie keine aconfig-Flags verwenden können, z. B.:

  • Sie haben einen vorkompilierten oder vorgefertigten Code, den Sie in den Build einfügen möchten.
  • Sie möchten Änderungen am Build-System selbst vornehmen.
  • Sie möchten Flags für Abhängigkeiten setzen, um die Codegröße zu verwalten.