Livello API: 8
Android 2.2 è una release minore della piattaforma che include funzionalità per gli utenti, funzionalità per gli sviluppatori, modifiche alle API e correzioni di bug. Per informazioni sulle funzionalità per gli sviluppatori e sulle modifiche all'API, consulta la sezione API Framework.
Per gli sviluppatori, la piattaforma Android 2.2 è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include una libreria e un'immagine di sistema Android, nonché una serie di skin per emulatori e altro ancora. Per iniziare a sviluppare o eseguire test su Android 2.2, utilizza Android SDK Manager per scaricare la piattaforma nel tuo SDK.
Aspetti principali della piattaforma
Per un elenco delle nuove funzionalità per gli utenti e delle funzionalità principali della piattaforma, consulta il documento Funzionalità principali della piattaforma Android 2.2.
Livello API
La piattaforma Android 2.2 fornisce una versione aggiornata dell'API del framework. All'API Android 2.2 viene assegnato un identificatore intero (8) 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.2 nella tua
app, devi impostare il valore corretto, "8", negli
attributi android:minSdkVersion
dell'elemento <uses-sdk>
nel file manifest della tua app.
Per ulteriori informazioni su come utilizzare il livello API, consulta il documento Livelli API.
Modifiche all'API Framework
Le sezioni seguenti forniscono informazioni sulle modifiche apportate all'API framework dell'applicazione fornita dalla piattaforma Android 2.2.
Installazione di app su supporti di archiviazione esterni
La piattaforma Android ora consente alle applicazioni di richiedere l'installazione sui supporti di archiviazione esterni del dispositivo (ad esempio la scheda SD), come alternativa all'installazione nella memoria interna del dispositivo.
Gli sviluppatori di applicazioni possono indicare la posizione di installazione preferita per le proprie applicazioni tramite un nuovo attributo di <manifest>
nel file manifest,
android:installLocation
. L'attributo supporta tre valori:
"internalOnly"
, "preferExternal"
e
"auto"
. Al momento dell'installazione, il sistema controlla il valore di
android:installLocation
e installa l'applicazione
.apk
in base alla posizione preferita, se possibile. Se l'applicazione ha richiesto l'installazione esterna, il sistema la installa in una partizione privata criptata nel supporto esterno. Una volta installato un file APK dell'applicazione esternamente, il sistema consente all'utente di modificare la posizione di archiviazione del file APK e di spostarlo nella memoria interna del dispositivo, se necessario (e viceversa), tramite Gestisci applicazioni nelle impostazioni utente.
Per impostazione predefinita, il sistema installa tutte le applicazioni nella memoria interna del dispositivo, ad eccezione di quelle che richiedono esplicitamente l'installazione esterna. Ciò significa che il sistema installerà sempre le applicazioni precedenti nella memoria interna, poiché non hanno accesso all'attributo android:installLocation
. Tuttavia, se necessario, è possibile configurare e compilare un'applicazione precedente in modo che venga installata internamente sulle versioni precedenti della piattaforma ed esternamente sulle piattaforme Android 2.2 e successive.
Tieni presente che la richiesta di installazione sul supporto esterno del dispositivo non è adatta a tutte le applicazioni, in particolare perché il supporto esterno potrebbe essere rimovibile e lo smontaggio/il rimontaggio potrebbe interrompere l'esperienza utente e le impostazioni di sistema.
Per ulteriori informazioni sull'impostazione di una posizione di installazione preferita per la tua applicazione, inclusa una discussione sui tipi di applicazioni che devono e non devono richiedere l'installazione esterna, leggi il documento Posizione di installazione dell'app.
Backup dei dati
La piattaforma ora fornisce un servizio di backup generalizzato che le applicazioni possono utilizzare per eseguire il backup e il ripristino dei dati utente, in modo che gli utenti possano mantenere i propri dati quando cambiano dispositivo o reinstallano l'applicazione. Backup Manager gestisce il trasporto dei dati dell'applicazione da e verso l'area di archiviazione di backup nel cloud. Backup Manager può archiviare qualsiasi tipo di dati, da dati arbitrari a file, e gestisce le operazioni di backup e ripristino in modo atomico. Per ulteriori informazioni, consulta Backup dei dati.
Grafica
- Nuove API OpenGL ES 2.0 in
android.opengl.GLES20
. - Nuove classi
ETC1
,ETC1Util
eETC1Util.ETC1Texture
e metodi di utilità per l'utilizzo di ETC1 per la compressione delle texture. - Nuovo corso
ImageFormat
. - Nuovo
YUV image format API
per attivare la compressione da YUV a JPEG e la manipolazione dei dati YUV.
Contenuti multimediali
- Nuove API in
android.media.AudioManager
per la gestione dell'attenzione audio, del controllo del trasporto, della perdita transitoria dell'attenzione audio e del ducking. - Nuovo intent di trasmissione per l'instradamento dell'audio a SCO:
ACTION_SCO_AUDIO_STATE_CHANGED
con extra che indicano il nuovo stato. - Nuove API in
SoundPool
per rilevare il completamento del caricamento dei suoni. - Nuove API in
SoundPool
per la messa in pausa e la ripresa automatica. - Nuove API in
MediaRecorder
per specificare le impostazioni audio per numero di canali, codifica e frequenza di campionamento. - Nuove API per aggiungere file al database multimediale in modo che vengano analizzati automaticamente. Leggi i
MediaScannerConnection.scanFile
e laMediaScannerConnection.OnScanCompletedListener
.
Riconoscimento vocale e motori di riconoscimento di terze parti
- La piattaforma fornisce nuove API di riconoscimento vocale che consentono alle applicazioni di interagire in modo più completo con il riconoscitore vocale disponibile. Ad esempio, le API sono sufficienti per integrare il riconoscimento vocale in modo approfondito in un IME.
- La piattaforma fornisce anche una classe di base
RecognitionService
che consente agli sviluppatori di terze parti di creare motori di riconoscimento dei plug-in. - Nuova interfaccia
RecognitionListener
per ricevere i callback. - Nuovi extra di
RecognizerIntent
che consentono a un'app richiedente di specificare dettagli come la lingua preferita, la durata minima in millisecondi e così via.
Fotocamera e videocamera
- Modifiche all'API di anteprima della fotocamera per migliorare l'efficienza della pipeline di anteprima.
- Nuovo orientamento del display per la videocamera (ora può funzionare in orientamento verticale).
- Nuove API in
android.hardware.Camera
per la gestione del livello di zoom. - Nuove API
android.hardware.Camera.Parameters
per eseguire query e impostare le impostazioni della fotocamera del dispositivo, come lunghezza focale, esposizione, livello di zoom, angolo di visuale e altre. - Nuova utilità
thumbnail
per le miniature di video e immagini. - I nuovi tipi
CamcorderProfile
eCamcorderProfile
consentono alle app di determinare le funzionalità della fotocamera hardware del dispositivo. - Nuovo supporto in
android.media.ExifInterface
per il recupero del GPS e della lunghezza focale.
Device Policy Manager
Le nuove API di gestione dei criteri dei dispositivi consentono agli sviluppatori di scrivere applicazioni di "amministratore del dispositivo" che possono controllare le funzionalità di sicurezza del dispositivo, come la robustezza minima della password, l'eliminazione dei dati e così via. Gli utenti possono selezionare gli amministratori abilitati sui propri dispositivi. Per ulteriori informazioni, consulta le classi android.app.admin
o il codice dell'applicazione di esempio in DeviceAdminSample.java.
Framework UI
- Le nuove modalità dell'interfaccia utente "modalità auto" e "modalità notturna" e
UiModeManager
consentono alle applicazioni di regolare la propria interfaccia utente per modalità utente specifiche. - Nuovo
ScaleGestureDetector
che consente a View di rilevare e gestire i gesti di trasformazione che coinvolgono più di un cursore (multitouch) utilizzando gli eventi MotionEvents forniti. - Miglioramenti al modo in cui gli eventi multitouch vengono registrati negli oggetti
MotionEvent
. - L'attributo layout
fill_parent
viene rinominato inmatch_parent
. Questo riguarda sia il codice XML che Java (vediViewGroup.LayoutParams
). Tieni presente che la piattaforma continuerà a rispettare gli utilizzi difill_parent
nelle applicazioni precedenti. - I nuovi attributi di layout
tabStripEnabled
,tabStripRight
etabStripLeft
consentono agli sviluppatori di personalizzare la barra in basso di TabWidgets. - Migliore supporto per le finestre di dialogo gestite in Attività.
Account e sincronizzazione
- Il nuovo metodo
AddPeriodicSync()
consente di pianificare una sincronizzazione periodica con un account, un'autorità ed extra specifici alla frequenza specificata.
Nuovi elementi e attributi manifest
- Per specificare la posizione di installazione preferita dell'applicazione (vedi Installazione di app su supporti di archiviazione esterni, sopra):
- Nuovo attributo
android:installLocation
dell'elemento<manifest>
. Specifica la posizione di installazione predefinita definita da un'applicazione.
- Nuovo attributo
- Per gestire il backup dei dati utente (per ulteriori informazioni, vedi Gestione dei backup sopra):
- Nuovo attributo
android:backupAgent
dell'elemento<application>
. Specifica il nome del componente della sottoclasse BackupAgent fornito dall'applicazione per gestire le operazioni di backup/ripristino, se presenti. - Nuovo attributo
android:restoreAnyVersion
dell'elemento<application>
. Valore booleano che indica se l'applicazione è pronta a tentare il ripristino di qualsiasi set di dati di cui è stato eseguito il backup, anche se il backup sembra provenire da una versione dell'applicazione più recente di quella attualmente installata sul dispositivo.
- Nuovo attributo
- Per gestire il compilatore JIT della piattaforma:
- Nuovo attributo
android:vmSafeMode
dell'elemento<application>
. Valore booleano che specifica se disattivare le ottimizzazioni del compilatore JIT durante l'esecuzione dell'applicazione.
- Nuovo attributo
Autorizzazioni
android.permission.BIND_DEVICE_ADMIN
: qualsiasi ricevitore di annunci per l'amministrazione del dispositivo deve richiedere questa autorizzazione per garantire che solo il sistema possa interagire con il dispositivo.android.permission.KILL_BACKGROUND_PROCESSES
: consente a un'applicazione di chiamarekillBackgroundProcesses(String)
.android.permission.BIND_WALLPAPER
: qualsiasiWallpaperService
deve richiedere questa autorizzazione per garantire che solo il sistema possa interagire con essa.android.permission.SET_TIME
: consente a un'applicazione di impostare l'ora di sistema.
Report sulle differenze dell'API
Per una visualizzazione dettagliata di tutte le modifiche all'API in Android 2.2 (livello API 8), consulta il report Differenze nell'API.