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 inclut une bibliothèque Android et une image système entièrement conformes, ainsi qu'un ensemble d'interfaces d'émulateur, des exemples d'applications, etc. La plate-forme téléchargeable est entièrement conforme et n'inclut aucune bibliothèque externe.

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 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
  • Navigateur
  • Calculatrice
  • Caméscope
  • Appareil photo
  • Contacts
  • Paramètres régionaux personnalisés (application pour les développeurs)
  • 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 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 locale 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 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, faible densité, petit écran)
    • WQVGA (240 x 400, faible densité, écran normal)
    • FWQVGA (240 x 432, basse 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 en savoir plus sur le développement d'une application qui s'affiche et fonctionne correctement sur tous les appareils Android, consultez la page 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 de plate-forme Android 2.0 téléchargeable.

    Assistance Ant

    • Signature d'application en mode débogage et version La signature en mode version est compatible 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 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 lui-mê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
    • Se connecter à un appareil distant via RFCOMM et envoyer/recevoir des données
    • Annoncer les services RFCOMM et écouter les connexions RFCOMM entrantes

    Adaptateurs de synchronisation

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

    Responsable de compte

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

    Contacts

    • Nouvelles API de contacts permettant d'utiliser les données de plusieurs comptes
    • Les nouvelles API du framework Quick Contact permettent aux développeurs de créer des badges de contact dans leur application. Cliquez sur le badge pour ouvrir une fenêtre contenant 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 de 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 pour 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 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() a été abandonné et n'effectue plus 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éactiver l'écran lorsqu'elle est affichée 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 à la fin de la pression sur une touche

    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. Afin d'offrir la meilleure expérience utilisateur possible sur ces appareils, la plate-forme Android exécute désormais ces boutons au niveau du clavier, pour une paire clé-vers/clé, plutôt qu'au niveau de la clé vers le bas. 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 en dehors 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. 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 appelle une action de type key-down 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 bénéficier 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 lors de la pression sur la touche (via la nouvelle méthode startTracking()), puis appeler l'action lors de la relâche 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 sa gestion de la touche RETOUR fonctionne correctement pour Android 2.0 et les versions antérieures de la plate-forme, vous pouvez utiliser une approche similaire à celle illustrée ci-dessus. Votre code peut intercepter l'événement du bouton cible lors de la pression sur une touche, définir un indicateur pour suivre l'événement de touche, puis intercepter également l'événement lors de la relâche de la touche, en exécutant l'action souhaitée si l'indicateur de suivi est défini. Vous devez également surveiller les changements de ciblage et supprimer l'indicateur de suivi en cas de gain ou de perte d'attention.

    Rapport sur les différences entre les API

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