API Android 2.2

Niveau d'API:8

Android 2.2 est une version mineure de la plate-forme qui inclut des fonctionnalités utilisateur, des fonctionnalités pour les développeurs, des modifications d'API et des corrections de bugs. Pour en savoir plus sur les fonctionnalités pour les développeurs et les modifications de l'API, consultez la section API Framework.

Pour les développeurs, la plate-forme Android 2.2 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, ainsi qu'un ensemble d'apparences d'émulateur et plus encore. Pour commencer à développer ou à tester Android 2.2, utilisez Android SDK 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 clés de la plate-forme, consultez le document Android 2.2 Platform Highlights (Points forts de la plate-forme Android 2.2).

Niveau d'API

La plate-forme Android 2.2 fournit une version mise à jour de l'API du framework. Un identifiant entier (8) est attribué à l'API Android 2.2, qui est 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.2 dans votre application, vous devez définir la valeur appropriée ("8") dans les attributs android:minSdkVersion de l'élément <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.

Modifications apportées à l'API Framework

Les sections ci-dessous fournissent des informations sur les modifications apportées à l'API du framework d'application fournie par la plate-forme Android 2.2.

Installation d'applications sur un support de stockage externe

La plate-forme Android permet désormais aux applications de demander l'installation sur le support de stockage externe de l'appareil (comme la carte SD), au lieu d'installer dans la mémoire interne de l'appareil.

Les développeurs d'applications peuvent indiquer l'emplacement d'installation privilégié pour leurs applications à l'aide d'un nouvel attribut de <manifest> dans le fichier manifeste, android:installLocation. L'attribut accepte trois valeurs : "internalOnly", "preferExternal" et "auto". Au moment de l'installation, le système vérifie la valeur de android:installLocation et installe l'application .apk à l'emplacement souhaité, si possible. Si l'application a demandé une installation externe, le système l'installe dans une partition privée chiffrée sur le support externe. Une fois qu'un fichier .apk d'une application est installé en externe, le système permet à l'utilisateur de modifier son emplacement de stockage et de le déplacer vers la mémoire interne de l'appareil si nécessaire (et inversement) via l'option "Gérer les applications" des paramètres utilisateur.

Par défaut, le système installe toutes les applications dans la mémoire interne de l'appareil, à l'exception de celles qui demandent explicitement une installation externe. Cela signifie que le système installe toujours les anciennes applications dans la mémoire interne, car elles n'ont pas accès à l'attribut android:installLocation. Toutefois, il est possible de configurer et de compiler une ancienne application de sorte qu'elle soit installée en interne sur d'anciennes versions de la plate-forme et en externe sur les plates-formes Android 2.2 et versions ultérieures, si nécessaire.

Notez qu'une demande d'installation sur le support externe de l'appareil n'est pas adaptée à toutes les applications, en particulier parce que le support externe peut être amovible et que le démontage/réinstallation peut perturber l'expérience utilisateur et les paramètres système.

Pour en savoir plus sur la définition d'un emplacement d'installation préféré pour votre application, y compris sur les types d'applications qui peuvent ou non demander une installation externe, consultez le document Emplacement d'installation de l'application.

Sauvegarde des données

La plate-forme fournit désormais un service de sauvegarde généralisé que les applications peuvent utiliser pour sauvegarder et restaurer les données utilisateur, afin que les utilisateurs puissent conserver leurs données lorsqu'ils changent d'appareil ou réinstallent l'application. Le gestionnaire de sauvegarde gère le transport des données de l'application vers et depuis la zone de stockage de sauvegarde dans le cloud. Le gestionnaire de sauvegarde peut stocker tout type de données, des données arbitraires aux fichiers, et gère les opérations de sauvegarde et de restauration de manière atomique. Pour en savoir plus, consultez l'article Sauvegarde des données.

Graphismes

Contenus multimédias

  • Ajout d'API dans android.media.AudioManager pour gérer la priorité audio, le contrôle du transport, la perte temporaire de focalisation audio et la diminution.
  • Nouvel intent de diffusion pour acheminer le contenu audio vers SCO : ACTION_SCO_AUDIO_STATE_CHANGED avec des extras indiquant un nouvel état.
  • Ajout d'API dans SoundPool pour détecter la fin du chargement du son.
  • Nouvelles API dans SoundPool pour la mise en veille et la reprise automatiques.
  • Ajout d'API dans MediaRecorder permettant de spécifier les paramètres audio pour le nombre de canaux, les taux d'encodage, d'échantillonnage et le taux d'échantillonnage.
  • Nouvelles API permettant d'ajouter des fichiers à la base de données multimédia afin qu'ils soient automatiquement analysés. Voir MediaScannerConnection.scanFile et MediaScannerConnection.OnScanCompletedListener.

