<aplikacja>

składnia:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
zawarte w:
<manifest>
może zawierać:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
description:
Deklaracja aplikacji. Ten element zawiera elementy podrzędne, które deklarują każdy komponent aplikacji i mają atrybuty, które mogą wpływać na wszystkie komponenty.

Wiele z tych atrybutów, np. icon, label, permission, process, taskAffinity i allowTaskReparenting, ustawia wartości domyślne odpowiednich atrybutów elementów komponentu. Inne, np. debuggable, enabled, description i allowClearUserData, ustawiają wartości dla całej aplikacji i nie są zastępowane przez komponenty.

atrybuty
android:allowTaskReparenting
Czy działania zdefiniowane w aplikacji mogą przenieść je z zadania, które je rozpoczęły, do zadania, do którego je związali, gdy to zadanie zostanie przeniesione na wierzch. "true", jeśli klient może się przenieść, i "false", jeśli musi pozostać przy zadaniu od momentu, w którym go rozpoczął. Wartością domyślną jest "false".

Element <activity> ma własny atrybut allowTaskReparenting, który może zastąpić wartość ustawioną tutaj.

android:allowBackup

Czy zezwolić aplikacji na udział w infrastrukturze tworzenia i przywracania kopii zapasowych. Jeśli ten atrybut ma wartość "false", nigdy nie jest wykonywane tworzenie ani przywracanie kopii zapasowej aplikacji, nawet w przypadku kopii zapasowej całego systemu. W przeciwnym razie wszystkie dane aplikacji są zapisywane za pomocą adb. Wartość domyślna tego atrybutu to "true".

Uwaga: w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego zachowanie może być różne. Na urządzeniach niektórych producentów nie można wyłączyć migracji plików aplikacji między urządzeniami.

Możesz jednak wyłączyć tworzenie i przywracanie kopii zapasowych plików aplikacji w chmurze, ustawiając ten atrybut na "false" nawet wtedy, gdy aplikacja jest kierowana na Androida 12 (poziom API 31) lub nowszego.

Więcej informacji znajdziesz w sekcji dotyczącej tworzenia kopii zapasowych i przywracania danych na tej stronie opisującej zmiany w działaniu aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszy.

android:allowClearUserData

Określa, czy aplikacja ma resetować dane użytkownika. Dane te obejmują flagi informujące o tym, czy użytkownik widział etykietki wprowadzające, a także ustawienia, które użytkownik może dostosowywać. Domyślna wartość tego atrybutu to "true".

Uwaga: tylko aplikacje, które są częścią obrazu systemu, mogą zadeklarować ten atrybut wyraźnie. Aplikacje innych firm nie mogą umieszczać tego atrybutu w plikach manifestu.

Więcej informacji znajdziesz w artykule Omówienie kopii zapasowej danych.

android:allowNativeHeapPointerTagging

Określa, czy aplikacja włącza funkcję tagowania wskaźników sterty. Domyślna wartość tego atrybutu to "true".

Uwaga: wyłączenie tej funkcji nie rozwiązuje podstawowego problemu ze stanem kodu. Urządzenia, które będą używane w przyszłości, mogą nie obsługiwać tego tagu manifestu.

Więcej informacji znajdziesz w artykule Wskaźniki otagowane.

android:appCategory

Deklaruje kategorię tej aplikacji. Kategorie służą do grupowania wielu aplikacji w grupy, na przykład podsumowujące wykorzystanie baterii, sieci lub dysku. Określ tę wartość tylko w przypadku aplikacji, które pasują do jednej z określonych kategorii.

Musi być jedną z następujących wartości stałych.

WartośćOpis
accessibilityaplikacje, których głównym celem jest ułatwienie dostępu, np. czytniki ekranu;
audioaplikacje, których głównym celem jest odtwarzanie dźwięku lub muzyki, np. odtwarzacze muzyczne;
gameaplikacje, które są głównie grami;
imageaplikacje, których głównym celem jest obsługa obrazów lub zdjęć, np. aplikacje aparatu lub galerii;
mapsaplikacje, których głównym celem jest korzystanie z map, np. aplikacje nawigacyjne.
newsaplikacje, których głównym celem jest wiadomości, np. gazety, czasopisma lub aplikacje sportowe;
productivityaplikacje służące głównie do zwiększania produktywności, takie jak miejsce na dane w chmurze czy aplikacje służbowe;
socialaplikacje, których głównym celem jest korzystanie z mediów społecznościowych, np. aplikacje do obsługi wiadomości, komunikacji, poczty e-mail lub sieci społecznościowych;
videoaplikacje, których większość obsługuje filmy lub aplikacje, np. aplikacje do strumieniowego przesyłania danych wideo;

