Android 2.0, version 1

Niveau d'API : 5

Android 2.0 est une version majeure de la plate-forme pouvant être déployée 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 sous la forme un composant téléchargeable pour le SDK Android. La plate-forme téléchargeable comprend un une bibliothèque Android et une image système entièrement conformes, ainsi qu'un ensemble d'émulateurs apparences, exemples d'applications, etc. La plate-forme téléchargeable est entièrement et n'inclut pas de bibliothèques externes.

Pour commencer à développer ou à tester avec la plate-forme Android 2.0, utilisez le SDK Android et l'outil AVD Manager pour 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 Principaux 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 ces des applications intégrées:

  • Réveil
  • Navigateur
  • Calculatrice
  • Caméscope
  • Appareil photo
  • Contacts
  • Paramètres régionaux personnalisés (application de développement)
  • Outils de développement (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 différents paramètres régionaux intégrés. Dans certains cas, des chaînes spécifiques à une région sont disponibles paramètres régionaux. Dans d'autres cas, une version par défaut de la langue est utilisée. La langues disponibles sur le système Android 2.0 images listées ci-dessous (avec les paramètres régionaux language_country/region) du descripteur).

  • 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'UI localisées correspondent aux paramètres régionaux accessibles dans les paramètres.

    Skins d'émulateur

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

    • QVGA (240 x 320, basse 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 (480 x 854 haute densité, écran normal)

    Pour savoir comment développer 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 destinées aux développeurs offertes par le composant téléchargeable de la plate-forme Android 2.0.

    Assistance Ant

    • Signature d'applications en mode débogage et publication. La signature en mode version inclut la compatibilité intégrée avec l'optimisation zipalign. Pour en savoir plus, consultez la page Signer vos applications.
    • Ajout d'un nouveau système de compilation Ant compatible avec les projets d'instrumentation Emma (couverture du 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 du 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 lui-même. Cet identifiant, appelé "niveau d'API", permet pour déterminer correctement si une application est compatible avec le système avant d'installer l'application.

    Pour utiliser les API introduites dans Android 2.0 dans votre application, vous devez définissez la valeur appropriée ("5") dans les attributs de <uses-sdk>. dans le 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
    • Se connecter à un appareil distant via RFCOMM et envoyer/recevoir des données
    • Annoncer des services RFCOMM et écouter la connexion RFCOMM entrante

    Adaptateurs de synchronisation

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

    Responsable de compte

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

    Contacts

    • Nouvelles API de gestion des contacts permettant de transférer des données provenant de plusieurs comptes
    • Les nouvelles API du framework Quick Contact permettent aux développeurs de créer des badges de contact dans leur application. En cliquant sur le badge, une fenêtre s'ouvre et affiche la liste des 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 réglages.
    • Nouvelle interface ZoomCallback pour effectuer des actions lorsque le niveau de zoom a changé.

    Contenus multimédias

    • MediaScanner génère désormais des miniatures pour toutes les images lorsqu'elles sont insérées dans MediaStore.
    • Nouvelle API Vignette pour 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 au-dessus du fond d'écran système actuel ou conserver l'activité précédente visible en arrière-plan.
    • La nouvelle API BackgroundManager remplace et étend les API de fond d'écran qui se trouvaient auparavant en contexte, afin de 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 faible mémoire où un service peut être arrêté pendant son exécution.
      • Service.setForeground() est obsolète et n'effectue désormais aucune opération. Elle a été 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 des informations sur les gestes tactiles simultanés pour les appareils compatibles. Vous pouvez suivre jusqu'à trois pointeurs simultanément.
    • KeyEvent dispose de nouvelles API de distribution de touches pour vous aider à implémenter les comportements "action-on-up" et "appui prolongé", ainsi qu'un nouveau mécanisme d'annulation des appuis sur les touches (pour les touches virtuelles).
    • WindowManager.LayoutParams comporte de nouvelles constantes qui permettent à une fenêtre de réveiller l'écran lorsqu'elle s'affiche et de l'afficher même si l'écran est verrouillé. Cela permet aux applications d'implémenter plus précisément des éléments tels que les réveils qui doivent activer l'appareil.
    • Nouvelles API 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 une station d'accueil pour ordinateur ou pour voiture.

    Événements clés exécutés lors de la création de clé

    Android 2.0 est conçu pour s'exécuter sur des appareils qui utilisent des touches virtuelles pour les boutons HOME, MENU, BACK et SEARCH, 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 à la montée de la touche, pour une paire de touches bas/haut, plutôt qu'à la descente de la touche. Cela permet d'éviter les événements de bouton accidentels et permet à l'utilisateur d'appuyer sur la zone du bouton, puis de la faire glisser 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 à la pression d'une touche, plutôt qu'à la relâche. En particulier si votre application intercepte la touche RETOUR, vous devez vous assurer qu'elle gère correctement les événements de touche.

    En général, intercepter la touche RETOUR dans une application n'est pas recommandé, Cependant, si votre application effectue cette opération et qu'elle appelle une action sur plutôt que clé-up, vous devez modifier votre code.

    Si votre application utilise des API introduites dans Android 2.0 (niveau d'API 5), vous pouvez exploiter les 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, il vous suffit d'implémenter la nouvelle méthode onBackPressed().
    • Si vous interceptez la touche RETOUR dans une vue, vous devez suivre la touche lors de l'appui prolongé (via le nouveau startTracking() ), puis appelez l'action au niveau de la touche. Voici un modèle 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 le retour fonctionne correctement pour Android 2.0 et les versions plus anciennes, vous vous pouvez utiliser une approche semblable à celle présentée ci-dessus. Votre code peut intercepter événement de bouton cible sur touche vers le bas, définir un indicateur pour suivre l'événement clé, et puis interceptent également l'événement lors de la clé-up, en exécutant l'action souhaitée si le suivi est défini. Vous devez également surveiller les changements de focus et effacer l'indicateur de suivi lorsque vous gagnez ou perdez le focus.

    Rapport sur les différences entre les API

    Pour obtenir un aperçu détaillé des modifications apportées aux API dans Android 2.0 (niveau d'API 5) par rapport à la version précédente, consultez le rapport sur les différences entre les API.