- 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
,taskAffinity
iallowTaskReparenting
, ustawia domyślne wartości dla odpowiednich atrybutów elementów komponentu. Inne, np.debuggable
,enabled
,description
iallowClearUserData
, 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 atrybutallowTaskReparenting
, 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 accessibility
aplikacje, które są głównie aplikacjami ułatwiającymi dostęp, takimi jak czytniki ekranu; audio
Aplikacje, które głównie obsługują dźwięk lub muzykę, takie jak odtwarzacze muzyczne. game
Aplikacje, które są głównie grami. image
Aplikacje, które głównie obsługują obrazy lub zdjęcia, takie jak aplikacje do obsługi aparatu lub galerii. maps
Aplikacje, które są przede wszystkim aplikacjami mapowymi, np. aplikacje do nawigacji. news
Aplikacje, które są głównie aplikacjami z wiadomościami, takimi jak gazety, czasopisma czy aplikacje sportowe. productivity
Aplikacje, które są głównie aplikacjami zwiększającymi produktywność, takimi jak aplikacje do przechowywania w chmurze lub aplikacje do pracy. social
Aplikacje, 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. video
Aplikacje, 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 staniestartForeground()
). 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"
, atrybutenabled
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 platformyOnBackInvokedCallback
. android:extractNativeLibs
- 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 parametruminSdkVersion
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
lubtargetSdkVersion
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()
lubgetLargeMemoryClass()
.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 atrybucieAuthenticatorDescription
, 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śliresizeableActivity="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.
- 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
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ą wAuthenticatorDescription
, 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"
, atargetSdkVersion
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
orazMediaPlayer
, 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.flags
lubNetworkSecurityPolicy.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.
Począwszy od wersji AGP 4.2.0 opcja DSL
useLegacyPackaging
zastępuje atrybut pliku manifestuextractNativeLibs
. Aby skonfigurować zachowanie kompresji biblioteki natywnej, użyj wartościuseLegacyPackaging
w plikubuild.gradle
aplikacji zamiast wartościextractNativeLibs
w pliku manifestu. Więcej informacji znajdziesz w informacjach o wersji Używanie DSL do pakowania skompresowanych natywnych bibliotek.- wprowadzona w:
- Poziom API 1
- Zobacz też:
<activity>
<service>
<receiver>
<provider>
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-01-23 UTC.
[null,null,["Ostatnia aktualizacja: 2025-01-23 UTC."],[],[]]