android:backupAgent
Nazwa klasy, która implementuje agenta zapasowego aplikacji (podklasa BackupAgent). Wartość atrybutu to w pełni kwalifikowana nazwa klasy, np. "com.example.project.MyBackupAgent". W skrócie: jeśli pierwszym znakiem nazwy jest kropka, np. ".MyBackupAgent", jest on dodawany do nazwy pakietu podanej w elemencie <manifest>.

Brak wartości domyślnej. Nazwa musi być szczegółowa.

android:backupInForeground
Wskazuje, że w tej aplikacji mogą być wykonywane operacje Automatycznej kopii zapasowej, nawet jeśli działa ona w stanie równoważnym na pierwszym planie. System wyłącza aplikację podczas wykonywania operacji automatycznej kopii zapasowej, więc zachowaj ostrożność podczas korzystania z tego atrybutu. Ustawienie tej flagi na "true" może mieć wpływ na zachowanie aplikacji, gdy jest ona aktywna.

Wartość domyślna to "false", co oznacza, że system operacyjny nie tworzy kopii zapasowej aplikacji działającej na pierwszym planie, np. aplikacji muzycznej, która aktywnie odtwarza muzykę za pomocą usługi startForeground().

android:banner
Zasób rysowalny, który zawiera rozszerzony baner graficzny dla powiązanego elementu. Używaj razem z tagiem <application>, aby dostarczać domyślny baner dla wszystkich aktywności w aplikacji, lub z tagiem <activity>, aby dostarczać baner dotyczący konkretnej aktywności.

Baner reprezentuje aplikację na ekranie głównym Androida TV. Dlatego używaj go tylko w przypadku aplikacji z działaniem, które obsługuje intencję CATEGORY_LEANBACK_LAUNCHER.

Ten atrybut jest ustawiony jako odwołanie do rysowalnego zasobu zawierającego obraz, np. "@drawable/banner". Brak banera domyślnego.

Więcej informacji znajdziesz w sekcji Umieszczanie banera na ekranie głównym.

android:dataExtractionRules

Aplikacje mogą ustawić ten atrybut na zasób XML, w którym określają reguły określające, które pliki i katalogi mogą być kopiowane z urządzenia w ramach operacji tworzenia kopii zapasowej lub transferu.

Informacje o formacie pliku XML znajdziesz w artykule Tworzenie i przywracanie kopii zapasowej.

android:debuggable
Wskazuje, czy aplikację można debugować, nawet gdy działa na urządzeniu w trybie użytkownika. Jeśli może, to "true", a jeśli nie, to "false". Wartością domyślną jest "false".
android:description
Zrozumiały dla użytkownika tekst na temat aplikacji, który jest dłuższy i bardziej opisowy niż etykieta aplikacji. Wartość jest ustawiona jako odwołanie do zasobu tekstowego. W przeciwieństwie do etykiety nie może być zwykłym ciągiem znaków. Brak wartości domyślnej.
android:enabled
Czy system Android może utworzyć instancję aplikacji. Jeśli można, to "true", a jeśli nie, "false". Jeśli wartością jest "true", atrybut enabled każdego komponentu określa, czy dany komponent jest włączony. Jeśli wartość to "false", zastępuje ona wartości dotyczące komponentów, a wszystkie komponenty są wyłączone.

Wartość domyślna to "true".

android:extractNativeLibs

Od wersji 4.2.0 opcja DSL useLegacyPackaging zastępuje atrybut extractNativeLibs w pliku manifestu. Aby skonfigurować sposób kompresji biblioteki natywnej, użyj useLegacyPackaging w pliku build.gradle aplikacji zamiast extractNativeLibs w pliku manifestu. Więcej informacji znajdziesz w informacjach o wersji Używanie DSL do pakietów skompresowanych bibliotek natywnych.

Ten atrybut wskazuje, czy instalator pakietów wyodrębnia biblioteki natywne z pliku APK do systemu plików. Jeśli zasada ma wartość "false", biblioteki natywne są przechowywane w pliku APK bez kompresji. Mimo że plik APK może być większy, aplikacja wczytuje się szybciej, ponieważ biblioteki wczytują się bezpośrednio z pliku APK w czasie działania.

