<uses-sdk>

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 API minSdkVersion.

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ąc targetSdkVersion 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

android:maxSdkVersion
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 aplikacja maxSdkVersion. 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 atrybut maxSdkVersion 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.

Wersja platformyPoziom interfejsu APIKOD WERSJIUwagi
Android 15 35 VANILLA_ICE_CREAM Informacje o platformie
Android 14 34 UPSIDE_DOWN_CAKE Informacje o platformie
Android 13 33 TIRAMISU Informacje o platformie
Android 12 32 S_V2 Informacje o platformie
31 S Informacje o platformie
Android 11 30 R Informacje o platformie
Android 10 29 Q Informacje o platformie
Android 9 28 P Informacje o platformie
Android 8.1 27 O_MR1 Informacje o platformie
Android 8.0 26 O Informacje o platformie
Android 7.1.1
Android 7.1
25 N_MR1 Informacje o platformie
Android 7.0 24 N Informacje o platformie
Android 6.0 23 M Informacje o platformie
Android 5.1 22 LOLLIPOP_MR1 Platforma Najciekawsze momenty
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat tylko na urządzenia do noszenia
Android 4.4 19 KITKAT Platforma Najciekawsze momenty
Android 4.3 18 JELLY_BEAN_MR2 Platforma Najciekawsze momenty
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Platforma Najciekawsze momenty
Android 4.1, 4.1.1 16 JELLY_BEAN Platforma Najciekawsze momenty
Android 4.0.3 i 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Platforma Najciekawsze momenty
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Informacje o platformie
Android 3.0.x 11 HONEYCOMB Informacje o platformie
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 Platforma Najciekawsze momenty
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO Informacje o platformie
Android 2.1.x 7 ECLAIR_MR1 Platforma Najciekawsze momenty
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Informacje o platformie
Android 1.5 3 CUPCAKE Informacje o platformie
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

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.