<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: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>
mogą zawierać:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
description:

Deklaracja aplikacji. Ten element zawiera podelementy deklarujące poszczególne komponenty aplikacji i mające atrybuty która może mieć wpływ na wszystkie komponenty.

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

atrybuty
android:allowTaskReparenting
Określ, czy działania zdefiniowane przez aplikację mogą przenosić się zadanie, które zainicjowało zadanie, z którym pasjonują się podczas tego zadania a następnie na wierzch. Jeśli mogą się ruszać, to "true". "false", jeśli muszą pozostać z zadaniem, od którego zostały rozpoczęte. Wartością domyślną jest "false".

<activity> element ma swoje własne allowTaskReparenting , który może zastąpić ustawioną tutaj wartość.

android:allowBackup

Określa, czy aplikacja ma uczestniczyć w kopii zapasowej i przywracania infrastruktury. Jeśli ten atrybut ma wartość "false", nie utworzenie kopii zapasowej lub przywrócenie aplikacji, nawet przez tworzenie pełnej kopii zapasowej systemu, które w przeciwnym razie powoduje zapisanie wszystkich danych aplikacji. za pomocą: adb. Domyślna wartość tego atrybutu to "true".

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

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

Więcej informacji: kopie zapasowe i przywracanie strony zawierającej zmiany w działaniu aplikacji kierowanych na Androida 12 (poziom API 31) lub wyżej.

android:allowClearUserData

Określa, czy aplikacja ma zezwalać na resetowanie danych użytkownika. Dane te obejmują: flagi, np. czy użytkownik zobaczył etykietki wprowadzające, a także personalizowane przez użytkownika ustawienia i preferencje. Wartość domyślna tej wartości to "true".

Uwaga: tylko aplikacje będące częścią obrazu systemu jawnie zadeklarować ten atrybut. Aplikacje innych firm nie mogą zawierać tego elementu w plikach manifestu.

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

android:allowCrossUidActivitySwitchFromBelow

Określa, czy działania znajdujące się poniżej tego zadania mogą też rozpoczynać inne działania lub dokończyć zadanie.

Aplikacje od docelowego poziomu pakietu SDK na poziomie Build.VERSION_CODES.VANILLA_ICE_CREAM może zostać zablokowana możliwość rozpoczynania nowych działań lub kończenia zadań, chyba że główna aktywność ze względów bezpieczeństwa należy do tego samego identyfikatora UID.

Ustawienie tej flagi na true spowoduje, że uruchamiana aplikacja zignoruje ograniczenie, jeśli ta aktywność jest wyświetlana na początku. Aplikacje pasujące do identyfikatora UID tej aktywności są zawsze wykluczane.

Więcej informacji znajdziesz w artykule Uruchamianie bezpiecznej aktywności w tle.

android:allowNativeHeapPointerTagging

Określa, czy aplikacja ma włączoną funkcję tagowania wskaźnika sterty. Wartość domyślna ten atrybut to "true".

Uwaga: wyłączenie tej funkcji nie rozwiązuje problemu który jest przyczyną problemów ze stanem kodu. Kolejne urządzenia mogą nie obsługiwać tego tagu manifestu.

Więcej informacji znajdziesz w artykule Otagowane wskaźniki.

android:appCategory

Deklaruje kategorię tej aplikacji. Kategorie są używane do grupowania wielu aplikacji w konkretne grupy, np. podsumowując stan baterii, sieci lub zajętego miejsca na dysku. Określ tę wartość tylko w przypadku aplikacji, które pasują do jednej z tych wartości poszczególnych kategorii.

Musi to być jedna z podanych stałych wartości.

