Android 2.0, release 1

Livello API: 5

Android 2.0 è una delle principali release della piattaforma distribuibile sui telefoni 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 insieme di skin emulatori, applicazioni di esempio e altro ancora. La piattaforma scaricabile è completamente conforme e non include librerie esterne.

Per iniziare a sviluppare o testare la piattaforma Android 2.0, utilizza l'SDK Android e lo strumento AVD 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.0 Platform Highlights (Caratteristiche principali della piattaforma Android 2.0).

Applicazioni integrate

L'immagine di sistema inclusa nella piattaforma scaricabile fornisce le seguenti applicazioni integrate:

  • Sveglia
  • Browser
  • Calcolatrice
  • Telecamera
  • Fotocamera
  • Contatti
  • Impostazioni internazionali personalizzate (app sviluppatore)
  • Strumenti per sviluppatori (app per sviluppatori)
  • Telefono
  • Email
  • Galleria
  • Strumento di creazione di gesti
  • IME per l'input di testo in giapponese
  • Messaggi
  • Musica
  • Impostazioni
  • Pezzi di ricambio (app per sviluppatori)

Locales

L'immagine di sistema inclusa nella piattaforma scaricabile fornisce diverse 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 del sistema Android 2.0 sono elencate di seguito (con il descrittore delle impostazioni internazionali in language_paese/regione).

  • Cinese, Repubblica Popolare Cinese (zh_CN)
  • Cinese (zh_TW)
  • Ceco (cs_CZ)
  • Olandese, Paesi Bassi (nl_NL)
  • Olandese, Belgio (nl_BE)
  • Inglese, USA (en_US)
  • Inglese, Gran Bretagna (en_GB)
  • Inglese, Canada (en_CA)
  • Inglese, Australia (en_AU)
  • Inglese, Nuova Zelanda (en_NZ)
  • Inglese, Singapore(en_SG)
  • Francese, Francia (fr_FR)
  • Francese, Belgio (fr_BE)
  • Francese, Canada (fr_CA)
  • Francese, Svizzera (fr_CH)
  • Tedesco, Germania (de_DE)
  • Tedesco, Austria (de_AT)
  • Tedesco, Svizzera (de_CH)
  • Tedesco, Liechtenstein (de_LI)
  • Italiano, Italia (it_IT)
  • Italiano, Svizzera (it_CH)
  • Giapponese (ja_JP)
  • Coreano (ko_KR)
  • Polacco (pl_PL)
  • Russo (ru_RU)
  • Spagnolo (es_ES)
  • Le stringhe UI localizzate corrispondono alle impostazioni internazionali accessibili tramite le Impostazioni.

    Skin per emulatore

    La piattaforma scaricabile include un set di skin di emulatori che puoi utilizzare per creare modelli della tua applicazione in diverse dimensioni e risoluzioni degli schermi. 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, media densità, schermo normale)
    • WVGA800 (480 x 800, alta densità, schermo normale)
    • WVGA854 (alta densità 480 x 854, schermo normale)

    Per ulteriori informazioni su come sviluppare un'applicazione che sia visualizzata e funzioni correttamente su tutti i dispositivi Android, consulta la sezione Supporto di più schermi.

    Funzionalità per sviluppatori

    Le sezioni che seguono forniscono informazioni sulle nuove funzionalità per sviluppatori offerte dal componente scaricabile della piattaforma Android 2.0.

    Supporto per formiche

    • Firma dell'applicazione in modalità di debug e release. La firma in modalità di rilascio include il supporto integrato per l'ottimizzazione di zipalign. Per ulteriori informazioni, leggi l'articolo Firma delle applicazioni.
    • Aggiunge un nuovo sistema di build Ant con supporto per i progetti di strumentazione Emma (copertura del codice).

    API Framework

    Le sezioni che seguono forniscono informazioni sull'API Application Framework fornita dalla piattaforma Android 2.0.

    Livello API

    La piattaforma Android 2.0 fornisce una versione aggiornata dell'API framework. Come per le versioni precedenti, all'API Android 2.0 viene assegnato un identificatore numero intero (5), archiviato 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.0, devi impostare il valore corretto, "5", negli attributi dell'elemento <uses-sdk> del file manifest dell'applicazione.

    Per ulteriori informazioni su come utilizzare la funzionalità Livello API, consulta il documento Livelli API.

    Riepilogo delle modifiche all'API

    Bluetooth

    • Attiva/disattiva il Bluetooth
    • Rilevamento di dispositivi e servizi
    • Connettersi a un dispositivo remoto tramite RFCOMM e inviare/ricevere dati
    • Pubblicizza i servizi RFCOMM e ascolta la connessione RFCOMM in entrata

    Adattatori di sincronizzazione

    • Nuove API per gli adattatori di sincronizzazione per la connessione a qualsiasi backend

    Gestore dell'account

    • API centralizzata account manager per archiviare e accedere in modo sicuro a token e password di autenticazione

    Contatti

    • Nuove API per i contatti che consentono i dati di più account
    • Le nuove API del framework Quick Contact consentono agli sviluppatori di creare badge di contatto nella propria app. Facendo clic sul badge, si apre una finestra con un elenco di modi per contattare la persona con un solo clic.

    WebView

    • Classi deprecate: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Fotocamera

    • Nuovi parametri per effetto colore, modalità scena, modalità flash, modalità messa a fuoco, bilanciamento del bianco, rotazione e altre impostazioni.
    • Nuova interfaccia di ZoomCallback per eseguire azioni quando il livello di zoom viene modificato.

    Contenuti multimediali

    • MediaScanner ora genera miniature per tutte le immagini quando vengono inserite in MediaStore.
    • Nuova API Miniatura per recuperare miniature di immagini e video on demand.

    Altro framework

    • Nuovi temi di sistema in android.R.style per visualizzare facilmente le attività sullo sfondo di sistema attuale o per mantenere visibile l'attività precedente in background.
    • La nuova API BackgroundManager sostituisce ed estende le API per gli sfondi che in precedenza erano in Context, 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 dei servizi, in particolari situazioni di memoria insufficiente in cui un servizio potrebbe essere interrotto mentre è in 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 continua allo stato in primo piano.
    • MotionEvent ora può segnalare informazioni relative al tocco simultaneo per i dispositivi che la supportano. È possibile tracciare contemporaneamente fino a tre puntatori.
    • KeyEvent dispone di nuove API di invio delle chiavi per facilitare l'implementazione del comportamento di azione all'avvio e della pressione prolungata, nonché un nuovo meccanismo per annullare la pressione dei tasti (per i tasti virtuali).
    • WindowManager.LayoutParams ha nuove costanti che consentono a una finestra di riattivare la schermata quando viene visualizzata e visualizzarla anche se è bloccata. Ciò consente alle applicazioni di implementare in modo più pulito funzioni come le sveglie che dovrebbero riattivare il dispositivo.
    • Nuove API per intent che trasmettono lo stato di dock del dispositivo e consentono alle applicazioni di avviare attività speciali quando il dispositivo è posizionato in un desktop o in un dock per auto.

    Eventi chiave eseguiti su keyup

    Android 2.0 è progettato per essere eseguito su dispositivi che usano tasti virtuali per CASA, MENU, INDIETRO e RICERCA, anziché tasti fisici. Per supportare la migliore esperienza utente su questi dispositivi, la piattaforma Android ora esegue questi pulsanti in modalità key-up, per una coppia key-down/key-up, anziché key-down. Ciò consente di evitare eventi accidentali del pulsante e consente all'utente di premere l'area del pulsante e poi trascinarla fuori senza generare un evento.

    Questa modifica del comportamento dovrebbe interessare la tua applicazione solo se intercetta gli eventi dei pulsanti e intraprende un'azione sul tasto key-down anziché sul key-up. Soprattutto se l'applicazione intercetta la chiave Indietro, devi assicurarti che l'applicazione gestisca correttamente gli eventi chiave.

    In generale, si sconsiglia di intercettare la chiave BACK in un'applicazione; tuttavia, se l'applicazione lo fa e richiama un'azione sul tasto down, anziché sul key-up, dovresti modificare il codice.

    Se la tua applicazione utilizzerà API introdotte in Android 2.0 (livello API 5), puoi sfruttare le nuove API per la gestione delle coppie chiave-evento:

    • Se stai intercettando la chiave BACK in un'attività o una finestra di dialogo, implementa il nuovo metodo onBackPressed().
    • Se intercetta la chiave Indietro in una vista, devi monitorare l'evento chiave in modalità di key-down (con il nuovo metodo startTracking()), quindi richiamare l'azione al livello della chiave. Ecco uno schema che puoi utilizzare:
    • 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 Indietro funzioni correttamente sia per Android 2.0 che per le versioni della piattaforma precedenti, puoi utilizzare un approccio simile a quello mostrato sopra. Il codice può rilevare l'evento del pulsante target nella key-down, impostare un flag per monitorare l'evento chiave e quindi rilevare l'evento anche nella key-up, eseguendo l'azione desiderata se il flag di monitoraggio è impostato. Inoltre, dovrai osservare i cambiamenti della messa a fuoco e cancellare il flag di tracciamento quando la utilizzi.

    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 API.