API Android 2.2

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

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 le MediaScannerConnection.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 e CamcorderProfile 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.adminclassi 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 in match_parent. Questo vale sia per il codice XML sia per il codice 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à 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.
  • 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.
  • 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 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 chiamare killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: qualsiasi WallpaperService 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.