WartośćOpis
accessibilityAplikacje, które służą głównie jako ułatwienia dostępu, np. czytniki ekranu.
audioaplikacje, które obsługują głównie dźwięk lub muzykę, takie jak odtwarzacze muzyki;
gameaplikacje będące głównie grami;
imageaplikacje, które głównie obsługują obrazy lub zdjęcia, takie jak aparat lub galeria;
mapsaplikacje, które służą głównie do tworzenia map, np. jako aplikacje nawigacyjne;
newsaplikacje służące głównie do obsługi wiadomości, np. gazety, czasopisma lub sportowe;
productivityAplikacje służące głównie do zwiększania produktywności, takie jak miejsce w chmurze czy aplikacje do pracy.
socialAplikacje, które są głównymi aplikacjami społecznościowymi, np. do obsługi wiadomości, komunikacji, poczty e-mail lub sieci społecznościowych.
videoAplikacje, które działają głównie z filmami lub filmami, np. aplikacje do strumieniowego przesyłania wideo.

android:backupAgent
Nazwa klasy, która implementuje agenta kopii zapasowej aplikacji. podklasa klasy BackupAgent. Wartość atrybutu to pełną i jednoznaczną nazwę zajęć, np. "com.example.project.MyBackupAgent". W skrócie: jeśli pierwszym znakiem nazwy jest kropka, na przykład ".MyBackupAgent", zostanie dołączony do sekcji nazwa pakietu podana w <manifest> .

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

android:backupInForeground
Wskazuje, że Operacje automatycznej kopii zapasowej można wykonywać w tej aplikacji nawet wtedy, gdy jest ona równoważna na pierwszym planie stanu. system wyłącza aplikację podczas wykonywania automatycznej kopii zapasowej, więc zachowaj ostrożność podczas korzystania z niego. Ustawienie tej flagi na "true" może mieć wpływ na aplikację działanie aplikacji, gdy jest ona aktywna.

Wartość domyślna to "false", co oznacza, że system operacyjny pomija Utworzenie kopii zapasowej aplikacji uruchomionej na pierwszym planie, np. aplikacji muzycznej który aktywnie odtwarza muzykę przy użyciu usługi startForeground() stan.

android:banner
Zasób rysowalny wyświetlając rozszerzony baner graficzny dla powiązanego elementu. Używaj razem z <application>, aby dostarczać domyślny baner dla wszystkich działań w aplikacji lub w tagu <activity>. pozwala przesłać baner dla określonej aktywności.

System używa banera do reprezentowania aplikacji w na ekranie głównym Androida TV. Dlatego należy je określać tylko w przypadku aplikacji z działaniem, które obsługuje Intencja CATEGORY_LEANBACK_LAUNCHER.

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

Więcej informacji można znaleźć w sekcji Dodaj baner 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 kopii zapasowej lub i transferu danych.

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

android:debuggable
Określ, czy aplikację można debugować, nawet gdy jest uruchomiona na urządzeniu w trybie użytkownika. Jest "true", jeśli może być, i "false" jeśli nie. Wartością domyślną jest "false".
android:description
Czytelny 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 ciągu znaków. W przeciwieństwie do etykiety nie może to być nieprzetworzony ciąg znaków. Nie ma wartości domyślnej.
android:enabled
Czy system Android może tworzyć instancje komponentów aplikacji. Jest "true", jeśli można, oraz "false" jeśli nie. Jeśli wartością jest "true", funkcja każdego komponentu Atrybut enabled określa, czy komponent jest włączony. Jeśli wartość to "false", zastępuje ona zależne od komponentu, a wszystkie komponenty są wyłączone.

Wartość domyślna to "true".

android:extractNativeLibs

Od wersji AGP 4.2.0 w przypadku opcji DSL useLegacyPackaging zastępuje atrybut pliku manifestu extractNativeLibs. Użyj funkcji useLegacyPackaging w pliku build.gradle z aplikacji zamiast extractNativeLibs w pliku manifestu, aby skonfigurować bibliotekę natywną podczas kompresji. Więcej informacji znajdziesz w informacjach o wersji Spakuj skompresowane biblioteki natywne za pomocą DSL

Ten atrybut wskazuje, czy instalator pakietów wyodrębnia biblioteki natywne z i przesyłać pliki APK do systemu plików. Jeśli ma wartość "false", biblioteki natywne są przechowywane nieskompresowany w pakiecie APK. Twój plik APK może być większy, ale aplikacja wczytuje się szybciej bo biblioteki wczytują się bezpośrednio z pakietu APK w czasie działania.

