Określanie typu i zastosowania flagi

Flagi uruchamiania funkcji są używane przez Google jako sposób na zapewnienie stabilnych gałęzi kodu. Te flagi są też wymagane w przypadku niektórych rodzajów wkładu w AOSP. Przed wdrożeniem oznaczania uruchomienia funkcji sprawdź, czy flaga jest niezbędna w przypadku Twojej zmiany. Jeśli flaga jest konieczna, musisz określić jej rodzaj.

Określanie użycia flagi

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

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

  • Z kolei jeśli wprowadzasz zmianę w kodzie, która nie spowoduje niestabilności bazy kodu, np. modyfikujesz komentarze, nie musisz używać flagi wdrożenia funkcji.

Określanie typu flagi

Istnieją 2 typy flag: flagi konfiguracjiflagi kompilacji.

Flagi Aconfig

Flagi Aconfig służą do oddzielania wykonywania nieopublikowanego kodu od opublikowanego kodu podczas procesu testowania i udostępniania. Flagi konfiguracji mogą być dostępne do odczytu i zapisu lub tylko do odczytu:

  • Flagi aconfig z uprawnieniami do odczytu i zapisu to zmienne logiczne, które możesz włączać (ustawiać na true) lub wyłączać (ustawiać na false) w czasie działania programu. Użyj flagi odczytu i zapisu, aby testować i wdrażać zmiany bez wpływu na stabilność głównej gałęzi.

  • Flagi aconfig tylko do odczytu to stałe logiczne, których nie można zmieniać w czasie działania programu. W przypadku kodu, który jest stabilny i gotowy do opublikowania, możesz przekonwertować flagi aconfig do odczytu i zapisu na 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żywać flag tylko do odczytu, aby ukryć kod, który nie jest gotowy do wydania.

Flagi kompilacji

Flagi kompilacji to stałe wartości (ciągi znaków) w czasie kompilacji, których nie można zmieniać w czasie działania. Używaj tych flag w sytuacjach, w których nie możesz używać flag aconfig, np.:

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