Flagi wprowadzenia funkcji są używane przez Google jako sposób na zapewnienie stabilnych gałęzi kodu. Flagi te są też wymagane w przypadku niektórych rodzajów wpłat na rzecz AOSP. Zanim wdrożysz oznaczenie funkcji, sprawdź, czy jest ono konieczne w przypadku wprowadzanych zmian. 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 mogłaby spowodować niestabilną bazę kodu AOSP, na przykład dodasz nową funkcję lub naprawisz szczególnie złożony błąd, użyj flagi uruchomienia funkcji.
I odwrotnie, jeśli wprowadzasz w kodzie zmianę, która nie powoduje niestabilności bazy kodu (np. modyfikujesz komentarze), nie musisz używać flagi uruchamiania funkcji.
Określ typ flagi
Istnieją 2 typy flag: flagi aconfig i flagi kompilacji.
Flagi Aconfig
Flagi aconfig służą do oddzielania wykonywania nieopublikowanego kodu od publikowanego kodu podczas procesu testowania i publikowania. Flagi Aconfig mogą być do odczytu i zapisu lub tylko do odczytu:
Flagi aconfig z możliwością odczytu i zapisu to zmienne logiczne, które możesz włączyć (ustawić na
true
) lub wyłączyć (ustawić nafalse
) 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 wartości logiczne, których nie możesz zmienić w czasie działania aplikacji. Możesz konwertować flagi aconfig do odczytu i zapisu na flagi aconfig tylko do odczytu w przypadku kodu, który jest stabilny i gotowy do opublikowania.
Poza tym w zależności od używanego kompilatora może to spowodować, że w przypadku użycia flagi tylko do odczytu niewykonany kod może zostać wykluczony z kompilacji. Dlatego możesz używać flag tylko do odczytu, aby ukryć kod, który nie jest gotowy, aby być częścią danej wersji.
Flagi kompilacji
Flagi kompilacji to stałe (ciągi znaków) definiowane na etapie kompilacji, których nie można zmieniać w czasie wykonywania. Tych flag należy używać w sytuacjach, gdy nie można używać flag aconfig, na przykład:
- Masz gotowy, skompilowany lub gotowy fragment kodu, który chcesz umieścić w kompilacji.
- Chcesz wprowadzić zmiany, aby samodzielnie utworzyć system.
- Chcesz dodać flagi do zależności, aby zarządzać rozmiarem kodu.