Wartość domyślna extractNativeLibs zależy od zasady minSdkVersion i używanej wersji AGP. W większości przypadków domyślnie działa to zgodnie z oczekiwaniami i nie musisz ustawiać tego atrybutu bezpośrednio.

android:fullBackupContent
Ten atrybut wskazuje plik XML, który zawiera pełne reguły tworzenia kopii zapasowych dla Automatycznej kopii zapasowej. Te reguły określają, jakie pliki mają być zapisywane jako kopie zapasowe. Więcej informacji znajdziesz w artykule o składni konfiguracji XML Automatycznej kopii zapasowej.

Ten atrybut jest opcjonalny. Jeśli go nie określisz, Automatyczna kopia zapasowa będzie domyślnie uwzględniać większość plików Twojej aplikacji. Więcej informacji znajdziesz w artykule Pliki, które mają kopie zapasowe.

android:fullBackupOnly
Ten atrybut wskazuje, czy korzystać z Automatycznej kopii zapasowej na urządzeniach, na których jest dostępna. Jeśli ustawisz wartość "true", aplikacja będzie wykonywać Automatyczną kopię zapasową na urządzeniach z Androidem 6.0 (poziom interfejsu API 23) lub nowszym. Na starszych urządzeniach aplikacja ignoruje ten atrybut i tworzy kopie zapasowe par klucz-wartość.

Wartość domyślna to "false".

android:gwpAsanMode
Ten atrybut wskazuje, czy należy używać GWP-ASan – natywnej funkcji alokacji pamięci, która ułatwia znajdowanie błędów „use-po-free” i „heap-buffer-overflow”.

Wartość domyślna to "never".

android:hasCode
Czy aplikacja zawiera kod. Jeśli tak, to "true", a jeśli nie, "false". Gdy wartość to "false", system nie próbuje wczytywać żadnego kodu aplikacji podczas uruchamiania komponentów. Wartością domyślną jest "true".

Na przykład aplikacja może obsługiwać przesyłanie funkcji z Google Play i zawierać moduły funkcji, które nie generują żadnych plików DEX. Są to kody bajtowe zoptymalizowane pod kątem platformy Androida. Jeśli tak, ustaw tę właściwość na "false" w pliku manifestu modułu, by uniknąć błędów podczas działania.

android:hasFragileUserData
Wskazuje, czy wyświetlać użytkownikowi prośbę o zachowanie danych aplikacji, gdy użytkownik ją odinstalowuje. Wartość domyślna to "false".
android:hardwareAccelerated
Wskazuje, czy dla wszystkich aktywności i widoków w tej aplikacji włączone jest renderowanie z akceleracją sprzętową. Jeśli jest włączona, to "true". Jeśli nie jest, to "false". Wartością domyślną jest "true", jeśli ustawisz minSdkVersion lub targetSdkVersion na "14" lub więcej. W przeciwnym razie "false".

Począwszy od Androida 3.0 (poziom interfejsu API 11) aplikacje mogą korzystać z akceleracji sprzętowej mechanizmu renderowania OpenGL, aby zwiększyć wydajność w wielu typowych operacjach graficznych 2D. Gdy włączony jest mechanizm renderowania z akceleracją sprzętową, większość operacji w Canvas, Paint, Xfermode, ColorFilter, Shader i w kamerze jest przyspieszana.

Zapewnia to płynniejsze animacje, płynniejsze przewijanie i ogólną poprawę reakcji nawet w przypadku aplikacji, które nie korzystają bezpośrednio z bibliotek OpenGL platformy.

Nie wszystkie operacje OpenGL 2D są przyspieszone. Jeśli włączysz sprzęt z akceleracją renderowania, przetestuj swoją aplikację, aby mogła korzystać z tego mechanizmu bez błędów.

Więcej informacji znajdziesz w przewodniku Akceleracja sprzętowa.

android:icon
Ikona całej aplikacji i domyślna ikona każdego z jej komponentów. Sprawdź poszczególne atrybuty icon elementów <activity>, <activity-alias>, <service>, <receiver> i <provider>.

Ten atrybut jest ustawiany jako odwołanie do rysowalnego zasobu zawierającego obraz, np. "@drawable/icon". Brak ikony domyślnej.

android:isGame
Czy aplikacja jest grą. System może grupować aplikacje sklasyfikowane jako gry lub wyświetlać je niezależnie od innych aplikacji. Wartość domyślna to "false".
android:isMonitoringTool

