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 konfiguracji i flagi 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ć nafalse
) 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.