<manifest>

składnia:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:sharedUserMaxSdkVersion="integer"
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    ...
</manifest>

zawarte w:
brak

musi zawierać:
<application>
mogą zawierać:
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>

description:
Główny element pliku AndroidManifest.xml. Musi zawierają element <application>. i określ atrybuty xmlns:android oraz package.
atrybuty:
xmlns:android
Określa przestrzeń nazw Androida. Ten atrybut jest zawsze ustawiony do "http://schemas.android.com/apk/res/android".
package
Wartość atrybutu package w pliku manifestu pakietu APK reprezentuje unikalny identyfikator aplikacji. Został on sformatowany jako pełna wersja w języku Java nazwę pakietu aplikacji na Androida. Nazwa może zawierać wielkie i małe litery, cyfry, i podkreślenia („_”). Jednak poszczególne części nazwy pakietu mogą zaczynać się od liter.

Uważaj, aby nie zmieniać wartości package, bo w zasadzie tworzy nową aplikację. Użytkownicy poprzedniej wersji aplikacji nie otrzymają aktualizacji i nie będą mogli przenieść swoje dane między starą a nową wersją.

W systemie kompilacji opartym na Gradle, począwszy od AGP 7.3, nie ustawiaj wartość package w źródłowym pliku manifestu. Więcej informacji: Ustaw identyfikator aplikacji.

android:sharedUserId

Ta stała jest wycofana od poziomu interfejsu API 29.
Udostępniane identyfikatory użytkowników powodują niedeterministyczne działanie w menedżerze pakietów. W związku z tym są Zdecydowanie odradzamy i może on zostać usunięty w przyszłej wersji Androida. Zamiast tego użyj odpowiednich mechanizmów komunikacyjnych, takich jak usługi i dostawcy treści, współdziałania współdzielonych komponentów. Istniejących aplikacji nie można usunąć tej wartości, migracja z udostępnianego identyfikatora użytkownika nie jest obsługiwana. W tych aplikacjach dodaj android:sharedUserMaxSdkVersion="32", aby uniknąć korzystania ze współdzielonych identyfikatora użytkownika w przypadku nowych instalacji.

Nazwa identyfikatora użytkownika Linuksa, która jest udostępniana innym aplikacjom. Domyślnie Android przypisuje aplikacjom własny unikalny identyfikator użytkownika. Jeśli jednak ten atrybut ma tę samą wartość co najmniej dwóch aplikacje mają ten sam identyfikator, pod warunkiem że ich zestawy certyfikatów są identyczne. Dostęp mają aplikacje o tym samym identyfikatorze użytkownika oraz, w razie potrzeby, w ramach tego samego procesu.

android:targetSandboxVersion
Docelowa piaskownica, której ma używać ta aplikacja. Im wyższy numer wersji piaskownicy, tym wyższy poziom bezpieczeństwa. Jej wartość domyślna to 1. możesz też ustawić go na 2. Ustawienie tego atrybutu na 2 przełącza do innej piaskownicy SELinux.

W przypadku piaskownicy na poziomie 2 obowiązują te ograniczenia:

  • Wartość domyślna usesCleartextTraffic w konfiguracji zabezpieczeń sieci ma wartość Fałsz.
  • Udostępnianie identyfikatora UID jest niedozwolone.

W przypadku aplikacji błyskawicznych na Androida kierowanych na Androida 8.0 (poziom interfejsu API 26) lub nowszego: ten atrybut jest ustawiony na 2. Poziom piaskownicy możesz ustawić w zainstalowanej wersji aplikacji na mniej restrykcyjne poziom 1. Jeśli to zrobisz, aplikacja nie będzie zachowywała danych z aplikacji błyskawicznej w wersję zainstalowanej aplikacji. Musisz ustawić wartość piaskownicy zainstalowanej aplikacji na 2 , aby dane z aplikacji błyskawicznej były zapisywane w wersji instalowanej.

Po zainstalowaniu aplikacji możesz tylko ustawić wyższą wartość jej docelowej wartości piaskownicy. Aby obniżyć docelową wartość piaskownicy, odinstaluj aplikację i zastąp ją wersją, której plik manifestu zawiera niższą wartość tego atrybutu.

android:sharedUserLabel

Ta stała jest wycofana od poziomu interfejsu API 29.
Udostępniane identyfikatory użytkowników powodują niedeterministyczne działanie w menedżerze pakietów. W związku z tym są Zdecydowanie odradzamy i może on zostać usunięty w przyszłej wersji Androida. Zamiast tego użyj odpowiednich mechanizmów komunikacyjnych, takich jak usługi i dostawcy treści, współdziałania współdzielonych komponentów. Istniejących aplikacji nie można usunąć tej wartości, migracja z udostępnianego identyfikatora użytkownika nie jest obsługiwana.

Czytelna dla użytkownika etykieta udostępnianego identyfikatora użytkownika. Etykieta jest ustawiona jako odwołaniem do zasobu w postaci ciągu znaków. To nie może być nieprzetworzony ciąg znaków.

Ten atrybut został wprowadzony na poziomie interfejsu API 3. Ma sens tylko wtedy, gdy Ustawiono także atrybut sharedUserId.