Wskazuje, że ta aplikacja służy do monitorowania innych osób.

Uwaga: jeśli aplikacja deklaruje ten atrybut w swoim manifeście, deweloper musi przestrzegać zasad dotyczących stalkerware, aby opublikować ją w Google Play.

Brak wartości domyślnej. Deweloper musi określić jedną z tych wartości:

WartośćOpis
"parental_control"Aplikacja służy do kontroli rodzicielskiej i jest skierowana w szczególności do rodziców, którzy chcą dbać o bezpieczeństwo dzieci.
"enterprise_management"Jest przeznaczona dla firm, które chcą zarządzać urządzeniami udostępnianymi pracownikom i nimi zarządzać.
"other"Aplikacja pasuje do przypadków użycia, które nie zostały określone inaczej w tej tabeli.
android:killAfterRestore
Wskazuje, czy aplikacja kończy się po zwróceniu jej ustawień podczas operacji przywracania całego systemu. Operacje przywracania pojedynczego pakietu nigdy nie powodują wyłączenia aplikacji. Operacje pełnego przywracania systemu są zwykle wykonywane tylko raz podczas pierwszej konfiguracji telefonu. Aplikacje innych firm zwykle nie muszą używać tego atrybutu.

Wartość domyślna to "true", co oznacza, że gdy aplikacja zakończy przetwarzanie danych podczas przywracania pełnego systemu, zakończy się.

android:largeHeap
Wskazuje, czy procesy aplikacji są tworzone przy użyciu dużej sterty Dalvik. Dotyczy to wszystkich procesów utworzonych dla aplikacji. Dotyczy to tylko pierwszej aplikacji wczytanej do procesu. Jeśli używasz wspólnego identyfikatora użytkownika, aby zezwolić na korzystanie z procesu wielu aplikacjom, wszystkie muszą używać tej opcji, aby uniknąć nieprzewidywalnych wyników.

Większość aplikacji nie potrzebuje tej funkcji. Zamiast tego koncentruje się na ograniczeniu ogólnego zużycia pamięci, aby uzyskać lepszą wydajność. Włączenie tej funkcji nie gwarantuje też stałego wzrostu dostępnej pamięci, ponieważ niektóre urządzenia są ograniczone przez łączną ilość dostępnej pamięci.

Aby przesłać zapytanie o rozmiar pamięci dostępny w czasie działania, użyj metod getMemoryClass() lub getLargeMemoryClass().

android:label
Czytelna dla użytkownika etykieta całej aplikacji oraz domyślna etykieta dla każdego komponentu aplikacji. Sprawdź poszczególne atrybuty label elementów <activity>, <activity-alias>, <service>, <receiver> i <provider>.

Etykieta jest ustawiona jako odwołanie do zasobu w postaci ciągu znaków, dzięki czemu można ją zlokalizować tak samo jak inne ciągi w interfejsie. Dla wygody podczas programowania aplikacji możesz ją jednak także ustawić jako nieprzetworzony ciąg znaków.

android:logo
Logo całej aplikacji i domyślne logo dla aktywności. Ten atrybut jest ustawiany jako odwołanie do rysowalnego zasobu zawierającego obraz, np. "@drawable/logo". Brak domyślnego logo.
android:manageSpaceActivity
Pełna i jednoznaczna nazwa podklasy Activity uruchamianej przez system, aby umożliwić użytkownikom zarządzanie pamięcią objętą przez aplikację na urządzeniu. Aktywność jest też deklarowana z elementem <activity>.
android:name
Pełna i jednoznaczna nazwa podklasy Application zaimplementowanej w aplikacji. Gdy proces aplikacji jest uruchamiany, instancja ta jest tworzona przed jakimkolwiek komponentem aplikacji.

Podklasa jest opcjonalna. Większość aplikacji go nie potrzebuje. W przypadku braku podklasy Android używa instancji podstawowej klasy Application.

android:networkSecurityConfig

Określa nazwę pliku XML zawierającego konfigurację zabezpieczeń sieci Twojej aplikacji. Wartość jest odniesieniem do pliku XML zasobów zawierającego konfigurację.

Ten atrybut został dodany na poziomie API 24.

