API-Level: 9
Für Entwickler steht die Plattform Android 2.3 (GINGERBREAD
) als herunterladbare Komponente für das Android SDK zur Verfügung. Die herunterladbare Plattform umfasst eine Android-Bibliothek, ein System-Image, eine Reihe von Emulator-Skins und mehr. Wenn du mit der Entwicklung oder Tests für Android 2.3 beginnen möchtest, lade die Plattform mit dem Android SDK Manager in dein SDK herunter.
API-Übersicht
Die folgenden Abschnitte bieten einen technischen Überblick über die Neuerungen für Entwickler in Version 2.3, einschließlich der neuen Funktionen und Änderungen der Framework API seit der vorherigen Version.
SIP-basiertes VoIP
Die Plattform umfasst jetzt einen SIP-Protokoll-Stack und eine Framework-API, mit denen Entwickler Internettelefonieanwendungen erstellen können. Mithilfe der API können Anwendungen Funktionen für Sprachanrufe anbieten, ohne Sitzungen, Kommunikation auf Transportebene oder Audio verwalten zu müssen. Diese werden transparent von der SIP API und den Diensten der Plattform verarbeitet.
Die SIP API ist im Paket android.net.sip
verfügbar. Die Schlüsselklasse ist SipManager
. Mit dieser Klasse richten Anwendungen SIP-Profile ein und verwalten sie, um dann Audioanrufe zu initiieren und zu empfangen. Sobald ein Sprachanruf eingerichtet ist, können Apps Anrufe stummschalten, den Lautsprechermodus aktivieren, DTMF-Töne senden und vieles mehr. Anwendungen können auch die SipManager
verwenden, um generische SIP-Verbindungen herzustellen.
Der der Plattform zugrunde liegende SIP-Stack und die zugehörigen Dienste sind auf Geräten verfügbar, die im Ermessen des Herstellers und des damit verbundenen Mobilfunkanbieters liegen. Daher sollten Anwendungen mit der Methode isApiSupported()
prüfen, ob die SIP-Unterstützung verfügbar ist, bevor Nutzern die Anruffunktionalität zur Verfügung gestellt wird.
Damit Anwendungen die SIP API verwenden können, müssen sie eine Berechtigung vom Nutzer anfordern, indem sie <uses-permission
android:name="android.permission.INTERNET">
und <uses-permission
android:name="android.permission.USE_SIP">
in ihren Manifestdateien deklarieren.
Darüber hinaus können Entwickler bei Google Play einen Filter anfordern, damit ihre Apps nicht für Nutzer sichtbar sind, deren Geräte den SIP-Stack und die Dienste der Plattform nicht enthalten. Fügen Sie dem Anwendungsmanifest <uses-feature
android:name="android.software.sip"
android:required="true">
und <uses-feature
android:name="android.software.sip.voip">
hinzu, um eine Filterung anzufordern.
Weitere Informationen finden Sie im SIP-Entwicklerleitfaden.
Nahfeldkommunikation (NFC)
Android 2.3 umfasst einen NFC-Stack und eine Framework-API, mit der Entwickler NDEF-Tags lesen können, die beim Berühren eines NFC-fähigen Geräts erkannt werden, um Elemente zu taggen, die in Stickern, Smartposter und sogar andere Geräte eingebettet sind.
Die Plattform stellt die zugrunde liegenden NFC-Dienste bereit, die mit der Gerätehardware arbeiten, um Tags zu erkennen, wenn sie in Reichweite sind. Wenn ein Tag erkannt wird, benachrichtigt die Plattform Anwendungen durch Broadcasting eines Intents. Dabei werden die NDEF-Nachrichten des Tags als Extras an den Intent angehängt. Anwendungen können Intent-Filter erstellen, um Ziel-Tags und Nachrichten zu erkennen und zu verarbeiten. Wenn Anwendungen beispielsweise ein Tag vom Intent empfangen haben, extrahieren Anwendungen die NDEF-Nachrichten, speichern sie, benachrichtigen den Nutzer oder verarbeiten sie auf andere Weise.
Die NFC API ist im Paket android.nfc
enthalten. Die wichtigsten Klassen sind:
NfcAdapter
steht für die NFC-Hardware auf dem Gerät.NdefMessage
steht für eine NDEF-Datennachricht. Dies ist das Standardformat, in dem „Datensätze“ mit Daten zwischen Geräten und Tags übertragen werden. Anwendungen können diese Nachrichten vonACTION_TAG_DISCOVERED
-Intents empfangen.NdefRecord
, bereitgestellt in einemNdefMessage
, das den Typ der freigegebenen Daten beschreibt und die Daten selbst transportiert.
Die NFC-Kommunikation basiert auf Funktechnologie in der Gerätehardware. Daher wird die Unterstützung der NFC-Funktionen der Plattform auf bestimmten Geräten von den jeweiligen Herstellern bestimmt. Damit die NFC-Unterstützung auf dem aktuellen Gerät ermittelt werden kann, können Anwendungen isEnabled()
aufrufen, um NfcAdapter
abzufragen. Die NFC API ist jedoch unabhängig von der zugrunde liegenden Hardwareunterstützung immer vorhanden.
Zur Verwendung der NFC API müssen Anwendungen eine Berechtigung vom Nutzer anfordern, indem sie <uses-permission
android:name="android.permission.NFC">
in ihren Manifestdateien deklarieren.
Außerdem können Entwickler bei Google Play einen Filter anfordern, damit ihre Apps für Nutzer, deren Geräte kein NFC unterstützen, nicht sichtbar sind. Fügen Sie dem Manifest der Anwendung <uses-feature android:name="android.hardware.nfc"
android:required="true">
hinzu, um eine Filterung anzufordern.
Eine Beispielanwendung, die die NFC API verwendet, finden Sie unter NFCDemo.
Gyroskop und andere Sensoren
Android 2.3 bietet Plattform- und API-Unterstützung für verschiedene neue Sensor-Lesetypen – Gyroskop, Rotationsvektor, lineare Beschleunigung, Schwerkraft und Barometer. Entwickler können die neuen Sensormesswerte nutzen, um Anwendungen zu erstellen, die schnell und reibungslos auf präzise Änderungen der Geräteposition und Bewegung reagieren. Die Sensor API meldet interessierten Anwendungen Gyroskopänderungen und andere Sensoränderungen, unabhängig davon, ob diese im Anwendungs-Framework oder in nativem Code ausgeführt werden.
Welche Hardwaresensoren auf einem Gerät verfügbar sind, liegt im Ermessen des Geräteherstellers.
Entwickler können bei Google Play einen Filter anfordern, damit ihre Anwendungen für Nutzer, deren Geräte keinen Gyroskopsensor bieten, nicht sichtbar sind. Fügen Sie dazu dem Anwendungsmanifest <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
hinzu.
Informationen zur API findest du unter Sensor
.
Unterstützung mehrerer Kameras
Anwendungen können jetzt alle auf dem Gerät verfügbaren Kameras für die Aufnahme von Fotos oder Videos verwenden. Mit Camera
können Anwendungen die Anzahl der verfügbaren Kameras und deren eindeutige Eigenschaften abfragen.
- In der neuen
Camera.CameraInfo
-Klasse werden die Positionsmerkmale einer Kamera (Ausrichtung, nach vorn oder rückwärts) gespeichert. - Mit den neuen Methoden
getNumberOfCameras()
undgetCameraInfo()
in der KlasseCamera
können Anwendungen die verfügbaren Kameras abfragen und die benötigte Kamera öffnen. - Mit der neuen
get()
-Methode können Anwendungen eineCamcorderProfile
für eine bestimmte Kamera abrufen. - Mit der neuen
getJpegEncodingQualityParameter()
können Anwendungen die Qualität der Standbildaufnahme einer bestimmten Kamera ermitteln.
Beispielcode für den Zugriff auf eine Frontkamera finden Sie in der ApiDemos-Beispielanwendung unter CameraPreview.java.
Die Kamera-API fügt außerdem Folgendes hinzu:
- Neue Parameter für Kameras, einschließlich Fokusdistanz, Fokusmodus und Vorschau für maximale/minimale fps.
getFocusDistances()
,getPreviewFpsRange()
undgetSupportedPreviewFpsRange()
zum Abrufen von Kameraparametern sowiesetPreviewFpsRange()
zum Festlegen der Framerate der Vorschau.
Mischbare Audioeffekte
Das Medien-Framework der Plattform unterstützt neue Audioeffekte pro Titel oder globale Audioeffekte, einschließlich Bassverstärkung, Kopfhörervirtualisierung, Entzerrung und Hall.
- Das neue
android.media.audiofx
-Paket bietet die API für den Zugriff auf Audioeffekte. - Die neue
AudioEffect
ist die Basisklasse zur Steuerung von Audioeffekten, die vom Android-Audio-Framework bereitgestellt wird. - Neue Audiositzungs-ID, mit der eine Anwendung eine Reihe von Audioeffekten mit einer Instanz von
AudioTrack
oderMediaPlayer
verknüpfen kann. - Neuer
AudioTrack
-Klassenkonstruktor, mit dem Sie eineAudioTrack
mit einer bestimmten Sitzungs-ID erstellen können. Neue MethodenattachAuxEffect()
,getAudioSessionId()
undsetAuxEffectSendLevel()
. - Neue Methoden
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
undsetAuxEffectSendLevel()
sowie unterstützende Typen.
Beispielcode für Audioeffekte finden Sie in der ApiDemos-Beispielanwendung unter AudioFxDemo.java.
Das Medien-Framework fügt außerdem Folgendes hinzu:
- Neue Unterstützung für das Höhen-Tag in den EXIF-Metadaten für JPEG-Dateien. Neue Methode
getAltitude()
zum Abrufen des Werts des EXIF-Höhentags. - Mit der neuen
setOrientationHint()
-Methode kann eine AppMediaRecorder
die Ausrichtung während der Videoaufnahme mitteilen.
Download-Manager
Die Plattform umfasst einen neuen DownloadManager
-Systemdienst, der lang andauernde HTTP-Downloads verarbeitet. Anwendungen können anfordern, dass ein URI in eine bestimmte Zieldatei heruntergeladen wird. Der DownloadManager
führt den Download im Hintergrund aus, kümmert sich um HTTP-Interaktionen und wiederholt Downloads nach Fehlern oder bei Verbindungsänderungen und Systemneustarts.
- Anwendungen können eine Instanz der
DownloadManager
-Klasse abrufen, indemgetSystemService(String)
aufgerufen undDOWNLOAD_SERVICE
übergeben wird. Bei Anwendungen, die Downloads über diese API anfordern, sollte ein Übertragungsempfänger fürACTION_NOTIFICATION_CLICKED
registriert werden, der verarbeitet werden kann, wenn der Nutzer in einer Benachrichtigung oder über die Benutzeroberfläche für Downloads auf einen laufenden Download klickt. - Mit der Klasse
DownloadManager.Request
kann eine Anwendung alle erforderlichen Informationen zur Verfügung stellen, um einen neuen Download anzufordern, z. B. den Anfrage-URI und das Downloadziel. Ein Anfrage-URI ist der einzige erforderliche Parameter. Beachten Sie, dass das Standard-Downloadziel ein freigegebenes Volume ist, auf dem das System Ihre Datei löschen kann, wenn es Speicherplatz für die Nutzung durch das System freigeben muss. Geben Sie für den nichtflüchtigen Speicher eines Downloads ein Downloadziel auf dem externen Speicher an (siehesetDestinationUri(Uri)
). - Die Klasse
DownloadManager.Query
bietet Methoden, mit denen eine Anwendung aktive Downloads abfragen und filtern kann.
Strikter Modus
Die Plattform bietet eine neue Systemeinrichtung namens StrictMode
, mit der Entwickler die Leistung ihrer Anwendungen überwachen und verbessern können.
Bei der Implementierung in einer Anwendung wird mit StrictMode der Entwickler über versehentliche Laufwerk- oder Netzwerkaktivitäten abgefangen und benachrichtigt, die die Anwendungsleistung beeinträchtigen könnten. Dazu gehören Aktivitäten im Hauptthread der Anwendung (wo UI-Vorgänge empfangen und Animationen ausgeführt werden).
Entwickler können die im StrictMode aufgetretenen Probleme mit der Netzwerk- und Laufwerksnutzung auswerten und gegebenenfalls beheben. So bleibt der Hauptthread reaktionsschneller und Nutzern werden keine ANR-Dialogfelder angezeigt.
StrictMode
ist die Kernklasse und der Hauptintegrationspunkt mit dem System und der VM. Die Klasse bietet praktische Methoden zum Verwalten der Thread- und VM-Richtlinien, die für die Instanz gelten.StrictMode.ThreadPolicy
undStrictMode.VmPolicy
enthalten die Richtlinien, die Sie definieren und auf Thread- und VM-Instanzen anwenden.
Weitere Informationen zum Optimieren Ihrer Anwendung mit StrictMode finden Sie in der Klassendokumentation und im Beispielcode unter android.os.StrictMode
.
UI-Framework
- Unterstützung für Overscroll
- Overscroll-Unterstützung in Ansichten und Widgets wurde hinzugefügt. In Ansichten können Anwendungen den Overscroll-Modus für eine bestimmte Ansicht aktivieren/deaktivieren, den Overscoll-Modus festlegen, die Overscroll-Entfernung steuern und die Ergebnisse des Overscroll-Effekts verarbeiten.
- In Widgets können Apps Overscroll-Eigenschaften wie Animation, Springback und Overscroll-Entfernung steuern. Weitere Informationen findest du unter
android.view.View
undandroid.widget.OverScroller
. ViewConfiguration
bietet auch die MethodengetScaledOverflingDistance()
undgetScaledOverscrollDistance()
.- Neue
overScrollMode
-,overScrollFooter
- undoverScrollHeader
-Attribute für<ListView>
-Elemente zur Steuerung des Overscroll-Verhaltens.
- Unterstützung für das Filtern durch Berührung
- Mit der neuen Unterstützung für das Filtern durch Berührung kann eine Anwendung die Sicherheit von Ansichten verbessern, die Zugriff auf sensible Funktionen bieten. Die Berührungsfilterung ist beispielsweise geeignet, um die Sicherheit von Nutzeraktionen wie dem Gewähren einer Berechtigungsanfrage, dem Tätigen eines Kaufs oder dem Klicken auf eine Anzeige zu gewährleisten. Weitere Informationen finden Sie in der Dokumentation zu Klasse ansehen.
- Neues
filterTouchesWhenObscured
-Attribut für Ansichtselemente, das angibt, ob Berührungen gefiltert werden sollen, wenn das Fenster der Ansicht von einem anderen sichtbaren Fenster verdeckt wird. Wenn"true"
festgelegt ist, erhält die Ansicht keine Berührung, wenn ein Toast, ein Dialogfeld oder ein anderes Fenster über dem Fenster der Ansicht erscheint. Weitere Informationen finden Sie unter Sicherheitsdokumentation ansehen.
Beispielcode für das Filtern durch Berührung finden Sie in der ApiDemos-Beispielanwendung unter SecureView.java.
- Verbessertes Ereignismanagement
- Neue Basisklasse für Eingabeereignisse:
InputEvent
. Die Klasse stellt Methoden bereit, mit denen Anwendungen die Bedeutung des Ereignisses bestimmen können, z. B. durch Abfragen des InputDevice, aus dem das Ereignis stammt.KeyEvent
undMotionEvent
sind abgeleitete Klassen vonInputEvent
. - Neue Basisklasse für Eingabegeräte:
InputDevice
. Die Klasse speichert Informationen zu den Funktionen eines bestimmten Eingabegeräts und stellt Methoden bereit, mit denen Anwendungen bestimmen können, wie Ereignisse von einem Eingabegerät interpretiert werden.
- Neue Basisklasse für Eingabeereignisse:
- Verbesserte Bewegungsereignisse
- Die
MotionEvent
API wird um Zeiger-ID-Informationen erweitert, mit denen Anwendungen einzelne Finger erfassen können, während sie sich nach oben und unten bewegen. Die Klasse fügt eine Reihe von Methoden hinzu, mit denen eine Anwendung Bewegungsereignisse effizient verarbeiten kann. - Das Eingabesystem verfügt nun über eine Logik, um Bewegungsereignisse mit den neuen Zeiger-ID-Informationen zu generieren und Kennungen zu synthetisieren, wenn neue Zeiger ausgefallen sind. Das System verfolgt mehrere Zeiger-IDs während eines Bewegungsereignisses separat und sorgt für eine korrekte Kontinuität der Zeiger, indem es die Entfernung zwischen dem letzten und dem nächsten Zeigersatz berücksichtigt.
- Die
- Steuerelemente für die Textauswahl
- Mit einer neuen
setComposingRegion
-Methode kann eine Anwendung einen Textbereich als Textbereich markieren, wobei der aktuelle Stil beibehalten wird. Die MethodegetSelectedText
gibt den ausgewählten Text an die Anwendung zurück. Die Methoden sind inBaseInputConnection
,InputConnection
undInputConnectionWrapper
verfügbar. - Neue Attribute
textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
undtextSelectHandleWindowStyle
für<TextView>
zum Verweisen auf Drawables, die zum Anzeigen von Ankern für die Textauswahl und den Stil für das enthaltende Fenster verwendet werden.
- Mit einer neuen
- Aktivitätseinstellungen
ActivityInfo
fügt neue Konstanten zum Verwalten der Aktivitätsausrichtung hinzu:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
undSCREEN_ORIENTATION_SENSOR_PORTRAIT
.- Neue Konstante
IMPORTANCE_PERCEPTIBLE
für das Feldimportance
inActivityManager.RunningAppProcessInfo
. Der Wert gibt an, dass in einem bestimmten Prozess etwas ausgeführt wird, das für den Nutzer aktiv wahrnehmbar ist. Ein Beispiel hierfür wäre eine App, die die Hintergrundmusik abspielt. - Die Methode „Activity.setPersistent(boolean)“ zum Markieren einer Aktivität als persistent wurde verworfen und die Implementierung ist managementfrei.
- Benachrichtigungstext und Symbolstile
- Neue
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
undTextAppearance.StatusBar.Title
zum Verwalten des Benachrichtigungsstils.
- Neue
- Die verbleibenden OpenGL ES 2.0-Methoden
glDrawElements()
undglVertexAttribPointer()
werden in derandroid.opengl.GLES20
-Klasse hinzugefügt. - Unterstützung für das
YV12
-Pixelformat, ein planares YCrCb-Format im Format 4:2:0. - Neue Anbieterklasse
AlarmClock
zum Einstellen eines Alarms oder zum Verarbeiten eines Alarms. Der Anbieter enthält einenACTION_SET_ALARM
-Intent und Extras, mit denen eine Aktivität gestartet werden kann, um in einer Weckeranwendung einen neuen Wecker einzustellen. Anwendungen, die den IntentSET_ALARM
empfangen möchten, sollten eine Aktivität erstellen, für die die Berechtigung SET_ALARM erforderlich ist. Anwendungen, die einen neuen Wecker erstellen möchten, solltenContext.startActivity()
verwenden, sodass der Nutzer selbst auswählen kann, welche Weckeranwendung verwendet werden soll. MediaStore
unterstützt die neue Intent-AktionPLAY_FROM_SEARCH
, mit der eine App nach Musikmedien suchen und Inhalte aus dem Ergebnis nach Möglichkeit automatisch abspielen kann. Eine Anwendung könnte diesen Intent beispielsweise als Ergebnis eines Spracherkennungsbefehls zum Musikhören auslösen.MediaStore
fügt außerdem ein neuesMEDIA_IGNORE_FILENAME
-Flag hinzu, das den Mediascanner anweist, Medien im enthaltenen Verzeichnis und in seinen Unterverzeichnissen zu ignorieren. Entwickler können so verhindern, dass Grafiken in der Galerie angezeigt werden, und damit auch verhindern, dass App-Töne und Musik in der Musik-App angezeigt werden.- Der Anbieter
Settings
fügt die neuen AktivitätsaktionenAPPLICATION_DETAILS_SETTINGS
undMANAGE_ALL_APPLICATIONS_SETTINGS
hinzu, mit denen eine App den Bildschirm mit den Details für eine bestimmte App oder den Bildschirm "Apps verwalten" anzeigen kann. - Der Anbieter
ContactsContract
fügt die DatentypContactsContract.CommonDataKinds.SipAddress
zum Speichern der SIP-Adresse (Internet-Telefonie) eines Kontakts hinzu. - Der
LocationManager
verfolgt jetzt Anwendungsanfragen, die zu Wakelocks oder WLAN-Sperren führen, gemäß der vom System verwalteten KlasseWorkSource
, die die Anwendung identifiziert.Der
LocationManager
erfasst alle Clients, die regelmäßige Updates anfordern, und informiert seine Anbieter über diese alsWorkSource
-Parameter, wenn sie ihre Mindestaktualisierungszeiten festlegen. Der Netzwerkstandortanbieter verwendetWorkSource
, um die von einer Anwendung initiierten aktiven Sperren und WLAN-Sperren zu verfolgen, und fügt sie der unter "Anwendungen verwalten" gemeldeten Akkunutzung der Anwendung hinzu. - Der
LocationManager
fügt mehrere neue Methoden hinzu, mit denen eine Aktivität anhand bestimmter Kriterien regelmäßig oder einmalige Standortaktualisierungen registriert werden kann (siehe unten). - Mit einer neuen
Criteria
-Klasse kann eine Anwendung eine Reihe von Kriterien für die Auswahl eines Standortanbieters angeben. Beispielsweise können Anbieter nach Genauigkeit, Energieverbrauch, Möglichkeit zur Meldung von Höhe, Geschwindigkeit und Peilung sowie nach den monetären Kosten sortiert werden. - Unter Android 2.3 wurde ein neuer
StorageManager
hinzugefügt, der OBB-Dateien (Opaque Binary Blob) unterstützt. Die Plattformunterstützung für OBB ist zwar in Android 2.3 verfügbar, die Entwicklungstools zum Erstellen und Verwalten von OBB-Dateien sind jedoch erst Anfang 2011 verfügbar. - Die Plattform Android 2.3 bietet zusätzliche offizielle Unterstützung für Geräte ohne SD-Karten. Sie bietet eine virtuelle SD-Kartenpartition, wenn keine physische SD-Karte verfügbar ist. Mit der praktischen Methode
isExternalStorageRemovable()
können Anwendungen feststellen, ob eine physische SD-Karte vorhanden ist. - Neue Konstanten für die Deklaration von Hardware- und Softwarefunktionen Weitere Informationen finden Sie unten im Abschnitt Konstanten für neue Funktionen.
PackageInfo
fügt die neuen FelderfirstInstallTime
undlastUpdateTime
hinzu, in denen der Zeitpunkt der Paketinstallation und der letzten Aktualisierung gespeichert wird.- Neue
getProviderInfo()
-Methode zum Abrufen aller Informationen, die über eine bestimmte Contentanbieter-Klasse bekannt sind. TelephonyManager
fügt die KonstanteNETWORK_TYPE_EVDO_B
hinzu, um den CDMA-Netzwerktyp EVDO Rev B anzugeben.- Die neue Methode
getPsc()
gibt den primären Verschlüsselungscode der Bereitstellungszelle in einem UMTS-Netzwerk zurück. NativeActivity
ist ein neuer Typ von Activity-Klasse, deren Lebenszyklus-Callbacks direkt im nativen Code implementiert werden. EinNativeActivity
und der zugrunde liegende native Code werden im System wie andere Aktivitäten ausgeführt – insbesondere im Systemprozess der Android-Anwendung und im Hauptthread der Anwendung. Sie erhalten dieselben Lebenszyklus-Callbacks wie andere Aktivitäten.- Mit der neuen
InputQueue
-Klasse und der Callback-Oberfläche kann der native Code die Ereigniswarteschlange verwalten. - Über die neue
SurfaceHolder.Callback2
-Oberfläche kannSurfaceHolder
von nativem Code verwaltet werden. - Mit den neuen Methoden
takeInputQueue
undtakeSurface()
inWindow
können Ereignisse und Oberflächen durch nativer Code verwaltet werden. dalvik.system
entfernt mehrere Klassen, die zuvor verworfen wurden.- Dalvik-Kernbibliotheken:
- Neue Sammlungen:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Neue
Arrays
-Dienstprogramme:binarySearch()
,copyOf()
,copyOfRange()
und weitere. CookieManager
fürHttpURLConnection
.- Weitere umfassende Netzwerk-APIs:
InterfaceAddress
,NetworkInterface
undIDN
- Lese- und Schreibsteuerelemente in
File
String.isEmpty()
Normalizer
undNormalizer.Form
- Verbesserte
javax.net.ssl
-Server-Sockets.
- Neue Sammlungen:
- Neues
xlargeScreens
-Attribut für das Element<supports-screens>
, mit dem angegeben wird, ob die Anwendung extrem große Bildschirmformfaktoren unterstützt. Weitere Informationen - Neue Werte für das Attribut
android:screenOrientation
des Elements<activity>
:"reverseLandscape"
(Aktivität): Für die Aktivität soll der Bildschirm im Querformat angezeigt werden, also in die entgegengesetzte Richtung zum normalen Querformat gedreht werden kann."reversePortrait"
(Aktivität): Für die Aktivität soll das Hochformat angezeigt werden, das dem Bildschirm entgegengesetzt ist."sensorLandscape"
(Aktivität): Für die Aktivität soll der Bildschirm im Querformat angezeigt werden, kann aber den Sensor verwenden, um die Richtung des Bildschirms zu ändern."sensorPortrait"
: Die Aktivität wünscht, dass der Bildschirm im Hochformat angezeigt wird, kann aber den Sensor verwenden, um die Richtung des Bildschirms zu ändern."fullSensor"
: Die Ausrichtung wird durch einen physischen Ausrichtungssensor bestimmt: Das Display dreht sich je nachdem, wie der Nutzer das Gerät bewegt. Dadurch sind alle vier möglichen Drehungen möglich, unabhängig davon, was das Gerät normalerweise tut (z. B. verwenden manche Geräte normalerweise keine 180-Grad-Drehung).
com.android.permission.SET_ALARM
: Ermöglicht einer Anwendung, einen Intent zu senden, um einen Alarm für den Nutzer festzulegen. Eine Aktivität, die die Intent-AktionSET_ALARM
verarbeitet, sollte diese Berechtigung benötigen.android.permission.USE_SIP
: Ermöglicht einer Anwendung, dieSIP API
zu verwenden, um Internetanrufe zu tätigen oder zu empfangen.android.permission.NFC
: Ermöglicht einer App, denNFC API
zum Lesen von NFC-Tags zu verwenden.android.hardware.audio.low_latency
: Die Anwendung verwendet eine Audiopipeline mit niedriger Latenz auf dem Gerät und reagiert empfindlich auf Verzögerungen bei der Toneingabe oder -ausgabe.android.hardware.camera.front
: Die Anwendung verwendet eine Frontkamera auf dem Gerät.android.hardware.nfc
– Die Anwendung nutzt NFC-Funkfunktionen im Gerät.android.hardware.sensor.barometer
: Die Anwendung verwendet das Barometer des Geräts.android.hardware.sensor.gyroscope
: Die Anwendung verwendet den Gyroskopsensor des Geräts.android.software.sip
– Die Anwendung verwendet die SIP API auf dem Gerät.android.software.sip.voip
: Die Anwendung verwendet einen SIP-basierten VoIP-Dienst auf dem Gerät.android.hardware.touchscreen.multitouch.jazzhand
: Die Anwendung nutzt erweiterte Multipoint-Multitouch-Funktionen auf dem Gerätebildschirm, um fünf oder mehr Punkte völlig unabhängig voneinander zu erfassen.
Extragroße Bildschirme
Die Plattform unterstützt jetzt besonders große Bildschirmgrößen, wie sie beispielsweise auf Tablets zu finden sind. Entwickler können angeben, dass ihre Apps für besonders große Bildschirmgrößen entwickelt wurden, indem sie ihren Manifestdateien ein <supports
screens ... android:xlargeScreens="true">
-Element hinzufügen. Anwendungen können den neuen Ressourcenqualifizierer xlarge
verwenden, um Ressourcen zu taggen, die für besonders große Bildschirme spezifisch sind. Wie du sehr große und andere Bildschirmgrößen unterstützt, erfährst du unter Unterstützung mehrerer Bildschirme.
Grafik
Contentanbieter
Standort
Datenspeicher
Paketmanager
Telefonie
Nativer Zugriff auf Aktivitätslebenszyklus, Fenster
Android 2.3 stellt Anwendungen, die nativen Code verwenden, eine breite Palette von APIs zur Verfügung. Zu den Framework-Klassen, die für diese Anwendungen von Interesse sind, gehören:
Umfassende Informationen zum Arbeiten mit nativem Code oder zum Herunterladen des NDK finden Sie auf der Seite Android-NDK.
Dalvik-Laufzeit
Neue Manifestelemente und -attribute
Neue Berechtigungen
Konstanten für neue Funktionen
Die Plattform fügt mehrere neue Hardwarefunktionen hinzu, die Entwickler in ihren Anwendungsmanifesten als für ihre Anwendungen erforderlich deklarieren können. So können Entwickler festlegen, wie ihre App gefiltert werden soll, wenn sie bei Google Play veröffentlicht wird.
Ausführliche Informationen zum Deklarieren und Verwenden von Features zum Filtern finden Sie in der Dokumentation zu <uses-feature>
.
Bericht zu API-Unterschieden
Eine detaillierte Ansicht aller API-Änderungen in Android 2.3 (API-Level 9) findest du im API-Unterschiedsbericht.
API-Ebene
Die Plattform Android 2.3 stellt eine aktualisierte Version der Framework API bereit. Der Android 2.3 API wird eine Ganzzahl-ID (9) zugewiesen, die im System selbst gespeichert ist. Mit dieser Kennung (API-Ebene) kann das System vor der Installation korrekt feststellen, ob eine App mit dem System kompatibel ist.
Um in Android 2.3 eingeführte APIs in Ihrer App zu verwenden, müssen Sie die App mithilfe der Android-Bibliothek kompilieren, die auf der Android 2.3 SDK-Plattform enthalten ist. Je nach deinen Anforderungen musst du dem <uses-sdk>
-Element im Manifest der Anwendung möglicherweise auch ein android:minSdkVersion="9"
-Attribut hinzufügen. Wenn Ihre App nur für die Ausführung unter Android 2.3 und höher entwickelt wurde, verhindert die Deklaration des Attributs, dass die App auf früheren Versionen der Plattform installiert wird.
Weitere Informationen finden Sie unter Was ist das API-Level?