Livello API: 5
Android 2.0 è una release della piattaforma di primo piano, implementabile sugli smartphone con Android a partire da novembre 2009. La release include nuove funzionalità per utenti e sviluppatori, nonché modifiche all'API Android Framework.
Per gli sviluppatori, la piattaforma Android 2.0 è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include una libreria Android e un'immagine di sistema completamente conformi, nonché un set di skin per emulatori, applicazioni di esempio e altro ancora. La piattaforma scaricabile è pienamente conforme e non include librerie esterne.
Per iniziare a sviluppare o eseguire test sulla piattaforma Android 2.0, utilizza lo strumento Android SDK e AVD Manager per scaricare la piattaforma nel tuo SDK.
Caratteristiche 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.0.
Applicazioni integrate
L'immagine di sistema inclusa nella piattaforma scaricabile fornisce le seguenti applicazioni integrate:
|
|
Lingue
L'immagine di sistema inclusa nella piattaforma scaricabile fornisce una varietà di impostazioni internazionali integrate. In alcuni casi, per le impostazioni internazionali sono disponibili stringhe specifiche per regione. In altri casi, viene utilizzata una versione predefinita della lingua. Le lingue disponibili nell'immagine di sistema Android 2.0 sono elencate di seguito (con descrittore locale language_country/region).
|
|
Le stringhe dell'interfaccia utente localizzate corrispondono alle lingue accessibili tramite Impostazioni.
Skin per emulatori
La piattaforma scaricabile include un insieme di skin dell'emulatore che puoi utilizzare per modellare la tua applicazione in schermi di dimensioni e risoluzioni diverse. Le skin dell'emulatore sono:
- QVGA (240 x 320, bassa densità, schermo piccolo)
- WQVGA (240 x 400, bassa densità, schermo normale)
- FWQVGA (240 x 432, bassa densità, schermo normale)
- HVGA (320 x 480, densità media, schermo normale)
- WVGA800 (480 x 800, alta densità, schermo normale)
- WVGA854 (480 x 854 ad alta densità, schermo normale)
Per ulteriori informazioni su come sviluppare un'applicazione che venga visualizzata e funzioni correttamente su tutti i dispositivi Android, consulta Supporto di più schermi.
Funzionalità per sviluppatori
Le sezioni seguenti forniscono informazioni sulle nuove funzionalità per gli sviluppatori offerte dal componente della piattaforma Android 2.0 scaricabile.
Supporto per le formiche
- Firma dell'applicazione in modalità di debug e di rilascio. La firma in modalità di rilascio include il supporto integrato per l'ottimizzazione di
zipalign
. Per ulteriori informazioni, consulta la sezione Firma delle applicazioni. - Aggiunge un nuovo sistema di compilazione Ant con supporto per i progetti di strumentazione Emma (copertura del codice).
API Framework
Le sezioni seguenti forniscono informazioni sull'API framework per le applicazioni fornita dalla piattaforma Android 2.0.
Livello API
La piattaforma Android 2.0 fornisce una versione aggiornata dell'API del framework. Come nelle versioni precedenti, all'API Android 2.0 viene assegnato un identificatore intero (5) che viene memorizzato nel sistema stesso. Questo identificatore, chiamato "livello API", consente al sistema di determinare correttamente se un'applicazione è compatibile con il sistema prima di installare l'applicazione.
Per utilizzare le API introdotte in Android 2.0 nella tua applicazione, devi impostare il valore corretto "5" negli attributi dell'elemento <uses-sdk>
nel file manifest dell'applicazione.
Per ulteriori informazioni su come utilizzare il livello API, consulta il documento sui livelli API.
Riepilogo delle modifiche all'API
Bluetooth
- Attiva/disattiva il Bluetooth
- Rilevamento di dispositivi e servizi
- Collegarsi a un dispositivo remoto utilizzando RFCOMM e inviare/ricevere dati
- Pubblicizza i servizi RFCOMM e ascolta la connessione RFCOMM in arrivo
Adattatori di sincronizzazione
- Nuove API per gli adattatori di sincronizzazione per la connessione a qualsiasi backend
Account Manager
- API di gestione degli account centralizzata per archiviare e accedere in modo sicuro a token/password di autenticazione
Contatti
- Nuove API di contatti che consentono l'utilizzo di dati di più account
- Le nuove API del framework Quick Contact consentono agli sviluppatori di creare badge di contatto nella propria app. Se fai clic sul badge, si apre una finestra con un elenco di modi per contattare la persona con un clic.
WebView
- Classi ritirate: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Fotocamera
- Nuovi parametri per effetto colore, modalità scena, modalità flash, modalità di messa a fuoco, bilanciamento del bianco, rotazione e altre impostazioni.
- Nuova interfaccia di ZoomCallback per eseguire azioni quando il livello di zoom è cambiato.
Contenuti multimediali
- MediaScanner ora genera miniature per tutte le immagini quando vengono inserite in MediaStore.
- Nuova API Thumbnail per il recupero delle miniature di immagini e video su richiesta.
Altro framework
- Nuovi temi di sistema in android.R.style per visualizzare facilmente le attività sopra lo sfondo di sistema corrente o mantenere visibile l'attività precedente in background.
- La nuova API BackgroundManager sostituisce ed estende le API di sfondo che in precedenza si trovavano in Contesto, per consentire alle applicazioni di richiedere e impostare lo sfondo del sistema.
- Nuove API di servizio per aiutare le applicazioni a gestire correttamente il ciclo di vita del servizio, in particolare in situazioni di scarsa memoria in cui un servizio potrebbe essere interrotto durante l'esecuzione.
- Service.setForeground() è stato deprecato e ora non esegue alcuna operazione. Viene sostituita da una nuova API, startForeground(), che consente (e richiede) di associare una notifica in corso allo stato in primo piano.
- Ora MotionEvent può segnalare informazioni sui tocchi simultanei per i dispositivi che li supportano. È possibile tracciare contemporaneamente fino a tre puntatori.
- KeyEvent dispone di nuove API per l'invio di chiavi che aiutano a implementare il comportamento di attivazione e pressione prolungata, nonché un nuovo meccanismo per annullare le pressioni dei tasti (per i tasti virtuali).
- WindowManager.LayoutParams ha nuove costanti che consentono a una finestra di riattivare lo schermo quando viene visualizzata e di mostrarla anche se lo schermo è bloccato. In questo modo le applicazioni possono implementare in modo più pulito elementi come le sveglie che devono riattivare il dispositivo.
- Nuove API Intent che trasmettono lo stato di aggancio del dispositivo e consentono alle applicazioni di avviare attività speciali quando il dispositivo è agganciato alla base del computer o dell'auto.
Eventi chiave eseguiti al rilascio del tasto
Android 2.0 è progettato per essere eseguito su dispositivi che usano tasti virtuali per CASA, MENU, RETRO e RICERCA anziché tasti fisici. Per offrire la migliore esperienza utente su questi dispositivi, la piattaforma Android ora esegue questi pulsanti al rilascio dei tasti, per una coppia di tasti premuti/rilasciati, anziché al loro azionamento. In questo modo si evitano gli eventi accidentali dei pulsanti e l'utente può premere l'area del pulsante e trascinarla senza generare un evento.
Questo cambiamento di comportamento dovrebbe interessare la tua applicazione solo se intercetta gli eventi del pulsante ed esegue un'azione sulla riduzione della chiave anziché sulla chiave-up. Soprattutto se la tua applicazione intercetta il tasto BACK, devi assicurarti che gestisca correttamente gli eventi chiave.
In generale, non è consigliabile intercettare il tasto BACK in un'applicazione, tuttavia, se la tua applicazione lo fa e richiama un'azione al tasto Giù anziché al tasto Su, devi modificare il codice.
Se la tua applicazione utilizzerà le API introdotte in Android 2.0 (livello API 5), puoi sfruttare nuove API per la gestione di coppie chiave-evento:
- Se intercetti il tasto BACK in un'attività o in una finestra di dialogo, implementa il nuovo metodo
onBackPressed()
. - Se stai intercettando la chiave Indietro in una vista, dovresti monitorare l'evento chiave
quando viene premuto il tasto key-down (tramite il nuovo metodo
startTracking()
e poi richiamare l'azione al tasto premuto). Ecco uno schema che puoi usare:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
Se vuoi aggiornare un'applicazione legacy in modo che la gestione della chiave BACK funzioni correttamente sia per Android 2.0 sia per le versioni della piattaforma precedenti, puoi utilizzare un approccio simile a quello mostrato sopra. Il codice può rilevare l'evento del pulsante di destinazione quando viene premuto un tasto, impostare un flag per monitorare l'evento chiave e poi rilevare l'evento anche quando il tasto viene rilasciato, eseguendo l'azione desiderata se il flag di monitoraggio è impostato. Inoltre, tieni d'occhio le modifiche dello stato attivo e cancella l'indicatore di monitoraggio quando ottieni/perdi lo stato attivo.
Report sulle differenze API
Per una visualizzazione dettagliata delle modifiche all'API in Android 2.0 (Livello API 5) rispetto alla versione precedente, consulta il report Differenze dell'API.