Wartość domyślna parametru extractNativeLibs zależy od wartości minSdkVersion oraz parametru używanej wersji systemu AGP. W większości przypadków domyślne zachowanie jest prawdopodobnie pożądane. 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: Automatyczna kopia zapasowa. Te reguły określają, jakie pliki mają być uwzględniane w kopii zapasowej. Więcej informacji: Składnia konfiguracji XML w przypadku Automatycznej kopii zapasowej.

Ten atrybut jest opcjonalny. Jeśli nie określisz tego ustawienia, domyślnie zostanie użyta Automatyczna kopia zapasowa. zawiera większość plików aplikacji. Więcej informacji: Pliki, które mają kopie zapasowe

android:fullBackupOnly
Ten atrybut wskazuje, czy użyć Automatyczna kopia zapasowa na urządzeniach gdzie jest dostępna. Jeśli ustawisz wartość "true", aplikacja będzie uzyskiwać lepsze wyniki Automatycznej kopii zapasowej zainstalowanej na urządzeniu z Androidem 6.0 (poziom interfejsu API 23) lub wyżej. Na starszych urządzeniach aplikacja ignoruje ten atrybut i działa kopii zapasowych klucz-wartość.

Wartość domyślna to "false".

android:gwpAsanMode
Ten atrybut wskazuje, czy użyć GWP-ASan to natywna funkcja przydzielania pamięci, która pomaga i znajdowanie błędów „use-after-free” i „przepełnienia bufora na stercie”.

Wartość domyślna to "never".

android:hasCode
Określenie, czy aplikacja zawiera kod DEX – czyli kod wykorzystujący funkcję Kotlin lub język programowania Java. Jeśli tak, jest to "true", a w przeciwnym razie "false". Gdy ma wartość "false", system nie próbuje wczytać żadnej aplikacji przy uruchamianiu komponentów. Wartością domyślną jest "true".

Jeśli aplikacja zawiera kod natywny (C/C++), ale nie zawiera kodu DEX, ustaw na "false". Jeśli ma wartość "true", gdy pakiet APK nie zawiera kodu DEX, aplikacja może się nie załadować.

Ta usługa musi uwzględniać kod zawarty w aplikacji przez zależności. Jeśli aplikacja jest uzależniona od AAR, który używa w kodzie Java/Kotlin lub bezpośrednio w pliku JAR, app:hasCode musi być "true" lub jest pominięty, ponieważ jest to ustawienie domyślne.

Aplikacja może na przykład obsługiwać: Odtwarzanie funkcji dostawy i uwzględnianie funkcji które nie generują żadnych plików DEX, które mają kod bajtowy zoptymalizowany pod kątem platformy. Jeśli tak, musisz ustawić tę właściwość na "false" w pliku manifestu modułu. .

android:hasFragileUserData
Czy wyświetlać użytkownikowi prośbę zachowanie danych aplikacji, gdy użytkownik ją odinstaluje. Wartość domyślna to "false".
android:hardwareAccelerated
Czy renderowanie z akceleracją sprzętową jest włączone dla wszystkich czynności i widoki w tej aplikacji. Jeśli jest: "true" włączono, a "false", jeśli nie. Wartość domyślna to "true", jeśli ustawisz minSdkVersion lub targetSdkVersion co najmniej do "14". W przeciwnym razie jest to "false".

Począwszy od Androida 3.0 (poziom interfejsu API 11) sprzętowy mechanizm renderowania OpenGL jest dostępne dla aplikacji w celu poprawy wydajności w przypadku wielu popularnych grafik 2D operacji. Gdy włączony jest mechanizm renderowania z akceleracją sprzętową, większość operacji parametry Canvas, Paint, Xfermode, ColorFilter, Shader i Aparat są akcelerowane.

Dzięki temu są płynniejsze animacje i płynniejsze przewijanie. ogólną responsywność, nawet w przypadku aplikacji, które nie korzystają bezpośrednio biblioteki OpenGL platformy.

