Android 2.0, version 1

Niveau d'API:5

Android 2.0 est une version majeure de la plate-forme déployable sur les téléphones Android à partir de novembre 2009. Cette version inclut de nouvelles fonctionnalités pour les utilisateurs et les développeurs, ainsi que des modifications apportées à l'API du framework Android.

Pour les développeurs, la plate-forme Android 2.0 est disponible en tant que composant téléchargeable pour le SDK Android. La plate-forme téléchargeable comprend une bibliothèque Android et une image système entièrement conformes, ainsi qu'un ensemble d'habillages d'émulateur, d'applications exemples, etc. La plate-forme téléchargeable est entièrement conforme et n'inclut aucune bibliothèque externe.

Pour commencer à développer ou à tester la plate-forme Android 2.0, utilisez le SDK Android et l'outil AVD Manager afin de télécharger la plate-forme dans votre SDK.

Points forts de la plate-forme

Pour obtenir la liste des nouvelles fonctionnalités utilisateur et des points forts de la plate-forme, consultez le document Android 2.0 Platform Highlights (Points forts de la plate-forme Android 2.0).

Applications intégrées

L'image système incluse dans la plate-forme téléchargeable fournit les applications intégrées suivantes:

  • Réveil
  • Browser
  • Calculatrice
  • Caméscope
  • Appareil photo
  • Contacts
  • Paramètres régionaux personnalisés (application pour les développeurs)
  • Outils pour les développeurs (application pour les développeurs)
  • Téléphone
  • Adresse e-mail
  • Galerie
  • Outil de création de gestes
  • IME pour la saisie de texte en japonais
  • Messages
  • Musique
  • Paramètres
  • Pièces détachées (application pour les développeurs)

Locales

