<aplikacja>

składnia:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowCrossUidActivitySwitchFromBelow=["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:enabledOnBackInvokedCallback=["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ą poszczególne komponenty aplikacji, oraz atrybuty, które mogą wpływać na wszystkie komponenty.

Wiele z tych atrybutów, takich jak icon, label, permission, process, taskAffinityallowTaskReparenting, ustawia domyślne wartości dla odpowiednich atrybutów elementów komponentu. Inne, np. debuggable, enabled, descriptionallowClearUserData, ustawiają wartości dla aplikacji jako całości i nie są zastępowane przez komponenty.

atrybuty
android:allowTaskReparenting
Czy czynności zdefiniowane przez aplikację mogą przejść z zadania, które je rozpoczęło, do zadania, do którego mają powinowactwo, gdy to zadanie zostanie wyświetlone. Wartość "true" oznacza, że robot może się przemieszczać, a "false" – że musi pozostać w miejscu, w którym rozpoczął wykonywanie zadania. Wartością domyślną jest "false".

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

android:allowBackup

Określa, czy aplikacja może korzystać z infrastruktury kopii zapasowych i przywracania. Jeśli ten atrybut ma wartość "false", kopia zapasowa aplikacji ani jej przywracanie nigdy nie zostaną wykonane, nawet przy użyciu kopii zapasowej całego systemu, która powoduje zapisywanie wszystkich danych aplikacji za pomocą adb. Domyślną wartością tego atrybutu jest "true".

Uwaga: w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego to zachowanie jest inne. Na urządzeniach niektórych producentów nie można wyłączyć przenoszenia plików aplikacji z jednego urządzenia na inne.

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

Więcej informacji znajdziesz w sekcji Tworzenie i przywracanie kopii zapasowej na stronie opisującej zmiany w zachowaniu aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.

android:allowClearUserData

Określa, czy aplikacja może zresetować dane użytkownika. Dane te obejmują flagi, np. czy użytkownik widział wstępny przycisk z ikoną, a także ustawienia i preferencje, które użytkownik może dostosować. Wartością domyślną tego atrybutu jest "true".

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

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

android:allowCrossUidActivitySwitchFromBelow

Określa, czy działania poniżej tego działania w zadaniu mogą też uruchamiać inne działania lub kończyć zadanie.

Od poziomu docelowego pakietu SDK Build.VERSION_CODES.VANILLA_ICE_CREAM aplikacje mogą być blokowane przed uruchamianiem nowych działań lub kończeniem zadań, chyba że główne działanie takiego zadania należy do tego samego identyfikatora UID ze względów bezpieczeństwa.

Ustawienie tej flagi na true spowoduje, że uruchamiana aplikacja zignoruje ograniczenie, jeśli ta aktywność jest na górze. Aplikacje pasujące do identyfikatora UID tej aktywności są zawsze wyłączone z tej zasady.

Więcej informacji znajdziesz w artykule Ochrona przed uruchamianiem aplikacji w tlecie.

android:allowNativeHeapPointerTagging

Określa, czy aplikacja włącza funkcję tagowania wskaźnika sterującego sterownika. Wartością domyślną tego atrybutu jest "true".

Uwaga: wyłączenie tej funkcji nie rozwiązuje problemu z jakością kodu. Przyszłe urządzenia sprzętowe mogą nie obsługiwać tego znacznika pliku manifestu.

Więcej informacji znajdziesz w artykule Tagged Pointers (w języku angielskim).

android:appCategory

Określa kategorię tej aplikacji. Kategorie służą do grupowania wielu aplikacji w zbiory o jakimś znaczeniu, np. podczas podsumowywania wykorzystania baterii, sieci lub dysku. Określ tę wartość tylko w przypadku aplikacji, które dobrze pasują do jednej z określonych kategorii.

Musi być jedną z tych wartości stałych.

WartośćOpis
accessibilityaplikacje, które są głównie aplikacjami ułatwiającymi dostęp, takimi jak czytniki ekranu;
audioAplikacje, które głównie obsługują dźwięk lub muzykę, takie jak odtwarzacze muzyczne.
gameAplikacje, które są głównie grami.
imageAplikacje, które głównie obsługują obrazy lub zdjęcia, takie jak aplikacje do obsługi aparatu lub galerii.
mapsAplikacje, które są przede wszystkim aplikacjami mapowymi, np. aplikacje do nawigacji.
newsAplikacje, które są głównie aplikacjami z wiadomościami, takimi jak gazety, czasopisma czy aplikacje sportowe.
productivityAplikacje, które są głównie aplikacjami zwiększającymi produktywność, takimi jak aplikacje do przechowywania w chmurze lub aplikacje do pracy.
socialAplikacje, które są przede wszystkim aplikacjami społecznościowymi, takimi jak aplikacje do obsługi wiadomości, komunikacji, poczty e-mail lub mediów społecznościowych.
videoAplikacje, które głównie obsługują filmy lub filmy, takie jak aplikacje do strumieniowego przesyłania filmów.

android:backupAgent
Nazwa klasy, która implementuje agenta kopii zapasowej aplikacji, podklasy klasy BackupAgent. Wartość atrybutu to pełna nazwa klasy, np. "com.example.project.MyBackupAgent". Jednak w ramach skrótu, jeśli pierwszy znak nazwy to kropka, na przykład ".MyBackupAgent", jest on dołączany do nazwy pakietu określonej w elemencie <manifest>.

Nie ma wartości domyślnej. Nazwa musi być konkretna.

android:backupInForeground
Wskazuje, że operacje automatycznego tworzenia kopii zapasowej mogą być wykonywane w tej aplikacji, nawet jeśli jest ona w stanie równoważnym z pierwszoplanowym. Podczas automatycznego tworzenia kopii zapasowej system zamyka aplikację, dlatego należy używać tego atrybutu z ostrożnością. Ustawienie tej flagi na "true" może wpływać na działanie aplikacji, gdy jest ona aktywna.

Wartość domyślna to "false", co oznacza, że system operacyjny nie tworzy kopii zapasowej aplikacji, gdy działa ona na pierwszym planie (np. aplikacja muzyczna, która aktywnie odtwarza muzykę przy użyciu usługi w stanie startForeground()).

android:banner
 Obiekt rysowalny zawierający rozszerzony baner graficzny powiązany z elementem. Użyj tagu <application>, aby wyświetlić domyślny baner dla wszystkich aktywności aplikacji, lub tagu <activity>, aby wyświetlić baner dla określonej aktywności.

System używa banera do reprezentowania aplikacji na ekranie głównym Androida TV. Dlatego określ to tylko w przypadku aplikacji, które mają aktywność obsługującą intencję CATEGORY_LEANBACK_LAUNCHER.

Ten atrybut jest ustawiany jako odwołanie do zasobu rysowanego zawierającego obraz, na przykład "@drawable/banner". Brak banera domyślnego.

Więcej informacji znajdziesz w  artykule o banerze na ekranie głównym.

android:dataExtractionRules

Aplikacje mogą ustawić ten atrybut w zasobach XML, w których określają reguły określające, które pliki i katalogi można kopiować z urządzenia w ramach operacji tworzenia kopii zapasowych lub przesyłania.

Informacje o formacie pliku XML znajdziesz w artykule Kopie zapasowe i przywracanie.

android:debuggable
Czy aplikację można debugować, nawet gdy działa ona na urządzeniu w trybie użytkownika. "true", jeśli to możliwe, i "false"w przeciwnym razie. Wartością domyślną jest "false".
android:description
Tekst dotyczący aplikacji, który jest dłuższy i bardziej opisowy niż etykieta aplikacji. Wartość jest ustawiona jako odwołanie do zasobu ciągu znaków. W przeciwieństwie do etykiety nie może to być ciąg znaków. Nie ma wartości domyślnej.
android:enabled
Czy system Android może tworzyć instancje komponentów aplikacji. "true", jeśli można, i "false", jeśli nie. Jeśli wartość to "true", atrybut enabled każdego komponentu określa, czy dany komponent jest włączony. Jeśli wartość to "false", zastępuje ona wartości określone dla poszczególnych komponentów, a wszystkie komponenty są wyłączone.

Wartość domyślna to "true".

android:enableOnBackInvokedCallback
Ta flaga umożliwia wyłączenie przewidujących animacji systemowych na poziomie aplikacji.

Ustawienie android:enableOnBackInvokedCallback=false wyłącza przewidywane animacje wstecz na poziomie aktywności lub aplikacji (w zależności od tego, gdzie ustawisz tag), a także instruuje system, aby ignorował wywołania interfejsu API platformy OnBackInvokedCallback.

android:extractNativeLibs

Począwszy od wersji AGP 4.2.0 opcja DSL useLegacyPackaging zastępuje atrybut pliku manifestu extractNativeLibs. Aby skonfigurować zachowanie kompresji biblioteki natywnej, użyj wartości useLegacyPackaging w pliku build.gradle aplikacji zamiast wartości extractNativeLibs w pliku manifestu. Więcej informacji znajdziesz w informacjach o wersji Używanie DSL do pakowania skompresowanych natywnych bibliotek.

Ten atrybut wskazuje, czy instalator pakietu wyodrębnia natywne biblioteki z pliku APK do systemu plików. Jeśli ustawisz wartość "false", biblioteki natywne będą przechowywane w pliku APK w nieskompresowanej formie. Chociaż plik APK może być większy, aplikacja wczytuje się szybciej, ponieważ biblioteki są wczytywane bezpośrednio z pliku APK w czasie wykonywania.

Domyślna wartość parametru extractNativeLibs zależy od wartości parametru minSdkVersion i wersji interfejsu AGP, której używasz. W większości przypadków zachowanie domyślne jest prawdopodobnie wystarczające i nie musisz ustawiać tego atrybutu w sposób jawny.

android:fullBackupContent
Ten atrybut wskazuje plik XML zawierający pełne reguły tworzenia kopii zapasowych w ramach automatycznego tworzenia kopii zapasowych. Te reguły określają, które pliki zostaną skopiowane. Więcej informacji znajdziesz w składniku XML konfiguracji automatycznego tworzenia kopii zapasowych.

Ten atrybut jest opcjonalny. Jeśli nie zostanie określony, automatyczne tworzenie kopii zapasowej domyślnie obejmuje większość plików aplikacji. Więcej informacji znajdziesz w artykule Pliki, których kopia zapasowa jest tworzona.

android:fullBackupOnly
Ten atrybut wskazuje, czy na urządzeniach, na których jest to możliwe, ma być używane automatyczne tworzenie kopii zapasowych. Jeśli ustawieniem jest "true", aplikacja wykonuje automatyczne kopie zapasowe po zainstalowaniu na urządzeniu z Androidem 6.0 (poziom interfejsu API 23) lub nowszym. Na starszych urządzeniach aplikacja ignoruje ten atrybut i wykonuje kopie zapasowe kluczy i wartości.

Wartość domyślna to "false".

android:gwpAsanMode
Ten atrybut wskazuje, czy należy użyć GWP-ASan, natywnej funkcji alokacji pamięci, która pomaga znaleźć błędy związane z odwołaniem do pamięci po jej zwolnieniu (use-after-free) i przepełnieniem bufora (heap-buffer-overflow).

Wartość domyślna to "never".

android:hasCode
Czy aplikacja zawiera kod DEX, czyli kod korzystający z języka programowania Kotlin lub Java. Jeśli tak, to "true", a jeśli nie, to "false". Gdy wartość to "false", system nie próbuje wczytywać żadnego kodu aplikacji podczas uruchamiania komponentów. Wartością domyślną jest "true".

Jeśli aplikacja zawiera kod natywny (C/C++), ale nie zawiera kodu DEX, ta wartość powinna być ustawiona na "false". Jeśli ustawisz wartość "true", a plik APK nie zawiera kodu DEX, aplikacja może się nie wczytać.

Ta usługa musi uwzględniać kod zawarty w aplikacji przez zależności. Jeśli aplikacja jest zależna od pliku AAR, który używa kodu Java lub Kotlin albo bezpośrednio pliku JAR, wartość app:hasCode musi być "true" lub pominięta, ponieważ jest domyślna.

Aplikacja może na przykład obsługiwać Play Feature Delivery i zawierać moduły funkcji, które nie generują żadnych plików DEX, czyli bajtkodów zoptymalizowanych pod kątem platformy Android. W takim przypadku musisz ustawić tę właściwość na "false" w pliku manifestu modułu, aby uniknąć błędów w czasie wykonywania.

android:hasFragileUserData
Czy po odinstalowaniu aplikacji ma się wyświetlać użytkownikowi prośba o zachowanie danych aplikacji. Wartość domyślna to "false".
android:hardwareAccelerated
Czy sprzętowa akceleracja renderowania jest włączona dla wszystkich czynności i widoków w tej aplikacji. Jeśli jest włączona, ma wartość "true", a jeśli nie, to "false". Jeśli ustawisz wartość minSdkVersion lub targetSdkVersion na "14" lub wyższą, domyślną wartością będzie "true". W przeciwnym razie jest to "false".

Począwszy od Androida 3.0 (interfejs API na poziomie 11) aplikacje mogą korzystać z renderowania OpenGL przyspieszonego sprzętowo, aby zwiększyć wydajność wielu typowych operacji związanych z grafiką 2D. Gdy włączony jest procesor graficzny z przyspieszeniem sprzętowym, większość operacji w płótnie, narzędziu Paint, trybie Xfer, filtrze kolorów, shaderze i aparacie jest przyspieszana.

Dzięki temu animacje są płynniejsze, przewijanie płynniejsze, a ogólna szybkość reakcji wyższa, nawet w przypadku aplikacji, które nie korzystają bezpośrednio z bibliotek OpenGL frameworku.

Nie wszystkie operacje OpenGL 2D są przyspieszone. Jeśli włączysz procesor graficzny z przyspieszeniem sprzętowym, przetestuj aplikację, aby upewnić się, że może ona korzystać z procesora bez błędów.

Więcej informacji znajdziesz w przewodniku po akceleracji sprzętowej.

android:icon
Ikona aplikacji jako całości i ikona domyślna 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 zasobu rysowanego 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 oddzielnie od innych aplikacji. Wartość domyślna to "false".
android:isMonitoringTool

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

Uwaga: jeśli aplikacja deklaruje ten atrybut w pliku manifestu, deweloper musi przestrzegać zasad dotyczących Stalkerware, aby opublikować aplikację w Google Play.

Nie ma wartości domyślnej. Deweloper musi podać 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"Aplikacja jest przeznaczona dla firm, które chcą zarządzać udostępnionymi pracownikom urządzeniami i je śledzić.
"other"Aplikacja jest przeznaczona do przypadku użycia, który nie został określony w tej tabeli.
android:killAfterRestore

Określa, czy aplikacja ma się zamknąć po przywróceniu jej ustawień podczas operacji przywracania całego systemu. Operacje przywracania pojedynczego pakietu nigdy nie powodują zamykania aplikacji. Operacje przywracania całego systemu zwykle występują tylko raz, gdy telefon jest konfigurowany po raz pierwszy. Aplikacje innych firm zwykle nie muszą używać tego atrybutu.

Wartość domyślna to "true", co oznacza, że po zakończeniu przetwarzania danych podczas pełnego przywracania systemu aplikacja się zamyka.

android:largeHeap

Określa, czy procesy aplikacji są tworzone z dużą przestrzenią Dalvik. Dotyczy to wszystkich procesów utworzonych dla aplikacji. Dotyczy to tylko pierwszej aplikacji załadowanej w ramach procesu. Jeśli używasz wspólnego identyfikatora użytkownika, aby umożliwić wielu aplikacjom korzystanie z procesu, wszystkie muszą konsekwentnie używać tej opcji, aby uniknąć nieprzewidzianych wyników.

Większość aplikacji nie potrzebuje tego typu pamięci, a zamiast tego skupia się na zmniejszeniu ogólnego wykorzystania pamięci w celu poprawy wydajności. Włączenie tej opcji nie gwarantuje stałego zwiększenia dostępnej pamięci, ponieważ niektóre urządzenia są ograniczone przez łączną dostępną pamięć.

Aby zapytać o dostępną ilość pamięci w czasie wykonywania, użyj metod getMemoryClass() lub getLargeMemoryClass().

android:label
Etykieta aplikacji zrozumiała dla użytkownika oraz domyślna etykieta każdego z jej komponentów. Sprawdź poszczególne atrybuty label elementów <activity>, <activity-alias>, <service>, <receiver> i <provider>.

Etykieta jest ustawiana jako odwołanie do zasobu ciągu znaków, aby można ją było zlokalizować tak jak inne ciągi znaków w interfejsie. Jednak na potrzeby wygody podczas tworzenia aplikacji można go też ustawić jako ciąg znaków.

android:logo
Logo aplikacji jako całości i domyślne logo działań. Ten atrybut jest ustawiany jako odwołanie do zasobu rysowanego zawierającego obraz, np. "@drawable/logo". Brak logo domyślnego.
android:manageSpaceActivity
Pełna nazwa podklasy Activity, którą system uruchamia, aby umożliwić użytkownikom zarządzanie pamięcią zajętą przez aplikację na urządzeniu. Aktywność jest też deklarowana za pomocą elementu <activity>.
android:name
Pełna i jednoznaczna nazwa podklasy Application zaimplementowanej w aplikacji. Gdy proces aplikacji jest uruchamiany, ta klasa jest instancjonowana przed każdym z jej komponentów.

Podklasa jest opcjonalna. Większość aplikacji nie wymaga tego. Jeśli podklasa nie istnieje, Android używa instancji podstawowej klasy Application.

android:networkSecurityConfig

Określa nazwę pliku XML zawierającego konfigurację zabezpieczeń sieci aplikacji. Wartość to odwołanie do pliku zasobu XML zawierającego konfigurację.

Ten atrybut został dodany w wersji interfejsu API 24.

android:permission
Nazwa uprawnienia, którego klienci potrzebują do interakcji z aplikacją. Ten atrybut to wygodny sposób na ustawienie uprawnienia, które ma zastosowanie do wszystkich komponentów aplikacji. Jest on zastępowany przez ustawienie atrybutów permission poszczególnych komponentów.

Więcej informacji o uprawnieniach znajdziesz w sekcji Uprawnienia w opisie pliku manifestu aplikacji oraz w wskazówkach dotyczących bezpieczeństwa.

android:persistent
Czy aplikacja jest zawsze uruchomiona. Jeśli tak, to "true", a jeśli nie, to "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 ramach którego 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 dla aplikacji, gdy musi zostać uruchomiony pierwszy z jej komponentów. Wszystkie komponenty są następnie wykonywane w ramach tego procesu. Nazwa domyślnego procesu jest zgodna z nazwą pakietu ustawioną przez element <manifest>.

Ustawienie tego atrybutu na nazwę procesu, który jest współdzielony z inną aplikacją, pozwala uruchamiać komponenty obu aplikacji w tym samym procesie, ale tylko wtedy, gdy obie aplikacje mają ten 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 o tej nazwie. Proces globalny można udostępnić innym aplikacjom, co zmniejsza wykorzystanie zasobów.

android:restoreAnyVersion
Wskazuje, że aplikacja jest gotowa do przywrócenia dowolnego zestawu danych z kopii zapasowej, nawet jeśli kopia zapasowa została zapisana przez nowszą wersję aplikacji niż ta, która jest obecnie zainstalowana na urządzeniu. Ustawienie tego atrybutu na wartość "true" pozwala menedżerowi kopii zapasowej spróbować przywrócić dane, nawet jeśli niezgodność wersji sugeruje, że są one niezgodne. Używaj z rozwagą

Domyślną wartością tego atrybutu jest "false".

android:requestLegacyExternalStorage

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 uwzględnić tej prośby.

android:requiredAccountType
Określa typ konta wymagany do działania aplikacji. Jeśli Twoja aplikacja wymaga atrybutu Account, jego wartość musi odpowiadać typowi uwierzytelniania konta używanemu przez aplikację, zgodnie z definicją w atrybucie AuthenticatorDescription, np. "com.google".

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

Profile z ograniczeniami nie mogą dodawać kont, więc określenie tego atrybutu spowoduje, że aplikacja będzie niedostępna z profilu z ograniczeniami, chyba że określisz też atrybut android:restrictedAccountType z tą samą wartością.

Uwaga: jeśli dane konta mogą zawierać informacje umożliwiające identyfikację, ważne jest, aby zadeklarować ten atrybut i pozostawić go android:restrictedAccountType pusty, aby profile z ograniczonym dostępem nie mogły używać aplikacji do uzyskiwania dostępu do danych osobowych należących do właściciela.

Ten atrybut został dodany w wersji interfejsu API 18.

android:resizeableActivity

Określa, czy aplikacja obsługuje tryb wielookienności. Ten atrybut możesz ustawić w elemencie <activity> lub <application>.

Jeśli ten atrybut ma wartość "true", użytkownik może uruchomić aktywność w trybie podzielonego ekranu i trybie swobodnym. Jeśli ustawisz atrybut na "false", aplikacja nie będzie mogła być testowana ani optymalizowana pod kątem środowiska wielookiennego. System może nadal umieszczać aktywność w trybie wielu okien z zastosowaniem trybu zgodności.

Ustawienie tego atrybutu na "true" nie gwarantuje, że na ekranie nie będzie widocznych innych aplikacji w trybie wielozadaniowym, takich jak obraz w obrazie, lub na innych wyświetlaczach. Dlatego ustawienie tej flagi nie oznacza, że aplikacja ma wyłączny dostęp do zasobu.

W przypadku aplikacji kierowanych na interfejs API na poziomie 24 lub wyższym domyślnie jest to "true".

Jeśli Twoja aplikacja jest kierowana na poziom interfejsu API 31 lub nowszy, 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. Atrybut wskazuje, czy można zmienić rozmiar aplikacji, a nie to, czy aplikacja obsługuje tryb wielookienkowy. Jeśli resizeableActivity="false", aplikacja jest przełączana w tryb zgodności, gdy zachodzi taka potrzeba, aby dostosować się do wymiarów ekranu.
  • Małe ekrany (szerokość < 600 dp): jeśli resizeableActivity="true" oraz minimalna szerokość i minimalna wysokość głównej czynności są zgodne z wymaganiami dotyczącymi trybu wielookiennego, aplikacja obsługuje tryb wielookienny. Jeśli resizeableActivity="false", aplikacja nie obsługuje trybu wielookiennego 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 w wersji interfejsu API 24.

Uwaga: wartość głównej aktywności zadania jest stosowana do wszystkich dodatkowych aktywności uruchomionych w ramach tego zadania. Oznacza to, że jeśli główna aktywność zadania może być zmieniana, system traktuje wszystkie inne aktywności w zadaniu jako podlegające zmianom. Jeśli nie można zmienić rozmiaru czynności głównej, nie można też zmienić rozmiaru innych czynności w zadaniu.

android:restrictedAccountType
Określa typ konta wymagany przez tę aplikację i wskazuje, że profile z ograniczonym dostępem mogą uzyskać dostęp do takich kont należących do właściciela. Jeśli Twoja aplikacja wymaga Account i profily z ograniczonymi uprawnieniami mogą uzyskać dostęp do kont głównego użytkownika, wartość tego atrybutu musi odpowiadać typowi uwierzytelniania konta używanemu 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: ustawienie tego atrybutu pozwala profilom z ograniczonym dostępem korzystać z Twojej aplikacji z kontami należącymi do właściciela, co może ujawnić informacje umożliwiające identyfikację. Jeśli konto może ujawnić dane osobowe, nie używaj tego atrybutu. Zamiast tego zadeklaruj atrybut android:requiredAccountType, aby uniemożliwić dostęp do aplikacji na profilach z ograniczonym dostępem.

Ten atrybut został dodany w wersji interfejsu API 18.

android:supportsRtl

Określa, czy aplikacja obsługuje układy od prawej do lewej.

Jeśli ta opcja jest ustawiona na "true", a targetSdkVersion na 17 lub wyższą, różne interfejsy API RTL są aktywowane i używane przez system, aby aplikacja mogła wyświetlać układy RTL. Jeśli ustawisz wartość "false" lub jeśli wartość targetSdkVersion wynosi 16 lub mniej, interfejsy API RTL są ignorowane lub nie mają wpływu, a aplikacja zachowuje się tak samo niezależnie od kierunku układu powiązanego z wybranym przez użytkownika ustawieniem języka. Oznacza to, że układy zawsze są ułożone od lewej do prawej.

Domyślną wartością tego atrybutu jest "false".

Ten atrybut został dodany w wersji interfejsu API 17.

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

Domyślnie wszystkie aktywności w aplikacji mają ten sam poziom podobieństwa. Nazwa tej grupy jest taka sama jak nazwa pakietu określona przez element <manifest>.

android:testOnly
Wskazuje, czy aplikacja jest przeznaczona tylko do celów testowych. Na przykład może ono ujawniać funkcje lub dane spoza siebie, co może spowodować lukę w zabezpieczeniach, ale jest przydatne podczas testowania. Ten typ pliku APK można zainstalować tylko za pomocą adb. Nie możesz go opublikować w Google Play.

Android Studio automatycznie dodaje ten atrybut, gdy klikniesz Uruchom .

android:theme
Odwołuje się do zasobu stylów, który definiuje motyw domyślny dla wszystkich aktywności w aplikacji. Poszczególne działania mogą zastąpić ustawienia domyślne, podając własne atrybuty theme. Więcej informacji znajdziesz w artykule Style i motywy.
android:uiOptions
Dodatkowe opcje interfejsu aktywności. Musi to być jedna z tych wartości:
WartośćOpis
"none"Brak dodatkowych opcji interfejsu. Jest to ustawienie domyślne.
"splitActionBarWhenNarrow"Dodaje pasek na dole ekranu, aby wyświetlać elementy działania na pasku aplikacji, zwanym też paskiem działań, gdy jest ograniczona przestrzeń pozioma, np. w orientacji pionowej na telefonie. Zamiast wyświetlania na pasku aplikacji u góry ekranu niewielkiej liczby elementów działania, pasek ten dzieli się na górną sekcję nawigacji i dolny pasek z elementami działania. Oznacza to, że na górze jest wystarczająco dużo miejsca na elementy akcji oraz elementy nawigacji i tytuły. Pozycje menu nie są rozdzielane na 2 paski. Występują zawsze razem.

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

Ten atrybut został dodany w wersji interfejsu API 14.

android:usesCleartextTraffic
Wskazuje, czy aplikacja ma używać ruchu w sieci w postaci zwykłego tekstu, np. HTTP w postaci zwykłego tekstu. Wartość domyślna w przypadku aplikacji kierowanych na interfejs API na poziomie 27 lub niższym to "true". Aplikacje kierowane na poziom API 28 lub wyższy są domyślnie ustawione na "false".

Gdy atrybut ma wartość "false", komponenty platformy, np. pakiety HTTP i FTP, DownloadManager oraz MediaPlayer, odrzucają żądania aplikacji dotyczące korzystania z ruchu w pełnym tekście.

Zalecamy też, aby biblioteki innych firm stosowały to ustawienie. Głównym powodem unikania ruchu w postaci zwykłego tekstu jest brak poufności, autentyczności i zabezpieczeń przed modyfikacją. Osoba przeprowadzająca atak sieciowy może podsłuchiwać przesyłane dane, a także je modyfikować bez wykrycia.

Ten parametr jest honorowany w miarę możliwości, ponieważ nie jest możliwe zapobieganie przesyłaniu w pełnej postaci wszystkich danych z aplikacji na Androida, biorąc pod uwagę przyznany im poziom dostępu. Nie oczekujemy na przykład, że interfejs API Socket będzie uwzględniać ten parametr, ponieważ nie może on określić, czy ruch jest w postaci zwykłego tekstu.

Jednak większość ruchu sieciowego z aplikacji jest obsługiwana przez warstwy i komponenty sieci o wyższym poziomie, które mogą uwzględniać ten parametr, odczytując go z ApplicationInfo.flagslub NetworkSecurityPolicy.isCleartextTrafficPermitted().

Uwaga: WebView uwzględnia ten atrybut w przypadku aplikacji kierowanych na poziom API 26 lub wyższy.

Podczas tworzenia aplikacji możesz używać trybu StrictMode do wykrywania nieszyfrowanego ruchu z aplikacji. Więcej informacji znajdziesz w artykule StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Ten atrybut został dodany w poziomie interfejsu API 23.

Ten parametr jest ignorowany w wersji Androida 7.0 (poziom interfejsu API 24) i wyższych, jeśli występuje konfiguracja zabezpieczeń sieci Androida.

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

Ten atrybut został dodany w wersji API 8, w której wartość "true" wyłączała kompilator Dalvik JIT.

Ten atrybut został dostosowany w wersji API 22, w której wartość "true" wyłączała kompilator AOT (z wyprzedzeniem) ART.

wprowadzona w:
Poziom API 1
Zobacz też:
<activity>
<service>
<receiver>
<provider>