Livello API: 8
Android 2.2 è una release secondaria della piattaforma 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 un set di skin per emulatori e altro ancora. Per iniziare a sviluppare o testare la versione di Android 2.2, utilizza Android SDK Manager per scaricare la piattaforma nel tuo SDK.
Caratteristiche principali della piattaforma
Per un elenco delle nuove funzionalità utente e delle caratteristiche principali della piattaforma, consulta il documento Android 2.2 Platform Highlights (Caratteristiche principali della piattaforma Android 2.2).
Livello API
La piattaforma Android 2.2 fornisce una versione aggiornata dell'API framework. All'API Android 2.2 viene assegnato un identificatore numero 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 la funzionalità Livello API, consulta il documento Livelli API.
Modifiche all'API Framework
Le sezioni seguenti forniscono informazioni sulle modifiche apportate all'API Application Framework 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 sul supporto di archiviazione esterno 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 un'installazione esterna, il sistema la installa in una partizione privata criptata nel supporto esterno. Dopo aver installato l'applicazione .apk esternamente, il sistema consente all'utente di cambiare la posizione di archiviazione dell'applicazione .apk e, se necessario, spostarla nella memoria interna del dispositivo (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 e esternamente su Android 2.2 e piattaforme 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 interrompere 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 un'installazione esterna, leggi il documento Percorso di installazione delle 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 mantenerli quando cambiano dispositivo o reinstallano l'applicazione. Il gestore di backup gestisce il 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, 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 utilizzare ETC1 per la compressione delle texture. - Nuovo corso
ImageFormat
. - Nuovo
YUV image format API
per abilitare la compressione da YUV a JPEG e la manipolazione dei dati YUV.
Contenuti multimediali
- Nuove API in
android.media.AudioManager
per gestire il focus audio, il controllo del trasporto, la perdita transitoria del focus audio, la funzionalità Attenuazione automatica. - Nuovo intent di trasmissione per indirizzare l'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
da mettere in pausa e riprendere automaticamente. - Nuove API in
MediaRecorder
per specificare le impostazioni audio relative a numero di canali, codifica, frequenza di campionamento e 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
.
Motori di riconoscimento vocale e 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 plug-in. - Nuova interfaccia di
RecognitionListener
per ricevere i callback. - Nuovi extra di
RecognizerIntent
che consentono a un'app del richiedente di specificare i dettagli come la lingua preferita, la lunghezza minima in millisecondi e così via.
Fotocamera e videocamera
- Modifiche all'API Camera Preview per migliorare l'efficienza della pipeline di anteprima.
- Nuovo orientamento del display per la fotocamera (ora può funzionare con l'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 configurare le impostazioni della fotocamera del dispositivo, ad esempio lunghezza focale, esposizione, livello di zoom, angolo di visione e altre ancora. - Nuova utilità di
thumbnail
per le miniature di video e 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 il recupero del GPS e della lunghezza focale.
Gestione dei criteri dei 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 della password, la cancellazione dei dati e così via. Gli utenti possono selezionare
gli amministratori abilitati sui loro dispositivi. Per ulteriori informazioni, consulta le android.app.admin
classi o il codice dell'applicazione di esempio in DeviceAdminSample.java.
Framework UI
- Le nuove modalità UI "modalità auto" 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 i gesti di trasformazione che coinvolgono più di un puntatore (multitouch) utilizzando gli eventi MotionEvents forniti. - Miglioramenti della modalità di segnalazione degli eventi multi-touch in
MotionEvent
oggetti. - L'attributo del layout
fill_parent
è stato rinominato inmatch_parent
. Questo vale sia per il codice XML sia per il codice 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à ed extra specifici alla frequenza specificata.
Nuovi elementi e attributi del manifest
- Per specificare il percorso di installazione preferito dell'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 qui sopra):
- Nuovo attributo
android:backupAgent
dell'elemento<application>
. Specifica il nome del componente della sottoclasse BackupAgent fornita dall'applicazione per gestire eventuali operazioni di backup/ripristino. - 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 dell'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 l'autorizzazione.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 Differenze API.