API-Ebene: 5
Android 2.0 ist eine wichtige Plattformversion, die ab November 2009 auf Android-Handys bereitgestellt werden kann. Die Version enthält neue Funktionen für Nutzer und Entwickler sowie Änderungen in der Android Framework API.
Für Entwickler ist die Android 2.0-Plattform als herunterladbare Komponente für das Android SDK verfügbar. Die herunterladbare Plattform enthält eine vollständig konforme Android-Bibliothek und ein System-Image sowie eine Reihe von Emulator-Skins, Beispielanwendungen und mehr. Die herunterladbare Plattform kompatibel und enthält keine externen Bibliotheken.
Wenn Sie mit der Entwicklung oder dem Testen für die Android 2.0-Plattform beginnen möchten, laden Sie die Plattform mit dem Android SDK und dem AVD Manager-Tool in Ihr SDK herunter.
Highlights der Plattform
Eine Liste der neuen Nutzerfunktionen und Plattformhighlights finden Sie in der Android- Dokument 2.0 Plattform-Highlights.
Integrierte Anwendungen
Das auf der herunterladbare Plattform enthaltene System-Image stellt Folgendes bereit: integrierte Anwendungen:
|
|
Locales
Das in der herunterladbaren Plattform enthaltene System-Image bietet eine Vielzahl von integrierten Sprachen. In einigen Fällen sind regionsspezifische Strings für den Sprachen. In anderen Fällen wird eine Standardversion der Sprache verwendet. Die im Android 2.0-System-Image verfügbaren Sprachen sind unten aufgeführt (mit dem Gebietsschema-Beschreibungselement language_country/region).
|
|
Die lokalisierten UI-Strings entsprechen den Gebietsschemata, auf die über die Einstellungen zugegriffen werden kann.
Emulator-Skins
Die herunterladbare Plattform enthält eine Reihe von Emulator-Skins, die Sie zur Modellierung Ihrer App für verschiedene Bildschirmgrößen und -auflösungen verwenden können. Die Emulator-Skins sind:
- QVGA (240 x 320, niedrige Dichte, kleiner Bildschirm)
- WQVGA (240 × 400, niedrige Pixeldichte, normales Display)
- FWQVGA (240 × 432, geringe Pixeldichte, normales Display)
- HVGA (320 × 480, mittlere Dichte, normaler Bildschirm)
- WVGA800 (480 x 800, hohe Dichte, normaler Bildschirm)
- WVGA854 (480 × 854 Pixel, hohe Pixeldichte, normaler Bildschirm)
Weitere Informationen zum Entwickeln einer Anwendung, die auf allen Android-Geräten richtig angezeigt und funktioniert, finden Sie unter Unterstützung mehrerer Bildschirme.
Entwicklerfunktionen
Die folgenden Abschnitte enthalten Informationen zu neuen Entwicklerfunktionen, die über die herunterladbare Android 2.0-Plattformkomponente verfügbar sind.
Ameisenstütze
- Anwendungssignatur im Debug- und Releasemodus Die Signatur im Release-Modus umfasst die integrierte Unterstützung für die
zipalign
-Optimierung. Weitere Informationen finden Sie unter Anwendungen signieren. - Neues Ant-Buildsystem mit Unterstützung für Emma-Instrumentierungsprojekte (Codeabdeckung)
Framework API
Die folgenden Abschnitte enthalten Informationen über die Application Framework API, die von der Android 2.0-Plattform bereitgestellt wird.
API-Ebene
Die Android 2.0-Plattform liefert eine aktualisierte Version des Frameworks. der API erstellen. Wie bei früheren Versionen wird der Android 2.0 API eine Ganzzahl-ID zugewiesen – 5 –, die im System selbst gespeichert wird. Anhand dieser Kennung, der sogenannten API-Ebene, kann das System vor der Installation einer Anwendung korrekt feststellen, ob sie mit dem System kompatibel ist.
Wenn Sie in Ihrer Anwendung APIs verwenden möchten, die in Android 2.0 eingeführt wurden, müssen Sie in den Attributen des <uses-sdk>
-Elements im Manifest Ihrer Anwendung den richtigen Wert „5“ festlegen.
Weitere Informationen zur Verwendung der API-Ebene finden Sie im Dokument API-Ebenen.
Zusammenfassung der API-Änderungen
Bluetooth
- Bluetooth aktivieren/deaktivieren
- Geräte- und Diensterkennung
- Über RFCOMM eine Verbindung zu einem Remotegerät herstellen und Daten senden/empfangen
- RFCOMM-Dienste ankündigen und auf eingehende RFCOMM-Verbindungen warten
Synchronisierungsadapter
- Neue APIs für Synchronisierungsadapter zum Herstellen einer Verbindung zu jedem Back-End
Account Manager
- Zentralisierte Account Manager API zum sicheren Speichern und Abrufen von Authentifizierungs-Tokens/-Passwörtern
Kontakte
- Neue Kontakt-APIs, die Daten aus mehreren Konten ermöglichen
- Mit den neuen Framework-APIs für den Schnellkontakt können Entwickler Kontaktlogos in ihrer App erstellen. Wenn Sie auf das Badge klicken, öffnet sich ein Fenster mit einer Liste mit Möglichkeiten, die Person mit einem Klick zu kontaktieren.
WebView
- Eingestellte Klassen: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Kamera
- Neue Parameter für Farbeffekt, Motivmodus, Blitzmodus, Fokusmodus, Weißabgleich, Drehung und andere Einstellungen
- Neue ZoomCallback-Oberfläche zum Ausführen von Aktionen, wenn sich die Zoomstufe geändert hat.
Medien
- MediaScanner generiert jetzt Miniaturansichten für alle Bilder, die in MediaStore eingefügt werden.
- Neue Thumbnail API zum Abrufen von Bild- und Video-Thumbnails auf Anfrage.
Anderes Framework
- Neue Systemthemen in android.R.style, mit denen sich Aktivitäten ganz einfach über dem aktuellen Systemhintergrund anzeigen lassen oder die vorherige Aktivität im Hintergrund sichtbar bleibt.
- Die neue WallpaperManager API ersetzt und erweitert die Hintergrund-APIs, die zuvor in Context enthalten waren, damit Anwendungen den Systemhintergrund anfordern und festlegen können.
- Neue Service APIs, mit denen Anwendungen den Lebenszyklus des Dienstes richtig verarbeiten können, insbesondere in Situationen mit wenig Arbeitsspeicher, in denen ein Dienst während seiner Ausführung beendet werden kann.
- Service.setForeground() wurde eingestellt und führt jetzt keinen Vorgang aus. Diese wird durch die neue API „startForeground()“ ersetzt, mit der eine laufende Benachrichtigung mit dem Vordergrundstatus verknüpft werden kann (und muss).
- MotionEvent kann jetzt Informationen zu gleichzeitigen Berührungen für Geräte melden, die dies unterstützen. Es können bis zu drei Zeiger gleichzeitig erfasst werden.
- KeyEvent bietet neue APIs zur Tastenweiterleitung, um das Verhalten bei Loslassen und langem Drücken zu implementieren, sowie einen neuen Mechanismus zum Abbrechen von Tastendrücken (für virtuelle Tasten).
- WindowManager.LayoutParams verfügt über neue Konstanten, die es einem Fenster ermöglichen, den Bildschirm zu aktivieren, wenn es angezeigt wird, und das Fenster auch dann anzuzeigen, wenn der Bildschirm gesperrt ist. So können Apps Dinge wie Wecker, die das Gerät aufwecken sollen, einfacher implementieren.
- Neue Intent APIs, die den Andocken-Status des Geräts übertragen und es Apps ermöglichen, spezielle Aktivitäten zu starten, wenn das Gerät in ein Desktop- oder Autodock gelegt wird.
Schlüsselereignisse, die bei Tastendruck ausgeführt werden
Android 2.0 wurde für Geräte entwickelt, die virtuelle Tasten für die Zuhause-, MENÜ, ZURÜCK und SUCHANFRAGEN anstelle von physischen Tasten. Um die besten Nutzer zu unterstützen, auf diesen Geräten funktioniert, führt die Android-Plattform diese Schaltflächen statt einer Taste für die Taste nach unten. So lassen sich versehentliche Schaltflächenereignisse vermeiden und der Nutzer kann auf den Schaltflächenbereich drücken und ihn dann herausziehen, ohne ein Ereignis zu generieren.
Diese Änderung des Verhaltens sollte sich nur auf Ihre Anwendung auswirken, wenn sie Schaltflächenereignisse abfängt und eine Aktion beim Drücken der Taste ausführt, anstatt beim Loslassen. Besonders wenn Ihre Anwendung den BACK-Schlüssel abfängt, sollten Sie dass Ihre Anwendung die Schlüsselereignisse ordnungsgemäß verarbeitet.
Im Allgemeinen wird das Abfangen der BACK-Taste in einer Anwendung nicht empfohlen. Wenn Ihre Anwendung dies jedoch tut und eine Aktion beim Drücken der Taste statt beim Loslassen auslöst, sollten Sie Ihren Code ändern.
Wenn Ihre Anwendung APIs verwendet, die in Android 2.0 (API-Level 5) eingeführt wurden, können Sie neue APIs zur Verwaltung von Tastenereignispaaren nutzen:
- Wenn Sie die BACK-Taste in einer Aktivität oder einem Dialog abfangen, implementieren Sie einfach die neue Methode
onBackPressed()
. - Wenn Sie die BACK-Taste in einer Ansicht abfangen, sollten Sie das Tastenereignis beim Drücken der Taste (über die neue
startTracking()
-Methode) erfassen und dann die Aktion beim Loslassen der Taste ausführen. Hier ist ein Muster, das Sie verwenden können:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
Wenn Sie eine alte Anwendung aktualisieren möchten, sodass deren Verarbeitung der für Android 2.0 und ältere Plattformversionen ordnungsgemäß funktioniert, können Sie einen ähnlichen Ansatz wie oben verwenden. Dein Code kann die Zielschaltflächenereignis bei Tastendruck festlegen, ein Flag zum Verfolgen des Schlüsselereignisses festlegen und Dann wird das Ereignis auch beim Drücken des Tastendrucks erfasst und die gewünschte Aktion wird ausgeführt, wenn das Tracking gesetzt ist. Außerdem solltest du auf Fokusänderungen achten und das Tracking-Flag löschen, wenn der Fokus auf ein anderes Objekt gerichtet wird.
Bericht zu API-Unterschieden
Eine detaillierte Übersicht über die API-Änderungen in Android 2.0 (API-Level 5) im Vergleich zur vorherigen Version finden Sie im API-Unterschiedsbericht.