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 compatibles Android à partir de novembre 2009. Cette version inclut de nouvelles fonctionnalités pour les utilisateurs et les développeurs, ainsi que des modifications dans l'API du framework Android.

Pour les développeurs, la plate-forme Android 2.0 est disponible sous la forme 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 des applications 2.0, utilisez le SDK Android et l'outil AVD Manager pour téléchargez 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 site Web 2.0 Points forts de la plate-forme.

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 pour les développeurs)
  • Outils de développement (application pour les développeurs)
  • Téléphone
  • Adresse e-mail
  • Galerie
  • Générateur 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 offre une variété 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 les 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, République populaire de Chine (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 d'apparences 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, faible densité, écran normal)
    • HVGA (320 x 480, densité moyenne, écran normal)
    • WVGA800 (480 x 800, haute densité, écran normal)
    • WVGA854 (écran haute densité 480 x 854, é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 destinées aux développeurs offertes par le composant téléchargeable de la plate-forme Android 2.0.

    Anti-fourmis

    • Signature d'application en mode débogage et en mode release. 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 de code).

    API Framework

    Les sections ci-dessous fournissent des informations sur l'API Application Framework fournie par la plate-forme Android 2.0.

    Niveau d'API

    La plate-forme Android 2.0 propose une version mise à jour du framework. API. Comme pour les versions précédentes, l'API Android 2.0 se voit attribuer un identifiant sous forme d'entier, 5, soit stockées 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 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 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 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 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 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 permettant aux applications de gérer correctement le cycle de vie des services, en particulier les situations de mémoire insuffisante 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 interactions tactiles simultanées 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 un ordinateur de bureau ou un support 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 clés virtuelles pour HOME, MENU, RETOUR et RECHERCHE, au lieu des touches physiques. Pour aider l'utilisateur sur ces appareils, la plate-forme Android exécute désormais ces boutons clé-vers, pour une paire clé-vers/clé-up, plutôt que de clé-bas. Cela permet d'éviter des événements de bouton accidentels et permet à l'utilisateur d'appuyer sur la zone du bouton, puis de faire glisser sans générer d'événement.

    Ce changement de comportement ne devrait affecter votre application que si intercepter les événements de bouton et effectuer une action en appuyant sur la touche enfoncée, plutôt que sur clé-up. Surtout si votre application intercepte la touche RETOUR, vous assurer que votre application gère correctement les événements clés.

    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, 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 la réponse 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 l'événement lors de la clé-up, en exécutant l'action souhaitée si le suivi est défini. Surveillez également les changements d'orientation et supprimez le suivi signaler 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 à version précédente, consultez le rapport sur les différences de l'API.