Określanie typu i zastosowania flagi

Flagi wdrażania funkcji są używane przez Google w celu zapewnienia stabilnych gałęzi kodu. Te flagi są też wymagane w przypadku niektórych typów wkładów do AOSP. Zanim wdrożysz oznaczenie funkcji, sprawdź, czy jest ono konieczne w przypadku wprowadzanej zmiany. Jeśli flaga jest potrzebna, określ jej typ.

Określanie użycia flagi

Aby określić, kiedy użyć flagi uruchomienia funkcji, postępuj zgodnie z tymi wskazówkami:

  • Jeśli wprowadzasz zmianę, która może spowodować niestabilność kodu źródłowego AOSP, np. dodajesz nową funkcję lub naprawiasz szczególnie złożony błąd, użyj flagi uruchomienia funkcji.

  • Jeśli natomiast wprowadzasz zmianę kodu, która nie powinna powodować niestabilności bazy kodu źródłowego (np. modyfikujesz komentarze), nie musisz używać flagi uruchomienia funkcji.

Określanie typu flagi

Istnieją 2 typy flag: flagi aconfigflagi kompilacji.

Flagi aconfig

Flagi aconfig służą do oddzielania wykonywania nieopublikowanego kodu od publikowanego kodu podczas procesu testowania i publikowania. Flagi aconfig mogą mieć uprawnienia tylko do odczytu lub odczytu i zapisu:

  • Flagi aconfig z dostępem do odczytu i zapisu to zmienne logiczne, które możesz włączyć (ustawić na true) lub wyłączyć (ustawić na false) w czasie wykonywania. Użyj flagi odczytu i zapisu, aby przetestować i opublikować zmiany bez wpływu na stabilność gałęzi głównej.

  • Flagi aconfig tylko do odczytu to stałe logiczne, których nie można zmienić w czasie wykonywania. W przypadku stabilnego kodu, który jest gotowy do wydania, możesz przekształcić flagi aconfig do odczytu i zapisu w flagi aconfig tylko do odczytu.

    Dodatkowo w zależności od używanego kompilatora, gdy używana jest flaga tylko do odczytu, kod, który nie jest wykonywany, może zostać wykluczony z kompilacji. Dlatego możesz użyć flag tylko do odczytu, aby ukryć kod, który nie jest gotowy do wydania.

Flagi kompilacji

Flagi kompilacji to stałe (ciągi znaków) definiowane na etapie kompilacji, których nie można zmieniać w czasie wykonywania. Używaj tych flag w sytuacjach, w których nie możesz użyć flag aconfig, np.:

  • Masz skompilowany lub wstępnie utworzony fragment kodu, który chcesz uwzględnić w kompilacji.
  • Chcesz wprowadzić zmiany w systemie budowania.
  • Chcesz umieścić flagi wokół zależności, aby zarządzać rozmiarem kodu.