Nie wszystkie operacje OpenGL 2D są przyspieszone. Jeśli włączysz za pomocą akceleracji sprzętowej, przetestuj aplikację, by korzystać z mechanizmu renderowania bez błędów.

Aby dowiedzieć się więcej, przeczytaj Akceleracja sprzętowa Google.

android:icon
Ikona całej aplikacji i ikona domyślna dla poszczególnych komponentów aplikacji. Wyświetlanie konkretnej osoby Atrybuty icon dla <activity>, <activity-alias>, <service>, <receiver> i <provider> elementów.

Ten atrybut jest ustawiony jako odniesienie do zasobu rysowalnego zawierającego obraz, na przykład "@drawable/icon". Brak domyślnej ikony.

android:isGame
Określenie, czy aplikacja to gra. System może grupować aplikacje sklasyfikowane w postaci gier ani wyświetlać ich oddzielnie 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 pliku manifestu, deweloper musi wykonaj Stalkerware zasady publikowania aplikacji w Google Play.

Nie ma wartości domyślnej. Deweloper musi podać jedną z tych wartości:

WartośćOpis
"parental_control"Promująca aplikację zapewnia kontrolę rodzicielską i jest skierowany do rodziców, którzy chcą zatrzymać dzieci bezpieczeństwa.
"enterprise_management"Promująca aplikację jest przeznaczona dla firm, które chcą zarządzać urządzeniami przekazanymi pracownikom i je śledzić.
"other"Aplikacja jest przeznaczona do użytku nie określono inaczej w tej tabeli.
android:killAfterRestore

Określa, czy aplikacja zakończy się po podczas wykonywania operacji pełnego przywracania systemu. Operacje przywracania jednego pakietu nigdy nie powodują wyłączyć. Operacje przywracania pełnego systemu mają zwykle miejsce tylko raz. podczas pierwszej konfiguracji telefonu. Aplikacje innych firm zwykle nie działają muszą używać tego atrybutu.

Wartością domyślną jest "true", co oznacza, że po aplikacji zakończy przetwarzanie danych podczas przywracania pełnego systemu, po czym zostanie przerwane.

android:largeHeap

Określa, czy procesy aplikacji są tworzone na dużej stercie Dalvik. Dotyczy wszystkie procesy utworzone dla aplikacji. Ma zastosowanie tylko do pierwszej aplikacji wczytanej do proces tworzenia konta. Jeśli używasz współdzielonego identyfikatora użytkownika, aby umożliwić korzystanie z procesu wielu aplikacjom, wszystkie Z tej opcji należy korzystać konsekwentnie, aby uniknąć nieprzewidywalnych rezultatów.

Większość aplikacji nie potrzebuje tego rozwiązania i skupia się na zmniejszeniu ogólnego wykorzystania pamięci poprawić wydajność. Włączenie tej opcji nie gwarantuje też stałego wzrostu dostępnej pamięci, bo niektóre urządzenia mają ograniczoną ilość dostępnej pamięci.

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

android:label
Czytelna dla użytkownika etykieta dla całej aplikacji i jako domyślna dla poszczególnych komponentów aplikacji. Wyświetlanie konkretnej osoby Atrybuty label dla <activity>, <activity-alias>, <service>, <receiver> i <provider> elementów.

Etykieta jest ustawiona jako odniesienie do zasobu ciągu, więc i można go zlokalizować tak samo jak inne ciągi w interfejsie. Aby jednak zapewnić wygodę na etapie tworzenia aplikacji, można go też ustawić w postaci nieprzetworzonego ciągu znaków.

android:logo
Logo całej aplikacji i domyślne logo do aktywności. Ten atrybut jest ustawiony jako odniesienie do zasobu rysowalnego zawierającego obraz, na przykład "@drawable/logo". Brak domyślnego logo.
android:manageSpaceActivity
Pełna nazwa podklasy Activity, którą system uruchomienia, aby umożliwić użytkownikom zarządzanie pamięcią wykorzystywaną przez aplikację; na urządzeniu. Aktywność jest również deklarowana za pomocą tagu <activity> element.
android:name
Pełna i jednoznaczna nazwa elementu (Application) podklasa zaimplementowana dla aplikacji. W procesie zgłoszeniowym klasa jest inicjowana przed dowolnym z

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