android:sharedUserMaxSdkVersion

Udostępniane identyfikatory użytkowników powodują niedeterministyczne działanie w menedżerze pakietów. W związku z tym są Zdecydowanie odradzamy i może on zostać usunięty w przyszłej wersji Androida. Zamiast tego użyj odpowiednich mechanizmów komunikacyjnych, takich jak usługi i dostawcy treści, współdziałania współdzielonych komponentów.

Maksymalna wersja pakietu SDK, w której system nadal używa android:sharedUserId. Jeśli jest nowo zainstalowana na urządzeniu z pakietem SDK w wersji wyższej niż określona wartość, działa tak, jakby element android:sharedUserId nigdy nie został zdefiniowany.

Ten atrybut został wprowadzony na poziomie interfejsu API 33. Ma sens tylko wtedy, gdy Ustawiono także atrybut sharedUserId.

android:versionCode
Wewnętrzny numer wersji. Ta liczba jest używana wyłącznie do określenia, czy jedna wersja jest nowsza od drugiej, przy czym wyższe liczby oznaczają więcej w ostatnich wersjach. Nie jest to numer wersji wyświetlany użytkownikom, jest ustawiana przez atrybut versionName.

Wartość jest ustawiona jako dodatnia liczba całkowita większa od 0. Możesz je zdefiniować jakkolwiek chcesz, o ile każda kolejna wersja ma większy numer. Może to być na przykład numer kompilacji lub możesz przetłumaczyć wersję liczba w „x.y” na liczbę całkowitą przez kodowanie „x” i „y” oddzielnie w niższych i górnych 16 bitów. Możesz też zwiększyć tę liczbę o 1 po każdym opublikowaniu nowej wersji.

android:versionName
Numer wersji wyświetlany użytkownikom. Ten atrybut jest ustawiony jako nieprzetworzony jako ciąg znaków lub odwołanie do zasobu ciągu. Ciąg znaków nie ma innego przeznaczenia niż wyświetlać użytkownikom. Atrybut versionCode zawiera ważny numer wersji używany wewnętrznie.
android:installLocation
Domyślna lokalizacja, w której zainstalowana jest aplikacja. Akceptowane są te ciągi znaków słów kluczowych:

Wartość Opis
"internalOnly" Aplikacja instaluje się tylko w pamięci wewnętrznej urządzenia. Jeśli ta zasada jest ustawiona, nigdy nie instaluje się w pamięci zewnętrznej, np. na karcie SD. Jeśli wewnętrzny system nie zainstaluje aplikacji. Jest to działanie domyślne. jeśli nie określisz funkcji android:installLocation.
"auto" Aplikację można zainstalować w pamięci zewnętrznej, ale system zainstaluje ją domyślnie w pamięci wewnętrznej. Jeśli pamięć wewnętrzna jest pełna, system i zainstaluje ją w pamięci zewnętrznej. Po zainstalowaniu użytkownik może przenieść aplikację do pamięci wewnętrznej lub zewnętrznej w ustawieniach systemu.
"preferExternal" Preferowana jest instalacja aplikacji w pamięci zewnętrznej. Brak zagwarantuje, że system zastosuje się do tej prośby. Aplikacja może zostać zainstalowana w środowisku wewnętrznym jeśli nośnik zewnętrzny jest niedostępny lub pełny. Po zainstalowaniu aplikacji użytkownik może przenieść ją na pamięci wewnętrznej lub zewnętrznej w ustawieniach systemu.

Uwaga: domyślnie aplikacja jest instalowana na pamięci wewnętrznej i nie można jej zainstalować w pamięci zewnętrznej, jeśli zdefiniujesz ten atrybut na "auto" lub "preferExternal".

Gdy aplikacja zostanie zainstalowana w pamięci zewnętrznej:

  • Plik APK został zapisany są zapisywane w pamięci zewnętrznej, ale wszystkie dane aplikacji, takie jak bazy danych, są nadal w pamięci wewnętrznej urządzenia.
  • Kontener, w którym został zapisany plik APK, jest zaszyfrowany kluczem, który umożliwia aplikacja działa tylko na urządzeniu, na którym została zainstalowana; Użytkownik nie może przenieść kartę SD na inne urządzenie i korzystać z zainstalowanych na niej aplikacji. Do tego samego urządzenia można używać wielu kart SD.
  • Na prośbę użytkownika można przenieść aplikację do pamięci wewnętrznej.

Użytkownik może również poprosić o przeniesienie aplikacji z pamięci wewnętrznej do pamięci zewnętrznej pamięci masowej. System nie zezwala użytkownikowi jednak na przeniesienie aplikacji do pamięci zewnętrznej, jeśli ten atrybut ma wartość "internalOnly" (jest to ustawienie domyślne).

Dla: więcej informacji na temat korzystania z tego atrybutu, w tym instrukcje zachowania zgodności wstecznej, Więcej informacji: Lokalizacja instalacji aplikacji.

Wprowadziliśmy w: poziom API 8.

wprowadzone w:
Poziom 1 interfejsu API dla wszystkich atrybutów, o ile w opisie atrybutu nie wskazano inaczej.

zobacz też:
<application>