API-Level: 9
Für Entwickler ist die Android 2.3-Plattform (GINGERBREAD
) als herunterladbare Komponente für das Android SDK verfügbar. Die herunterladbare Plattform enthält unter anderem eine Android-Bibliothek und ein System-Image sowie eine Reihe von Emulator-Skins. Um mit der Entwicklung oder Tests für Android 2.3 zu beginnen,
Verwenden Sie den Android SDK Manager, um die Plattform in Ihr SDK herunterzuladen.
API-Übersicht
In den folgenden Abschnitten finden Sie einen technischen Überblick über die Neuigkeiten für Entwickler in Version 2.3, einschließlich neuer Funktionen und Änderungen an der Framework-API seit der vorherigen Version.
SIP-basierte VoIP
Die Plattform enthält jetzt einen SIP-Protokollstack und eine Framework-API, mit denen Entwickler Internettelefonieanwendungen erstellen können. Mit der API können Anwendungen Sprachanruffunktionen, ohne Sitzungen verwalten zu müssen, Kommunikation oder Audio – diese werden transparent durch die SIP API und die Dienste der Plattform.
Die SIP API ist im Paket android.net.sip
verfügbar. Die Schlüsselklasse ist SipManager
, d. h., welche Anwendungen
zum Einrichten und Verwalten von SIP-Profilen, zum Starten von Sprachanrufen und zum Empfangen von
Sprachanrufe. Sobald ein Sprachanruf hergestellt ist, können Anwendungen Anrufe stummschalten,
Lautsprechermodus aktivieren, DTMF-Töne senden usw. Anwendungen können auch SipManager
verwenden, um generische SIP-Verbindungen zu erstellen.
Der zugrunde liegende SIP-Stack und die Dienste der Plattform sind auf Geräten nach Ermessen des Herstellers und des zugehörigen Mobilfunkanbieters verfügbar. Aus diesem Grund sollten Anwendungen die Methode isApiSupported()
verwenden, um zu prüfen, ob SIP-Support verfügbar ist, bevor die Anruffunktion für Nutzer freigeschaltet wird.
Zur Verwendung der SIP API müssen Anwendungen eine Berechtigung vom Nutzer anfordern, indem sie
in ihren Manifestdateien <uses-permission
android:name="android.permission.INTERNET">
und <uses-permission
android:name="android.permission.USE_SIP">
deklarieren.
Außerdem können Entwickler eine Filterung bei Google Play anfordern, damit ihre Apps für Nutzer nicht sichtbar sind, deren Geräte nicht den SIP-Stack und die Dienste der Plattform enthalten. Wenn Sie eine Filterung anfordern möchten, 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.
Weitere Informationen finden Sie im SIP-Entwicklerleitfaden.
Nahfeldkommunikation (NFC)
Android 2.3 enthält einen NFC-Stack und eine Framework-API, mit denen Entwickler NDEF-Tags lesen können, die erkannt werden, wenn ein Nutzer ein NFC-fähiges Gerät berührt. So können Elemente getaggt werden, die in Sticker, Smart Poster und sogar andere Geräte eingebettet sind.
Die Plattform stellt die zugrunde liegenden NFC-Dienste bereit, die mit dem Gerät kompatibel sind. um Tags zu erkennen, wenn sie in Reichweite sind. Wenn ein Tag erkannt wird, Plattform benachrichtigt Anwendungen durch Übertragung eines Intents und Anhängen des Tags NDEF-Nachrichten an den Intent als Extras. Anwendungen können Intent-Filter erstellen, um zielgerichtete Tags und Nachrichten zu erkennen und zu verarbeiten. Nachdem eine Anwendung beispielsweise ein Tag per Intent empfangen hat, werden die NDEF-Nachrichten extrahiert, gespeichert, der Nutzer benachrichtigt oder die Nachrichten werden anderweitig verarbeitet.
Die NFC API ist im Paket android.nfc
verfügbar. Die wichtigsten Klassen sind:
NfcAdapter
, die die NFC-Hardware auf dem Gerät darstellt.NdefMessage
, die eine NDEF-Datennachricht darstellt, das Standardformat, in dem „aufgezeichnet“ übertragene Daten zwischen Geräte und Tags. Anwendungen können diese Nachrichten vonACTION_TAG_DISCOVERED
-Intents empfangen.NdefRecord
, ausgeliefert in einemNdefMessage
, die die Art der freigegebenen Daten und die Daten selbst trägt.
Die NFC-Kommunikation basiert auf der drahtlosen Technologie in der Gerätehardware. Die Unterstützung der NFC-Funktionen der Plattform auf bestimmten Geräten wird daher von den jeweiligen Herstellern bestimmt. Um die NFC-Unterstützung auf dem aktuellen Gerät zu ermitteln, können Anwendungen isEnabled()
aufrufen, um die NfcAdapter
abzufragen. Die NFC API ist immer vorhanden,
unabhängig von der zugrunde liegenden Hardwareunterstützung.
Wenn Sie die NFC API verwenden möchten, müssen Apps die Berechtigung des Nutzers anfordern, indem sie <uses-permission
android:name="android.permission.NFC">
in ihren Manifestdateien deklarieren.
Darüber hinaus können Entwickler eine Filterung bei Google Play beantragen,
Ihre Anwendungen sind für Nutzer, deren Geräte nicht unterstützt werden, nicht sichtbar.
NFC: Um Filter anzufordern, fügen Sie
<uses-feature android:name="android.hardware.nfc"
android:required="true">
zum Manifest der Anwendung.
Eine Beispielanwendung, die die NFC API verwendet, finden Sie unter NFCDemo.
Gyroskop und andere Sensoren
Android 2.3 unterstützt Plattform- und API-Unterstützung für mehrere neue Sensormesswerte Gyroskop, Rotationsvektor, lineare Beschleunigung, Schwerkraft und Barometer. Entwickler können die neuen Sensorwerte nutzen, um Anwendungen zu erstellen, die auf präzise Änderungen der Geräteposition und ‐bewegungen reagieren. Die Die Sensor API meldet Änderungen des Gyroskops und andere Sensoränderungen an interessierte Nutzer unabhängig davon, ob sie im Anwendungs-Framework oder in nativen Code.
Beachte, dass die spezifischen Hardwaresensoren, die für jedes Gerät verfügbar sind, variiert im Ermessen des Geräteherstellers.
Entwickler können bei Google Play einen Filter anfordern,
Anwendungen sind für Nutzer, deren Geräte kein
Gyroskopsensor. Füge dazu dem App-Manifest <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
hinzu.
Weitere Informationen zur API finden Sie unter Sensor
.
Unterstützung mehrerer Kameras
Apps können jetzt alle Kameras auf einem Gerät für die Foto- oder Videoaufnahme nutzen. Mit Camera
können
die Anzahl der verfügbaren Kameras und die eindeutige
Merkmale der einzelnen Elemente.
- Die neue
Camera.CameraInfo
-Klasse speichert die Positionsmerkmale einer Kamera (Ausrichtung, Front- oder Rückkamera). - Mit den neuen Methoden
getNumberOfCameras()
undgetCameraInfo()
in der KlasseCamera
können Anwendungen die verfügbaren Kameras abfragen und öffnen Sie die gewünschte Kamera. - Mit der neuen
get()
-Methode können Anwendungen einenCamcorderProfile
für eine bestimmte Kamera abrufen. - Mit der neuen
getJpegEncodingQualityParameter()
können Apps die Qualität der Aufnahme von Standbildern für eine bestimmte Kamera abrufen.
Beispielcode für den Zugriff auf eine Frontkamera finden Sie unter CameraPreview.java. in der Beispiel-App „ApiDemos“ ein.
Die Camera API bietet außerdem folgende Funktionen:
- Neue Parameter für Kameras, darunter Fokusentfernung, Fokusmodus und
Vorschau maximaler/min. fps (fps) Neue
getFocusDistances()
,getPreviewFpsRange()
undgetSupportedPreviewFpsRange()
zum Abrufen von Kameraparametern sowiesetPreviewFpsRange()
zum Festlegen der Framerate für die Vorschau.
Mixbare Audioeffekte
Das Media-Framework der Plattform unterstützt neue Audioeffekte pro Track oder global, darunter Bassverstärkung, Kopfhörervirtualisierung, Equalizer und Hall.
- Das neue
android.media.audiofx
-Paket bietet API für den Zugriff auf Audioeffekte. - Die neue
AudioEffect
ist die Basisklasse zur Steuerung der Audioeffekte des Android-Audio-Frameworks an. - 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 einAudioTrack
mit einer bestimmten Sitzungs-ID erstellen können. NeueattachAuxEffect()
,getAudioSessionId()
undsetAuxEffectSendLevel()
. - Neue
attachAuxEffect()
-,getAudioSessionId()
-,setAudioSessionId(int)
- undsetAuxEffectSendLevel()
-Methoden und unterstützte Typen.
Beispielcode für Audioeffekte finden Sie in der Beispielanwendung ApiDemos unter AudioFxDemo.java.
Das Media-Framework bietet außerdem folgende Vorteile:
- Neue Unterstützung für Höhen-Tags in EXIF-Metadaten für JPEG-Dateien. Neue Methode
getAltitude()
zum Abrufen des Werts des EXIF-Höhentags. - Mit der neuen
setOrientationHint()
-Methode kann eine AnwendungMediaRecorder
während der Videoaufnahme über die Ausrichtung informieren.
Download-Manager
Die Plattform enthält einen neuen DownloadManager
-Systemdienst, der langlaufende HTTP-Downloads verarbeitet. Anwendungen können anfordern, dass ein URI
die in eine bestimmte Zieldatei heruntergeladen wurden. Der DownloadManager
führt den Download im Hintergrund durch, kümmert sich um HTTP-Interaktionen und versucht, den Download nach Fehlern oder bei Verbindungsänderungen und Systemneustarts noch einmal auszuführen.
- Anwendungen können eine Instanz der Klasse
DownloadManager
abrufen, indem siegetSystemService(String)
aufrufen undDOWNLOAD_SERVICE
übergeben. Anwendungen, die Downloads über diese API anfordern, sollten einen Broadcast-Empfänger fürACTION_NOTIFICATION_CLICKED
registrieren, um den Fall zu behandeln, dass der Nutzer in einer Benachrichtigung oder über die Download-Benutzeroberfläche auf einen laufenden Download klickt. - Mit der Klasse
DownloadManager.Request
kann ein App alle erforderlichen Informationen zur Anforderung eines neuen Downloads bereitstellen, wie der Anforderungs-URI und das Downloadziel. Ein Anfrage-URI ist die einzige erforderliche . Das Standarddownloadziel ist ein freigegebenes Volume, auf dem das System Ihre Datei löschen kann, wenn es Speicherplatz für die Systemnutzung benötigt. Wenn Sie einen Download dauerhaft speichern möchten, geben Sie ein Downloadziel im externen Speicher an (siehesetDestinationUri(Uri)
). - Die Klasse
DownloadManager.Query
bietet Methoden, mit denen eine Anwendung nach aktiven Downloads suchen und diese filtern kann.
StrictMode
Um Entwicklern dabei zu helfen, die Leistung ihrer Anwendungen zu überwachen und zu verbessern, bietet die Plattform eine neue Systemfunktion namens StrictMode
.
Bei der Implementierung in einer Anwendung erfasst StrictMode und benachrichtigt den
Entwickler versehentlicher Datenträger- oder Netzwerkaktivitäten, die die Anwendung beeinträchtigen könnten
Leistung, z. B. Aktivitäten im Hauptthread der Anwendung
(wo UI-Vorgänge empfangen werden und auch Animationen stattfinden).
Entwickler können die im StrictMode gemeldeten Probleme mit Netzwerk- und Laufwerknutzung bewerten und bei Bedarf korrigieren. So bleibt der Haupt-Thread reaktionsschneller und ANR-Dialogfelder werden Nutzern nicht angezeigt.
StrictMode
ist die Hauptklasse 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 zur Optimierung Ihrer Anwendung mit StrictMode finden Sie in der Klassendokumentation und im Beispielcode unter android.os.StrictMode
.
UI-Framework
- Unterstützung für Overscroll
- Neue Unterstützung für das Überscrollen in Ansichten und Widgets. In Ansichten können Anwendungen das Überscrollen für eine bestimmte Ansicht aktivieren/deaktivieren, den Überscroll-Modus festlegen, den Überscroll-Abstand steuern und die Ergebnisse des Überscrollens verarbeiten.
- In Widgets können Anwendungen Overscroll-Eigenschaften steuern, z. B.
die Distanz für Animation, Springback und Overscroll. Weitere Informationen finden Sie unter
android.view.View
undandroid.widget.OverScroller
. ViewConfiguration
bietet auch die MethodengetScaledOverflingDistance()
undgetScaledOverscrollDistance()
.- Neue
overScrollMode
-,overScrollFooter
- undoverScrollHeader
-Attribute für<ListView>
-Elemente zum Steuern des Überlaufverhaltens.
- Unterstützung für Touch-Filter
- Neue Unterstützung für Berührungsfilter, mit denen eine Anwendung die Sicherheit von Ansichten, die Zugriff auf vertrauliche Funktionen ermöglichen. Beispiel: Touch-Filter sind geeignet, um die Sicherheit von Nutzeraktionen wie um eine Berechtigungsanfrage zu erteilen, einen Kauf zu tätigen oder auf eine Werbung. Weitere Informationen finden Sie in der Dokumentation zum Ansehen von Kursen.
- 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, wird die Ansicht nicht berührt werden, wenn ein Toast, ein Dialogfeld oder ein anderes Fenster angezeigt wird. Weitere Informationen finden Sie unter Sicherheit ansehen finden Sie in der Dokumentation.
Beispielcode für den Touch-Filter finden Sie in der Beispielanwendung ApiDemos unter SecureView.java.
- Verbesserte Ereignisverwaltung
- Neue Basisklasse für Eingabeereignisse:
InputEvent
. Die Klasse Methoden, mit denen Anwendungen die Bedeutung eines Ereignisses bestimmen können, wie z. B. durch Abfrage des InputDevice, von dem das Ereignis stammt.KeyEvent
undMotionEvent
sind Unterklassen vonInputEvent
. - Neue Basisklasse für Eingabegeräte,
InputDevice
. Die Klasse speichert Informationen zu den Funktionen eines bestimmten Eingabegeräts und bietet Methoden, mit denen Anwendungen festlegen können, wie Ereignisse von einem Eingabegerät interpretiert werden sollen.
- Neue Basisklasse für Eingabeereignisse:
- Verbesserte Bewegungsereignisse
- Die
MotionEvent
API wurde um Informationen zur „Cursor-ID“ erweitert, mit denen Anwendungen einzelne Finger verfolgen können, wenn sie sich nach oben und unten bewegen. Die Klasse bietet eine Vielzahl von Methoden, mit denen eine Anwendung effizient mit Bewegungsereignissen arbeiten kann. - Das Eingabesystem hat jetzt eine Logik, mit der Bewegungsereignisse mit den neuen Informationen zur Zeiger-ID generiert werden. Dabei werden IDs synthetisiert, wenn neue Zeiger nicht mehr vorhanden sind. Die mehrere Zeiger-IDs separat während eines Bewegungsereignisses erfasst. stellt die korrekte Kontinuität der Zeiger sicher, indem sie anhand der Distanz bewertet wird. zwischen dem letzten und dem nächsten Satz von Zeigern.
- Die
- Steuerelemente für die Textauswahl
- Mit einer neuen
setComposingRegion
-Methode kann eine Anwendung einen Textbereich als eingegebenen Text markieren und dabei das aktuelle Styling beibehalten. A Die MethodegetSelectedText
gibt den ausgewählten Text an den . Die Methoden sind inBaseInputConnection
,InputConnection
undInputConnectionWrapper
verfügbar. - Neue
textSelectHandle
-,textSelectHandleLeft
-,textSelectHandleRight
- undtextSelectHandleWindowStyle
-Attribute für<TextView>
, um auf Drawables zu verweisen, die zum Darstellen von Ankern für die Textauswahl und zum Stil des enthaltenden Fensters verwendet werden.
- Mit einer neuen
- Aktivitätseinstellungen
- Mit
ActivityInfo
werden neue Konstanten zum Verwalten der Aktivitätsausrichtung hinzugefügt: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 wäre eine App, die Hintergrundmusik abspielt. - Die Methode „Activity.setPersistent(boolean)“, mit der eine Aktivität als persistent markiert werden kann, ist jetzt veraltet und die Implementierung ist wirkungslos.
- Mit
- Benachrichtigungstext und -symbolstile
- Neue
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
undTextAppearance.StatusBar.Title
zum Verwalten Benachrichtigungsstil.
- Neue
- Es werden die verbleibenden OpenGL ES 2.0-Methoden hinzugefügt:
glDrawElements()
undglVertexAttribPointer()
in der Klasseandroid.opengl.GLES20
. - Unterstützung für das Pixelformat
YV12
, ein planares 4:2:0-YCrCb-Format. - Neue
AlarmClock
-Anbieterklasse zum Stellen eines Weckers oder den Umgang mit einem Alarm. Der Anbieter enthält einenACTION_SET_ALARM
-Intent und Extras, mit denen eine Aktivität gestartet werden kann, um in einem Wecker-App. Apps, die dieSET_ALARM
Der Intent sollte eine Aktivität erstellen, für die Folgendes erforderlich ist: die Berechtigung SET_ALARM. Anwendungen, die eine neue Der Alarm sollteContext.startActivity()
verwenden, damit der Nutzer die Möglichkeit hat, welche Wecker-App verwendet werden soll. MediaStore
unterstützt eine neue Intent-Aktion,PLAY_FROM_SEARCH
, mit der eine Anwendung nach Musikmedien suchen und Inhalte aus dem Ergebnis nach Möglichkeit automatisch abspielen kann. Beispiel: Anwendung könnte diesen Intent als Ergebnis eines Spracherkennungsbefehls auslösen. Musik zu hören.MediaStore
fügt außerdem ein neuesMEDIA_IGNORE_FILENAME
-Flag hinzu, das den Medien Scanner, um Medien im enthaltenen Verzeichnis und seinen Unterverzeichnissen zu ignorieren. So können Entwickler verhindern, dass Grafiken in der Galerie angezeigt werden, und auch verhindern, dass App-Töne und -Musik in der Musik-App erscheinen.- Der Anbieter „
Settings
“ fügt die neuen Aktivitätsaktionen hinzuAPPLICATION_DETAILS_SETTINGS
undMANAGE_ALL_APPLICATIONS_SETTINGS
, mit denen eine Anwendung die Details anzeigen kann für eine bestimmte Anwendung oder rufen Sie den Bildschirm "Apps verwalten" auf. - Der Anbieter
ContactsContract
fügt die DatentypenContactsContract.CommonDataKinds.SipAddress
für Speichern der SIP-Adresse (Internet Telephony) eines Kontakts. LocationManager
verfolgt nun die Anwendung die zu Wakelocks oder WLAN-Locks führen,WorkSource
, eine vom System verwaltete Klasse, die die .Mit
LocationManager
behältst du den Überblick alle Kunden, die regelmäßige Updates anfordern, und informiert ihre Anbieter alsWorkSource
-Parameter angeben, wenn Sie Aktualisierungszeiten. Der Anbieter des Netzwerkstandorts verwendetWorkSource
, um die von einer App initiierten Sperrungen für Aktivierung und WLAN zu erfassen und der Akkunutzung der App hinzuzufügen, die im Bereich „Apps verwalten“ erfasst wird.- Mit der
LocationManager
werden mehrere neue Methoden hinzugefügt, kann eine Aktivität registriert werden, um regelmäßige oder einmalige Standortaktualisierungen für bestimmte Kriterien (siehe unten). - Mit einer neuen
Criteria
-Klasse kann eine Anwendung eine Reihe von Kriterien für die Auswahl eines Standortanbieters angeben. Anbieter können beispielsweise sortiert nach Genauigkeit, Energieverbrauch, Höhe, Geschwindigkeit, und Lagerung sowie die monetären Kosten. - Android 2.3 enthält eine neue
StorageManager
, die OBB-Dateien (Opaque Binary Blob) unterstützt. Obwohl die Plattformunterstützung für OBB Verfügbar in Android 2.3, Entwicklungstools zum Erstellen und Verwalten von OBB-Dateien werden erst Anfang 2011 verfügbar sein. - Die Android 2.3-Plattform bietet offizielle Unterstützung für Geräte, die keine
SD-Karten enthalten (obwohl es eine Partition für virtuelle SD-Karten bietet, 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. Eine Liste finden Sie unten im Abschnitt Konstanten für neue Funktionen.
- Mit
PackageInfo
werden die neuen FelderfirstInstallTime
undlastUpdateTime
hinzugefügt, in denen die Zeit der Paketinstallation und der letzten Aktualisierung gespeichert werden. - Neue
getProviderInfo()
-Methode zum Abrufen aller bekannten Informationen zu einer bestimmten Contentanbieterklasse. - Mit
TelephonyManager
wird die KonstanteNETWORK_TYPE_EVDO_B
hinzugefügt, um den CDMA-EVDO Rev B-Netzwerktyp anzugeben. - Die neue
getPsc()
-Methode gibt den primären Scrambling-Code der Basisstation in einem UMTS-Netzwerk zurück. NativeActivity
ist eine neue Art von Activity-Klasse, mit der Lebenszyklus-Callbacks werden direkt im nativen Code implementiert. EineNativeActivity
und der zugrunde liegende native Code werden im System ausgeführt, genau wie andere Aktivitäten. Sie werden im Systemprozess der Android-Anwendung und im Haupt-UI-Thread der Anwendung ausgeführt und erhalten dieselben Lebenszyklus-Callbacks wie andere Aktivitäten.- Mit der neuen
InputQueue
-Klasse und Callback-Oberfläche kann nativer Code die Ereignisabfolge verwalten. - Mit der neuen
SurfaceHolder.Callback2
-Oberfläche können Sie nativen Code einSurfaceHolder
verwalten. - Mit den neuen
takeInputQueue
- undtakeSurface()
-Methoden inWindow
können Ereignisse und Oberflächen in nativem Code verwaltet werden. dalvik.system
entfernt mehrere Klassen, die zuvor eingestellt wurden.- Dalvik-Kernbibliotheken:
- Neue Sammlungen:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Neue
Arrays
-Dienstprogramme:binarySearch()
,copyOf()
,copyOfRange()
und andere CookieManager
fürHttpURLConnection
.- Umfassendere Netzwerk-APIs:
InterfaceAddress
,NetworkInterface
undIDN
File
Lese- und SchreibsteuerungenString.isEmpty()
Normalizer
undNormalizer.Form
- Verbesserte
javax.net.ssl
-Server-Sockets.
- Neue Sammlungen:
- Neues
xlargeScreens
-Attribut für<supports-screens>
-Element, um anzugeben, ob die Anwendung Formfaktoren für extragroße Bildschirme. Weitere Informationen finden Sie unter Mehrere Bildschirme unterstützen. - Neue Werte für das
android:screenOrientation
-Attribut des<activity>
-Elements:"reverseLandscape"
: Für die Aktivität sollte der Bildschirm im Querformat angezeigt werden, also entgegengesetzt zum normalen Querformat."reversePortrait"
: Die Aktivität benötigt die Bildschirm im Hochformat, entgegen der normalen Richtung gedreht Porträt."sensorLandscape"
: Für die Aktivität sollte der Bildschirm im Querformat sein, aber der Sensor kann verwendet werden, um die Ausrichtung des Displays zu ändern."sensorPortrait"
: Die Aktivität benötigt die im Hochformat angezeigt wird, kann aber mithilfe des Sensors die Richtung das Display zeigt."fullSensor"
: Die Ausrichtung wird durch einen physischen Ausrichtungssensor bestimmt. Das Display dreht sich je nachdem, wie der Nutzer das Gerät bewegt. So ist jede der vier möglichen Drehungen möglich, unabhängig davon, was das Gerät normalerweise tut. Bei einigen Geräten wird beispielsweise normalerweise keine 180-Grad-Drehung verwendet.
com.android.permission.SET_ALARM
: Ermöglicht einer App, einen Intent zu senden, um einen Wecker für den Nutzer einzustellen. Eine Aktivität, bei der Intent-AktionSET_ALARM
benötigen Sie diese Berechtigung.android.permission.USE_SIP
: Ermöglicht es einer App, überSIP API
Internetanrufe zu starten oder zu empfangen.android.permission.NFC
: Ermöglicht einer App, dieNFC API
, um NFC-Tags zu lesen.android.hardware.audio.low_latency
: Die Anwendung verwendet eine niedrige Latenz Audiopipeline auf dem Gerät und reagiert empfindlich auf Verzögerungen bei der Schalleingabe .android.hardware.camera.front
: Die Anwendung verwendet die Frontkamera des Geräts.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 App 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 Multitouch-Funktionen auf dem Display des Geräts, um fünf oder mehr Punkte unabhängig voneinander zu verfolgen.
Übergroße Bildschirme
Die Plattform unterstützt jetzt besonders große Bildschirmgrößen, wie sie auf Tablets zu finden sind. Entwickler können angeben, dass ihre Apps
zur Unterstützung sehr großer Bildschirmgrößen entwickelt, indem dem Manifest ein <supports
screens ... android:xlargeScreens="true">
-Element hinzugefügt wird
-Dateien. Mit dem neuen Ressourcenqualifizierer xlarge
können Entwickler Ressourcen taggen, die speziell für extra große Bildschirme gedacht sind. Für
Details zur Unterstützung extragroßer und anderer Bildschirmgrößen finden Sie unter Unterstützung mehrerer
Bildschirme:
Grafik
Contentanbieter
Standort
Speicher
Paketmanager
Telefonie
Nativer Zugriff auf den Aktivitätslebenszyklus, Fenster
Android 2.3 stellt eine breite Palette von APIs für Anwendungen zur Verfügung, die native Code. Für solche Anwendungen relevante Framework-Klassen:
Ausführliche Informationen zur Arbeit mit nativem Code oder zum Herunterladen des NDK finden Sie auf der Seite Android NDK.
Dalvik-Laufzeit
Neue Manifest-Elemente und -Attribute
Neue Berechtigungen
Neue Funktionskonstanten
Die Plattform bietet mehrere neue Hardwarefunktionen, die Entwickler in ihren Anwendungsmanifesten als für ihre Anwendungen erforderlich deklarieren können. Dieses können Entwickler festlegen, wie ihre Anwendung gefiltert wird, wenn sie auf Google Play
Ausführliche Informationen zum Deklarieren von Funktionen und deren Verwendung zum Filtern finden Sie in der Dokumentation zu <uses-feature>
.
Bericht zu API-Unterschieden
Eine detaillierte Ansicht aller API-Änderungen unter Android 2.3 (API) Level 9) finden Sie in der API Bericht zu Unterschieden
API-Ebene
Die Android 2.3-Plattform bietet eine aktualisierte Version der Framework-API. Der Android 2.3 API wird eine Ganzzahl-ID zugewiesen, die 9 lautet und 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.
Um in Ihrer App APIs zu verwenden, die in Android 2.3 eingeführt wurden,
müssen Sie die Anwendung anhand der Android-Bibliothek kompilieren, die im
der Android 2.3 SDK-Plattform. Je nach Ihren Anforderungen können Sie
muss auch ein android:minSdkVersion="9"
-Element
<uses-sdk>
-Element im Feld
Manifests. Wenn Ihre Anwendung nur für Android 2.3 und höher entwickelt wurde, wird durch die Deklaration des Attributs verhindert, dass die Anwendung auf früheren Versionen der Plattform installiert wird.
Weitere Informationen finden Sie unter Was ist die API-Ebene?