android:networkSecurityConfig

Określa nazwę pliku XML zawierającego plik Bezpieczeństwo sieciowe Wartość jest odwołaniem do pliku zasobów XML zawierający konfigurację.

Ten atrybut został dodany na poziomie interfejsu API 24.

android:permission
Nazwa uprawnienia, którego potrzebują klienci do interakcji z aplikacją. Jest to wygodny sposób na określenie uprawnienia dotyczące wszystkich komponentów aplikacji. Jest zastąpione przez ustawienie atrybutów permission poszczególnych

Więcej informacji o uprawnieniach: Uprawnienia w omówieniu pliku manifestu aplikacji oraz Wskazówki dotyczące bezpieczeństwa

android:persistent
Czy aplikacja pozostaje uruchomiona przez cały czas. Jest "true", jeśli tak, lub "false", jeśli nie. Wartość domyślna jest "false". Aplikacje zwykle nie ustawiają tej flagi. Tryb trwałości jest przeznaczony tylko dla 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 element process .

Domyślnie Android tworzy proces dla aplikacji, gdy pierwszy jego komponentów musi działać. W ramach tego procesu będą działać wszystkie komponenty. Nazwa domyślnego procesu odpowiada nazwie pakietu ustawionej przez <manifest> element.

Przez ustawienie tego atrybutu na nazwę procesu, która jest udostępniana innym osobom aplikacji, możesz skonfigurować uruchamianie składników obu aplikacji ten sam proces, ale tylko wtedy, gdy obie aplikacje mają również wspólny identyfikator użytkownika i są podpisane tym samym certyfikatem.

Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (:), nowy atrybut (prywatny dla aplikacji) jest tworzony wtedy, gdy jest potrzebny. Jeśli nazwa procesu zaczyna się od małej litery, proces globalny o tej nazwie. Proces globalny można udostępnić innym aplikacji, co zmniejsza wykorzystanie zasobów.

android:restoreAnyVersion
Wskazuje, że aplikacja jest gotowa do próby przywrócenia zbioru danych z kopią zapasową, nawet jeśli kopia zapasowa była przechowywana w nowszej wersji. aplikacji niż jest obecnie zainstalowana na urządzeniu. Ustawienie ten atrybut do "true" umożliwia Menedżerowi kopii zapasowych będzie próbować przywrócić dane, nawet jeśli niezgodność wersji sugeruje, że dane niezgodne. Zachowaj ostrożność.

Domyślna wartość 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 aplikacją. zgodność, system może nie zaakceptować prośby o rezygnację.

android:requiredAccountType
Określa rodzaj konta wymagany przez aplikację do działania. Jeśli aplikacja wymaga atrybutu Account, wartość tego atrybutu musi być odpowiadaj mechanizmowi uwierzytelniania konta typ używany przez Twoją aplikację (zgodnie z definicją zawartą w usłudze AuthenticatorDescription), na przykład "com.google".

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

Ponieważ profile z ograniczonym dostępem nie można dodać kont, określenie tego atrybutu sprawi, że aplikacja niedostępny w profilu z ograniczonym dostępem, chyba że zadeklarujesz android:restrictedAccountType z tę samą wartość.

Uwaga: Jeśli dane konta mogłyby ujawnić informacje umożliwiające identyfikację osób, zadeklarowanie tego atrybutu i pozostawienie wartości android:restrictedAccountType pustej, tak aby profile z ograniczonym dostępem nie mogły używać dostępu do danych osobowych należących do właściciela aplikacji.

Ten atrybut został dodany na poziomie interfejsu API 18.

android:resizeableActivity

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

Jeśli ustawisz ten atrybut na wartość "true", użytkownik będzie mógł uruchamiać aktywność w w trybie podzielonego ekranu i trybie dowolnym. Jeśli ustawisz atrybut na wartość "false", aplikacja nie może zostać przetestowana ani zoptymalizowana pod kątem środowiska wielu okien. System może przejdź do trybu wielu okien z zastosowanym trybem zgodności.

