Google Play verwendet die <uses-sdk>
Attribute, die in deinem App-Manifest deklariert sind, um deine App nach Geräten zu filtern
die nicht den Anforderungen
der Plattformversion entsprechen. Bevor Sie diese festlegen
Attribute, sollten Sie sicherstellen,
Google Play-Filter:
- Syntax:
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
- enthalten in:
<manifest>
- description:
Hiermit können Sie die Kompatibilität einer App mit einer oder mehreren Versionen der Android-Plattform zum Ausdruck bringen durch eine Ganzzahl auf API-Ebene. Das von einer Anwendung ausgedrückte API-Level wird mit dem Das API-Level eines bestimmten Android-Systems, das sich bei verschiedenen Android-Geräten unterscheiden kann.
Trotz seines Namens wird dieses Element verwendet, um die API-Ebene anzugeben, nicht Die Versionsnummer des Software Development Kits (SDK) oder der Android-Plattform Die API-Ebene ist immer eine einzelne Ganzzahl. Sie können die API-Ebene nicht aus zugehöriger Android-Versionsnummer. Es ist z. B. nicht dasselbe wie der Hauptversion oder die Summe der Haupt- und Nebenversionen.
Lesen Sie auch das Dokument über Versionsverwaltung Ihrer Anwendungen.
- Attribute:
-
android:minSdkVersion
- Eine Ganzzahl für das erforderliche Mindest-API-Level
damit die Anwendung ausgeführt wird. Das Android-System verhindert die Installation durch den Nutzer.
der Anwendung, wenn die API-Ebene des Systems niedriger ist als der Wert in
dieses Attribut. Deklarieren Sie dieses Attribut immer.
Achtung:Wenn Sie dies nicht erklären, verwendet das System einen Standardwert von "1". Dies bedeutet, dass Ihre -App ist mit allen Android-Versionen kompatibel. Wenn es nicht und du hast nicht die richtige
minSdkVersion
deklariert, Wenn die App auf einem System mit inkompatiblem API-Level installiert ist, stürzt bei dem Versuch, auf nicht verfügbare APIs zuzugreifen, während der Laufzeit ab. Für Aus diesem Grund muss das entsprechende API-Level in der Attribut „minSdkVersion
“. android:targetSdkVersion
- Eine Ganzzahl, die die API-Ebene angibt, auf die die Anwendung abzielt. Wenn nichts anderes festgelegt ist,
Wert entspricht dem Wert für
minSdkVersion
.Dieses Attribut informiert das System darüber, dass Sie den Test mit der Zielversion durchgeführt haben, und System keine Kompatibilitätsverhalten zur Aufrechterhaltung der Aufwärtskompatibilität Ihrer App aktiviert durch die Zielversion. Die Anwendung kann noch auf niedrigeren Versionen (bis zu
minSdkVersion
) ausgeführt werden.Da sich Android mit jeder Version weiterentwickelt, ändern sich eventuell auch die Funktionsweise und das Aussehen. Wenn das API-Level der Plattform jedoch höher ist als die Version, die im
targetSdkVersion
deiner App deklariert ist, kann das System Kompatibilitätsverhalten aktivieren, damit deine App wie erwartet funktioniert. Sie können diese Kompatibilität deaktivieren, durch Angabe vontargetSdkVersion
entsprechend der API Ebene der Plattform, auf der sie ausgeführt wird.Wenn Sie diesen Wert beispielsweise auf „11“ festlegen, oder höher kann das System das Holo-Standarddesign auf deine App anwenden, wenn sie unter Android 3.0 oder und deaktiviert auch Bildschirm Kompatibilitätsmodus zu verwenden, wenn sie auf größeren Bildschirmen ausgeführt werden, da API-Level 11 implizit unterstützt wird. größere Bildschirme unterstützt.
Es gibt viele Kompatibilitätsverhalten, die das System basierend auf dem von Ihnen festgelegten Wert aktivieren kann für dieses Attribut. Einige dieser Verhaltensweisen werden von den entsprechenden Plattformversionen beschrieben. in der Referenz
Build.VERSION_CODES
.Erhöhen Sie zur Wartung Ihrer Anwendung zusammen mit jedem Android-Release den Wert dieses Attributs dem neuesten API-Level entsprechen. Testen Sie Ihre Anwendung dann gründlich auf die entsprechende Plattformversion.
Eingeführt in: API-Level 4
- Eine Ganzzahl, die das maximale API-Level angibt, auf dem die Anwendung ausgeführt wird
die für den Betrieb konzipiert sind.
In Android 1.5, 1.6, 2.0 und 2.0.1 prüft das System den Wert wenn Sie eine Anwendung installieren oder neu validieren. nach einem Systemupdate. In beiden Fällen muss die Das Attribut
maxSdkVersion
liegt niedriger als das von Das System lässt die Installation der App nicht zu. Im Falle einer erneuten Validierung nach einem Systemupdate wird Ihre Anwendung vom Gerät entfernt.Um zu veranschaulichen, wie sich dieses Attribut auf Ihre Anwendung nach dem System sehen wir uns das folgende Beispiel an:
Eine Anwendung deklariert
maxSdkVersion="5"
in ihrer Manifest bei Google Play veröffentlicht. Nutzer, auf deren Gerät Android ausgeführt wird 1.6 (API-Level 4) lädt die App herunter und installiert sie. Nach einigen Wochen konnte der Nutzer erhält ein Over-the-Air-Systemupdate auf Android 2.0 (API-Level 5). Nach dem installiert ist, prüft das System diemaxSdkVersion
und validiert sie erneut.Die wie gewohnt funktioniert. Etwas später empfängt das Gerät jedoch ein weiteres Systemupdate durchführen, diesmal auf Android 2.0.1 (API-Level 6). Nach dem aktualisiert wird, kann das System die Anwendung nicht erneut validieren, da die Das eigene API-Level (6) ist jetzt höher als das von der Anwendung unterstützte Maximum (5). Das System verhindert, dass die Anwendung für den Nutzer sichtbar ist, in vom Gerät entfernt werden.
Warnung:Wir raten davon ab, dies zu erklären. . Erstens ist es nicht erforderlich, das Attribut zum Blockieren die Bereitstellung Ihrer App auf neuen Versionen der Android-Plattform, veröffentlicht werden. Neue Versionen der Plattform sind standardmäßig abwärtskompatibel sein. Ihre Anwendung funktioniert in neuen Versionen ordnungsgemäß, Voraussetzung ist, dass nur Standard-APIs verwendet werden und die Best Practices für die Entwicklung eingehalten werden. Zweitens kann die Deklaration des Attributs in einigen Fällen dazu führen, dass Ihre Anwendung aus den nachdem ein System auf eine höhere API-Ebene aktualisieren. Die meisten Geräte, auf denen Ihre App regelmäßig Systemupdates Over The Air erhalten, Bevor Sie diese Einstellung festlegen, sollten Sie deren Auswirkungen auf Ihre App prüfen. .
Eingeführt in: API-Level 4
Einige Versionen von Android (ab Android 2.0.1) das AttributmaxSdkVersion
während der oder eine erneute Validierung. Google Play verwendet das Attribut weiterhin als Filter verwenden. Wenn Sie Nutzern jedoch Anwendungen für herunterladen.
- eingeführt in:
- API-Level 1
Was ist das API-Level?
Das API-Level ist ein ganzzahliger Wert, der die Framework-API eindeutig identifiziert eine Version der Android-Plattform angeboten wird.
Die Android-Plattform bietet eine Framework-API, mit der Anwendungen mit dem zugrunde liegenden Android-System interagieren. Die Framework API besteht aus:
- Ein Kernsatz von Paketen und Klassen
- Eine Reihe von XML-Elementen und -Attributen zum Deklarieren einer Manifestdatei
- Eine Reihe von XML-Elementen und -Attributen zum Deklarieren und Zugreifen auf Ressourcen
- Eine Reihe von Intents
- Eine Reihe von Berechtigungen, die Anwendungen anfordern können, sowie Berechtigungen im System enthaltene Verstöße
Jede nachfolgende Version der Android-Plattform kann Updates für die Android Application Framework API.
Aktualisierungen der Framework API sind so konzipiert, dass die neue API erhalten bleibt. ist mit früheren Versionen der API kompatibel. Das heißt, die meisten Änderungen im API sind additiv und bieten neue Funktionen oder Ersatzfunktionen. Im Rahmen der API aktualisiert wurden, werden die älteren ersetzten Teile verworfen, aber nicht entfernt. damit vorhandene Anwendungen sie weiterhin verwenden können.
In einer sehr geringen Anzahl von Fällen Teile des APIs geändert oder entfernt werden, obwohl solche Änderungen in der Regel die nur für die API-Robustheit und die Anwendungs- oder Systemsicherheit erforderlich sind. Alle API-Teile aus früheren Überarbeitungen übernommen werden, Änderung.
Die Framework-API, die eine Android-Plattform bereitstellt, wird mithilfe eines ganzzahlige Kennung namens API-Ebene. Jede Version der Android-Plattform unterstützt genau einer API-Ebene, auch wenn alle früheren API-Ebenen bereits unterstützt werden (bis API-Level 1). Die erste Version der Android-Plattform Das API-Level 1 und nachfolgende Releases haben das API-Level erhöht.
Die folgende Tabelle gibt das API-Level an, das von den einzelnen Versionen des Android-Plattform. Informationen über die relative Anzahl von Geräten, die die einzelnen Versionen ausführen, finden Sie im Vertriebs-Dashboard.
Verwendung des API-Levels unter Android
Die API-Level-ID spielt eine wichtige Rolle dabei, User Experience für Nutzer und Anwendungsentwickler:
- Damit kann die Android-Plattform die maximale Framework-API-Version beschreiben. die es unterstützt.
- Damit können Anwendungen die Framework-API-Version beschreiben, die sie erfordern.
- So kann das System die Installation von Anwendungen auf dem Geräte, sodass keine versionskompatiblen Anwendungen installiert werden.
Jede Version der Android-Plattform speichert ihre API-Level-ID intern in das Android-System selbst.
Anwendungen können ein vom Framework bereitgestelltes Manifestelement verwenden
API (<uses-sdk>
), um die minimale und maximale API zu beschreiben
unter denen sie ausgeführt werden können, sowie die bevorzugte API-Ebene, die
die sie unterstützen sollen. Das Element bietet drei wichtige Attribute:
android:minSdkVersion
: das minimale API-Level auf denen die App ausgeführt werden kann. Der Standardwert ist „1“.android:targetSdkVersion
: die API-Ebene auf dem die App ausgeführt werden soll. In einigen Fällen kann das die im Ziel definierte Manifestelemente oder Verhaltensweisen verwendet API-Ebene zu verwenden, anstatt nur die definierten für das Mindest-API-Level.android:maxSdkVersion
: das maximale API-Level auf denen die App ausgeführt werden kann. Wichtig:Lies die Informationen zu diesem Attribut auf dieser Seite, bevor Sie es verwenden.
Um beispielsweise das minimale API-Level des Systems anzugeben, das eine Anwendung
zum Ausführen benötigt wird, enthält im Manifest der Anwendung ein
<uses-sdk>
-Element mit android:minSdkVersion
. Der Wert von android:minSdkVersion
ist die Ganzzahl
entspricht dem API-Level der frühesten Version der Android-Plattform
unter denen die Anwendung ausgeführt werden kann.
Wenn der Nutzer versucht, eine Anwendung zu installieren, oder wenn er eine
App nach einem Systemupdate überprüft, prüft das Android-System zuerst die
<uses-sdk>
-Attribute im Manifest der Anwendung und
vergleicht die Werte mit der eigenen internen API-Ebene. Das System lässt die
erst dann beginnen, wenn die folgenden Bedingungen erfüllt sind:
- Wenn ein
android:minSdkVersion
-Attribut angegeben ist, wird sein Wert ist kleiner oder gleich der Ganzzahl des API-Levels des Systems. Wenn keine Angabe erfolgt, geht das System davon aus, dass für die Anwendung API-Level 1 erforderlich ist. - Wenn ein
android:maxSdkVersion
-Attribut angegeben ist, wird sein Wert ist gleich oder größer als die Ganzzahl des API-Levels des Systems. Wenn keine Angabe erfolgt, geht das System davon aus, hat kein maximales API-Level. Lesen Sie die description dieses Attributs. wie das System damit umgeht.
Bei der Deklaration im Manifest einer App wird ein <uses-sdk>
kann wie folgt aussehen:
<manifest> <uses-sdk android:minSdkVersion="5" /> ... </manifest>
Der Hauptgrund dafür, dass eine Anwendung eine API-Ebene in
android:minSdkVersion
ist, dem Android-System mitzuteilen,
verwendet APIs, die auf der angegebenen API-Ebene eingeführt wurden.
Wenn die die Anwendung auf einer Plattform mit einem niedrigeren API-Level installiert, dann stürzt er zur Laufzeit ab, wenn er versucht, auf nicht vorhandene APIs zuzugreifen. Das System verhindert dies, da die Anwendung installieren, wenn die niedrigste erforderliche API-Ebene höher ist als die der Plattformversion auf dem Zielgerät.
Überlegungen zur Entwicklung
In den folgenden Abschnitten finden Sie Informationen zum API-Level, das Sie zum bei der Entwicklung Ihrer Anwendung berücksichtigen sollten.
Kompatibilität der Weiterleitung von Anwendungen
Android-Anwendungen sind im Allgemeinen mit den neuen Versionen der der Android-Plattform.
Da fast alle Änderungen an der Framework API additiv sind, Anwendung, die unter Verwendung einer bestimmten API-Version gemäß den API-Level, aufwärtskompatibel mit neueren Versionen der Android-Plattform und höhere API-Levels. Die Anwendung kann unter allen neueren Versionen ausgeführt werden. der Android-Plattform, mit Ausnahme der Fälle, in denen die App eine Teil der API, der später aus irgendeinem Grund entfernt wird.
Die Aufwärtskompatibilität ist wichtig, da viele Android-Geräte OTA-Systemupdates (Over The Air) erhalten. Der Nutzer installiert möglicherweise Ihre und es erfolgreich verwenden, erhalten Sie später ein OTA-Update auf eine neue Version der Android-Plattform. Sobald das Update installiert ist, wird in einer neuen Laufzeitversion der Umgebung ausgeführt, die jedoch noch über die API verfügt. und Systemfunktionen, auf die Ihre Anwendung angewiesen ist.
Änderungen unter der API, z. B. an der zugrunde liegenden System selbst, kann sich auf Ihre Anwendung auswirken, wenn sie im neuen zu verbessern. Es ist wichtig für Sie, Entwickler, um zu verstehen, wie die Anwendung in den einzelnen Systemen aussieht und sich verhält. zu verbessern.
Damit Sie Ihre App auf verschiedenen Android-Versionen testen können, bietet das Android-SDK mehrere Plattformen, die Sie herunterladen können. Jede Plattform enthält ein kompatibles System-Image, das Sie in einem AVD ausführen können, testen Sie Ihre Anwendung.
Abwärtskompatibilität von Anwendungen
Android-Apps sind nicht unbedingt abwärtskompatibel mit den Android-Plattform älter als die Version, mit der sie kompiliert wurden.
Jede neue Version der Android-Plattform kann neue Framework-APIs enthalten, z. B. da solche Anwendungen Zugriff auf neue Plattformfunktionen geben API-Bestandteile. Die neuen APIs sind für Anwendungen zugänglich, wenn sie auf der neuen Plattform und auch bei der Ausführung auf neueren Versionen der Plattform, wie durch die API-Ebene angegeben. Da aber frühere Versionen und die Plattform die neuen APIs nicht enthält, können Anwendungen, die die neuen APIs verwenden, die auf diesen Plattformen ausgeführt werden.
Obwohl für Android-Geräte kein Downgrade auf einer früheren Version der Plattform, ist es wichtig zu verstehen, dass es viele Geräte gibt, auf denen frühere Versionen Plattform. Selbst bei Geräten, die OTA-Updates erhalten, erhält möglicherweise längere Zeit kein Update.
Plattformversion und API-Level auswählen
Bei der Entwicklung Ihrer Anwendung wählen Sie die Plattformversion, für die Sie die Anwendung kompilieren. In kompilieren Sie Ihre Anwendung mit der geringstmöglichen Version der Plattform, die Ihre App unterstützt.
Sie können die niedrigste mögliche Plattformversion ermitteln, indem Sie die
und aufeinanderfolgend niedrigere Build-Ziele verwenden. Nachdem Sie die
niedrigste Version, erstellen Sie ein AVD mit der entsprechenden Plattform
Version und API-Level und testen Sie Ihre Anwendung vollständig. Deklarieren Sie eine
android:minSdkVersion
im Manifest der App und
seinen Wert auf die API-Ebene der Plattformversion setzen.
Mindest-API-Level angeben
Wenn Sie eine Anwendung erstellen, die APIs oder Systemfunktionen verwendet, die im
die neueste Plattformversion, legen Sie
Attribut android:minSdkVersion
auf die API-Ebene der neuesten
Plattformversion. So können Nutzer Ihre
wenn auf ihren Geräten eine kompatible Android-Version
Plattform. Dadurch wird sichergestellt, dass Ihre Anwendung auf
ihre Geräte.
Wenn in Ihrer Anwendung APIs verwendet werden, die in der neuesten Plattformversion eingeführt wurden,
kein Attribut android:minSdkVersion
deklariert, gilt:
auf Geräten mit der neuesten Version der Plattform
richtig ausgeführt wird, aber
nicht auf Geräten mit älteren Versionen der Plattform. In letzterem
stürzt die Anwendung zur Laufzeit ab, wenn sie versucht, APIs zu verwenden,
die in den früheren Versionen
vorhanden sind.
Mit höheren API-Levels testen
Nachdem Sie Ihre Anwendung kompiliert haben, testen Sie sie auf dem
Plattform, die in der android:minSdkVersion
der Anwendung angegeben ist
. Erstellen Sie dazu ein AVD, das die vom
Ihre Anwendung. Führen Sie außerdem den folgenden Befehl aus, um die Aufwärtskompatibilität zu prüfen:
und die Anwendung auf allen Plattformen testen,
die ein höheres API-Level verwenden.
die von Ihrer Anwendung verwendet werden.
Das Android SDK umfasst mehrere Plattformversionen, einschließlich der neuesten Version, und bietet ein Updater-Tool, mit dem Sie andere Plattformversionen bei Bedarf herunterladen.
Verwenden Sie das android
-Befehlszeilentool, um auf den Updater zuzugreifen.
im Verzeichnis <sdk>/tools. Sie können den SDK-Updater starten, indem Sie
Ausführung von android sdk
. Sie können
Doppelklicken Sie auf die Datei android.bat
(Windows) bzw. android
(OS X/Linux).
Um Ihre Anwendung für verschiedene Plattformversionen im Emulator auszuführen, erstellen Sie eine AVD für jede Plattformversion, die Sie testen möchten. Weitere Informationen Informationen zu AVDs finden Sie im Hilfeartikel Virtuelle Geräte erstellen und verwalten. Wenn Sie ein physisches Gerät zum Testen verwenden, stellen Sie sicher, dass Sie das API-Level kennen. der Android-Plattform. In der Tabelle in diesem Dokument finden Sie eine Liste der Plattformversionen und ihrer API-Level.
Referenzdokumentation nach API-Ebene filtern
Die Referenzdokumentationsseiten für die Android-Plattform bieten eine
„API-Level“ oben links auf jeder Seite klicken. Sie können die
wird die Dokumentation nur für Teile der API angezeigt, die
basierend auf der API-Ebene, die in den
das Attribut android:minSdkVersion
seiner Manifestdatei
Wählen Sie die API aus, um Filter zu verwenden der von Ihrer Anwendung angegebenen Ebene aus. Später eingeführte APIs Die API-Ebene werden dann ausgegraut und ihr Inhalt wird verborgen, da sie für Ihre Anwendung zugänglich sind.
Das Filtern nach API-Ebene in der Dokumentation bietet keine Ansicht zu den Neuerungen und Einführungen in den einzelnen API-Levels. Sie können damit um die gesamte API aufzurufen, die mit einer bestimmten API-Ebene verknüpft ist, während die API ausgeschlossen wird. -Elemente, die auf späteren API-Ebenen eingeführt werden.
Um zur vollständigen Dokumentation zurückzukehren, Wählen Sie oben im Menü der API-Ebene REL aus. Standardmäßig erfolgt die Filterung auf API-Ebene deaktiviert, sodass Sie unabhängig vom API-Level die vollständige Framework-API sehen können.
Die Referenzdokumentation für einzelne API-Elemente gibt die API-Ebene an, auf der jedes Element eingeführt wird. API-Ebene für Pakete und Klassen wird als „In API-Ebene hinzugefügt“ angegeben. im oben rechts im Inhaltsbereich auf jeder Dokumentationsseite. API-Ebene ist in der detaillierten Beschreibung angegeben. am rechten Rand.