Google Play używa: <uses-sdk>
atrybuty zadeklarowane w manifeście aplikacji w celu filtrowania aplikacji z urządzeń
które nie spełniają wymagań wersji platformy. Przed ustawieniem
upewnij się, że rozumiesz,
Filtry Google Play.
- składnia:
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
- zawarte w:
<manifest>
- description:
Pozwala określić zgodność aplikacji z jedną lub wieloma wersjami platformy Android. za pomocą liczby całkowitej poziomu interfejsu API. Poziom interfejsu API wyrażony przez aplikację jest porównywany z poziomem Poziom interfejsu API danego systemu Android, który może się różnić w zależności od urządzenia z Androidem.
Pomimo swojej nazwy ten element służy do określania poziomu interfejsu API, a nie numer wersji pakietu SDK lub platformy Androida. Poziom interfejsu API jest zawsze jedną liczbą całkowitą. Nie można uzyskać poziomu interfejsu API z: powiązany numer wersji Androida. Na przykład to nie jest to samo wersji głównej lub sumy wersji głównych i podrzędnych.
Przeczytaj też dokument na temat: obsługi wersji aplikacji.
- atrybuty:
-
android:minSdkVersion
- Liczba całkowita określająca minimalny wymagany poziom interfejsu API
aby aplikacja mogła działać. System Android uniemożliwia użytkownikowi instalację
aplikacji, jeśli poziom interfejsu API systemu jest niższy od wartości określonej w
ten atrybut. Zawsze deklaruj ten atrybut.
Uwaga: jeśli tego nie zadeklarujesz system przyjmuje wartość domyślną „1”, co oznacza, że atrybut jest zgodna ze wszystkimi wersjami Androida. Jeśli jest nie, a
minSdkVersion
nie jest zadeklarowany, W przypadku instalacji w systemie o niezgodnym poziomie interfejsu API aplikacja ulega awarii w czasie działania przy próbie dostępu do niedostępnych interfejsów API. Dla: z tego powodu pamiętaj, aby zadeklarować odpowiedni poziom interfejsu APIminSdkVersion
. android:targetSdkVersion
- Liczba całkowita określająca poziom interfejsu API, na który kierowana jest aplikacja. Jeśli nie zostanie skonfigurowana, zostanie użyta domyślna
wartość jest równa wartości
minSdkVersion
.Ten atrybut informuje system, który był testowany w odniesieniu do wersji docelowej oraz system nie umożliwia żadnych działań związanych ze zgodnością, aby zachować zgodność aplikacji w przyszłości z wersją docelową. Aplikacja może nadal działać w starszych wersjach (do
minSdkVersion
).Wraz z każdą nową wersją Androida niektóre zachowania, a nawet wygląd mogą ulec zmianie. Jeśli jednak poziom interfejsu API platformy jest wyższy niż wersja zadeklarowana przez
targetSdkVersion
aplikacji, system może włączyć zachowania zgodności, aby aplikacja nadal będzie działać zgodnie z oczekiwaniami. Możesz wyłączyć tę zgodność zachowania, określająctargetSdkVersion
tak, aby pasował do interfejsu API na poziomie platformy, na której działa.Przykład: ustawienie tej wartości na „11” lub więcej pozwala systemowi zastosować domyślny motyw Holo do aplikacji na urządzeniach z Androidem 3.0 lub i wyłącza ekran trybu zgodności w przypadku większych ekranów, ponieważ domyślnie obsługujemy interfejs API poziomu 11. obsługują większe ekrany.
System może włączyć wiele działań dotyczących zgodności na podstawie ustawionej wartości. dla tego atrybutu. Kilka z tych zachowań zostało opisanych przez odpowiednie wersje platformy w pliku referencyjnym
Build.VERSION_CODES
.Aby utrzymywać aplikację wraz z każdą wersją Androida, zwiększ wartość tego atrybutu tak, aby pasowała do najnowszego poziomu interfejsu API, a następnie dokładnie przetestuj aplikację z odpowiednią wersją platformy.
Wprowadzono w: API poziomu 4
- Liczba całkowita określająca maksymalny poziom interfejsu API, na którym aplikacja jest
stworzonych z myślą o działaniu.
W Androidzie 1.5, 1.6, 2.0 i 2.0.1 system sprawdza wartość tego parametru podczas instalowania aplikacji oraz ponownej weryfikacji aplikacji po aktualizacji systemu. W obu przypadkach, jeśli aplikacja Atrybut
maxSdkVersion
jest niższy niż poziom interfejsu API używany przez system nie zezwala na zainstalowanie aplikacji. W przypadku ponownej weryfikacji po aktualizacji systemu oznacza to, spowoduje usunięcie aplikacji z urządzenia.Aby pokazać, jak ten atrybut może wpłynąć na aplikację po systemie , rozważ następujący przykład:
Aplikacja z deklaracją
maxSdkVersion="5"
w Plik manifestu został opublikowany w Google Play. Użytkownik, którego urządzenie z Androidem 1.6 (Poziom interfejsu API 4) pobiera i instaluje aplikację Po kilku tygodniach otrzyma bezprzewodową aktualizację systemu do Androida 2.0 (poziom API 5). Po po zainstalowaniu aktualizacji system sprawdzi, czy aplikacjamaxSdkVersion
. Została ponownie zweryfikowana.aplikacja działa jak zwykle. Jednak jakiś czas później urządzenie otrzymuje kolejna aktualizacja systemu, tym razem do Androida 2.0.1 (poziom API 6). Po system nie może już ponownie zweryfikować aplikacji, ponieważ poziom własnego interfejsu API (6) jest teraz wyższy niż maksymalny obsługiwany przez aplikację (5) System zapobiega wyświetlaniu aplikacji użytkownikowi w: na jego usunięcie z urządzenia.
Ostrzeżenie: nie zalecamy deklaracji . Po pierwsze, nie trzeba ustawiać atrybutu jako środka do blokowania wdrażanie aplikacji w nowych wersjach platformy Androida, zostały opublikowane. Z założenia nowe wersje platformy są w pełni zgodność wsteczną. Aplikacja działa prawidłowo w nowych wersjach, pod warunkiem, że wykorzystuje on tylko standardowe interfejsy API i jest zgodny ze sprawdzonymi metodami dla programistów. Po drugie, w niektórych przypadkach zadeklarowanie atrybutu może spowodować usuwania aplikacji z kont użytkowników urządzeń po systemie przejść na wyższy poziom interfejsu API. Większość urządzeń, na których aplikacja może być instalowane okresowe aktualizacje systemu bezprzewodowo, rozważ ich wpływ na aplikację, zanim ją ustawisz. .
Wprowadzono w: API poziomu 4
Niektóre wersje Androida (oprócz Androida 2.0.1) nie sprawdź lub wymuszaj atrybutmaxSdkVersion
podczas instalacji lub ponownej weryfikacji. Google Play nadal będzie używać atrybutu jako filtr, ale podczas przedstawiania użytkownikom aplikacji dostępnych dla pobierz.
- wprowadzone w:
- Poziom API 1
Co to jest poziom API?
Poziom interfejsu API to wartość całkowita, która jednoznacznie identyfikuje interfejs API platformy wersja oferowana przez określoną wersję platformy Androida.
Platforma Androida udostępnia platformę API, za pomocą której aplikacje mogą i interakcji z danym systemem Android. Interfejs API platformy składa się z tych elementów:
- Podstawowy zestaw pakietów i klas
- Zestaw elementów XML i atrybutów do zadeklarowania pliku manifestu
- Zestaw elementów XML i atrybutów do deklarowania zasobów i uzyskiwania do nich dostępu
- zbiór intencji,
- Zestaw uprawnień, o które mogą prosić aplikacje, wraz z uprawnieniami egzekwowanie zasad w systemie
Każda kolejna wersja platformy Androida może zawierać aktualizacje Dostarczany interfejs API platformy aplikacji na Androida.
Aktualizacje interfejsu API platformy zostały zaprojektowane w taki sposób, aby korzystanie z nowego interfejsu API pozostawało bez zmian. zgodne z wcześniejszymi wersjami tego interfejsu. Większość zmian w interfejsie API się sumują i wprowadzają nowe lub zastępcze funkcje. Jako część interfejsu API uaktualnionych, starsze wymienione części są wycofane, ale nie zostały usunięte, że istniejące aplikacje wciąż mogą z nich korzystać.
W bardzo niewielu przypadkach części interfejsu API są modyfikowane lub usuwane, chociaż zwykle takie zmiany są potrzebne tylko do obsługi niezawodności interfejsów API oraz bezpieczeństwa aplikacji lub systemu. Wszystkie inne części interfejsu API z wcześniejszych wersji są przenoszone bez modyfikacji.
Interfejs API platformy Androida dostarczany przez platformę Android jest określany za pomocą identyfikator w postaci liczby całkowitej nazywany poziomem interfejsu API. Każda wersja platformy Androida obsługuje dokładnie jeden poziom interfejsu API, chociaż obsługa jest niejawna dla wszystkich poprzednich poziomów interfejsu API. (aż do poziomu API 1). Pierwsza wersja platformy Androida Poziom 1 interfejsu API i kolejne wersje zwiększają ten poziom.
W tabeli poniżej znajdziesz poziom interfejsu API obsługiwany przez każdą wersję Platforma Androida. Informacje o względnej liczbie urządzeń, które dla każdej wersji, patrz Panel dystrybucji.
Zastosowania poziomu interfejsu API na Androidzie
Identyfikator poziomu interfejsu API odgrywa kluczową rolę w zapewnianiu użytkownikom i deweloperom aplikacji:
- Umożliwia platformie Androida opisywanie maksymalnej wersji interfejsu API platformy które obsługuje.
- Pozwala aplikacjom opisywać wersję interfejsu Framework API, nie są wymagane.
- Pozwala systemowi negocjować instalację aplikacji na , by nie były instalowane aplikacje niezgodne z wersją.
Każda wersja platformy Androida przechowuje wewnętrznie identyfikator poziomu interfejsu API: system Android.
Aplikacje mogą używać elementu manifestu udostępnionego przez platformę
API – <uses-sdk>
– do opisania minimalnej i maksymalnej wartości interfejsu API
poziomy, na których mogą działać, oraz preferowany poziom interfejsu API,
z myślą o ich obsłudze. Ten element ma 3 kluczowe atrybuty:
android:minSdkVersion
: minimalny poziom interfejsu API. na których można uruchomić aplikację. Wartość domyślna to „1”.android:targetSdkVersion
: poziom interfejsu API. na których działa aplikacja. W niektórych przypadkach umożliwia to aplikacja używa elementów lub zachowań określonych w elemencie manifestu poziom interfejsu API, a nie tylko używanie określonych dla minimalnego poziomu interfejsu API.android:maxSdkVersion
: maksymalny poziom interfejsu API. na których można uruchomić aplikację. Ważne: przeczytaj informacje o tym atrybucie na tej stronie.
Aby na przykład określić minimalny systemowy poziom interfejsu API, jaki aplikacja
wymagane do uruchomienia, aplikacja zawiera w pliku manifestu
Element <uses-sdk>
z atrybutem android:minSdkVersion
. Wartość android:minSdkVersion
jest liczbą całkowitą
odpowiadający poziomowi interfejsu API najwcześniejszej wersji platformy Androida
który umożliwia uruchomienie aplikacji.
Gdy użytkownik próbuje zainstalować aplikację lub gdy ponownie weryfikuje się
po aktualizacji systemu Android najpierw sprawdza
atrybuty <uses-sdk>
w pliku manifestu aplikacji oraz
porównuje wartości z własnym wewnętrznym poziomem interfejsu API. System umożliwia
instalacja rozpocznie się tylko wtedy, gdy zostaną spełnione te warunki:
- Jeśli atrybut
android:minSdkVersion
jest zadeklarowany, jego wartość jest mniejsza od liczby całkowitej na poziomie interfejsu API systemu lub jej równa. Jeśli nie zostanie zadeklarowana, system zakłada, że aplikacja wymaga interfejsu API poziomu 1. - Jeśli atrybut
android:maxSdkVersion
jest zadeklarowany, jego wartość jest równa lub większa niż liczba całkowita na poziomie interfejsu API systemu. Jeśli nie zostanie zadeklarowana, system zakłada, że aplikacja nie ma maksymalnego poziomu interfejsu API. Przeczytaj opis tego atrybutu, aby dowiedzieć się więcej o: jak system je obsługuje.
Po zadeklarowaniu w pliku manifestu aplikacji parametr <uses-sdk>
element może wyglądać tak:
<manifest> <uses-sdk android:minSdkVersion="5" /> ... </manifest>
Główny powód, dla którego aplikacja deklaruje poziom interfejsu API
android:minSdkVersion
ma poinformować system Android, że
korzysta z interfejsów API, które zostały wprowadzone na określonym poziomie API.
Jeśli aplikacja instaluje się na platformie o niższym poziomie interfejsu API, a następnie ulega awarii w czasie działania, gdy próbuje uzyskać dostęp do nieistniejących interfejsów API. System zapobiega temu wynikowi, nie zezwalając aplikacji zainstaluj, jeśli wymagany najniższy poziom interfejsu API jest wyższy niż wersji platformy na urządzeniu docelowym.
Uwagi dotyczące programowania
W sekcjach poniżej znajdziesz informacje dotyczące poziomu interfejsu API, który jest potrzebny które warto rozważyć przy tworzeniu aplikacji.
Zgodność z przekazywaną aplikacją
Aplikacje na Androida są zazwyczaj zgodne z nowymi wersjami platformy Android.
Ponieważ niemal wszystkie zmiany w interfejsie API platformy łączą się ze sobą, aplikacji stworzonej przy użyciu dowolnej wersji interfejsu API określonej przez interfejsu API, jest zgodny z nowszymi wersjami platformy Android i wyższych poziomów API. Aplikacja może działać we wszystkich nowszych wersjach platformy Android. Wyjątkiem są rzadkie sytuacje, w których aplikacja używa tę część interfejsu API, która jest później usunięta z jakiegoś powodu.
Wstępna zgodność jest ważna, ponieważ wiele urządzeń z Androidem bezprzewodowe (OTA) aktualizacje systemu. Użytkownik może zainstalować i użyć jej, a następnie pobrać aktualizację OTA do nowego wersji platformy Androida. Po zainstalowaniu aktualizacji aplikacja działa w nowej wersji środowiska wykonawczego, ale w wersji wciąż korzystającej z interfejsu API i funkcjach systemu, od których zależy aplikacja.
Zmiany pod interfejsem API, takie jak zmiany w podstawowym może wpływać na aplikację, gdy zostanie uruchomiona w nowym dla środowiska. To ważne dla Ciebie, bo aplikacja jak aplikacja wygląda i działa w każdym systemie dla środowiska.
Pomoc w testowaniu aplikacji na różnych wersjach Androida pakiet SDK Androida zawiera wiele platform, które można pobrać. Każda platforma zawiera zgodny obraz systemu, który można uruchomić w AVD, przetestować aplikację.
Zgodność wsteczna aplikacji
Aplikacje na Androida nie muszą być zgodne wstecznie z wersjami platformy Androida starszej niż wersja, na którą zostały skompilowane.
Każda nowa wersja platformy Android może zawierać nowe interfejsy API platformy, takie jak które dają aplikacjom dostęp do nowych funkcji platformy lub zastępują istniejących części interfejsu API. Nowe interfejsy API są dostępne dla aplikacji, gdy działają na nowej platformie, a także w przypadku ich późniejszych wersji z platformy, zgodnie z poziomem interfejsu API. Ponieważ jednak wcześniejsze wersje jeśli platforma nie zawiera nowych interfejsów API, aplikacje korzystające z tych interfejsów nie mogą na tych platformach.
Mimo że urządzenie z Androidem nie zostanie prawdopodobnie zdegradowane do trzeba pamiętać, że prawdopodobnie będzie wiele urządzeń z wcześniejszymi wersjami platformy. Nawet wśród urządzeń z aktualizacjami OTA niektóre z nich mogą działać z opóźnieniem mogą nie otrzymać aktualizacji przez dłuższy czas.
Wybierz wersję platformy i poziom interfejsu API
Tworząc aplikację, wybierasz wersji platformy, na której skompilujesz aplikację. W należy skompilować aplikację pod kątem najniższych z wersji platformy obsługiwanej przez aplikację.
Aby określić najniższą możliwą wersję platformy, skompiluj kod
w porównaniu z mniejszymi celami kompilacji. Po określeniu
najniższej wersji, utwórz średni czas oglądania za pomocą odpowiedniej platformy
wersję i poziom interfejsu API, a także w pełni przetestuj aplikację. Pamiętaj, aby zadeklarować
android:minSdkVersion
w pliku manifestu aplikacji oraz
ustawić jego wartość na poziom interfejsu API wersji platformy.
Deklarowanie minimalnego poziomu interfejsu API
Jeśli utworzysz aplikację korzystającą z interfejsów API lub funkcji systemowych wprowadzonych w
najnowszą wersję platformy, ustaw parametr
android:minSdkVersion
do poziomu interfejsu API najnowszej wersji
wersji platformy. Dzięki temu użytkownicy będą mogli zainstalować
aplikacji na urządzeniach z zgodną wersją Androida.
platformy. Dzięki temu aplikacja będzie działać prawidłowo
na ich urządzeniach.
Jeśli Twoja aplikacja korzysta z interfejsów API wprowadzonych w najnowszej wersji platformy, ale
nie deklaruje atrybutu android:minSdkVersion
, więc
działa prawidłowo na urządzeniach z najnowszą wersją platformy, ale
nie na urządzeniach z wcześniejszymi wersjami platformy. W tym drugim przypadku
aplikacja ulega awarii w trakcie działania, gdy próbuje użyć interfejsów API, które nie
we wcześniejszych wersjach.
Testowanie z wykorzystaniem wyższych poziomów interfejsu API
Gdy skompilujesz aplikację, przetestuj ją na
platforma określona w android:minSdkVersion
aplikacji
. Aby to zrobić, utwórz AVD używający wersji platformy wymaganej przez
Twojej aplikacji. Dodatkowo, aby sprawdzić zgodność do przodu, uruchom polecenie
i przetestowanie aplikacji na wszystkich platformach korzystających z interfejsu API wyższego niż ten poziom
używane przez aplikację.
Pakiet Android SDK zawiera wiele wersji platformy, których możesz używać, łącznie z najnowszą wersją, a także zapewnia narzędzie aktualizatora, za pomocą którego można pobierać w razie potrzeby inne wersje platformy.
Aby uzyskać dostęp do aktualizatora, użyj narzędzia wiersza poleceń android
.
znajduje się w katalogu <sdk>/tools. Aktualizatora pakietu SDK możesz uruchomić przez
wykonujący zadanie android sdk
. Dostępne opcje
i kliknij dwukrotnie plik android.bat
(Windows) lub android
(OS X/Linux).
Aby uruchomić aplikację na różnych wersjach platformy w emulatorze, utwórz AVD dla każdej wersji platformy, którą chcesz przetestować. Więcej informacje o AVD znajdziesz w artykule Tworzenie urządzeń wirtualnych i zarządzanie nimi. Jeśli używasz urządzenia fizycznego do testowania, upewnij się, że znasz poziom interfejsu API, platformy Androida, na której działa ta platforma. W tabeli w tym dokumencie znajdują się informacje na temat: listę wersji platform i ich poziomów API.
Filtrowanie dokumentacji referencyjnej według poziomu interfejsu API
Strony z dokumentacją platformy Androida oferują
„Poziom interfejsu API” w lewym górnym rogu każdej strony. Za pomocą
pozwala wyświetlać dokumentację tylko tych części interfejsu API, które są rzeczywiście
dostępnych dla Twojej aplikacji na podstawie poziomu interfejsu API określonego w
atrybut android:minSdkVersion
pliku manifestu.
Aby użyć filtrowania, wybierz interfejs API z poziomu menu określonego przez aplikację. Interfejsy API wprowadzone w późniejszym czasie Poziom interfejsu API jest następnie wyszarzony, a jego zawartość jest maskowana, ponieważ dostępnych dla Twojej aplikacji.
Filtrowanie według poziomu interfejsu API w dokumentacji nie udostępnia widoku na temat nowych i wprowadzonych funkcji na poszczególnych poziomach interfejsu API. Zapewnia aby wyświetlić cały interfejs API powiązany z danym poziomem API, oprócz interfejsu API elementów wprowadzonych na późniejszych poziomach interfejsu API.
Aby wrócić do wyświetlania pełnej dokumentacji, kliknij REL u góry menu poziomu interfejsu API. Domyślnie filtrowanie na poziomie interfejsu API jest jest wyłączona, dzięki czemu można wyświetlić pełny interfejs API platformy niezależnie od jego poziomu.
Dokumentacja referencyjna dotycząca poszczególnych elementów interfejsu API określa poziom interfejsu API, na którym wprowadzany jest każdy element. Poziom interfejsu API dla pakietów i klas jest oznaczone jako „Dodane na poziomie interfejsu API” w w prawym górnym rogu obszaru treści na każdej stronie dokumentacji. Poziom interfejsu API dotyczące uczestników zajęć są określone w ich szczegółowych nagłówkach opisu, na prawym marginesie.