- 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>
- może zawierać:
<attribution>
<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:
- Element główny pliku
AndroidManifest.xml
. Musi zawierać element<application>
i określać atrybutyxmlns:android
orazpackage
. - atrybuty:
-
xmlns:android
- Definiuje przestrzeń nazw Androida. Ten atrybut jest zawsze ustawiony na
"http://schemas.android.com/apk/res/android"
. package
- Wartość atrybutu
package
w pliku manifestu APK reprezentuje unikalny identyfikator aplikacji. Jest ona sformatowana jako pełna nazwa pakietu aplikacji na Androida w języku Java. Może zawierać duże i małe litery, cyfry oraz znaki podkreślenia ('_'). Jednak poszczególne części nazwy pakietu mogą się zaczynać tylko od liter.Uważaj, aby nie zmieniać wartości
package
, ponieważ spowoduje to utworzenie nowej aplikacji. Użytkownicy poprzedniej wersji aplikacji nie otrzymają aktualizacji i nie będą mogli przenieść swoich danych ze starszej do nowej wersji.W systemie kompilacji opartym na Gradle, począwszy od wersji AGP 7.3, nie należy bezpośrednio ustawiać wartości
package
w pliku manifestu źródłowego. Więcej informacji znajdziesz w sekcji Ustawianie identyfikatora aplikacji. android:sharedUserId
-
Ta stała została wycofana w poziomie interfejsu API 29.
Udostępnione identyfikatory użytkowników powodują niedeterministyczne działanie menedżera pakietów. Dlatego zdecydowanie odradzamy ich używanie. Mogą one zostać usunięte w przyszłej wersji Androida. Zamiast tego używaj odpowiednich mechanizmów komunikacji, takich jak usługi i dostawcy treści, aby ułatwić interoperacyjność między współdzielonymi komponentami. Istniejące aplikacje nie mogą usuwać tej wartości, ponieważ migracja z użycia wspólnego identyfikatora użytkownika nie jest obsługiwana. W tych aplikacjach dodajandroid:sharedUserMaxSdkVersion="32"
, aby uniknąć używania wspólnego identyfikatora użytkownika w przypadku nowych instalacji przez użytkowników.Nazwa identyfikatora użytkownika Linuksa, który jest udostępniany innym aplikacjom. Domyślnie Android przypisuje do każdej aplikacji własny, unikalny identyfikator użytkownika. Jeśli jednak ten atrybut ma tę samą wartość w przypadku co najmniej 2 aplikacji, wszystkie mają ten sam identyfikator, o ile ich zestawy certyfikatów są identyczne. Aplikacje z tym samym identyfikatorem użytkownika mogą mieć dostęp do danych innych aplikacji i w razie potrzeby działać w tym samym procesie.
android:targetSandboxVersion
- Docelowy piaskownicy dla tej aplikacji. Im wyższa wersja piaskownicy, tym wyższy poziom bezpieczeństwa.
Wartość domyślna to
1
, ale możesz też ustawić ją na2
. Ustawienie tego atrybutu na2
powoduje przełączenie aplikacji do innego piaskownicy SELinux.W przypadku piaskownicy na poziomie 2 obowiązują te ograniczenia:
- Domyślna wartość parametru
usesCleartextTraffic
w konfiguracji zabezpieczeń sieciowych to „fałsz”. - Udostępnianie identyfikatorów Uid jest niedozwolone.
W przypadku aplikacji błyskawicznych na Androida kierowanych na Androida 8.0 (poziom API 26) lub nowszego ten atrybut ma wartość
2
. W zainstalowanej wersji aplikacji możesz ustawić poziom piaskownicy na mniej restrykcyjny poziom1
. Jeśli jednak to zrobisz, dane aplikacji nie zostaną zachowane z wersji błyskawicznej do zainstalowanej. Aby dane z wersji błyskawicznej zostały zachowane w wersji zainstalowanej, musisz ustawić wartość piaskownicy zainstalowanej aplikacji na2
.Po zainstalowaniu aplikacji możesz zaktualizować tylko wartość docelowego piaskownicy na wyższą. Aby obniżyć wartość docelową piaskownicy, odinstaluj aplikację i zastąp ją wersją, której plik manifestu zawiera niższą wartość tego atrybutu.
- Domyślna wartość parametru
android:sharedUserLabel
-
Ta stała została wycofana w poziomie interfejsu API 29.
Udostępnione identyfikatory użytkowników powodują niedeterministyczne działanie menedżera pakietów. Dlatego zdecydowanie odradzamy ich używanie. Mogą one zostać usunięte w przyszłej wersji Androida. Zamiast tego używaj odpowiednich mechanizmów komunikacji, takich jak usługi i dostawcy treści, aby ułatwić interoperacyjność między współdzielonymi komponentami. Istniejące aplikacje nie mogą usuwać tej wartości, ponieważ migracja z użycia wspólnego identyfikatora użytkownika nie jest obsługiwana.Etykieta z informacją o wspólnym identyfikatorze użytkownika, którą może odczytać użytkownik. Etykieta jest ustawiona jako odwołanie do zasobu ciągu znaków. Nie może to być zwykły ciąg znaków.
Ten atrybut został wprowadzony w wersji interfejsu API 3. Jest ona istotna tylko wtedy, gdy ustawiony jest też atrybut
sharedUserId
. android:sharedUserMaxSdkVersion
-
Udostępnione identyfikatory użytkowników powodują niedeterministyczne działanie menedżera pakietów. Dlatego zdecydowanie odradzamy ich używanie. Mogą one zostać usunięte w przyszłej wersji Androida. Zamiast tego używaj odpowiednich mechanizmów komunikacji, takich jak usługi i dostawcy treści, aby ułatwić interoperacyjność między współdzielonymi komponentami.
Maksymalna wersja pakietu SDK, w której system nadal używa
android:sharedUserId
. Jeśli aplikacja została niedawno zainstalowana na urządzeniu z wersją pakietu SDK wyższą niż określona wartość, będzie działać tak, jakby parametrandroid:sharedUserId
nie został zdefiniowany.Ten atrybut został wprowadzony na poziomie API 33. Jest ona istotna tylko wtedy, gdy ustawiony jest też atrybut
sharedUserId
. android:versionCode
- Wewnętrzny numer wersji. Ta liczba służy tylko do określania, czy dana wersja jest nowsza od innej. Wyższe liczby oznaczają nowsze wersje. Nie jest to numer wersji widoczny dla użytkowników, który jest ustawiany przez atrybut
versionName
.Wartość jest ustawiana jako dodatnia liczba całkowita większa od 0. Możesz je zdefiniować dowolnie, o ile każda kolejna wersja ma większą liczbę. Może to być na przykład numer kompilacji. Możesz też przekształcić numer wersji w formacie „x.y” w liczbę całkowitą, kodując oddzielnie wartości „x” i „y” w 16 najmniejszych i największych bitach. Możesz też zwiększyć ten numer o 1 za każdym razem, gdy pojawi się nowa wersja.
android:versionName
- Numer wersji wyświetlany użytkownikom. Ten atrybut jest ustawiany jako ciąg znaków lub jako odwołanie do zasobu ciągu znaków. Ten ciąg znaków nie służy do niczego innego, jak tylko do wyświetlania użytkownikom. Atrybut
versionCode
zawiera istotny numer wersji używany wewnętrznie. android:installLocation
- Domyślna lokalizacja instalacji aplikacji.
Akceptowane są następujące ciągi znaków:
Wartość Opis "internalOnly"
Aplikacja jest instalowana tylko w pamięci wewnętrznej urządzenia. Jeśli to ustawienie jest włączone, aplikacja nigdy nie instaluje się na pamięci zewnętrznej, takiej jak karta SD. Jeśli pamięć wewnętrzna jest pełna, system nie zainstaluje aplikacji. Jest to domyślne zachowanie, jeśli nie zdefiniujesz parametru android:installLocation
."auto"
Aplikację można zainstalować na pamięci zewnętrznej, ale system domyślnie instaluje ją w pamięci wewnętrznej. Jeśli pamięć wewnętrzna jest pełna, system zainstaluje aplikację na pamięci zewnętrznej. Po zainstalowaniu użytkownik może przenieść aplikację do pamięci wewnętrznej lub zewnętrznej w ustawieniach systemu. "preferExternal"
Aplikacja preferuje instalację w pamięci zewnętrznej. Nie ma gwarancji, że system uwzględni tę prośbę. Aplikacja może zostać zainstalowana na wewnętrznym dysku, jeśli nośnik zewnętrzny jest niedostępny lub pełny. Po zainstalowaniu użytkownik może przenieść aplikację do pamięci wewnętrznej lub zewnętrznej w ustawieniach systemu. Uwaga: domyślnie aplikacja jest instalowana w pamięci wewnętrznej i nie może być instalowana w pamięci zewnętrznej, chyba że zdefiniujesz ten atrybut jako
"auto"
lub"preferExternal"
.Gdy aplikacja jest instalowana w pamięci zewnętrznej:
- Plik APK jest zapisywany w pamięci zewnętrznej, ale wszelkie dane aplikacji, takie jak bazy danych, są nadal zapisywane w pamięci wewnętrznej urządzenia.
- Kontenery, w których zapisywane są pliki APK, są szyfrowane za pomocą klucza, który umożliwia działanie aplikacji tylko na urządzeniu, na którym została ona zainstalowana. Użytkownik nie może przenieść karty SD na inne urządzenie i używać zainstalowanych na niej aplikacji. Na jednym urządzeniu można używać wielu kart SD.
- Na prośbę użytkownika aplikacja może zostać przeniesiona do pamięci wewnętrznej.
Użytkownik może też poprosić o przeniesienie aplikacji z pamięci wewnętrznej do pamięci zewnętrznej. System nie pozwala jednak użytkownikowi przenieść aplikacji do pamięci zewnętrznej, jeśli ten atrybut ma wartość
"internalOnly"
, która jest ustawieniem domyślnym.Więcej informacji o korzystaniu z tego atrybutu, w tym o zapewnianiu zgodności wstecznej, znajdziesz w artykule Lokalizacja instalacji aplikacji.
Wprowadzono w poziomie interfejsu API 8.
- wprowadzona w:
- Wszystkie atrybuty na poziomie 1 interfejsu API, chyba że w opisie atrybutu podano inaczej.
- Zobacz też:
-
<application>
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-05-12 UTC.
[null,null,["Ostatnia aktualizacja: 2025-05-12 UTC."],[],[]]