Android 2.0, release 1

Livello API: 5

Android 2.0 è una delle principali versioni della piattaforma distribuibile sugli smartphone Android a partire da novembre 2009. La release include nuove funzioni per utenti e sviluppatori, nonché modifiche nell'API Android Framework.

Per gli sviluppatori, la piattaforma Android 2.0 è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include un libreria Android e immagine di sistema completamente conformi, nonché un set di emulatore skin, applicazioni di esempio e altro ancora. La piattaforma scaricabile è completamente sono conformi e non includono librerie esterne.

Per iniziare a sviluppare o testare soluzioni rispetto ad Android 2.0, utilizza l'SDK per Android e lo strumento Gestione AVD per scarica la piattaforma nel tuo SDK.

Caratteristiche principali della piattaforma

Per un elenco delle nuove funzionalità per gli utenti e delle caratteristiche principali delle piattaforme, consulta Android 2.0 Panoramica della piattaforma.

Applicazioni integrate

L'immagine di sistema inclusa nella piattaforma scaricabile fornisce questi integrate:

  • Sveglia
  • Browser
  • Calcolatrice
  • Telecamera
  • Fotocamera
  • Contatti
  • Impostazioni internazionali personalizzate (app sviluppatore)
  • Strumenti per sviluppatori (app per sviluppatori)
  • Telefono
  • Email
  • Galleria
  • Generatore di gesti
  • IME per l'input di testo in giapponese
  • Messaggistica
  • Musica
  • Impostazioni
  • Spare Parts (app per sviluppatori)

Lingue

L'immagine di sistema inclusa nella piattaforma scaricabile offre una impostazioni internazionali integrate. In alcuni casi, sono disponibili stringhe specifiche per regione impostazioni internazionali. In altri casi, viene utilizzata una versione predefinita della lingua. La lingue disponibili nel sistema Android 2.0 immagini sono elencate di seguito (con impostazioni internazionali in language_country/region descrittore).

  • Cinese, RPC (zh_CN)
  • Cinese, Taiwan (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 dell'interfaccia utente localizzate corrispondono alle impostazioni internazionali accessibili tramite le Impostazioni.

    Skin per emulatori

    La piattaforma scaricabile include un set di skin di emulazione che puoi utilizzare per modellare la tua applicazione con schermi di diverse dimensioni e risoluzioni. 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 (schermo normale ad alta densità 480 x 854)

    Per ulteriori informazioni su come sviluppare un'applicazione che venga visualizzata e funzioni correttamente su tutti i dispositivi Android, consulta l'articolo 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 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 che seguono forniscono informazioni sull'API framework dell'applicazione fornita dalla piattaforma Android 2.0.

    Livello API

    La piattaforma Android 2.0 fornisce una versione aggiornata del framework tramite Google Cloud CLI o tramite l'API Compute Engine. Come nelle versioni precedenti, l'API Android 2.0 viene assegnato un identificatore intero, 5, archiviati nel sistema stesso. Questo identificatore, chiamato "livello API", consente sistema per determinare correttamente se un'applicazione è compatibile al sistema prima di installare l'applicazione.

    Per utilizzare le API introdotte in Android 2.0 nella tua applicazione, devi: Imposta il valore corretto "5" negli attributi dell'elemento <uses-sdk> nel file manifest della tua 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 per i contatti che consentono la raccolta di dati da 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 deprecate: UrlInterceptGestori, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Fotocamera

    • Nuovi parametri per effetto colore, modalità scena, modalità flash, modalità focus, 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 recuperare miniature di immagini e video on demand.

    Altro framework

    • Nuovi temi di sistema in stile android.R.per visualizzare facilmente le attività sopra lo sfondo di sistema corrente o mantenere visibile l'attività precedente sullo sfondo.
    • 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 dei servizi per consentire alle applicazioni di gestire correttamente il ciclo di vita dei servizi, in particolare le situazioni in cui la memoria è insufficiente in cui un servizio può essere interrotto mentre è in esecuzione.
      • Service.setForeground() è stato deprecato e ora non esegue alcuna operazione. Viene sostituita da una nuova API, startForeground(), che aiuta (e richiede) l'associazione di 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 ha nuove API di invio delle chiavi per aiutare 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 mostrare la finestra 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 docking del dispositivo e consentono alle applicazioni di avviare attività speciali quando il dispositivo è posizionato su un desktop o su un dock per auto.

    Eventi chiave eseguiti al momento della chiave

    Android 2.0 è progettato per funzionare su dispositivi che usano chiavi virtuali per HOME, MENU, INDIETRO e RICERCA, anziché tasti fisici. Per supportare l'utente migliore su quei dispositivi, la piattaforma Android ora esegue questi pulsanti per una coppia key-down/key-up invece che key-down. Ciò aiuta a prevenire eventi pulsanti accidentali e consente all'utente di premere l'area del pulsante e poi trascinare senza generare un evento.

    Questo cambiamento di comportamento dovrebbe interessare la tua applicazione solo se intercettare gli eventi del pulsante ed eseguire un'azione sul key-down, invece che sulla chiave. Soprattutto se la tua applicazione intercetta la chiave BACK, dovresti assicurati che la tua applicazione gestisca correttamente gli eventi chiave.

    In generale, l'intercettazione della chiave BACK in un'applicazione non è consigliata. Tuttavia, se la tua applicazione lo fa e richiama un'azione chiave-down anziché key-up, è necessario modificare il codice.

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

    • Se stai intercettando il tasto INDIETRO in un'attività o in una finestra di dialogo, implementare il nuovo metodo onBackPressed().
    • Se stai intercettando la chiave Indietro in una vista, dovresti monitorare la chiave. all'evento quando viene premuto il tasto [Key-down] (tramite il nuovo startTracking() ), quindi richiama l'azione al tasto. 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 si desidera aggiornare un'applicazione legacy in modo che la gestione del processo BACK funziona correttamente su Android 2.0 e sulle versioni precedenti della piattaforma, puoi utilizzare un approccio simile a quello mostrato sopra. Il tuo codice può rilevare evento pulsante target al momento della chiave, impostare un flag per monitorare l'evento chiave e quindi rilevare l'evento anche al momento del key-up, eseguendo l'azione desiderata se è impostato il flag. Vorrai anche controllare le modifiche allo stato attivo e cancellare il monitoraggio segnalare quando si acquisiscono o perdono l'attenzione.

    Report sulle differenze API

    Per una visione dettagliata delle modifiche alle API in Android 2.0 (Livello API 5), rispetto a la versione precedente, consulta il report Differenze API.