Livello API: 8
Android 2.2 è una release della piattaforma secondaria che include funzionalità utente, funzionalità per sviluppatori, modifiche all'API e correzioni di bug. Per informazioni sulle funzionalità per 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 Android e un'immagine di sistema, oltre a una serie di skin di emulatori e altro ancora. Per iniziare a sviluppare o testare versioni su Android 2.2, utilizza Android SDK Manager per scaricare la piattaforma nel tuo SDK.
Funzionalità principali della piattaforma
Per un elenco delle nuove funzionalità utente e delle caratteristiche principali della piattaforma, consulta il documento Caratteristiche principali della piattaforma Android 2.2.
Livello API
La piattaforma Android 2.2 offre una versione aggiornata dell'API 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 nella tua applicazione le API introdotte in Android 2.2, devi impostare il valore corretto, "8", negli attributi android:minSdkVersion
dell'elemento <uses-sdk>
nel file manifest dell'applicazione.
Per ulteriori informazioni su come utilizzare il livello API, consulta il documento Livelli API.
Modifiche all'API Framework
Le sezioni che seguono 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), in alternativa all'installazione sulla memoria interna del dispositivo.
Gli sviluppatori di applicazioni possono indicare il percorso di installazione preferito per le loro applicazioni mediante un nuovo attributo <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. Dopo aver installato esternamente l'applicazione .apk, il sistema consente all'utente di cambiare la posizione di archiviazione dell'applicazione .apk e di spostarla 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 legacy nella memoria interna, poiché non hanno accesso all'attributo android:installLocation
. Tuttavia, è possibile configurare e compilare un'applicazione legacy in modo che venga installata internamente su versioni precedenti della piattaforma ed esternamente su piattaforme Android 2.2 e versioni successive, se necessario.
Tieni presente che richiedere l'installazione sul supporto esterno del dispositivo non è adatto a tutte le applicazioni, in particolare perché il supporto esterno potrebbe essere rimovibile e lo smontaggio/rimontaggio potrebbe compromettere l'esperienza utente e le impostazioni di sistema.
Per ulteriori informazioni sull'impostazione di un percorso di installazione preferito per la tua applicazione, inclusa una discussione sui tipi di applicazioni che dovrebbero e non devono richiedere l'installazione esterna, leggi il documento Percorso 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, per garantire che gli utenti possano mantenere i propri dati quando cambiano dispositivo o reinstallano l'applicazione. Il gestore backup gestisce il lavoro di trasporto dei dati dell'applicazione da e verso l'area di archiviazione di backup nel cloud. Il gestore di backup può archiviare qualsiasi tipo di dati, dai dati arbitrari ai file, e gestisce le operazioni di backup e ripristino in modo atomico. Per ulteriori informazioni, vedi Backup dei dati.
Grafica
- Nuove API OpenGL ES 2.0 in
android.opengl.GLES20
. - Nuove classi
ETC1
,ETC1Util
eETC1Util.ETC1Texture
e nuovi metodi di utilità per utilizzare ETC1 per la compressione delle texture. - Nuovo corso
ImageFormat
. - Nuovo
YUV image format API
per consentire la compressione da YUV a JPEG e la manipolazione dei dati YUV.
Contenuti multimediali
- Nuove API in
android.media.AudioManager
per la gestione del focus audio, il controllo del trasporto, la perdita temporanea della messa a fuoco audio, l'attenuazione automatica. - Nuovo intent di trasmissione per il routing 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 dell'audio. - Nuove API in
SoundPool
per la messa in pausa e il ripristino automatici. - Nuove API in
MediaRecorder
per specificare le impostazioni audio per numero di canali, codifica e frequenze di campionamento, nonché la frequenza di campionamento. - Nuove API per l'aggiunta di file al database multimediale, in modo che vengano scansionati automaticamente. Leggi i
MediaScannerConnection.scanFile
e leMediaScannerConnection.OnScanCompletedListener
.
Riconoscimento vocale e motori di riconoscimento di terze parti
- La piattaforma fornisce nuove API di riconoscimento vocale che consentono alle applicazioni di avere un'interazione più completa con il riconoscimento vocale disponibile. Ad esempio, le API sono sufficienti per integrare in modo approfondito il riconoscimento vocale in un IME.
- La piattaforma fornisce inoltre una classe base
RecognitionService
che consente agli sviluppatori di terze parti di creare motori di riconoscimento dei plug-in. - Nuova interfaccia di
RecognitionListener
per ricevere i callback. - Nuovi extra di
RecognizerIntent
che consentono a un'app del richiedente di specificare dettagli come lingua preferita, durata minima in millisecondi e così via.
Fotocamera e videocamera
- Modifiche all'API Camera Preview per migliorare l'efficienza della pipeline in anteprima.
- Nuovo orientamento del display per la fotocamera (ora funziona con 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, ad esempio lunghezza focale, esposizione, livello di zoom, angolo di visione e altre. - Nuova utilità
thumbnail
per le miniature dei video e delle immagini. - Le nuove classi
CamcorderProfile
eCamcorderProfile
consentono alle app di determinare le funzionalità della fotocamera dell'hardware del dispositivo. - Nuovo supporto in
android.media.ExifInterface
per recupero GPS e lunghezza focale.
Gestione delle norme relative ai dispositivi
Le nuove API di gestione dei criteri dei dispositivi consentono agli sviluppatori di scrivere applicazioni "amministratore del dispositivo" in grado di controllare le funzionalità di sicurezza del dispositivo, come la sicurezza minima delle password, la cancellazione 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à UI "modalità automobile" e "modalità notturna" e
UiModeManager
consentono alle applicazioni di regolare l'interfaccia utente dell'applicazione per specifiche modalità utente. - Nuovo
ScaleGestureDetector
che consente a Visualizzazioni di rilevare e gestire gesti di trasformazione che prevedono più di un puntatore (multitouch) utilizzando gli eventi MotionEvents forniti. - Miglioramenti della modalità di segnalazione degli eventi multitouch negli oggetti
MotionEvent
. - L'attributo di layout
fill_parent
è stato rinominato inmatch_parent
. Riguarda sia il codice XML che quello Java (vediViewGroup.LayoutParams
). Tieni presente che la piattaforma continuerà a rispettare gli utilizzi difill_parent
nelle applicazioni legacy. - I nuovi attributi di layout
tabStripEnabled
,tabStripRight
etabStripLeft
consentono agli sviluppatori di personalizzare la barra inferiore di TabWidgets. - Supporto migliorato per le finestre di dialogo gestite in Attività.
Account e sincronizzazione
- Il nuovo metodo
AddPeriodicSync()
ti consente di pianificare una sincronizzazione periodica con un account, un'autorità e degli extra specifici alla frequenza specificata.
Nuovi elementi ed attributi del file manifest
- Per specificare il percorso di installazione preferito per l'applicazione (consulta la sezione Installazione di app su supporti di archiviazione esterni qui sopra):
- Nuovo attributo
android:installLocation
dell'elemento<manifest>
. Specifica il percorso di installazione predefinito definito da un'applicazione.
- Nuovo attributo
- Per gestire il backup dei dati utente (per ulteriori informazioni, vedi Gestione backup sopra):
- Nuovo attributo
android:backupAgent
dell'elemento<application>
. Specifica il nome del componente della sottoclasse BackupAgent fornita 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 per tentare il ripristino di qualsiasi set di dati di cui è stato eseguito il backup, anche se il backup proviene apparentemente da una versione dell'applicazione più recente rispetto a quella attualmente installata sul dispositivo.
- Nuovo attributo
- Per la gestione del compilatore JIT della piattaforma:
- Nuovo attributo
android:vmSafeMode
dell'elemento<application>
. Valore booleano che specifica se disabilitare le ottimizzazioni del compilatore JIT durante l'esecuzione dell'applicazione.
- Nuovo attributo
Autorizzazioni
android.permission.BIND_DEVICE_ADMIN
- Qualsiasi ricevitore di trasmissione per amministratori 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 l'elemento.android.permission.SET_TIME
: consente a un'applicazione di impostare l'ora di sistema.
Report sulle differenze API
Per una visualizzazione dettagliata di tutte le modifiche all'API in Android 2.2 (Livello API 8), consulta il report sulle differenze API.