<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:enableOnBackInvokedCallback=["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>
zawiera się 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 podelementy, które deklarują każdy z komponentów aplikacji, oraz 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 dla odpowiednich atrybutów elementów komponentu. Inne, np. debuggable, enabled, descriptionallowClearUserData, ustawiają wartości dla całej aplikacji i nie są zastępowane przez komponenty.

atrybuty
android:allowTaskReparenting
Określa, czy działania zdefiniowane przez aplikację mogą przenosić się z zadania, które je rozpoczęło, do zadania, z którym są powiązane, gdy to zadanie zostanie przeniesione na pierwszy plan. Jeśli mogą się poruszać, wpisz "true", a jeśli muszą pozostać przy zadaniu, od którego zaczęli, wpisz "false". 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 ma uczestniczyć w infrastrukturze tworzenia i przywracania kopii zapasowych. Jeśli ten atrybut ma wartość "false", nigdy nie jest wykonywana kopia zapasowa ani przywracanie aplikacji, nawet w przypadku pełnej kopii zapasowej systemu, która w innych okolicznościach 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 to zachowanie jest inne. 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 kopii zapasowych plików aplikacji w chmurze i ich przywracanie, ustawiając ten atrybut na "false", nawet jeśli aplikacja jest kierowana na Androida 12 (API na poziomie 31) lub nowszego.

Więcej informacji znajdziesz w sekcji tworzenie i przywracanie kopii zapasowej na stronie opisującej zmiany w działaniu aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.

android:allowClearUserData

Określa, czy aplikacja może resetować dane użytkownika. Obejmują one flagi, np. czy użytkownik widział wprowadzające podpowiedzi, a także ustawienia i preferencje, które można dostosować. Domyślna wartość tego atrybutu to "true".

Uwaga: ten atrybut mogą deklarować wyraźnie 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: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 problemu z kondycją kodu. Przyszłe urządzenia sprzętowe mogą nie obsługiwać tego tagu manifestu.

Więcej informacji znajdziesz w artykule Wskaźniki z tagami.

android:appCategory

Deklaruje kategorię tej aplikacji. Kategorie służą do grupowania wielu aplikacji w znaczące grupy, np. podczas podsumowywania zużycia baterii, sieci lub dysku. Tę wartość należy definiować tylko w przypadku aplikacji, które dobrze pasują do jednej z określonych kategorii.

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

WartośćOpis
accessibilityaplikacje, które są przede wszystkim aplikacjami ułatwień dostępu, np. czytniki ekranu;
audioAplikacje, które działają głównie z dźwiękiem lub muzyką, np. odtwarzacze muzyki.
gameAplikacje, które są głównie grami.
imageAplikacje, które działają głównie z obrazami lub zdjęciami, np. aplikacje do obsługi aparatu lub galerii.
mapsAplikacje, które są głównie aplikacjami mapowymi, np. aplikacje do nawigacji.
newsAplikacje, które są głównie aplikacjami z wiadomościami, np. aplikacje gazet, czasopism lub sportowe.
productivityaplikacje, które są głównie aplikacjami zwiększającymi produktywność, np. aplikacje do przechowywania danych w chmurze lub aplikacje do pracy;
socialAplikacje, które są przede wszystkim aplikacjami społecznościowymi, np. aplikacje do przesyłania wiadomości, komunikacji, poczty e-mail lub sieci społecznościowych.
videoAplikacje, które działają głównie z filmami, np. aplikacje do strumieniowania wideo.

android:backupAgent
Nazwa klasy, która implementuje agenta kopii zapasowej aplikacji, podklasa klasy BackupAgent. Wartość atrybutu to pełna i jednoznaczna nazwa klasy, np. "com.example.project.MyBackupAgent". Jeśli jednak pierwszy znak nazwy to kropka, np. ".MyBackupAgent", jest ona dołączana do nazwy pakietu określonej w elemencie <manifest>.

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

android:backupInForeground
Oznacza, że w tej aplikacji można wykonywać operacje automatycznej kopii zapasowej, nawet jeśli jest ona w stanie równoważnym z pierwszym planem. System zamyka aplikację podczas automatycznego tworzenia kopii zapasowej, dlatego używaj tego atrybutu ostrożnie. Ustawienie tej flagi na "true" może mieć wpływ na działanie aplikacji, gdy jest ona aktywna.

Wartość domyślna to "false", co oznacza, że system operacyjny unika tworzenia kopii zapasowej aplikacji, gdy działa ona na pierwszym planie, np. aplikacji do odtwarzania muzyki, która aktywnie odtwarza muzykę za pomocą usługi w stanie startForeground().

android:banner
Obiekt rysowalny zawierający rozszerzony baner graficzny dla powiązanego elementu. Użyj tagu <application>, aby podać domyślny baner dla wszystkich aktywności aplikacji, lub tagu <activity>, aby podać baner dla konkretnej aktywności.

System używa banera do reprezentowania aplikacji na ekranie głównym Androida TV. Dlatego należy określić tę wartość tylko w przypadku aplikacji z aktywnością, która obsługuje intencję CATEGORY_LEANBACK_LAUNCHER.

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

Więcej informacji znajdziesz w artykule Wyświetlanie banera na ekranie głównym.

android:dataExtractionRules

Aplikacje mogą ustawić ten atrybut na zasób XML, w którym określają reguły decydujące o tym, które pliki i katalogi można skopiować z urządzenia w ramach operacji tworzenia kopii zapasowej lub przesyłania.

Informacje o formacie pliku XML znajdziesz w sekcji Kopia zapasowa i przywracanie.

android:debuggable
Określa, czy aplikację można debugować, nawet gdy jest uruchomiona na urządzeniu w trybie użytkownika. Wpisz "true", jeśli można, a "false", jeśli nie. Wartością domyślną jest "false".
android:description
Tekst o aplikacji, który jest czytelny dla użytkownika, 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 to być ciąg tekstowy. Nie ma wartości domyślnej.
android:enabled
Czy system Android może tworzyć instancje komponentów aplikacji. Wpisz "true", jeśli jest to możliwe, a "false", jeśli nie. Jeśli wartość wynosi "true", o tym, czy dany komponent jest włączony, decyduje atrybut enabled tego komponentu. Jeśli wartość to "false", zastępuje ona wartości poszczególnych komponentów i wszystkie komponenty są wyłączone.

Wartością domyślną jest "true".

android:enableOnBackInvokedCallback

Ta flaga umożliwia rezygnację z przewidywanych animacji systemowych na poziomie aplikacji.

Ustaw wartość android:enableOnBackInvokedCallback=false, aby wyłączyć animacje przewidywanego przejścia wstecz na poziomie aplikacji i nakazać systemowi ignorowanie wywołań interfejsu API platformy OnBackInvokedCallback.

android:extractNativeLibs

Od wersji AGP 4.2.0 opcja DSL useLegacyPackaging zastępuje atrybut manifestu extractNativeLibs. Aby skonfigurować kompresję 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 pakowania skompresowanych bibliotek natywnych.

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

Domyślna wartość extractNativeLibs zależy od minSdkVersion i używanej wersji AGP. W większości przypadków domyślne działanie jest prawdopodobnie tym, czego oczekujesz, i nie musisz jawnie ustawiać tego atrybutu.

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ą, które pliki mają zostać przesłane do kopii zapasowej. Więcej informacji znajdziesz w sekcji Składnia konfiguracji XML dotyczącej automatycznej kopii zapasowej.

Ten atrybut jest opcjonalny. Jeśli nie zostanie określony, domyślnie Automatyczna kopia zapasowa obejmuje większość plików aplikacji. Więcej informacji znajdziesz w sekcji Pliki, których kopie zapasowe są tworzone.

android:fullBackupOnly
Ten atrybut wskazuje, czy na urządzeniach, na których jest dostępna funkcja automatycznej kopii zapasowej, ma być ona używana. Jeśli ustawisz wartość "true", aplikacja będzie wykonywać automatyczną kopię zapasową po zainstalowaniu na urządzeniu z Androidem 6.0 (API na poziomie 23) lub nowszym. Na starszych urządzeniach aplikacja ignoruje ten atrybut i wykonuje kopie zapasowe klucz/wartość.

Wartością domyślną jest "false".

android:gwpAsanMode
Ten atrybut wskazuje, czy używać GWP-ASan, funkcji natywnego alokatora pamięci, która pomaga znajdować błędy odwołania do pamięci po jej zwolnieniu (use-after-free) i przepełnienia bufora na stercie (heap-buffer-overflow).

Wartością domyślną jest "never".

android:hasCode
Czy aplikacja zawiera kod DEX, czyli kod napisany w języku programowania Kotlin lub Java. Wpisz "true", jeśli tak jest, a "false", jeśli nie. Gdy wartość wynosi "false", system nie próbuje wczytać ż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, należy ustawić wartość "false". Jeśli ta opcja jest ustawiona na "true", a plik APK nie zawiera kodu DEX, aplikacja może się nie wczytać.

Ta właściwość 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/Kotlin, lub bezpośrednio od pliku JAR, wartość app:hasCode musi być równa "true" lub można ją pominąć, ponieważ jest to wartość domyślna.

Na przykład aplikacja może obsługiwać Play Feature Delivery i zawierać moduły funkcji, które nie generują żadnych plików DEX, czyli kodu bajtowego zoptymalizowanego pod kątem platformy Android. Jeśli tak jest, musisz ustawić tę właściwość na "false" w pliku manifestu modułu, aby uniknąć błędów w czasie działania.

android:hasFragileUserData
Określa, czy wyświetlać użytkownikowi prośbę o zachowanie danych aplikacji, gdy ją odinstalowuje. Wartość domyślna to "false".
android:hardwareAccelerated
Określa, czy renderowanie z akceleracją sprzętową jest włączone w przypadku wszystkich aktywności i widoków w tej aplikacji. Wartość "true" oznacza, że jest włączona, a "false" – że nie jest. Jeśli ustawisz wartość minSdkVersion lub targetSdkVersion na "14" lub wyższą, domyślna wartość to "true". W przeciwnym razie jest to "false".

Od Androida 3.0 (poziom API 11) aplikacje mają dostęp do akcelerowanego sprzętowo renderowania OpenGL, które zwiększa wydajność wielu typowych operacji grafiki 2D. Gdy renderowanie z akceleracją sprzętową jest włączone, większość operacji w przypadku Canvas, Paint, Xfermode, ColorFilter, Shader i Camera jest przyspieszana.

Dzięki temu animacje są płynniejsze, przewijanie jest bardziej komfortowe, a ogólna responsywność ulega poprawie, nawet w przypadku aplikacji, które nie korzystają bezpośrednio z bibliotek OpenGL platformy.

Nie wszystkie operacje OpenGL 2D są akcelerowane. Jeśli włączysz renderowanie z akceleracją sprzętową, przetestuj aplikację, aby upewnić się, że może korzystać z renderowania 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. Zapoznaj się z poszczególnymi atrybutami elementów icon, <activity>, <activity-alias>, <service>, <receiver> i <provider>.

Ten atrybut jest ustawiony jako odwołanie do obiektu rysowalnego zawierającego obraz, np. "@drawable/icon". Nie ma ikony domyślnej.

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

Wskazuje, że ta aplikacja jest przeznaczona 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 zostanie zamknięta po przywróceniu jej ustawień podczas operacji przywracania całego systemu. Operacje przywracania pojedynczego pakietu nigdy nie powodują wyłączenia aplikacji. Operacje przywracania całego systemu zwykle są wykonywane tylko raz, podczas pierwszej konfiguracji telefonu. Aplikacje innych firm zwykle nie muszą używać tego atrybutu.

Domyślna wartość to "true", co oznacza, że po zakończeniu przetwarzania danych podczas przywracania całego systemu aplikacja zostanie zamknięta.

android:largeHeap

Określa, czy procesy aplikacji są tworzone z dużym stertą Dalvika. Dotyczy to wszystkich procesów utworzonych dla aplikacji. Dotyczy to tylko pierwszej aplikacji załadowanej do procesu. Jeśli używasz udostępnionego identyfikatora użytkownika, aby umożliwić wielu aplikacjom korzystanie z procesu, wszystkie aplikacje muszą konsekwentnie używać tej opcji, aby uniknąć nieprzewidywalnych wyników.

Większość aplikacji nie potrzebuje tego i zamiast tego skupia się na zmniejszeniu ogólnego wykorzystania pamięci, aby poprawić wydajność. Włączenie tej funkcji nie gwarantuje też stałego wzrostu dostępnej pamięci, ponieważ niektóre urządzenia mają ograniczoną całkowitą dostępną pamięć.

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

android:label
Etykieta aplikacji czytelna dla użytkownika oraz etykieta domyślna dla każdego z jej komponentów. Zapoznaj się z poszczególnymi atrybutami elementów label, <activity>, <activity-alias>, <service>, <receiver> i <provider>.

Etykieta jest ustawiona jako odwołanie do zasobu tekstowego, dzięki czemu można ją zlokalizować tak jak inne ciągi znaków w interfejsie. Jednak dla wygody podczas tworzenia aplikacji może być też ustawiony jako ciąg znaków.

android:logo
Logo aplikacji jako całości i domyślne logo działań. Ten atrybut jest ustawiony jako odwołanie do obiektu rysowalnego zawierającego obraz, np. "@drawable/logo". Nie ma domyślnego logo.
android:manageSpaceActivity
Pełna i jednoznaczna nazwa Activity podklasy, którą system uruchamia, aby umożliwić użytkownikom zarządzanie pamięcią zajmowaną przez aplikację na urządzeniu. Aktywność jest też deklarowana za pomocą elementu <activity>.
android:name
Pełna i jednoznaczna nazwa Application podklasy zaimplementowanej w aplikacji. Gdy rozpocznie się proces aplikacji, ta klasa zostanie utworzona przed wszystkimi komponentami aplikacji.

Podklasa jest opcjonalna. Większość aplikacji nie wymaga takiego dokumentu. Jeśli nie ma podklasy, Android używa instancji klasy bazowej Application.

android:networkSecurityConfig

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

Ten atrybut został dodany na poziomie API 24.

android:permission
Nazwa uprawnienia, którego klienci potrzebują, aby korzystać z aplikacji. 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 omówieniu pliku manifestu aplikacji oraz w wskazówkach dotyczących bezpieczeństwa.

android:persistent
Określa, czy aplikacja ma być zawsze uruchomiona. Wpisz "true", jeśli tak jest, a "false", jeśli nie. Wartością domyślną 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 atrybut process.

Domyślnie Android tworzy proces dla aplikacji, gdy pierwszy z jej komponentów musi zostać uruchomiony. Wszystkie komponenty działają w tym procesie. Nazwa domyślnego procesu jest zgodna z nazwą pakietu ustawioną przez element <manifest>.

Ustawiając ten atrybut na nazwę procesu, która jest udostępniana innej aplikacji, możesz sprawić, że komponenty obu aplikacji będą działać w tym samym procesie, ale tylko wtedy, gdy obie aplikacje mają też 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 proces globalny o tej nazwie. Proces globalny można udostępniać innym aplikacjom, co zmniejsza zużycie zasobów.

android:restoreAnyVersion
Oznacza, że aplikacja jest gotowa do próby 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 "true" umożliwia Menedżerowi kopii zapasowych
  • $1
  • spróbować przywrócić dane nawet wtedy, gdy niezgodność wersji sugeruje, że dane są niekompatybilne. Używaj z rozwagą!

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

    android:requestLegacyExternalStorage

    Czy aplikacja chce zrezygnować z ograniczonego dostępu do 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 o rezygnację.

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

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

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

    Ostrzeżenie: jeśli dane na koncie mogą ujawniać informacje umożliwiające identyfikację, ważne jest, aby zadeklarować ten atrybut i pozostawić wartość android:restrictedAccountType pustą, 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 konta.

    Ten atrybut został dodany na poziomie interfejsu 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ł uruchomić aktywność w trybie podzielonego ekranu i w trybie dowolnym. Jeśli ustawisz atrybut na "false", aplikacji nie będzie można testować ani optymalizować pod kątem środowiska z wieloma oknami. System może nadal umieścić aktywność w trybie wielu okien z zastosowanym trybem zgodności.

    Ustawienie tego atrybutu na "true" nie gwarantuje, że na ekranie nie będą widoczne inne aplikacje w trybie wielu okien, np. w trybie obrazu w obrazie, ani na innych wyświetlaczach. Ustawienie tej flagi nie oznacza, że Twoja aplikacja ma wyłączny dostęp do zasobów.

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

    Jeśli aplikacja jest kierowana 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. Atrybut wskazuje, czy rozmiar aplikacji można zmienić, a nie czy obsługuje ona tryb wielu okien. Jeśli resizeableActivity="false", aplikacja jest w razie potrzeby przełączana w tryb zgodności, aby dostosować się do wymiarów 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 dotyczące trybu wielu okien, aplikacja obsługuje ten tryb. Jeśli resizeableActivity="false", aplikacja nie obsługuje trybu wielu okien niezależnie od minimalnej szerokości i wysokości aktywności.

    Wartość aktywności głównej zadania jest stosowana do wszystkich dodatkowych aktywności uruchamianych w ramach tego zadania. Oznacza to, że jeśli aktywność główna zadania ma możliwość zmiany rozmiaru, system traktuje wszystkie inne aktywności w tym zadaniu jako takie, które też mają taką możliwość. Jeśli aktywność główna nie może zmieniać rozmiaru, inne aktywności w zadaniu też nie mogą.

    Ten atrybut został dodany na poziomie API 24.

    android:restrictedAccountType
    Określa typ konta wymagany przez tę aplikację i wskazuje, że profile ograniczone mogą uzyskiwać dostęp do kont należących do właściciela. Jeśli aplikacja wymaga Account, a profile z ograniczeniami mogą uzyskiwać dostęp do kont głównego użytkownika, wartość tego atrybutu musi odpowiadać typowi uwierzytelniania konta używanemu przez aplikację, zgodnie z definicją AuthenticatorDescription, np. "com.google".

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

    Ostrzeżenie: określenie tego atrybutu umożliwia profilom z ograniczeniami korzystanie z Twojej aplikacji na kontach należących do właściciela, co może ujawnić informacje umożliwiające identyfikację użytkownika. Jeśli konto może ujawniać dane osobowe, nie używaj tego atrybutu. Zamiast tego zadeklaruj atrybut android:requiredAccountType, aby aplikacja była niedostępna dla profili z ograniczeniami.

    Ten atrybut został dodany na poziomie interfejsu API 18.

    android:supportsRtl

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

    Jeśli ta wartość jest ustawiona na "true", a wartość targetSdkVersion jest ustawiona na 17 lub wyższą, system aktywuje i używa różnych interfejsów API RTL, dzięki czemu aplikacja może wyświetlać układy RTL. Jeśli ta wartość jest ustawiona na "false" lub jeśli wartość targetSdkVersion jest ustawiona na 16 lub niższą, interfejsy API RTL są ignorowane lub nie mają wpływu, a aplikacja działa tak samo niezależnie od kierunku układu powiązanego z wybranym przez użytkownika ustawieniem regionalnym. 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 pokrewieństwa, która ma zastosowanie do wszystkich działań w aplikacji, z wyjątkiem tych, które mają inne pokrewieństwo z własnymitaskAffinity atrybutami. Więcej informacji znajdziesz w opisie tego atrybutu.

    Domyślnie wszystkie aktywności w aplikacji mają taką samą przynależność. Nazwa tego podobieństwa jest taka sama jak nazwa pakietu ustawiona przez element <manifest>.

    android:testOnly
    Wskazuje, czy ta aplikacja służy tylko do celów testowych. Może na przykład udostępniać funkcje lub dane poza sobą, co może powodować lukę w zabezpieczeniach, ale być przydatne do testowania. Ten rodzaj pliku APK można zainstalować tylko za pomocą adb. Nie możesz opublikować go w Google Play.

    Android Studio automatycznie dodaje ten atrybut, gdy klikniesz Uruchom .

    android:theme
    Odwołanie do zasobu stylu definiującego motyw domyślny dla wszystkich aktywności w aplikacji. Poszczególne działania mogą zastąpić ustawienia domyślne, ustawiając własne atrybutytheme. 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 u dołu ekranu, na którym wyświetlane są elementy działania na pasku aplikacji, zwanym też paskiem działań, gdy brakuje miejsca w poziomie, np. w trybie portretowym na telefonie. Zamiast niewielkiej liczby elementów działania wyświetlanych na pasku aplikacji u góry ekranu, pasek aplikacji dzieli się na górną sekcję nawigacji i dolny pasek elementów działania. Oznacza to, że u góry jest wystarczająco dużo miejsca na elementy czynności, nawigacji i tytułu. Pozycje menu nie są podzielone na 2 paski. 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 zamierza 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 domyślnie korzystają z wartości "false".

    Uwaga: Ten atrybut jest wycofywany i będzie ignorowany w przypadku aplikacji kierowanych na interfejsy API na poziomie 38 lub wyższym. Określ konfigurację bezpieczeństwa sieci, aby kontrolować ruch nieszyfrowany w przypadku interfejsów API na poziomie 24 i wyższym. Jeśli Twoja aplikacja jest kierowana na poziomy interfejsu API 23 lub starsze, musisz określić android:usesCleartextTraffic oprócz konfiguracji zabezpieczeń sieci.

    Gdy atrybut ma wartość "false", komponenty platformy, np. stosy HTTP i FTP, DownloadManagerMediaPlayer, odrzucają żądania aplikacji dotyczące używania ruchu w formie zwykłego tekstu.

    Zdecydowanie zalecamy, aby biblioteki innych firm również uwzględniały to ustawienie. Głównym powodem, dla którego należy unikać ruchu w formie zwykłego tekstu, jest brak poufności, autentyczności i ochrony przed manipulacją. Osoba przeprowadzająca atak w sieci może podsłuchiwać przesyłane dane, a także je modyfikować bez wykrycia.

    Ten flag jest uwzględniany w miarę możliwości, ponieważ nie można całkowicie zapobiec przesyłaniu ruchu w postaci tekstu nieszyfrowanego przez aplikacje na Androida ze względu na poziom dostępu, jaki mają te aplikacje. Na przykład nie oczekuje się, że interfejs Socket API będzie uwzględniać ten flagę, ponieważ nie może określić, czy jego ruch jest w postaci tekstu nieszyfrowanego.

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

    Uwaga: WebView uwzględnia ten atrybut w przypadku aplikacji kierowanych na docelowy poziom API 26 i nowsze wersje.

    Podczas tworzenia aplikacji można używać trybu StrictMode do identyfikowania w niej ruchu w formie zwykłego tekstu. Więcej informacji znajdziesz w artykule StrictMode.VmPolicy.Builder.detectCleartextNetwork().

    Ten atrybut został dodany na poziomie API 23.

    Ten flag jest ignorowany w Androidzie 7.0 (poziom interfejsu API 24) i nowszych, jeśli jest obecna konfiguracja zabezpieczeń sieci Androida.

    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 API 8, gdzie wartość "true"wyłączała kompilator JIT (just-in-time) Dalvik.

    Ten atrybut został dostosowany na poziomie interfejsu API 22, gdzie wartość "true" wyłączała kompilator ART ahead-of-time (AOT).

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