API di Android 2.2

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

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 le MediaScannerConnection.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 e CamcorderProfile 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 in match_parent. Riguarda sia il codice XML che quello Java (vedi ViewGroup.LayoutParams). Tieni presente che la piattaforma continuerà a rispettare gli utilizzi di fill_parent nelle applicazioni legacy.
  • I nuovi attributi di layout tabStripEnabled, tabStripRight e tabStripLeft 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.
  • 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.
  • 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.

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 chiamare killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: qualsiasi WallpaperService 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.