android:permission
Nazwa uprawnienia, którego klient potrzebuje do korzystania z aplikacji. Ten atrybut to wygodny sposób na ustawienie uprawnienia, które dotyczy wszystkich komponentów aplikacji. Zostanie on zastąpiony przez ustawienie atrybutów permission poszczególnych komponentów.

Więcej informacji o uprawnieniach znajdziesz w sekcji Uprawnienia w podsumowaniu pliku manifestu aplikacji i w Wskazówkach dotyczących bezpieczeństwa.

android:persistent
Wskazuje, czy aplikacja jest cały czas uruchomiona. Jeśli tak, jest to "true", a jeśli nie, "false". Wartością domyślną jest "false". Aplikacje zwykle nie ustawiają tej flagi. Tryb trwałości jest przeznaczony tylko do niektórych aplikacji systemowych.
android:process
Nazwa procesu, w którym działają wszystkie komponenty aplikacji. Każdy komponent może zastąpić tę wartość domyślną, ustawiając własny atrybut process.

Domyślnie Android tworzy proces aplikacji, gdy musi uruchomić się pierwszy z jej komponentów. W tym procesie będą działać wszystkie komponenty. Nazwa procesu domyślnego odpowiada nazwie pakietu ustawionej przez element <manifest>.

Gdy ustawisz ten atrybut na nazwę procesu, która jest współużytkowana z inną aplikacją, możesz sprawić, że komponenty obu aplikacji będą działać w tym samym procesie, ale tylko wtedy, gdy obie aplikacje również mają taki sam identyfikator użytkownika i są podpisane tym samym certyfikatem.

Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (:), w razie potrzeby tworzony jest nowy proces, prywatny dla aplikacji. Jeśli nazwa procesu zaczyna się od małej litery, tworzony jest globalny proces tej nazwy. Globalny proces można udostępniać innym aplikacjom, co zmniejsza wykorzystanie zasobów.

android:restoreAnyVersion
Wskazuje, że aplikacja jest gotowa do podjęcia próby przywrócenia dowolnego zbioru danych z kopią zapasową, nawet jeśli kopia zapasowa została zapisana w nowszej wersji aplikacji niż aktualnie zainstalowana na urządzeniu. Ustawienie tego atrybutu na "true" umożliwia Menedżerowi kopii zapasowych próbować przywrócić nawet wtedy, gdy niezgodność wersji sugeruje, że dane są niezgodne. Używaj tej funkcji z rozwagą.

Wartość domyślna tego atrybutu to "false".

android:requestLegacyExternalStorage

Określa, czy aplikacja chce zrezygnować z ograniczonego miejsca na dane.

Uwaga: w zależności od zmian związanych z zasadami lub zgodnością aplikacji system może nie zaakceptować tej prośby o rezygnację.

android:requiredAccountType
Określa typ konta wymagany do działania aplikacji. Jeśli aplikacja wymaga Account, wartość tego atrybutu musi być zgodna z typem modułu uwierzytelniającego konto, które jest zdefiniowane w zasadzie AuthenticatorDescription, np. "com.google".

Wartość domyślna to null i wskazuje, że aplikacja może działać bez żadnych kont.

W przypadku profili z ograniczeniami nie można dodawać kont, dlatego określenie tego atrybutu sprawia, że aplikacja nie będzie dostępna w profilach z ograniczeniami, chyba że zadeklarujesz też android:restrictedAccountType z tą samą wartością.

Uwaga: jeśli dane konta mogą ujawniać informacje umożliwiające identyfikację osoby, zadeklaruj ten atrybut i pozostaw wartość android:restrictedAccountType null, aby profile z ograniczonym dostępem nie mogły używać Twojej aplikacji do uzyskiwania dostępu do danych osobowych należących do właściciela.

Ten atrybut został dodany na poziomie API 18.

android:resizeableActivity

Określa, czy aplikacja obsługuje tryb wielu okien. Możesz ustawić ten atrybut w elemencie <activity> lub <application>.

Jeśli ustawisz ten atrybut na "true", użytkownik będzie mógł uruchamiać aktywność w trybie podzielonego ekranu i eksploracji swobodnej. Jeśli ustawisz atrybut na wartość ”false”, nie będzie można testować ani optymalizować aplikacji pod kątem środowiska wielu okien. System może nadal uruchamiać aktywność w trybie wielu okien z zastosowanym trybem zgodności.