Ustawienie tego atrybutu na wartość "true" nie gwarantuje, że nie ma innych aplikacji widocznych na ekranie w trybie wielu okien, np. obraz w obrazie, na innych ekranach. 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 aplikacja jest kierowana na interfejs API na poziomie 31 lub wyższym, ten atrybut działa inaczej w przypadku małych i dużych rozmiarów ekrany:

  • Duże ekrany (sw >= 600 dp): wszystkie aplikacje obsługują tryb wielu okien. Atrybut wskazuje Informacje o tym, czy można zmienić rozmiar aplikacji oraz czy obsługuje tryb wielu okien. Jeśli resizeableActivity="false", w razie potrzeby aplikacja zostanie przełączona w tryb zgodności aby dostosować je do wymiarów wyświetlania.
  • Małe ekrany (sw < 600 dp): jeśli parametr resizeableActivity="true" i wartość minimalna szerokość i minimalna wysokość głównej aktywności mieszczą się w wymaganiach dotyczących wielu okien, aplikacja obsługuje tryb wielu okien. Jeśli resizeableActivity="false", aplikacja nie obsługują tryb wielu okien niezależnie od minimalnej szerokości i wysokości aktywności.

Uwaga: producenci urządzeń mogą zastąpić poziom interfejsu API 31. zachowanie użytkownika.

Ten atrybut został dodany na poziomie interfejsu API 24.

Uwaga: główna wartość aktywności zadania jest stosowana do wszystkich dodatkowych działań uruchomionych w zadaniu. Oznacza to, że jeśli główne działanie którego rozmiar można zmienić, system traktuje wszystkie pozostałe działania z możliwością zmiany rozmiaru. Jeśli w działaniu głównym nie można zmienić rozmiaru, aktywności w zadaniu nie można zmienić.

android:restrictedAccountType
Określa typ konta wymagany przez tę aplikację i wskazuje, że profile ograniczone ma dostęp do kont należących do właściciela. Jeśli Twoja aplikacja wymaga Account i profile z ograniczonym dostępem mogą ma dostęp do kont głównego użytkownika, wartość tego atrybutu musi muszą odpowiadać typowi modułu uwierzytelniania konta używanego przez aplikację, zdefiniowane przez AuthenticatorDescription, na przykład "com.google".

Wartością domyślną jest null, co wskazuje, że aplikacja może działać bez kont.

Uwaga: Jeśli określisz ten atrybut, profile z ograniczonym dostępem będą mogły używać aplikacji z kontami należącymi do właściciela, co może ujawniać dane umożliwiające identyfikację; i informacjami o nich. Jeśli na koncie mogą ujawnić się dane osobowe, nie użyj tego atrybutu. Zamiast tego zadeklaruj atrybut android:requiredAccountType. , aby uniemożliwić dostęp do aplikacji w profilach ograniczonych.

Ten atrybut został dodany na poziomie interfejsu API 18.

android:supportsRtl

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

Jeśli zasada jest ustawiona na "true" i targetSdkVersion. ma wartość 17 lub wyższą, różne interfejsy API RTL są aktywowany i używany przez system, aby aplikacja mogła wyświetlać układy od prawej do lewej. Jeśli zasada ma wartość "false" lub jeśli targetSdkVersion ma wartość 16 lub mniejszą, interfejsy API RTL są ignorowane lub nie mają żadnego efektu, a aplikacja działa tak samo niezależnie od układu zgodnie z ustawieniami regionalnymi użytkownika. Oznacza to, że układy są zawsze od lewej do prawej.

Domyślna wartość tego atrybutu to "false".

Ten atrybut został dodany na poziomie interfejsu API 17.

android:taskAffinity
nazwa koligacji odnosząca się do wszystkich działań w aplikacji, poza tymi, które mają inne podobne zainteresowania taskAffinity . Więcej informacji znajdziesz w tym atrybucie.