Reconnaissance vocale et moteurs de reconnaissance tiers

  • La plate-forme fournit de nouvelles API de reconnaissance vocale qui permettent aux applications de bénéficier d'une interaction plus riche avec le système de reconnaissance vocale disponible. Par exemple, les API suffisent pour intégrer pleinement la reconnaissance vocale à un IME.
  • La plate-forme fournit également une classe de base RecognitionService qui permet aux développeurs tiers de créer des moteurs de reconnaissance de plug-ins.
  • Nouvelle interface RecognitionListener pour recevoir des rappels.
  • Nouveaux extras RecognizerIntent permettant à une application de requête de spécifier des détails comme la langue préférée, la durée minimale en millisecondes, etc.

Appareil photo et caméscope

  • Modifications apportées à l'API Camera Preview pour améliorer l'efficacité du pipeline d'aperçu.
  • Nouvelle orientation de l'écran pour l'appareil photo (peut désormais fonctionner en mode portrait).
  • Nouvelles API dans android.hardware.Camera pour gérer le niveau de zoom.
  • Ajout d'API android.hardware.Camera.Parameters permettant d'interroger et de définir les paramètres de l'appareil photo de l'appareil, tels que la distance focale, l'exposition, le niveau de zoom, l'angle de vue, etc.
  • Nouvel utilitaire thumbnail pour les vignettes de vidéos et d'images.
  • Les nouvelles classes CamcorderProfile et CamcorderProfile permettent aux applications de déterminer les capacités matérielles de l'appareil photo.
  • android.media.ExifInterface prend désormais en charge la récupération des données GPS et de la distance focale.

Gestionnaire des règles relatives aux appareils

De nouvelles API de gestion des règles relatives aux appareils permettent aux développeurs de créer des applications d'"administrateur d'appareil" pouvant contrôler les fonctionnalités de sécurité de l'appareil, telles que le niveau de sécurité minimal du mot de passe, l'effacement des données, etc. Les utilisateurs peuvent sélectionner les administrateurs qui sont activés sur leurs appareils. Pour en savoir plus, consultez les classes android.app.admin ou l'exemple de code d'application dans le fichier DeviceAdminSample.java.

Framework d'interface utilisateur

  • Les nouveaux modes d'interface utilisateur "mode voiture" et "mode nuit" et UiModeManager permettent aux applications d'ajuster l'interface de leur application pour des modes d'utilisateur spécifiques.
  • Nouveau ScaleGestureDetector qui permet à Views de détecter et de gérer les gestes de transformation impliquant plusieurs pointeurs (multitouch) à l'aide des MotionEvents fournis.
  • Améliorations apportées à la transmission des événements multitouch dans les objets MotionEvent.
  • Changement de nom : l'attribut de mise en page fill_parent devient match_parent. Cela concerne à la fois le code XML et le code Java (voir ViewGroup.LayoutParams). Notez que la plate-forme continuera d'accepter l'utilisation de fill_parent dans les anciennes applications.
  • Les nouveaux attributs de mise en page tabStripEnabled, tabStripRight et tabStripLeft permettent aux développeurs de personnaliser la bande inférieure des TabWidgets.
  • Meilleure prise en charge des boîtes de dialogue gérées dans "Activité".

Comptes et synchronisation

  • La nouvelle méthode AddPeriodicSync() vous permet de planifier une synchronisation périodique avec un compte, une autorité ou des éléments supplémentaires spécifiques, à la fréquence donnée.

Nouveaux éléments et attributs du fichier manifeste

  • Pour spécifier l'emplacement d'installation préféré de l'application (voir Installation d'applications sur un support de stockage externe ci-dessus) :
    • Nouvel attribut android:installLocation de l'élément <manifest>. Spécifie l'emplacement d'installation par défaut défini par une application.
  • Pour gérer la sauvegarde des données utilisateur (consultez la section Gestionnaire de sauvegarde ci-dessus pour plus d'informations) :
    • Nouvel attribut android:backupAgent de l'élément <application>. Spécifie le nom de composant de la sous-classe BackupAgent fournie par l'application pour gérer les opérations de sauvegarde/restauration, le cas échéant.
    • Nouvel attribut android:restoreAnyVersion de l'élément <application>. Valeur booléenne indiquant si l'application est prête à tenter de restaurer un ensemble de données sauvegardé, même si la sauvegarde provient apparemment d'une version plus récente de l'application que celle actuellement installée sur l'appareil.
  • Pour gérer le compilateur JIT de la plate-forme :
    • Nouvel attribut android:vmSafeMode de l'élément <application>. Valeur booléenne indiquant si les optimisations du compilateur JIT doivent être désactivées lors de l'exécution de l'application.

Autorisations

  • android.permission.BIND_DEVICE_ADMIN : tout broadcast receiver de l'administration de l'appareil doit avoir besoin de cette autorisation pour garantir que seul le système peut interagir avec lui.
  • android.permission.KILL_BACKGROUND_PROCESSES : permet à une application d'appeler killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER : tout élément WallpaperService doit nécessiter cette autorisation pour garantir que seul le système peut interagir avec elle.
  • android.permission.SET_TIME : permet à une application de définir l'heure système.

Rapport sur les différences entre les API

Pour obtenir une vue détaillée de toutes les modifications apportées à l'API dans Android 2.2 (niveau d'API 8), consultez le rapport sur les différences entre les API.