Ustawienie tego atrybutu na "true" nie gwarantuje, że na ekranie nie będą widoczne żadne inne aplikacje działające w trybie wielu okien (np. obraz w obrazie) ani na innych wyświetlaczach. Dlatego ustawienie tej flagi nie oznacza, że aplikacja ma wyłączny dostęp do zasobów.

W przypadku aplikacji kierowanych na interfejs API na poziomie 24 lub wyższym wartość domyślna to "true".

Jeśli kierujesz aplikację na interfejs API na poziomie 31 lub wyższym, ten atrybut działa inaczej na małych i dużych ekranach:

  • Duże ekrany (sw >= 600 dp): wszystkie aplikacje obsługują tryb wielu okien. Ten atrybut wskazuje, czy można zmienić rozmiar aplikacji, a nie, czy aplikacja obsługuje tryb wielu okien. Jeśli ma wartość resizeableActivity="false", aplikacja przechodzi w tryb zgodności, gdy jest to konieczne, by zapewnić zgodność z wymiarami wyświetlacza.
  • Małe ekrany (sw < 600 dp): jeśli resizeableActivity="true" oraz minimalna szerokość i minimalna wysokość głównej aktywności spełniają wymagania trybu wielu okien, aplikacja obsługuje tryb wielu okien. Jeśli ustawiona jest wartość resizeableActivity="false", aplikacja nie obsługuje trybu wielu okien niezależnie od minimalnej szerokości i wysokości aktywności.

Uwaga: producenci urządzeń mogą zastąpić działanie interfejsu API na poziomie 31.

Ten atrybut został dodany na poziomie API 24.

Uwaga: główna wartość aktywności zadania jest stosowana do wszystkich dodatkowych działań uruchomionych w tym zadaniu. Oznacza to, że jeśli można zmienić rozmiar głównej aktywności zadania, system traktuje wszystkie pozostałe aktywności w zadaniu jako tę możliwość. Jeśli nie można zmienić rozmiaru aktywności głównej, nie można zmienić rozmiaru pozostałych działań w zadaniu.

android:restrictedAccountType
Określa typ konta wymagany przez tę aplikację i wskazuje, że profile z ograniczeniami mają dostęp do kont należących do właściciela. Jeśli Twoja aplikacja wymaga uprawnień Account, a profile z ograniczeniami mogą uzyskać dostęp do kont głównego użytkownika, wartość tego atrybutu musi być zgodna z typem modułu uwierzytelniającego konto używanym przez aplikację, zgodnie z definicją w AuthenticatorDescription, np. "com.google".

Wartość domyślna to null i wskazuje, że aplikacja może działać bez żadnych kont.

Uwaga: określenie tego atrybutu umożliwia profilom z ograniczonym dostępem do korzystania z Twojej aplikacji na kontach należących do właściciela, co może ujawniać informacje umożliwiające identyfikację. Jeśli na koncie mogą znajdować się dane osobowe, nie używaj tego atrybutu. Zamiast tego zadeklaruj atrybut android:requiredAccountType, aby aplikacja nie była dostępna dla profili z ograniczonym dostępem.

Ten atrybut został dodany na poziomie API 18.

android:supportsRtl
Określa, czy aplikacja ma obsługiwać układy od prawej do lewej (RTL).

Jeśli zasada ma wartość "true", a targetSdkVersion ma wartość 17 lub więcej, system aktywuje różne interfejsy API RTL i używa ich, aby aplikacja mogła wyświetlać układy RTL. Jeśli ta zasada ma wartość "false" lub targetSdkVersion ma wartość 16 lub mniej, interfejsy API RTL są ignorowane lub nie dają żadnych skutków, a aplikacja działa tak samo niezależnie od kierunku układu powiązanego z wybranym przez użytkownika językiem. Oznacza to, że układy są zawsze od lewej do prawej.

Wartość domyślna tego atrybutu to "false".

Ten atrybut został dodany na poziomie API 17.

android:taskAffinity
Nazwa podobieństwa stosowana do wszystkich działań w aplikacji z wyjątkiem tych, które ustawiają inne podobieństwo za pomocą własnych atrybutów taskAffinity. Więcej informacji znajdziesz w atrybucie.

Domyślnie wszystkie działania w aplikacji mają te same podobieństwo. Nazwa tej koligacji jest taka sama jak nazwa pakietu ustawiona przez element <manifest>.

android:testOnly
Wskazuje, czy aplikacja służy tylko do celów testowych. Może na przykład ujawnić funkcje lub dane spoza siebie, które mogą stanowić lukę w zabezpieczeniach, ale być przydatne w testach. Tego rodzaju pliki APK instalują się tylko do adb. Nie możesz jej opublikować w Google Play.

