Livello API: 9
Per gli sviluppatori, la piattaforma Android 2.3 (GINGERBREAD
) è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include una libreria Android e un'immagine di sistema, oltre a un set di skin per emulatori e altro ancora. Per iniziare a sviluppare o testare la versione di Android 2.3, utilizza Android SDK Manager per scaricare la piattaforma nel tuo SDK.
Panoramica dell'API
Le sezioni seguenti forniscono una panoramica tecnica delle novità per gli sviluppatori della versione 2.3, incluse le nuove funzionalità e le modifiche dell'API framework rispetto alla versione precedente.
VoIP basato su SIP
La piattaforma ora include uno stack di protocollo SIP e un'API framework che consente agli sviluppatori di creare applicazioni di telefonia internet. Utilizzando l'API, le applicazioni possono offrire funzionalità di chiamata vocale senza dover gestire sessioni, comunicazione a livello di trasporto o audio. Queste vengono gestite in modo trasparente dall'API SIP e dai servizi della piattaforma.
L'API SIP è disponibile nel pacchetto android.net.sip
. La classe della chiave è SipManager
, che le applicazioni utilizzano per configurare e gestire i profili SIP, quindi avviare e ricevere chiamate audio. Dopo aver stabilito una chiamata audio, le applicazioni possono disattivare l'audio delle chiamate,
attivare la modalità altoparlante, inviare toni DTMF e altro ancora. Le applicazioni possono anche utilizzare SipManager
per creare connessioni SIP generiche.
Lo stack e i servizi SIP sottostanti della piattaforma sono disponibili sui dispositivi a
discrezionalità del produttore e dell'operatore associato. Per questo motivo, prima di mostrare la funzionalità di chiamata agli utenti, le applicazioni devono utilizzare il metodo isApiSupported()
per verificare se è disponibile il supporto SIP.
Per utilizzare l'API SIP, le applicazioni devono richiedere l'autorizzazione all'utente
dichiarando <uses-permission
android:name="android.permission.INTERNET">
e <uses-permission
android:name="android.permission.USE_SIP">
nei file manifest.
Inoltre, gli sviluppatori possono richiedere filtri su Google Play, in modo che le loro applicazioni non siano rilevabili per gli utenti i cui dispositivi non includono lo stack e i servizi SIP della piattaforma. Per richiedere l'applicazione di filtri, aggiungi <uses-feature
android:name="android.software.sip"
android:required="true">
e <uses-feature
android:name="android.software.sip.voip">
al manifest dell'applicazione.
Per ulteriori informazioni, leggi la guida per gli sviluppatori SIP.
Near Field Communication (NFC)
Android 2.3 include uno stack NFC e un'API framework che consentono agli sviluppatori di leggere i tag NDEF rilevati quando un utente tocca un dispositivo con supporto NFC per taggare elementi incorporati in adesivi, poster intelligenti e persino altri dispositivi.
La piattaforma fornisce i servizi NFC sottostanti che funzionano con l'hardware del dispositivo per rilevare i tag quando entrano nel raggio d'azione. Al rilevamento di un tag, la piattaforma notifica le applicazioni trasmettendo un intent, aggiungendo i messaggi NDEF del tag all'intent come extra. Le applicazioni possono creare filtri di intent per riconoscere e gestire i tag e i messaggi scelti come target. Ad esempio, dopo aver ricevuto un tag da Intent, le applicazioni estraggono i messaggi NDEF, li archiviano, avvisano l'utente o li gestiscono in altri modi.
L'API NFC è disponibile nel pacchetto android.nfc
. Le classi chiave sono:
NfcAdapter
, che rappresenta l'hardware NFC del dispositivo.NdefMessage
, che rappresenta un messaggio di dati NDEF, il formato standard in cui vengono trasmessi "record" per la trasmissione di dati tra dispositivi e tag. Le applicazioni possono ricevere questi messaggi dagli intentACTION_TAG_DISCOVERED
.NdefRecord
, inviato in unNdefMessage
, che descrive il tipo di dati condivisi e porta i dati stessi.
La comunicazione NFC si basa sulla tecnologia wireless nell'hardware del dispositivo, pertanto il supporto delle funzionalità NFC della piattaforma su dispositivi specifici dipende dai relativi produttori. Per determinare il supporto NFC sul dispositivo corrente, le applicazioni possono chiamare isEnabled()
per eseguire query su NfcAdapter
. Tuttavia, l'API NFC è sempre presente, indipendentemente dal supporto hardware sottostante.
Per utilizzare l'API NFC, le applicazioni devono richiedere l'autorizzazione all'utente
dichiarando <uses-permission
android:name="android.permission.NFC">
nei file manifest.
Inoltre, gli sviluppatori possono richiedere filtri su Google Play in modo che le loro applicazioni non siano rilevabili per gli utenti i cui dispositivi non supportano NFC. Per richiedere l'applicazione di filtri, aggiungi
<uses-feature android:name="android.hardware.nfc"
android:required="true">
al manifest dell'applicazione.
Per vedere un'applicazione di esempio che utilizza l'API NFC, vedi NFCDemo.
Giroscopio e altri sensori
Android 2.3 aggiunge il supporto della piattaforma e dell'API per diversi nuovi tipi di lettura del sensore: giroscopio, vettore di rotazione, accelerazione lineare, gravità e barometro. Gli sviluppatori possono usare le nuove letture dei sensori per creare applicazioni che rispondono in modo rapido e fluido a cambiamenti precisi di posizione e movimento del dispositivo. L'API Sensor segnala le modifiche al giroscopio e ad altri sensori alle applicazioni interessate, indipendentemente dal fatto che siano in esecuzione nel framework dell'applicazione o nel codice nativo.
Tieni presente che l'insieme specifico di sensori hardware disponibili su un determinato dispositivo varia a discrezione del produttore del dispositivo.
Gli sviluppatori possono richiedere filtri su Google Play in modo che le loro applicazioni non siano rilevabili per gli utenti i cui dispositivi non offrono un sensore giroscopio. Per farlo, aggiungi <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
al manifest dell'applicazione.
Per i dettagli sull'API, consulta Sensor
.
Supporto di più fotocamere
Le applicazioni ora possono utilizzare qualsiasi fotocamera disponibile su un dispositivo, per l'acquisizione di foto o video. L'Camera
consente alle applicazioni di interrogare il numero di videocamere disponibili e le caratteristiche univoche di ognuna.
- La nuova classe
Camera.CameraInfo
memorizza le caratteristiche di posizione di una fotocamera (orientamento, fronte o retro). - I nuovi metodi
getNumberOfCameras()
egetCameraInfo()
nella classeCamera
consentono alle applicazioni di eseguire query relative alle videocamere disponibili e di aprire la fotocamera di cui hanno bisogno. - Il nuovo metodo
get()
consente alle applicazioni di recuperare unCamcorderProfile
per una videocamera specifica. - Il nuovo
getJpegEncodingQualityParameter()
consente alle applicazioni di ottenere il livello di qualità dell'acquisizione di immagini fisse per una videocamera specifica.
Per esaminare il codice di esempio per accedere a una fotocamera anteriore, vedi FotocameraPreview.java nell'applicazione di esempio ApiDemos.
L'API Camera aggiunge anche:
- Nuovi parametri per le fotocamere, tra cui distanza di messa a fuoco, modalità di messa a fuoco e anteprima massima/minima di f/s. Nuovi
getFocusDistances()
,getPreviewFpsRange()
egetSupportedPreviewFpsRange()
per ottenere i parametri della fotocamera, nonchésetPreviewFpsRange()
per impostare la frequenza fotogrammi di anteprima.
Effetti audio combinabili
Il framework multimediale della piattaforma aggiunge il supporto per nuovi effetti audio per traccia o globali, tra cui bassi più intensi, virtualizzazione delle cuffie, equalizzazione e riverbero.
- Il nuovo pacchetto
android.media.audiofx
fornisce l'API per accedere agli effetti audio. - Il nuovo
AudioEffect
è la classe base per il controllo degli effetti audio forniti dal framework audio di Android. - Nuovo ID sessione audio che consente a un'applicazione di associare un insieme di effetti
audio a un'istanza di
AudioTrack
oMediaPlayer
. - Nuovo costruttore della classe
AudioTrack
che consente di creare unAudioTrack
con un ID sessione specifico. Nuovi metodiattachAuxEffect()
,getAudioSessionId()
esetAuxEffectSendLevel()
. - Nuovi metodi e tipi di supporto per
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
esetAuxEffectSendLevel()
.
Per esaminare il codice di esempio per gli effetti audio, consulta AudioFxDemo.java nell'applicazione di esempio ApiDemos.
Il framework multimediale aggiunge anche:
- Nuovo supporto del tag di altitudine nei metadati EXIF per i file JPEG. Nuovo metodo
getAltitude()
per recuperare il valore del tag di altitudine EXIF. - Il nuovo metodo
setOrientationHint()
consente a un'applicazione di indicare aMediaRecorder
l'orientamento durante l'acquisizione video.
Gestione dei download
La piattaforma include un nuovo servizio di sistema DownloadManager
che gestisce i download HTTP a lunga esecuzione. Le applicazioni possono richiedere il download
di un URI in un particolare file di destinazione. DownloadManager
eseguirà il download in background, occupandosi delle interazioni HTTP e riprovando i download dopo errori o tra le modifiche alla connettività e i riavvii del sistema.
- Le applicazioni possono ottenere un'istanza della classe
DownloadManager
chiamandogetSystemService(String)
e passandoDOWNLOAD_SERVICE
. Le applicazioni che richiedono download tramite questa API devono registrare un ricevitore di trasmissione perACTION_NOTIFICATION_CLICKED
al fine di gestire correttamente i clic dell'utente su un download in esecuzione in una notifica o dall'interfaccia utente Download. - La classe
DownloadManager.Request
consente a un'applicazione di fornire tutte le informazioni necessarie per richiedere un nuovo download, ad esempio l'URI della richiesta e la destinazione del download. L'unico parametro obbligatorio è l'URI della richiesta. Tieni presente che la destinazione di download predefinita è un volume condiviso in cui il sistema può eliminare il file se ha bisogno di recuperare spazio per l'utilizzo da parte del sistema. Per l'archiviazione permanente di un download, specifica una destinazione di download sull'unità di archiviazione esterna (vedisetDestinationUri(Uri)
). - La classe
DownloadManager.Query
fornisce metodi che consentono a un'applicazione di eseguire query e filtrare i download attivi.
Modalità rigorosa
Per aiutare gli sviluppatori a monitorare e migliorare le prestazioni delle loro applicazioni, la piattaforma offre una nuova struttura di sistema chiamata StrictMode
.
Quando viene implementato in un'applicazione, StrictMode rileva e avvisa lo sviluppatore di attività accidentali sul disco o di rete che potrebbero ridurre le prestazioni dell'applicazione, ad esempio l'attività che si svolge sul thread principale dell'applicazione (dove vengono ricevute le operazioni dell'interfaccia utente e vengono eseguite anche animazioni).
Gli sviluppatori possono valutare i problemi relativi all'utilizzo della rete e del disco sollevati in StrictMode e, se necessario, correggerli, mantenendo il thread principale più reattivo e impedendo la visualizzazione delle finestre di dialogo ANR agli utenti.
StrictMode
è la classe principale ed è il punto di integrazione principale con il sistema e la VM. La classe fornisce pratici metodi per gestire i criteri thread e VM che si applicano all'istanza.StrictMode.ThreadPolicy
eStrictMode.VmPolicy
contengono i criteri che definisci e applichi ai thread e alle istanze VM.
Per ulteriori informazioni su come utilizzare StrictMode per ottimizzare la tua applicazione, consulta la documentazione della classe e il codice di esempio all'indirizzo android.os.StrictMode
.
Framework UI
- Supporto per lo scorrimento orizzontale
- Nuovo supporto per l'overscroll in Visualizzazioni e Widget. In Viste, le applicazioni possono abilitare/disabilitare l'overscroll per una determinata vista, impostare la modalità di overscoll, controllare la distanza di scorrimento orizzontale e gestire i risultati dell'overscroll.
- Nei widget, le applicazioni possono controllare le caratteristiche di overscroll, come
animazione, springback e overscroll distanza. Per ulteriori informazioni, vedi
android.view.View
eandroid.widget.OverScroller
. ViewConfiguration
fornisce anche i metodigetScaledOverflingDistance()
egetScaledOverscrollDistance()
.- Nuovi attributi
overScrollMode
,overScrollFooter
eoverScrollHeader
per gli elementi<ListView>
, per controllare il comportamento dello scorrimento.
- Supporto per il filtro al tocco
- Nuovo supporto per i filtri touch, che consente a un'applicazione di migliorare la sicurezza delle viste che forniscono l'accesso a funzionalità sensibili. Ad esempio, il filtro touch è appropriato per garantire la sicurezza delle azioni degli utenti, come la concessione di una richiesta di autorizzazione, un acquisto o il clic su un annuncio. Per maggiori dettagli, consulta la documentazione del corso.
- Il nuovo attributo
filterTouchesWhenObscured
per gli elementi della vista indica se filtrare gli tocchi quando la finestra della vista è oscurata da un'altra finestra visibile. Se è impostata su"true"
, la visualizzazione non riceverà tocchi ogni volta che appare un toast, una finestra di dialogo o un'altra finestra sopra la finestra della visualizzazione. Per maggiori dettagli, consulta Visualizzare la documentazione sulla sicurezza.
Per esaminare il codice di esempio per il filtro al tocco, vedi SecureView.java nell'applicazione di esempio ApiDemos.
- Gestione degli eventi migliorata
- Nuova classe base per gli eventi di input,
InputEvent
. La classe fornisce metodi che consentono alle applicazioni di determinare il significato dell'evento, ad esempio eseguendo una query per InputDevice da cui ha avuto origine l'evento.KeyEvent
eMotionEvent
sono sottoclassi diInputEvent
. - Nuova classe base per i dispositivi di input,
InputDevice
. La classe memorizza le informazioni sulle funzionalità di un particolare dispositivo di input e fornisce metodi che consentono alle applicazioni di determinare come interpretare gli eventi da un dispositivo di input.
- Nuova classe base per gli eventi di input,
- Eventi di movimento migliorati.
- L'API
MotionEvent
è estesa per includere informazioni "ID puntatore", che consentono alle applicazioni di tenere traccia delle singole dita mentre si spostano su e giù. Durante il corso sono stati aggiunti vari metodi per consentire a un'applicazione di funzionare in modo efficiente. - Il sistema di input ora dispone di una logica per generare eventi di movimento con le nuove informazioni sull'ID puntatore, sintetizzando gli identificatori quando i nuovi puntatori sono abbassati. Il sistema tiene traccia di più ID puntatori separatamente durante un evento di movimento e garantisce la continuità dei puntatori valutando la distanza tra l'ultimo e il successivo insieme di puntatori.
- L'API
- Controlli per la selezione del testo
- Un nuovo metodo
setComposingRegion
consente a un'applicazione di contrassegnare un'area di testo come composizione del testo, mantenendo lo stile corrente. Un metodogetSelectedText
restituisce il testo selezionato all'applicazione. I metodi sono disponibili inBaseInputConnection
,InputConnection
eInputConnectionWrapper
. - Nuovi attributi
textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
etextSelectHandleWindowStyle
per<TextView>
, per fare riferimento ai disegnabili che verranno utilizzati per visualizzare gli ancoraggi per la selezione del testo e lo stile per la finestra contenitore.
- Un nuovo metodo
- Gestione attività
ActivityInfo
aggiunge nuove costanti per la gestione dell'orientamento dell'attività:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
eSCREEN_ORIENTATION_SENSOR_PORTRAIT
.- Nuova costante
IMPORTANCE_PERCEPTIBLE
per il campoimportance
inActivityManager.RunningAppProcessInfo
. Il valore indica che un processo specifico esegue qualcosa che è considerato attivamente percepibile dall'utente. Un esempio potrebbe essere un'applicazione che esegue la riproduzione di musica di sottofondo. - Il metodo Activity.setPersistent(boolean) per contrassegnare un'attività come permanente è ora deprecato e l'implementazione è autonoma.
- Stili di testo e icone delle notifiche
- Nuovi
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
eTextAppearance.StatusBar.Title
per gestire lo stile delle notifiche.
- Nuovi
- Aggiunge i restanti metodi OpenGL ES 2.0
glDrawElements()
eglVertexAttribPointer()
nella classeandroid.opengl.GLES20
. - Aggiunge il supporto per il formato pixel
YV12
, un formato YCrCb planare 4:2:0. - Nuova classe provider
AlarmClock
per impostare una sveglia o gestire una sveglia. Il provider contiene un'azione di intentACTION_SET_ALARM
e extra che possono essere utilizzati per avviare un'attività per impostare una nuova sveglia in un'applicazione sveglia. Le applicazioni che vogliono ricevere l'intentSET_ALARM
devono creare un'attività che richiede l'autorizzazione SET_ALARM. Le applicazioni che desiderano creare una nuova sveglia devono utilizzareContext.startActivity()
, per consentire all'utente di scegliere l'applicazione sveglia da utilizzare. MediaStore
supporta una nuova azione dell'intent,PLAY_FROM_SEARCH
, che consente a un'applicazione di cercare contenuti multimediali musicali e, se possibile, di riprodurre automaticamente i contenuti dal risultato. Ad esempio, un'applicazione potrebbe attivare questo intent in seguito a un comando di riconoscimento vocale per ascoltare musica.MediaStore
aggiunge anche un nuovo flagMEDIA_IGNORE_FILENAME
che indica allo scanner multimediale di ignorare i contenuti multimediali nella directory contenitore e nelle relative sottodirectory. Gli sviluppatori possono usare questa opzione per evitare che nella Galleria appaiano elementi grafici e che anche i suoni e la musica delle applicazioni vengano visualizzati nell'app Music.- Il provider
Settings
aggiunge le nuove azioni AttivitàAPPLICATION_DETAILS_SETTINGS
eMANAGE_ALL_APPLICATIONS_SETTINGS
, che consentono a un'applicazione di mostrare la schermata dei dettagli di un'applicazione specifica o la schermata Gestisci applicazioni. - Il provider
ContactsContract
aggiunge il tipo di datiContactsContract.CommonDataKinds.SipAddress
per memorizzare l'indirizzo SIP (telefonia internet) di un contatto. - L'
LocationManager
ora tiene traccia delle richieste delle applicazioni che comportano wakelock o blocchi Wi-Fi in base aWorkSource
, una classe gestita dal sistema che identifica l'applicazione.LocationManager
tiene traccia di tutti i client che richiedono aggiornamenti periodici e ne informa i provider come parametroWorkSource
quando impostano i tempi minimi di aggiornamento. Il provider di geolocalizzazione della rete utilizzaWorkSource
per monitorare i blocchi di riattivazione e Wi-Fi avviati da un'applicazione e li aggiunge all'utilizzo della batteria dell'applicazione segnalato in Gestisci applicazioni. - L'
LocationManager
aggiunge diversi nuovi metodi che consentono alla registrazione di un'attività di ricevere aggiornamenti della posizione periodici o una tantum in base a criteri specificati (vedi di seguito). - Una nuova classe
Criteria
consente a un'applicazione di specificare un insieme di criteri per la selezione di un fornitore di località. Ad esempio, i provider possono essere ordinati in base a accuratezza, consumo energetico, capacità di segnalare altitudine, velocità e rilevamento, nonché in base a costi monetari. - Android 2.3 aggiunge un nuovo elemento
StorageManager
che supporta i file OBB (Opaque Binary Blob). Sebbene il supporto della piattaforma per OBB sia disponibile in Android 2.3, gli strumenti di sviluppo per la creazione e la gestione dei file OBB non saranno disponibili fino all'inizio del 2011. - La piattaforma Android 2.3 aggiunge il supporto ufficiale per i dispositivi che non includono schede SD (anche se fornisce la partizione virtuale per schede SD, quando non sono disponibili schede SD fisiche). Un metodo di convenienza,
isExternalStorageRemovable()
, consente alle applicazioni di determinare se è presente una scheda SD fisica. - Nuove costanti per la dichiarazione di funzionalità hardware e software. Consulta l'elenco nella sezione Nuove costanti funzionalità, di seguito.
PackageInfo
aggiunge nuovi campifirstInstallTime
elastUpdateTime
in cui è archiviata l'ora dell'installazione del pacchetto e dell'ultimo aggiornamento.- Nuovo metodo
getProviderInfo()
per recuperare tutte le informazioni note su una determinata classe di provider di contenuti. TelephonyManager
aggiunge la costanteNETWORK_TYPE_EVDO_B
per specificare il tipo di rete CDMA EVDO Rev B.- Il nuovo metodo
getPsc()
restituisce il codice di scrambling principale della cella di pubblicazione su una rete UMTS. NativeActivity
è un nuovo tipo di classe di attività, i cui callback del ciclo di vita sono implementati direttamente nel codice nativo. Un elementoNativeActivity
e il codice nativo sottostante vengono eseguiti nel sistema come altre attività, in particolare nel processo di sistema dell'applicazione Android, vengono eseguiti nel thread dell'interfaccia utente principale dell'applicazione e ricevono gli stessi callback del ciclo di vita delle altre attività.- La nuova classe
InputQueue
e l'interfaccia di callback consentono di gestire le code di eventi tramite codice nativo. - La nuova interfaccia di
SurfaceHolder.Callback2
consente al codice nativo di gestire un elementoSurfaceHolder
. - I nuovi metodi
takeInputQueue
etakeSurface()
inWindow
consentono al codice nativo di gestire eventi e piattaforme. dalvik.system
rimuove diversi corsi che erano stati ritirati in precedenza.- Librerie di base Dalvik:
- Nuove raccolte:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Nuove utilità di
Arrays
:binarySearch()
,copyOf()
,copyOfRange()
e altre. CookieManager
perHttpURLConnection
.- API di rete più complete:
InterfaceAddress
,NetworkInterface
eIDN
File
controlli di lettura e scritturaString.isEmpty()
Normalizer
eNormalizer.Form
- Miglioramento dei socket del server
javax.net.ssl
.
- Nuove raccolte:
- Nuovo attributo
xlargeScreens
per l'elemento<supports-screens>
, per indicare se l'applicazione supporta fattori di forma dello schermo molto grandi. Per i dettagli, consulta la sezione Supporto di più schermi. - Nuovi valori per l'attributo
android:screenOrientation
dell'elemento<activity>
:"reverseLandscape"
- L'Attività desidera avere lo schermo in orientamento orizzontale, ruotato nella direzione opposta rispetto al normale."reversePortrait"
- L'Attività desidera avere lo schermo con orientamento verticale, ruotato nella direzione opposta rispetto al normale."sensorLandscape"
- L'Attività vorrebbe avere lo schermo con orientamento orizzontale, ma può utilizzare il sensore per cambiare la direzione in cui è rivolto lo schermo."sensorPortrait"
- L'Attività vorrebbe avere lo schermo con orientamento verticale, ma può utilizzare il sensore per cambiare la direzione dello schermo."fullSensor"
: l'orientamento è determinato da un sensore di orientamento fisico: il display ruoterà in base al modo in cui l'utente muove il dispositivo. Ciò consente una qualsiasi delle 4 rotazioni possibili, indipendentemente da ciò che farà normalmente il dispositivo (ad esempio, alcuni dispositivi normalmente non utilizzano la rotazione di 180 gradi).
com.android.permission.SET_ALARM
: consente a un'applicazione di trasmettere un intent per impostare una sveglia per l'utente. Un'attività che gestisce l'azioneSET_ALARM
dell'intent deve richiedere questa autorizzazione.android.permission.USE_SIP
: consente a un'applicazione di utilizzareSIP API
per effettuare o ricevere chiamate Internet.android.permission.NFC
: consente a un'applicazione di usare ilNFC API
per leggere i tag NFC.android.hardware.audio.low_latency
: l'applicazione utilizza una pipeline audio a bassa latenza sul dispositivo ed è sensibile a ritardi o ritardi nell'input o nell'output dell'audio.android.hardware.camera.front
: l'applicazione utilizza una fotocamera frontale del dispositivo.android.hardware.nfc
: l'applicazione utilizza le funzionalità radio NFC del dispositivo.android.hardware.sensor.barometer
: l'applicazione utilizza il barometro del dispositivo.android.hardware.sensor.gyroscope
: l'applicazione utilizza il sensore del giroscopio del dispositivo.android.software.sip
: l'applicazione utilizza l'API SIP sul dispositivoandroid.software.sip.voip
: l'applicazione utilizza un servizio VoIP basato su SIP sul dispositivo.android.hardware.touchscreen.multitouch.jazzhand
: l'applicazione usa funzionalità multitouch avanzate sullo schermo del dispositivo, per rilevare cinque o più punti in modo indipendente.
Schermi extra large
La piattaforma ora supporta schermi di dimensioni molto grandi, come quelli che potrebbero essere presenti sui tablet. Gli sviluppatori possono indicare che le loro applicazioni sono progettate per supportare schermi di dimensioni molto grandi aggiungendo un elemento <supports
screens ... android:xlargeScreens="true">
ai file manifest. Le applicazioni possono utilizzare un nuovo qualificatore delle risorse, xlarge
, per codificare le risorse specifiche per schermi molto grandi. Per maggiori dettagli su come supportare schermi di dimensioni molto grandi e altre dimensioni, consulta Supporto di più schermi.
Grafica
Fornitori di contenuti
Posizione
Spazio di archiviazione
Gestione pacchetti
Telefonia
Accesso nativo al ciclo di vita delle attività, finestre
Android 2.3 espone un ampio set di API alle applicazioni che utilizzano il codice nativo. Le classi quadro di interesse per queste applicazioni includono:
Per informazioni complete sull'utilizzo del codice nativo o per scaricare l'NDK, visita la pagina Android NDK.
Runtime Dalvik
Nuovi elementi e attributi del manifest
Nuove autorizzazioni
Nuove costanti di funzionalità
La piattaforma aggiunge diverse nuove funzionalità hardware che gli sviluppatori possono dichiarare nei manifest delle loro applicazioni come richieste dalle loro applicazioni. Ciò consente agli sviluppatori di controllare il modo in cui la loro applicazione viene filtrata quando viene pubblicata su Google Play.
Per informazioni complete su come dichiarare le funzionalità e utilizzarle per i filtri, consulta la documentazione relativa a <uses-feature>
.
Report sulle differenze API
Per una visualizzazione dettagliata di tutte le modifiche all'API in Android 2.3 (Livello API 9), consulta il report Differenze API.
Livello API
La piattaforma Android 2.3 fornisce una versione aggiornata dell'API framework. All'API Android 2.3 viene assegnato un identificatore numero intero 9, memorizzato nel sistema stesso. Questo identificatore, chiamato "Livello API", consente al sistema di determinare correttamente se un'applicazione è compatibile con il sistema prima di installarla.
Per utilizzare le API introdotte in Android 2.3 nella tua applicazione, devi compilare l'applicazione in base alla libreria Android fornita nella piattaforma Android 2.3 SDK. A seconda delle esigenze, potrebbe anche essere necessario aggiungere un attributo android:minSdkVersion="9"
all'elemento <uses-sdk>
nel file manifest dell'applicazione. Se la tua applicazione è progettata per essere eseguita solo su Android 2.3 e versioni successive, la dichiarazione dell'attributo impedisce l'installazione dell'applicazione su versioni precedenti della piattaforma.
Per ulteriori informazioni, consulta la sezione Che cos'è il livello API?