Domyślnie wszystkie aktywności w aplikacji są takie same o podobnych zainteresowaniach. Nazwa tej koligacji jest taka sama jak nazwa pakietu ustawiony przez <manifest> element.

android:testOnly
Wskazuje, czy aplikacja służy tylko do testów. Przykład: może ujawnić poza sobą funkcje lub dane, które mogą zagrażać bezpieczeństwu ale przydatne do testowania. Ten rodzaj pliku APK służy tylko do instalacji do adb. Nie możesz jej opublikować w Google Play.

Android Studio automatycznie dodaje ten atrybut, gdy klikniesz Uruchom.

android:theme
Odniesienie do zasobu stylu definiującego motyw domyślny dla wszystkich w aplikacji. Poszczególne aktywności mogą zastąpić domyślnie, ustawiając własne theme . Więcej informacji znajdziesz w artykule Style i motywy.
android:uiOptions
Dodatkowe opcje interfejsu użytkownika. Musi mieć jedną z tych wartości:
WartośćOpis
"none"Bez dodatkowych opcji interfejsu. Jest to ustawienie domyślne.
"splitActionBarWhenNarrow"Dodaje bar o aby wyświetlić działania na pasku aplikacji, nazywanym też paska działań, gdy ograniczone dla przestrzeni w poziomie, na przykład w trybie pionowym w telefonie. Zamiast małego liczbę działań wyświetlanych na pasku aplikacji u góry ekranu, na pasku aplikacji dzieli się na górną sekcję nawigacji i dolny pasek działań. Oznacza to rozsądny na działania, nawigację i tytuł elementów u góry. Pozycje menu nie są podzielone na 2 słupki. Zawsze są wyświetlane razem.

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

Ten atrybut został dodany na poziomie interfejsu API 14.

android:usesCleartextTraffic
Wskazuje, czy aplikacja zamierza używać ruchu sieciowego niezrozumiałego tekstu, takiego jak nieszyfrowany protokół HTTP. Domyślna wartość w przypadku aplikacji kierowanych na interfejs API na poziomie 27 lub niższym to "true". Aplikacje, które docelowy poziom interfejsu API na poziomie 28 lub wyższym ma domyślnie wartość "false".

Jeśli atrybut ma wartość "false", komponenty platformy, np. HTTP i FTP stosy, DownloadManager i MediaPlayer, odmów żądań aplikacji o korzystanie z ruchu nieszyfrowanego.

Zdecydowanie zalecamy korzystanie z bibliotek innych firm w związku z tym ustawienia. Główną przyczyną unikania ruchu nieszyfrowanego jest brak poufności, autentyczności i ochronę przed manipulacjami. Osoba atakująca sieć może podsłuchać przesyłane dane a także modyfikować je bez wykrywania.

To oznaczenie jest wykorzystywane zgodnie z zasadą możliwie najlepszej obsługi, ponieważ nie ma możliwości zablokowania całego niezrozumiałego tekstu i ruchu z aplikacji na Androida, biorąc pod uwagę przyznany im poziom dostępu. Na przykład jest brak oczekiwań przestrzeganych przez interfejs API Socket bo nie można w niej określić, czy ruch generowany przez nią jest jawny.

Jednak większość ruch sieciowy z aplikacji jest obsługiwany przez stosy i komponenty sieci wyższego poziomu, które mogą tę flagę, odczytując ją z ApplicationInfo.flags lub NetworkSecurityPolicy.isCleartextTrafficPermitted()

Uwaga: WebView obsługuje ten atrybut dla: kierowane na interfejs API na poziomie 26 lub wyższym.

Podczas tworzenia aplikacji StrictMode może identyfikować w niej ruch nieszyfrowany. Więcej informacji: StrictMode.VmPolicy.Builder.detectCleartextNetwork()

Ten atrybut został dodany na poziomie interfejsu API 23.

Ta flaga jest ignorowana w Androidzie 7.0 (poziom interfejsu API 24) i nowszych w przypadku zabezpieczeń sieci Konfiguracja jest obecna.

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łączono kompilator Dalvik „just-in-time” (JIT).

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

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