Verwendung und Typ des Flags bestimmen

Flags zur Einführung von Funktionen werden von Google verwendet, um Codezweige. Diese Flags sind auch für bestimmte Arten von Beiträgen zum AOSP erforderlich. Bevor Sie Markierungen für die Einführung von Funktionen implementieren, sollten Sie prüfen, ob für Ihre Änderung eine Markierung erforderlich ist. Wenn ein Flag erforderlich ist, sollten Sie den Typ des zu verwendenden Flags zu bestimmen.

Verwendung von Flags ermitteln

Beachten Sie die folgenden Richtlinien, um zu bestimmen, wann Sie ein Flag zur Einführung einer Funktion verwenden sollten:

  • Wenn Sie eine Änderung vornehmen, die dazu führen könnte, dass die AOSP-Codebasis instabil wird, zum Beispiel das Hinzufügen einer neuen Funktion oder die Behebung eines besonders komplexen Fehlers, Launch-Flag.

  • Wenn Sie hingegen eine Codeänderung vornehmen, die nicht dazu passt, dass die Codebasis instabil ist, z. B. durch das Ändern von Kommentaren, Funktionseinführungs-Flag.

Flag-Typ bestimmen

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

Aconfig-Flags

Mit Aconfig-Flags wird die Ausführung von nicht freigegebenem Code von während des Test- und Release-Prozesses Programmiercode freigegeben wurde. Aconfig-Flags können mit Lese-/Schreibzugriff oder Lesezugriff:

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

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

    Außerdem gilt abhängig vom verwendeten Compiler, wenn ein schreibgeschütztes Flag verwendet wird, wird der nicht ausgeführte Code möglicherweise aus dem Build. Daher können Sie mit Lesezugriffsflags Code ausblenden, der noch nicht für eine Veröffentlichung bereit ist.

Build-Flags

Build-Flags sind Build-Zeitkonstanten (Strings) und können während Laufzeit. Verwenden Sie diese Flags, wenn Sie keine aconfig-Flags verwenden können, Beispiele:

  • Sie haben einen vorab kompilierten oder vorgefertigten Code, den Sie in den Build einbinden möchten.
  • Sie möchten Änderungen am Build-System selbst vornehmen.
  • Sie möchten Flags um Abhängigkeiten setzen, um die Codegröße zu verwalten.