Android Studio automatycznie dodaje ten atrybut, gdy klikniesz Uruchom .

android:theme
Odwołanie do zasobu stylu określającego domyślny motyw dla wszystkich aktywności w aplikacji. Poszczególne aktywności mogą zastąpić ustawienie domyślne, ustawiając własne atrybuty theme. Więcej informacji znajdziesz w sekcji Style i motywy.
android:uiOptions
Dodatkowe opcje interfejsu aktywności. Musi mieć jedną z tych wartości:
WartośćOpis
"none"Brak dodatkowych opcji interfejsu. Jest to ustawienie domyślne.
"splitActionBarWhenNarrow"Dodaje u dołu ekranu pasek, który pozwala wyświetlać działania na pasku aplikacji (nazywanym też paskiem działań), gdy użytkownik jest zablokowany w przestrzeni poziomej (np. w trybie pionowym na słuchawce). Zamiast niewielkiej liczby działań widocznych na pasku aplikacji u góry ekranu pasek aplikacji dzieli się na górną sekcję nawigacyjną, a dolny pasek na działania. Oznacza to, że u góry znajduje się rozsądna ilość miejsca na elementy działania oraz na elementy nawigacyjne i tytuły. Dania w menu nie są podzielone na 2 słupki. Zawsze pojawiają się razem.

Więcej informacji o pasku aplikacji znajdziesz w artykule Dodawanie paska aplikacji.

Ten atrybut został dodany na poziomie API 14.

android:usesCleartextTraffic
Wskazuje, czy aplikacja ma używać ruchu sieciowego nieszyfrowanego, np. HTTP. Wartość domyślna w przypadku aplikacji kierowanych na interfejs API na poziomie 27 lub niższym to "true". Aplikacje kierowane na interfejs API na poziomie 28 lub wyższym domyślnie korzystają z "false".

Gdy atrybut ma wartość "false", komponenty platformy, np. stosy HTTP i FTP, DownloadManager i MediaPlayer, odrzucają żądania aplikacji dotyczące ruchu nieszyfrowanego.

Zalecamy korzystanie z tego ustawienia także przez biblioteki zewnętrzne. Najważniejszym powodem unikania ruchu związanego z tekstem nieszyfrowanym jest brak poufności, autentyczności i ochrony przed ingerencją z zewnątrz. Osoba przeprowadzająca atak sieci może podsłuchiwać przesyłane dane, a także je modyfikować bez wykrywania.

To zgłoszenie jest wyróżniane w miarę możliwości, ponieważ ze względu na przyznany poziom dostępu nie można zablokować całego ruchu nieszyfrowanego z aplikacji na Androida. Nie należy na przykład oczekiwać, że interfejs API Socket będzie obsługiwać tę flagę, ponieważ nie jest w stanie określić, czy ruch generowany przez niego to tekst nieszyfrowany.

Większość ruchu sieciowego z aplikacji jest jednak obsługiwana przez stosy i komponenty wyższego poziomu, które mogą rozpoznać tę flagę, odczytując ją z ApplicationInfo.flags lub NetworkSecurityPolicy.isCleartextTrafficPermitted().

Uwaga: WebView uwzględnia ten atrybut w przypadku aplikacji kierowanych na interfejs API na poziomie 26 lub wyższym.

Podczas tworzenia aplikacji StrictMode może służyć do identyfikowania ruchu nieszyfrowanego z aplikacji. Więcej informacji znajdziesz na stronie StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Ten atrybut został dodany na poziomie API 23.

Ta flaga jest ignorowana w Androidzie 7.0 (poziom interfejsu API 24) i nowszych, jeśli istnieje Android Network Security Configuration.

android:vmSafeMode
Wskazuje, czy aplikacja chce, aby maszyna wirtualna działała w trybie awaryjnym. Wartością domyślną jest "false".

Ten atrybut został dodany na poziomie interfejsu API 8, gdzie wartość "true" wyłączyła kompilator „just-in-time” (JIT) Dalvik.

Ten atrybut został dostosowany na poziomie interfejsu API 22, gdzie wartość "true" wyłączyła kompilator ART z wyprzedzeniem (AOT).

wprowadzone w:
Poziom interfejsu API 1
zobacz też:
<activity>
<service>
<receiver>
<provider>