L'image système incluse dans la plate-forme téléchargeable fournit divers paramètres régionaux intégrés. Dans certains cas, des chaînes spécifiques à une région sont disponibles pour les paramètres régionaux. Dans les autres cas, une version par défaut de la langue est utilisée. Les langues disponibles dans l'image système Android 2.0 sont listées ci-dessous (avec le descripteur de paramètre régional language_country/region).

  • Chinois, RPC (zh_CN)
  • Chinois, Taïwan (zh_TW)
  • Tchèque (cs_CZ)
  • Néerlandais, Pays-Bas (nl_NL)
  • Néerlandais, Belgique (nl_BE)
  • Anglais, États-Unis (en_US)
  • Anglais, Grande-Bretagne (en_GB)
  • Anglais, Canada (en_CA)
  • Anglais, Australie (en_AU)
  • Anglais, Nouvelle-Zélande (en_NZ)
  • Anglais, Singapour(en_SG)
  • Français, France (fr_FR)
  • Français, Belgique (fr_BE)
  • Français, Canada (fr_CA)
  • Français, Suisse (fr_CH)
  • Allemand, Allemagne (de_DE)
  • Allemand, Autriche (de_AT)
  • Allemand, Suisse (de_CH)
  • Allemand, Liechtenstein (de_LI)
  • Italien, Italie (it_IT)
  • Italien, Suisse (it_CH)
  • Japonais (ja_JP)
  • Coréen (ko_KR)
  • Polonais (pl_PL)
  • Russe (ru_RU)
  • Espagnol (es_ES)
  • Les chaînes d'interface utilisateur localisées correspondent aux paramètres régionaux accessibles via les paramètres.

    Skins d'émulateur

    La plate-forme téléchargeable comprend un ensemble d'apparences d'émulateur que vous pouvez utiliser pour modéliser votre application dans différentes tailles et résolutions d'écran. Les apparences de l'émulateur sont les suivantes:

    • QVGA (240 x 320, faible densité, petit écran)
    • WQVGA (240 x 400, faible densité, écran normal)
    • FWQVGA (240 x 432, faible densité, écran normal)
    • HVGA (320 x 480, densité moyenne, écran normal)
    • WVGA800 (480 x 800, haute densité, écran normal)
    • WVGA854 (haute densité 480 x 854, écran normal)

    Pour plus d'informations sur le développement d'une application qui s'affiche et fonctionne correctement sur tous les appareils Android, consultez la section Compatibilité avec plusieurs écrans.

    Fonctionnalités pour les développeurs

    Les sections ci-dessous fournissent des informations sur les nouvelles fonctionnalités pour les développeurs proposées par le composant téléchargeable de la plate-forme Android 2.0.

    Fourmis

    • Signature d'application en mode débogage et en mode publication. La signature en mode publication inclut la prise en charge intégrée de l'optimisation zipalign. Pour en savoir plus, consultez Signer vos applications.
    • Ajout d'un nouveau système de compilation Ant compatible avec les projets d'instrumentation Emma (couverture de code).

    API Framework

    Les sections ci-dessous fournissent des informations sur l'API du framework d'application fournie par la plate-forme Android 2.0.

    Niveau d'API

    La plate-forme Android 2.0 fournit une version mise à jour de l'API de framework. Comme pour les versions précédentes, l'API Android 2.0 se voit attribuer un identifiant entier (5) stocké dans le système. Cet identifiant, appelé "niveau d'API", permet au système de déterminer correctement si une application est compatible avec le système, avant de l'installer.

    Pour utiliser les API introduites dans Android 2.0 dans votre application, vous devez définir la valeur appropriée ("5") dans les attributs de l'élément <uses-sdk> du fichier manifeste de votre application.

    Pour en savoir plus sur l'utilisation du niveau d'API, consultez le document Niveaux d'API.

    Résumé des modifications apportées à l'API

    Bluetooth

    • Activer/Désactiver le Bluetooth
    • Détection d'appareils et de services
    • Connectez-vous à un appareil distant via RFCOMM et envoyez/recevez des données
    • Annoncer des services RFCOMM et écouter les connexions RFCOMM entrantes

    Adaptateurs de synchronisation

    • Nouvelles API pour les adaptateurs de synchronisation permettant de se connecter à n'importe quel backend

    Gestionnaire de compte

    • API centralisée du gestionnaire de compte pour stocker et accéder de manière sécurisée aux jetons/mots de passe d'authentification

    Contacts

    • Nouvelles API Contacts permettant d'accéder aux données de plusieurs comptes
    • Les nouvelles API du framework de liens rapides permettent aux développeurs de créer des badges de contact dans leur application. En cliquant sur le badge, une fenêtre s'ouvre avec une liste de moyens de contacter la personne en un clic.

    WebView

    • Classes obsolètes: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Appareil photo

    • Nouveaux paramètres pour l'effet couleur, le mode Scène, le mode Flash, le mode de mise au point, la balance des blancs, la rotation et d'autres paramètres.
    • Nouvelle interface ZoomCallback permettant d'effectuer des actions lorsque le niveau de zoom a changé.

    Contenus multimédias

    • MediaScanner génère désormais des vignettes pour toutes les images lorsqu'elles sont insérées dans MediaStore.
    • Nouvelle API Miniature permettant de récupérer des miniatures d'images et de vidéos à la demande.

    Autre framework

    • Nouveaux thèmes système dans android.R.style pour afficher facilement les activités par-dessus le fond d'écran actuel du système ou garder l'activité précédente visible en arrière-plan.
    • La nouvelle API WallpaperManager remplace et étend les API de fond d'écran qui étaient auparavant dans Context, pour permettre aux applications de demander et de définir le fond d'écran du système.
    • Nouvelles API de service pour aider les applications à gérer correctement le cycle de vie des services, en particulier dans les situations de mémoire insuffisante où un service peut être arrêté pendant son exécution.
      • Abandon de Service.setForeground(), qui n'effectue désormais aucune opération. Elle est remplacée par une nouvelle API, startForeground(), qui permet (et nécessite) d'associer une notification d'activité en cours à l'état de premier plan.
    • MotionEvent peut désormais signaler les informations tactiles simultanées pour les appareils compatibles. Vous pouvez suivre jusqu'à trois pointeurs simultanément.
    • KeyEvent dispose de nouvelles API de distribution des touches qui facilitent la mise en œuvre du comportement d'action en haut et d'appui prolongé, ainsi que d'un nouveau mécanisme pour annuler les pressions sur les touches (pour les touches virtuelles).
    • WindowManager.LayoutParams comporte de nouvelles constantes qui permettent à une fenêtre d'activer l'écran lorsqu'il est affiché et d'afficher la fenêtre même si l'écran est verrouillé. Cela permet aux applications d'implémenter plus clairement des éléments tels que des réveils qui doivent activer l'appareil.
    • Nouvelles API d'intent qui diffusent l'état de la station d'accueil de l'appareil et permettent aux applications de lancer des activités spéciales lorsque l'appareil est placé sur un ordinateur de bureau ou un support voiture.

    Événements de touche exécutés à la touche du clavier

    Android 2.0 est conçu pour s'exécuter sur des appareils qui utilisent des touches virtuelles pour ACCUEIL, MENU, RETOUR et RECHERCHE, plutôt que des touches physiques. Pour offrir la meilleure expérience utilisateur possible sur ces appareils, la plate-forme Android exécute désormais ces boutons au clavier, pour une paire de touches enfoncées/touches, plutôt que lors d'une opération de touche du clavier. Cela permet d'éviter les événements accidentels liés aux boutons et permet à l'utilisateur d'appuyer sur la zone du bouton, puis de la faire glisser hors de celle-ci sans générer d'événement.

    Ce changement de comportement ne devrait affecter votre application que si elle intercepte les événements de bouton et effectue une action sur le raccourci clavier plutôt que sur la touche enfoncée. Vous devez vous assurer qu'elle gère correctement les événements de touche, en particulier si votre application intercepte la touche RETOUR.

    En général, il n'est pas recommandé d'intercepter la touche RETOUR dans une application. Toutefois, si votre application effectue cette opération et qu'elle appelle une action au toucher plutôt qu'au clavier, vous devez modifier votre code.

    Si votre application utilise des API introduites dans Android 2.0 (niveau d'API 5), vous pouvez exploiter de nouvelles API pour gérer les paires clé/événement:

    • Si vous interceptez la touche RETOUR dans une activité ou une boîte de dialogue, implémentez simplement la nouvelle méthode onBackPressed().
    • Si vous interceptez la touche RETOUR dans une vue, vous devez suivre l'événement de touche lorsque l'utilisateur clique dessus (via la nouvelle méthode startTracking()), puis appeler l'action lorsque la touche enfoncée. Voici un schéma que vous pouvez utiliser:
    • 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);
          }
      

    Si vous souhaitez mettre à jour une ancienne application afin que sa gestion de la touche RETOUR fonctionne correctement pour Android 2.0 et les anciennes versions de la plate-forme, vous pouvez utiliser une approche semblable à celle présentée ci-dessus. Votre code peut intercepter l'événement du bouton cible lorsque l'utilisateur touche la touche enfoncée, définir un indicateur pour suivre l'événement de touche, puis également intercepter l'événement au clavier, en exécutant l'action souhaitée si l'indicateur de suivi est défini. Vous devez également surveiller les changements de ciblage et effacer l'indicateur de suivi lorsque vous obtenez ou perdez la sélection.

    Rapport sur les différences entre les API

    Pour obtenir une vue détaillée des modifications apportées à l'API dans Android 2.0 (niveau d'API 5) par rapport à la version précédente, consultez le rapport sur les différences d'API.