Android 4.3
Bienvenue sur Android 4.3, une version alléchante de Jelly Bean !
Android 4.3 inclut des optimisations de performances et de nouvelles fonctionnalités intéressantes pour les utilisateurs et les développeurs. Ce document offre un aperçu des nouveautés pour les développeurs.
Consultez le document sur les API Android 4.3 pour en savoir plus sur les nouvelles API de développement.
Découvrez les nouvelles fonctionnalités de Jelly Bean pour les utilisateurs sur www.android.com.
Plus rapide, plus fluide et plus réactif
Android 4.3 s'appuie sur les améliorations de performances déjà incluses dans Jelly Bean, à savoir la chronologie vsync, la triple mise en mémoire tampon, la latence tactile réduite, l'optimisation de l'entrée du processeur et le rendu 2D avec accélération matérielle, et ajoute de nouvelles optimisations qui rendent Android encore plus rapide.
Pour améliorer les performances graphiques, le moteur de rendu 2D avec accélération matérielle optimise désormais le flux des commandes de dessin, en le transformant en un format GPU plus efficace en réorganisant et en fusionnant les opérations de dessin. Pour le traitement multithread, le moteur de rendu peut désormais utiliser le multithreading sur plusieurs cœurs de processeur pour effectuer certaines tâches.
Android 4.3 améliore également le rendu des formes et du texte. Les formes telles que les cercles et les rectangles arrondis sont désormais affichées de manière plus efficace et de meilleure qualité. Les optimisations pour le texte incluent de meilleures performances en cas d'utilisation de plusieurs polices ou d'ensembles de glyphes complexes (CJK), une meilleure qualité d'affichage lors de la mise à l'échelle du texte et un rendu plus rapide des ombres projetées.
L'allocation de tampon de fenêtre améliorée accélère l'allocation du tampon d'image pour vos applications, ce qui réduit le temps nécessaire pour lancer l'affichage lorsque vous créez une fenêtre.
Pour des performances graphiques optimales, Android 4.3 est compatible avec OpenGL ES 3.0 et le rend accessible aux applications via le framework et des API natives. Sur les appareils compatibles, le moteur de rendu 2D avec accélération matérielle tire parti d'OpenGL ES 3.0 pour optimiser la gestion des textures et augmenter la fidélité du rendu en dégradé.
OpenGL ES 3.0 pour des graphismes hautes performances
Android 4.3 est compatible avec Khronos OpenGL ES 3.0, ce qui fournit des jeux et d'autres applications aux fonctionnalités graphiques 2D et 3D les plus performantes sur les appareils compatibles. Vous pouvez tirer parti d'OpenGL ES 3.0 et des extensions EGL associées à l'aide des API du framework ou des liaisons d'API natives via le kit de développement Android natif (NDK).
Les principales nouvelles fonctionnalités fournies dans OpenGL ES 3.0 incluent l'accélération des effets visuels avancés, la compression de texture ETC2/EAC de haute qualité en tant que fonctionnalité standard, une nouvelle version du langage de nuance GLSL ES compatible avec les entiers et les points flottants 32 bits, le rendu de texture avancé, ainsi que des formats de texture et de tampon de rendu standardisés.
Vous pouvez utiliser les API OpenGL ES 3.0 pour créer des graphiques très complexes et très efficaces qui s'exécutent sur toute une gamme d'appareils Android compatibles. Vous pouvez également prendre en charge un format unique de compression de texture standard sur tous ces appareils.
OpenGL ES 3.0 est une fonctionnalité facultative qui dépend du matériel graphique sous-jacent. Les appareils Nexus 7 (2013), Nexus 4 et Nexus 10 sont déjà compatibles.
Connectivité Bluetooth améliorée
Connectivité avec les appareils et capteurs Bluetooth Smart
Vous pouvez désormais concevoir et créer des applications qui interagissent avec la dernière génération de petits appareils et capteurs à faible consommation d'énergie utilisant la technologie Bluetooth Smart.
Android 4.3 intègre la plate-forme Bluetooth Smart Ready dans le rôle central et fournit un ensemble standard d'API que les applications peuvent utiliser pour détecter les appareils à proximité, interroger les services GATT et lire/écrire des caractéristiques.
Grâce aux nouvelles API, vos applications peuvent rechercher efficacement les appareils et les services qui vous intéressent. Pour chaque appareil, vous pouvez vérifier les services GATT compatibles par UUID et gérer les connexions par ID d'appareil et intensité du signal. Vous pouvez vous connecter à un serveur GATT hébergé sur l'appareil et lire ou écrire des caractéristiques, ou enregistrer un écouteur pour recevoir des notifications chaque fois que ces caractéristiques changent.
Vous pouvez implémenter la prise en charge de n'importe quel profil GATT. Vous pouvez lire ou écrire des caractéristiques standards, ou ajouter la prise en charge de caractéristiques personnalisées selon vos besoins. Votre application peut fonctionner en tant que client ou serveur, et peut transmettre et recevoir des données dans l'un ou l'autre mode. Les API sont génériques. Vous pourrez donc prendre en charge les interactions avec divers appareils, tels que les tags de proximité, les montres, les outils de mesure, les manettes de jeu, les télécommandes, les appareils de santé, etc.
La compatibilité Bluetooth Smart Ready est déjà disponible sur les appareils Nexus 7 (2013) et Nexus 4, et elle sera prise en charge par un nombre croissant d'appareils compatibles Android dans les mois à venir.
Profil AVRCP 1.3
Android 4.3 est compatible avec le Bluetooth AVRCP 1.3, ce qui permet à vos applications de prendre en charge des interactions plus riches avec les appareils multimédias en streaming à distance. Les applications telles que les lecteurs multimédias peuvent exploiter AVRCP 1.3 via les API clientes de télécommande introduites dans Android 4.0. En plus d'exposer les commandes de lecture sur les appareils distants connectés via le Bluetooth, les applications peuvent désormais transmettre des métadonnées telles que le nom de la piste, le compositeur et d'autres types de métadonnées multimédias.
La compatibilité des plates-formes avec AVRCP 1.3 repose sur la pile Bluetooth Bluedroid introduite par Google et Broadcom dans Android 4.2. L'assistance est disponible immédiatement sur les appareils Nexus et sur les autres appareils compatibles avec Android compatibles A2DP/AVRCP.
Prise en charge des profils limités
Android 4.3 étend la fonctionnalité multi-utilisateur pour les tablettes dotées de profils limités, une nouvelle façon de gérer les utilisateurs et leurs fonctionnalités sur un seul appareil. Avec les profils limités, les propriétaires de tablettes peuvent rapidement configurer des environnements distincts pour chaque utilisateur, avec la possibilité de gérer des restrictions plus précises dans les applications disponibles dans ces environnements. Les profils limités conviennent parfaitement aux proches, aux utilisateurs invités, aux kiosques, aux appareils de point de vente, etc.
Chaque profil limité offre un espace isolé et sécurisé doté de son propre espace de stockage local, de ses écrans d'accueil, de ses widgets et de ses propres paramètres. Contrairement aux utilisateurs, les profils sont créés à partir de l'environnement du propriétaire de la tablette, en fonction des applications installées et des comptes système du propriétaire. Le propriétaire contrôle les applications installées qui sont activées dans le nouveau profil, et l'accès à ses comptes est désactivé par défaut.
Les applications qui doivent accéder aux comptes du propriétaire (pour la connexion, les préférences ou d'autres utilisations) peuvent l'activer en déclarant un attribut de fichier manifeste. Le propriétaire peut examiner et gérer ces applications à partir des paramètres de configuration du profil.
Pour les développeurs, les profils limités offrent un nouveau moyen d'offrir plus de valeur et de contrôle à vos utilisateurs. Vous pouvez implémenter des restrictions d'application (contrôles de contenu ou de fonctionnalités compatibles avec votre application) et les promouvoir auprès des propriétaires de tablettes dans les paramètres de configuration du profil.
Vous pouvez ajouter des restrictions d'application directement dans les paramètres de configuration du profil à l'aide de types prédéfinis booléens, select et multi-sélection. Si vous souhaitez plus de flexibilité, vous pouvez même lancer votre propre interface utilisateur à partir des paramètres de configuration du profil pour proposer n'importe quel type de restriction.
Lorsque votre application s'exécute dans un profil, elle peut rechercher les éventuelles restrictions configurées par le propriétaire et les appliquer de manière appropriée. Par exemple, une application multimédia peut proposer une restriction permettant au propriétaire de définir un niveau de maturité pour le profil. Au moment de l'exécution, l'application peut vérifier le paramètre de maturité, puis gérer le contenu en fonction du niveau de maturité souhaité.
Si votre application n'est pas conçue pour être utilisée dans des profils limités, vous pouvez la désactiver complètement afin qu'elle ne puisse pas être activée dans un profil limité.
Fonctionnalités de localisation et de capteurs optimisées
Les services Google Play proposent des API de localisation avancées que vous pouvez utiliser dans vos applications. Android 4.3 optimise ces API sur les appareils compatibles avec de nouvelles fonctionnalités matérielles et logicielles qui réduisent l'utilisation de la batterie.
Le géorepérage matériel optimise l'efficacité énergétique en effectuant des calculs de position dans le matériel de l'appareil plutôt que dans un logiciel. Sur les appareils compatibles avec le géorepérage matériel, les API de géorepérage des services Google Play peuvent profiter de cette optimisation pour économiser la batterie lorsque l'appareil est en mouvement.
Le mode de recherche Wi-Fi uniquement est une nouvelle optimisation de la plate-forme qui permet aux utilisateurs de maintenir la recherche Wi-Fi activée sans se connecter à un réseau Wi-Fi, afin d'améliorer la précision de la localisation tout en économisant la batterie. Les applications qui dépendent du Wi-Fi pour les services de localisation peuvent désormais demander aux utilisateurs d'activer le mode recherche uniquement à partir des paramètres Wi-Fi avancés. Le mode de recherche Wi-Fi uniquement ne dépend pas du matériel de l'appareil et est disponible sur la plate-forme Android 4.3.
Les nouveaux types de capteurs permettent aux applications de mieux gérer leurs mesures. Un vecteur de rotation du jeu permet aux développeurs de jeux de détecter la rotation de l'appareil sans avoir à se soucier des interférences magnétiques. Les capteurs de gyroscope non calibré et de magnétomètre non calibré indiquent des mesures brutes, ainsi que des biais estimés pour les applications.
Les nouvelles fonctionnalités matérielles sont déjà disponibles sur les appareils Nexus 7 (2013) et Nexus 4, et n'importe quel fabricant d'appareils ou fournisseur de chipsets peut les intégrer à leurs appareils.
Nouvelles fonctionnalités multimédias
Framework de DRM modulaire
Pour répondre aux besoins de la nouvelle génération de services multimédias, Android 4.3 introduit un framework DRM modulaire qui permet aux développeurs d'applications multimédias d'intégrer plus facilement la DRM à leurs propres protocoles de streaming, tels que MPEG DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1).
Grâce à une combinaison de nouvelles API et d'améliorations apportées aux API existantes, le framework de DRM multimédia fournit un ensemble intégré de services permettant de gérer les licences et le provisionnement, d'accéder à des codecs de bas niveau et de décoder les données multimédias chiffrées. Une nouvelle API MediaExtractor vous permet d'obtenir les métadonnées PSSH pour les médias DASH. Les applications qui utilisent le framework de DRM multimédia gèrent la communication réseau avec un serveur de licences et le streaming de données chiffrées à partir d'une bibliothèque de contenu.
Encodeur VP8
Android 4.3 est compatible avec l'encodage VP8, accessible à partir du framework et des API natives. Pour les applications utilisant des API natives, la plate-forme inclut des en-têtes d'extension OpenMAX 1.1.2 pour assurer la compatibilité avec les profils et les niveaux VP8. La compatibilité avec l'encodage VP8 inclut des paramètres pour le débit cible, le contrôle du débit, la fréquence d'images, le partitionnement des jetons, la résilience aux erreurs, la reconstruction et les filtres de boucle. L'API de la plate-forme accepte l'encodeur VP8 dans de nombreux formats, ce qui vous permet d'utiliser le meilleur format pour votre contenu.
L'encodage VP8 est disponible dans le logiciel sur tous les appareils compatibles équipés d'Android 4.3. Pour des performances optimales, la plate-forme accepte également l'encodage VP8 avec accélération matérielle sur les appareils compatibles.
Encodage vidéo depuis une surface
À partir d'Android 4.3, vous pouvez utiliser une surface comme entrée d'un encodeur vidéo. Par exemple, vous pouvez désormais diriger un flux depuis une surface OpenGL ES vers l'encodeur, au lieu d'avoir à copier entre deux tampons.
Multiplicateur multimédia
Les applications peuvent utiliser les nouvelles API de multiplexeur multimédia pour combiner les flux audio et vidéo élémentaires en un seul fichier de sortie. Actuellement, les applications peuvent multiplexer un seul flux audio MPEG-4 et un seul flux vidéo MPEG-4 dans un seul fichier de sortie MPEG-4. Les nouvelles API sont l'équivalent des API de démuxing multimédia introduites dans Android 4.2.
Progression de la lecture et utilisation de la barre de lecture dans les clients télécommandés
Depuis Android 4.0, les lecteurs multimédias et les applications similaires peuvent proposer des commandes de lecture à partir de clients de télécommande, tels que l'écran de verrouillage de l'appareil, les notifications et les appareils distants connectés via Bluetooth. À partir d'Android 4.3, ces applications peuvent désormais également exposer la progression et la vitesse de la lecture via leurs clients de télécommande et recevoir des commandes permettant d'accéder à une position de lecture spécifique.
Nouvelles façons de créer des applications attrayantes
Accéder aux notifications
Les notifications sont depuis longtemps une fonctionnalité Android populaire, car elles permettent aux utilisateurs de voir des informations et des mises à jour depuis l'ensemble du système, en un seul et même endroit. Désormais, avec Android 4.3, les applications peuvent observer le flux de notifications avec l'autorisation de l'utilisateur et les afficher comme bon leur semble, y compris en les envoyant aux appareils connectés connectés via Bluetooth à proximité.
Vous pouvez accéder aux notifications via de nouvelles API qui vous permettent d'enregistrer un service d'écouteur de notifications et, avec l'autorisation de l'utilisateur, de recevoir les notifications telles qu'elles s'affichent dans la barre d'état. Les notifications vous sont envoyées dans leur intégralité, avec tous les détails sur l'application d'origine, l'heure de publication, l'affichage et le style du contenu, ainsi que la priorité. Vous pouvez évaluer les champs d'intérêt dans les notifications, traiter ou ajouter du contexte à partir de votre application, et les configurer pour qu'ils soient affichés comme vous le souhaitez.
La nouvelle API vous envoie des rappels lorsqu'une notification est ajoutée, mise à jour ou supprimée (soit parce que l'utilisateur l'a ignorée, soit parce que l'application d'origine l'a retirée). Vous pourrez lancer tous les intents associés à la notification ou à ses actions, et les ignorer du système, ce qui permet à votre application de fournir une interface utilisateur complète pour les notifications.
Les utilisateurs contrôlent quelles applications peuvent recevoir des notifications. À tout moment, il peut consulter les paramètres pour voir quelles applications ont accès aux notifications et activer ou désactiver l'accès selon leurs besoins. L'accès aux notifications est désactivé par défaut. Les applications peuvent utiliser un nouvel intent pour rediriger l'utilisateur directement vers les paramètres afin d'activer le service d'écoute après l'installation.
Afficher les superpositions
Vous pouvez désormais créer des superpositions transparentes au-dessus des vues et des ViewGroups pour afficher une hiérarchie de vues temporaire ou des effets d'animation temporaires sans perturber la hiérarchie de mise en page sous-jacente. Les superpositions sont particulièrement utiles lorsque vous souhaitez créer des animations, par exemple faire glisser une vue en dehors de son conteneur ou faire glisser des éléments à l'écran sans affecter la hiérarchie des vues.
Mode de mise en page des limites optiques
Un nouveau mode de mise en page vous permet de gérer le positionnement des vues dans ViewGroups en fonction de leurs limites optiques plutôt qu'en fonction de leurs limites de clip. Les limites de rognage représentent les limites extérieures réelles d'un widget, tandis que les nouvelles limites optiques décrivent l'emplacement du widget, dans les limites de rognage. Vous pouvez utiliser le mode de mise en page "Contours optiques" pour aligner correctement les widgets qui utilisent des effets visuels extérieurs tels que des ombres et des halos.
Types d'animations de rotation personnalisées
Les applications peuvent désormais définir les types d'animations de sortie et d'entrée utilisés dans une fenêtre lors de la rotation de l'appareil. Vous pouvez définir les propriétés d'une fenêtre pour activer la rotation de fenêtre de type jump-cut, fondu croisé ou standard. Le système utilise les types d'animations personnalisés lorsque la fenêtre est en plein écran et n'est pas couverte par d'autres fenêtres.
Modes d'orientation de l'écran
Les applications peuvent définir de nouveaux modes d'orientation pour les activités afin de s'assurer qu'elles s'affichent dans le bon sens lorsque l'appareil est retourné. De plus, les applications peuvent utiliser un nouveau mode pour verrouiller l'écran dans son orientation actuelle. Cela est utile pour les applications utilisant l'appareil photo qui souhaitent désactiver la rotation lors de l'enregistrement d'une vidéo.
Intent pour gérer les réponses rapides
Android 4.3 introduit un nouvel intent public qui permet à toute application de gérer les réponses rapides (messages texte envoyés par l'utilisateur en réponse à un appel entrant, sans avoir à décrocher ni déverrouiller l'appareil). Votre application peut écouter l'intent et envoyer le message à l'appelant via votre système de messagerie. L'intent inclut le destinataire (l'appelant) ainsi que le message lui-même.
Assistance pour les utilisateurs internationaux
Améliorations apportées à la lecture de droite à gauche
Android 4.3 inclut des améliorations des performances pour les langues qui se lisent de droite à gauche et une prise en charge plus étendue de ces langues dans les widgets d'interface utilisateur du framework, y compris ProgressBar/Spinner et ExtensibleListView. Plus d'informations de débogage visibles via l'outil uiautomatorviewer
. En outre, d'autres composants d'UI du système sont désormais compatibles avec le texte de droite à gauche, tels que les notifications, la barre de navigation et la barre d'action.
Pour offrir une meilleure expérience à l'échelle du système dans les scripts de droite à gauche, davantage d'applications système par défaut sont désormais compatibles avec ce type de mise en page, y compris Lanceur d'applications, Réglages rapides, Téléphone, Contacts, SetupWizard, Horloge, Téléchargements, etc.
Utilitaires pour la localisation
Android 4.3 inclut également de nouveaux utilitaires et API permettant de créer de meilleures chaînes de droite à gauche et de tester vos interfaces utilisateur localisées. Une nouvelle classe BidiFormatter fournit une API simple pour encapsuler les chaînes Unicode, de sorte que les données de script de droite à gauche s'affichent comme prévu dans les messages de lecture de droite à gauche et inversement. Pour vous permettre d'utiliser cet utilitaire plus largement dans vos applications, l'API BidiFormatter est désormais disponible pour les versions antérieures de la plate-forme via la formule d'assistance du SDK Android.
Pour vous aider à gérer la mise en forme des dates dans les paramètres régionaux, Android 4.3 inclut une nouvelle méthode getBestDateTimePattern() qui génère automatiquement la meilleure version localisée possible d'une date UTS Unicode pour les paramètres régionaux que vous spécifiez. C'est un moyen pratique d'offrir une expérience plus localisée à vos utilisateurs.
Pour vous aider à tester votre application plus facilement dans d'autres paramètres régionaux, Android 4.3 introduit une nouvelle option pour les développeurs sous la forme de pseudo-paramètres régionaux. Les pseudo-paramètres régionaux simulent la langue, le script et les caractéristiques d'affichage associés à des paramètres régionaux ou à un groupe de langues. Actuellement, vous pouvez effectuer des tests avec un pseudo-paramètre régional pour l'anglais accentué, ce qui vous permet de voir comment votre interface utilisateur fonctionne avec des accents de script et des caractères utilisés dans diverses langues européennes.
Accessibilité et automatisation de l'UI
À partir d'Android 4.3, les services d'accessibilité peuvent observer et filtrer les événements de touche, par exemple pour gérer les raccourcis clavier ou assurer la parité de navigation avec la saisie par gestes. Le service reçoit les événements et peut les traiter si nécessaire avant de les transmettre au système ou à d'autres applications installées.
Les services d'accessibilité peuvent déclarer de nouveaux attributs de capacité pour décrire ce que leurs services peuvent faire et les fonctionnalités de la plate-forme qu'ils utilisent. Par exemple, ils peuvent déclarer la possibilité de filtrer les événements de touche, de récupérer le contenu des fenêtres, d'activer l'exploration tactile ou d'activer les fonctionnalités d'accessibilité Web. Dans certains cas, les services doivent déclarer un attribut de capacité avant de pouvoir accéder aux fonctionnalités associées de la plate-forme. Le système utilise les attributs de capacité du service pour générer une boîte de dialogue d'activation afin que les utilisateurs puissent voir et accepter les fonctionnalités avant le lancement.
S'appuyant sur le framework d'accessibilité d'Android 4.3, un nouveau framework d'automatisation de l'UI permet aux tests d'interagir avec l'interface utilisateur de l'appareil en simulant les actions de l'utilisateur et en introduisant le contenu de l'écran. Grâce au framework d'automatisation de l'UI, vous pouvez effectuer des opérations de base, définir la rotation de l'écran, générer des événements d'entrée, effectuer des captures d'écran, etc. Il s'agit d'un moyen efficace d'automatiser les tests dans des scénarios utilisateur réalistes, y compris pour des actions ou des séquences couvrant plusieurs applications.
Entreprise et sécurité
Configuration Wi-Fi pour les réseaux WPA2-Enterprise
Les applications peuvent désormais configurer les identifiants Wi-Fi dont elles ont besoin pour se connecter aux points d'accès d'entreprise WPA2. Les développeurs peuvent utiliser de nouvelles API pour configurer les identifiants EAP (Extensible Authentication Protocol) et EAP (phase 2) encapsulés pour les méthodes d'authentification utilisées dans l'entreprise. Les applications autorisées à accéder au Wi-Fi et à les modifier peuvent configurer des identifiants d'authentification pour diverses méthodes d'authentification EAP et phase 2.
Bac à sable Android renforcé avec SELinux
Android utilise désormais SELinux, un système de contrôle des accès (MAC) obligatoire du noyau Linux afin d'améliorer le bac à sable d'application basé sur l'UID. Cela protège le système d'exploitation contre les failles de sécurité potentielles.
Améliorations apportées à KeyChain
L'API KeyChain fournit désormais une méthode qui permet aux applications de confirmer que les clés à l'échelle du système sont liées à une racine matérielle de confiance pour l'appareil. Cela permet de créer ou de stocker des clés privées qui ne peuvent pas être exportées depuis l'appareil, même en cas de piratage du noyau ou du noyau.
Fournisseur Android Keystore
Android 4.3 introduit un fournisseur de keystore et des API permettant aux applications de créer des clés à usage exclusif. Elles permettent aux applications de créer ou de stocker des clés privées qui ne peuvent pas être vues ni utilisées par d'autres applications, et peuvent être ajoutées au keystore sans aucune intervention de l'utilisateur.
Le fournisseur de keystore offre les mêmes avantages de sécurité que l'API KeyChain pour les identifiants système, tels que la liaison d'identifiants à un appareil. Les clés privées du keystore ne peuvent pas être exportées depuis l'appareil.
Limiter Setuid depuis les applis Android
La partition /system
est désormais installée nosuid
pour les processus générés par zygote, ce qui empêche les applications Android d'exécuter des programmes setuid
. Cela réduit la surface d'attaque racine et la probabilité de failles de sécurité potentielles.
Nouvelles méthodes d'analyse des performances
Journalisation Systrace améliorée
Android 4.3 est compatible avec une version améliorée de l'outil Systrace, plus facile à utiliser et qui vous donne accès à davantage de types d'informations pour profiler les performances de votre application. Vous pouvez désormais collecter des données de trace à partir des modules matériels, des fonctions du noyau et de la VM Dalvik, y compris la récupération de mémoire, le chargement des ressources, etc.
Android 4.3 inclut également de nouvelles API Trace que vous pouvez utiliser dans vos applications pour marquer des sections de code spécifiques à tracer à l'aide d'événements de début/fin Systrace. Lorsque les sections de code marquées s'exécutent, le système écrit les événements de début et de fin dans le journal trace. L'impact sur les performances de votre application est minimal. Les délais signalés vous donnent donc une vision précise des actions de votre application.
Vous pouvez visualiser les événements spécifiques à l'application dans une chronologie dans le fichier de sortie Systrace et les analyser dans le contexte d'autres données de trace du noyau et de l'espace utilisateur. Associées aux balises Systrace existantes, les sections d'applications personnalisées peuvent vous offrir de nouveaux moyens de comprendre les performances et le comportement de vos applications.
Profilage GPU à l'écran
Android 4.3 ajoute de nouvelles options pour les développeurs afin de vous aider à analyser les performances de votre application et à identifier les problèmes d'affichage sur n'importe quel appareil ou émulateur.
Dans l'option Rendu GPU du profil, vous pouvez désormais visualiser la fréquence d'images effective de votre application à l'écran pendant son exécution. Vous pouvez choisir d'afficher les données de profilage sous forme de graphiques à barres ou en courbes à l'écran, les couleurs indiquant le temps passé à créer des commandes de dessin (bleu), à les exécuter (orange) et à attendre qu'elles soient terminées (jaune). Le système met à jour les graphiques à l'écran en continu, en affichant un graphique pour chaque activité visible, y compris la barre de navigation et la barre de notification.
Une ligne verte indique le seuil de 16 ms pour les opérations de rendu. Vous pouvez ainsi évaluer la fréquence d'images effective de votre application par rapport à un objectif de 60 FPS (car 1/60e de seconde équivaut à environ 16 ms). Si vous voyez des opérations qui franchissent la ligne verte, vous pouvez les analyser plus en détail à l'aide de Systrace et d'autres outils.
Sur les appareils équipés d'Android 4.2 ou version ultérieure, les options pour les développeurs sont masquées par défaut. Vous pouvez les afficher à tout moment en appuyant sept fois sur Settings > About phone > Build number (Paramètres > À propos du téléphone > Numéro de build) sur n'importe quel appareil Android compatible.
Avertissement StrictMode pour les URI de fichiers
Le dernier ajout de l'outil StrictMode est une contrainte de règle qui vous avertit lorsque votre application expose un URI file://
au système ou à une autre application. Dans certains cas, l'application réceptrice peut ne pas avoir accès au chemin de l'URI file://
. Par conséquent, lorsque vous partagez des fichiers entre des applications, un URI content://
doit être utilisé (avec l'autorisation appropriée). Cette nouvelle règle vous aide à détecter et à corriger de tels cas de figure. Si vous recherchez un moyen pratique de stocker et d'exposer des fichiers à d'autres applications, essayez d'utiliser le fournisseur de contenu FileProvider
disponible dans la bibliothèque Support.
Android 4.2
Bienvenue sur Android 4.2, la dernière version de Jelly Bean !
Android 4.2 offre des optimisations de performances, une interface utilisateur système actualisée, et de nouvelles fonctionnalités intéressantes pour les utilisateurs et les développeurs. Ce document offre un aperçu des nouveautés pour les développeurs.
Consultez le document sur les API Android 4.2 pour en savoir plus sur les nouvelles API de développement.
Découvrez les nouvelles fonctionnalités de Jelly Bean pour les utilisateurs sur www.android.com.
Plus rapide, plus fluide et plus réactif
Android 4.2 s'appuie sur les améliorations des performances déjà incluses dans Jelly Bean, à savoir la chronologie vsync, la triple mise en mémoire tampon, la latence tactile réduite et l'optimisation de l'entrée du processeur, et ajoute de nouvelles optimisations qui rendent Android encore plus rapide.
Les améliorations apportées au moteur de rendu 2D avec accélération matérielle rendent les animations courantes, telles que le défilement et le balayage, plus fluides et plus rapides. En particulier, le dessin est optimisé pour les calques, le rognage et certaines formes (rectangles arrondis, cercles et ovales).
Diverses optimisations du rendu WebView permettent de rendre le défilement des pages Web plus fluide, et d'éviter les fluctuations et les délais.
Le calcul Renderscript d'Android est la première plate-forme de calcul portée pour s'exécuter directement sur un GPU d'appareil mobile. Dans la mesure du possible, il exploite automatiquement les ressources de calcul GPU, ce qui améliore considérablement les performances de traitement graphique et d'image. Toute application utilisant Renderscript sur un appareil compatible peut bénéficier immédiatement de cette intégration GPU, sans avoir à la recompiler.
Interface utilisateur soignée et actualisée
Android 4.2 affine l'expérience utilisateur avec Jelly Bean et intègre des modèles d'interface utilisateur Android familiers, tels que la barre d'état, la barre système et la fenêtre de notifications, sur toutes les tablettes.
Toutes les tailles d'écran disposent désormais d'une barre d'état en haut, avec un accès déroulant aux notifications et un nouveau menu Réglages rapides. La barre système que vous connaissez déjà s'affiche en bas, avec des boutons facilement accessibles depuis les deux mains. Le bac d'application est également disponible sur toutes les tailles d'écran.
Une tablette pour de nombreux utilisateurs
Désormais, plusieurs utilisateurs peuvent partager une seule tablette Android, chacun disposant d'un espace utilisateur dédié. Les utilisateurs peuvent passer à leurs espaces d'un simple geste depuis l'écran de verrouillage.
Sur un appareil multi-utilisateur, Android fournit à chaque utilisateur un environnement distinct, y compris un espace de stockage de carte SD émulée spécifique à l'utilisateur. Les utilisateurs disposent également de leurs propres écrans d'accueil, widgets, comptes, paramètres, fichiers et applications, qui sont séparés par le système. Tous les utilisateurs partagent les services système principaux, mais le système garantit l'isolation des applications et des données de chaque utilisateur. En effet, chacun des utilisateurs possède son propre appareil Android.
Les utilisateurs peuvent installer et désinstaller des applications à tout moment dans leur propre environnement. Pour économiser de l'espace de stockage, Google Play ne télécharge un APK que s'il n'est pas déjà installé par un autre utilisateur sur l'appareil. Si l'application est déjà installée, Google Play enregistre l'installation du nouvel utilisateur comme d'habitude, mais ne télécharge pas d'autre copie de l'application. Plusieurs utilisateurs peuvent exécuter la même copie d'un APK, car le système crée une instance pour chacun d'eux, y compris un répertoire de données spécifique à l'utilisateur.
Pour les développeurs, la compatibilité multi-utilisateur est transparente. Aucune action particulière n'est requise de la part de vos applications pour qu'elles s'exécutent normalement dans un environnement multi-utilisateur, et vous n'avez aucune modification à apporter à vos APK existants ou publiés. Le système gère votre application dans chaque espace utilisateur comme dans un environnement à utilisateur unique.
De nouvelles façons d'engager les utilisateurs
Widgets de l'écran de verrouillage
Sous Android 4.2, les utilisateurs peuvent placer des widgets pour applications directement sur leurs écrans de verrouillage, pour un accès instantané au contenu de leurs applications préférées sans avoir à les déverrouiller. Les utilisateurs peuvent ajouter jusqu'à cinq widgets d'écran de verrouillage, en choisissant parmi les widgets fournis par les applications installées. L'écran de verrouillage affiche chaque widget dans son propre panneau, ce qui permet aux utilisateurs de balayer l'écran vers la gauche et vers la droite pour afficher différents panneaux et leurs widgets.
Comme tous les widgets d'application, les widgets d'écran de verrouillage peuvent afficher tout type de contenu et accepter les interactions directes de l'utilisateur. Ils peuvent être entièrement autonomes, comme un widget qui propose des commandes pour lire de la musique, ou permettre aux utilisateurs d'accéder directement à une activité dans votre application, après avoir déverrouillé l'élément en cours de route, selon les besoins.
Pour les développeurs, les widgets de l'écran de verrouillage constituent un nouveau moyen d'engager les utilisateurs. Elles vous permettent de présenter votre contenu aux utilisateurs à un emplacement qu'ils voient souvent et vous offrent plus de possibilités de les rediriger directement vers votre application.
Vous pouvez profiter de cette nouvelle fonctionnalité en créant un widget d'application ou en étendant un widget d'écran d'accueil existant. Si votre application inclut déjà des widgets d'écran d'accueil, vous pouvez les étendre à l'écran de verrouillage avec un minimum de modifications. Pour offrir une expérience optimale aux utilisateurs, vous pouvez mettre à jour le widget afin qu'il utilise toute la zone de l'écran de verrouillage lorsqu'il est disponible, et le redimensionner si nécessaire sur les petits écrans. Vous pouvez également ajouter à vos widgets des fonctionnalités qui peuvent être particulièrement utiles ou pratiques sur l'écran de verrouillage.
Daydream
Daydream est un mode économiseur d'écran interactif qui se déclenche lorsque l'appareil d'un utilisateur est en charge ou sur sa station d'accueil. Dans ce mode, le système lance un écran de veille interactif, un service de contenu à distance fourni par une application installée, en tant qu'économiseur d'écran de l'appareil. Activez l'écran de veille interactif depuis l'application Paramètres, puis choisissez l'écran de veille interactif à afficher.
Les Daydreams combinent les meilleures capacités des fonds d'écran animés et des widgets de l'écran d'accueil, mais ils sont plus puissants. Ils vous permettent de proposer tout type de contenu dans un contexte totalement nouveau, avec des interactions utilisateur telles que parcourir des photos, lire du contenu audio ou vidéo, ou accéder directement à votre application d'un simple geste.
Étant donné que l'écran de veille interactif peut démarrer automatiquement lorsqu'un appareil est en charge ou sur sa station d'accueil, il offre également à votre application un excellent moyen de prendre en charge de nouveaux types d'expériences utilisateur, tels que le mode Leanback ou exposition, le mode démo ou Kiosque et le "mode Attirer", le tout sans nécessiter de matériel spécifique.
Les Daydreams sont semblables aux activités et peuvent effectuer toutes les opérations qu'Activity peut faire, qu'il s'agisse d'afficher une hiérarchie d'interface utilisateur (sans utiliser de RemoteView) ou de dessiner directement à l'aide de Canvas, d'OpenGL, de SurfaceTexture, etc. Ils peuvent lire des contenus vidéo et audio, et même accepter une interaction directe de l'utilisateur. Toutefois, les écrans de veille ne sont pas des activités. Ils n'affectent donc pas la pile "Retour" ni n'apparaissent dans les éléments récents. De plus, ils ne peuvent pas être lancés directement à partir de votre application.
La mise en œuvre d'un écran de veille interactif est simple, et vous pouvez exploiter des composants d'interface utilisateur et des ressources que vous avez déjà créés pour d'autres parties de votre application. Vous pouvez fournir plusieurs fonctionnalités d'écran de veille interactif dans votre application, ainsi que des paramètres de contenu et d'affichage distincts pour chacune d'elles.
Compatibilité avec les écrans externes
Android 4.2 est compatible avec la plate-forme pour les écrans externes, qui va bien au-delà de la mise en miroir. Les applications peuvent désormais cibler un contenu unique sur un ou plusieurs écrans connectés à un appareil Android. Les applications peuvent s'appuyer sur cette approche pour proposer de nouveaux types d'expériences d'interaction et de divertissement aux utilisateurs.
Gestionnaire du Réseau Display
Les applications interagissent avec les écrans via un nouveau service système de gestionnaire d'affichage. Votre application peut énumérer les écrans et vérifier les fonctionnalités de chacun d'eux, y compris la taille, la densité, le nom à afficher, l'ID, la compatibilité avec les vidéos sécurisées, etc. Votre application peut également recevoir des rappels lorsque des écrans sont ajoutés ou supprimés, ou lorsque leurs fonctionnalités changent, afin de mieux gérer votre contenu sur les écrans externes.
Fenêtre de présentation
Pour faciliter l'affichage du contenu sur un écran externe, le framework fournit un nouvel objet d'interface utilisateur appelé Présentation. Il s'agit d'un type de boîte de dialogue qui représente une fenêtre pour le contenu de votre application sur un écran externe spécifique. Votre application ne fait que donner l'écran à utiliser, un thème pour la fenêtre et tout contenu unique à afficher. Le gonflement des ressources et l'affichage de votre contenu sont gérés en fonction des caractéristiques de l'écran ciblé.
Une présentation donne à votre application un contrôle total sur la fenêtre d'affichage à distance et son contenu, et vous permet de la gérer en fonction des événements d'entrée utilisateur tels que les pressions sur les touches, les gestes, les événements de mouvement, etc. Vous pouvez utiliser tous les outils normaux pour créer une UI et afficher du contenu dans la présentation, de la création d'une hiérarchie de vues arbitraire à l'utilisation de SurfaceView ou SurfaceTexture pour dessiner directement dans la fenêtre pour le contenu diffusé en streaming ou les aperçus de l'appareil photo.
Écran d'affichage préféré
Lorsque plusieurs écrans externes sont disponibles, vous pouvez créer autant de présentations que nécessaire, chacune affichant un contenu unique sur un écran spécifique. Dans de nombreux cas, vous pouvez choisir d'afficher votre contenu sur un seul écran externe, mais toujours sur le meilleur choix pour une présentation. Pour cela, le système peut aider votre application à choisir le meilleur écran à utiliser.
Pour trouver le meilleur écran à utiliser, votre application peut interroger le gestionnaire d'affichage pour obtenir l'écran de présentation préféré du système et recevoir des rappels lorsque cet affichage change. Vous pouvez également utiliser le service de routeur multimédia, étendu dans Android 4.2, pour recevoir des notifications lorsqu'un itinéraire vidéo système change. Votre application peut afficher du contenu par défaut dans l'activité principale jusqu'à ce qu'un écran de présentation préféré soit joint, après quoi elle peut passer automatiquement au contenu de présentation sur l'écran préféré. Vos applications peuvent également utiliser MediaRouteActionProvider et MediaRouteButton du routeur multimédia pour proposer une UI standard de sélection d'écran.
Contenu protégé
Pour les applications qui gèrent du contenu protégé ou chiffré, l'API Display signale désormais les fonctionnalités vidéo sécurisées des écrans connectés. Votre application interroge un écran pour savoir si elle offre une sortie vidéo sécurisée ou fournit des tampons graphiques protégés, puis choisit le flux de contenu ou le décodage approprié pour rendre le contenu visible. Pour renforcer la sécurité des objets SurfaceView, votre application peut définir un indicateur sécurisé indiquant que le contenu ne doit jamais apparaître dans des captures d'écran ou sur une sortie d'écran non sécurisée, même lorsqu'il est dupliqué.
Affichage sans fil
À partir d'Android 4.2, les utilisateurs d'appareils compatibles peuvent se connecter à un écran externe via le Wi-Fi à l'aide de Wi-Fi Display (une solution d'affichage sans fil peer-to-peer conforme au programme de certification MiracastTM). Lorsqu'un écran sans fil est connecté, les utilisateurs peuvent diffuser n'importe quel type de contenu sur grand écran, y compris des photos, des jeux, des cartes, etc.
Les applications peuvent exploiter les écrans sans fil de la même manière que les autres écrans externes. Aucune action supplémentaire n'est requise. Le système gère la connexion réseau et diffuse votre présentation ou un autre contenu d'application sur l'écran sans fil si nécessaire.
Compatibilité native avec les langues qui se lisent de droite à gauche
Android 4.2 offre une compatibilité native totale avec les mises en page se lisant de droite à gauche (y compris la mise en miroir de la mise en page). Grâce à la compatibilité native avec les langues qui se lisent de droite à gauche, vous pouvez proposer la même expérience d'application à tous vos utilisateurs, que leur langage utilise un script qui se lit de droite à gauche ou de gauche à droite.
Lorsque l'utilisateur passe la langue du système à un script de droite à gauche, le système fournit désormais la mise en miroir automatique des mises en page de l'interface utilisateur de l'application et de tous les widgets d'affichage, en plus de la mise en miroir bidi des éléments de texte pour la lecture et la saisie de caractères.
Votre application peut tirer parti de la mise en miroir de la mise en page de droite à gauche avec un minimum d'efforts. Si vous souhaitez que l'application soit mise en miroir, il vous suffit de déclarer un nouvel attribut dans le fichier manifeste de votre application et de remplacer toutes les propriétés de mise en page "gauche/droite" par de nouvelles équivalents "début/fin". Le système gère ensuite la mise en miroir et l'affichage de votre interface utilisateur de manière appropriée.
Pour un contrôle précis de l'interface utilisateur de votre application, Android 4.2 inclut de nouvelles API qui vous permettent de gérer l'orientation de la mise en page, l'orientation du texte, l'alignement du texte, la gravité et l'orientation des paramètres régionaux dans les composants View. Vous pouvez même créer des versions personnalisées de la mise en page, des drawables et d'autres ressources à afficher lorsqu'un script de droite à gauche est utilisé.
Pour vous aider à déboguer et à optimiser vos mises en page personnalisées de droite à gauche, l'outil Hierarchy Viewer vous permet désormais de consulter les propriétés de début et de fin, l'orientation de la mise en page, l'orientation du texte et l'alignement du texte pour toutes les vues de la hiérarchie.
Améliorations apportées aux langues internationales
Android 4.2 inclut diverses optimisations des polices et des caractères pour les utilisateurs internationaux:
- Pour les utilisateurs coréens, un nouveau choix de police est disponible : Nanum (나눔글꼴) Gothic, une police Unicode conçue spécialement pour le script coréen.
- Amélioration de la prise en charge du texte vertical japonais dans les WebViews.
- Amélioration du crénage et du positionnement des polices par défaut pour les langues indiennes, arabe, thaïlandaise et hébreu.
Le clavier Android par défaut inclut également un ensemble mis à jour de dictionnaires:
- Amélioration des dictionnaires en français (compatible avec le bigramme), en anglais et en russe
- Nouveaux dictionnaires pour les langues suivantes : danois, grec, finnois, lituanien, letton, polonais, slovène, serbe, suédois et turc
De nouvelles façons de créer une interface utilisateur esthétique
Fragments imbriqués
Pour mieux contrôler vos composants d'interface utilisateur et les rendre plus modulaires, Android 4.2 vous permet d'imbriquer des fragments dans des fragments. Pour chaque fragment, un nouveau gestionnaire de fragments vous permet d'insérer d'autres fragments en tant que nœuds enfants dans la hiérarchie des vues.
Vous pouvez utiliser les fragments imbriqués de différentes manières, mais ils sont particulièrement utiles pour implémenter des composants d'interface utilisateur dynamiques et réutilisables au sein d'un composant d'interface utilisateur lui-même dynamique et réutilisable. Par exemple, si vous utilisez ViewPager pour créer des fragments qui balayent l'écran vers la gauche et vers la droite, vous pouvez maintenant insérer des fragments dans chaque fragment du pager d'affichage.
Pour vous permettre d'exploiter plus largement les fragments imbriqués dans votre application, cette fonctionnalité est ajoutée à la dernière version de la bibliothèque Android Support.
Accessibilité
Le système aide désormais les services d'accessibilité à faire la distinction entre l'exploration tactile et les gestes d'accessibilité en mode d'exploration tactile. Lorsqu'un utilisateur touche l'écran, le système avertit le service qu'une interaction tactile générique a démarré. Il suit ensuite la vitesse de l'interaction tactile et détermine s'il s'agit d'une exploration tactile (lente) ou d'un geste d'accessibilité (rapide) et envoie une notification au service. À la fin de l'interaction tactile, le système avertit le service.
Le système fournit une nouvelle option d'accessibilité globale qui permet à un service d'accessibilité d'ouvrir le menu "Réglages rapides" en fonction d'une action de l'utilisateur. Android 4.2 intègre également un nouveau type de retour d'accessibilité pour les appareils braille.
Pour donner aux services d'accessibilité un aperçu de la signification des vues à des fins d'accessibilité, le framework fournit de nouvelles API permettant d'associer une vue en tant que libellé d'une autre vue. Le libellé de chaque vue est accessible aux services d'accessibilité via AccessibilityNodeInfo.
Appareil photo amélioré avec HDR
Android 4.2 introduit une nouvelle interface matérielle et un nouveau pipeline pour la caméra afin d'améliorer les performances. Sur les appareils compatibles, les applications peuvent utiliser un nouveau mode Scène de la caméra HDR pour capturer une image à l'aide de techniques d'imagerie HDR.
De plus, le framework fournit désormais une API permettant aux applications de vérifier si le son de l'obturateur de l'appareil photo peut être désactivé. Les applications peuvent ensuite permettre à l'utilisateur de désactiver le son ou de choisir un autre son à la place du son d'obturateur standard, ce qui est recommandé.
Calcul Renderscript
Dans Android 4.2, Renderscript Compute introduit de nouvelles fonctionnalités de script, de nouvelles optimisations et une intégration directe du GPU pour des performances de calcul optimales.
Script de filtrage
Filterscript est un sous-ensemble de Renderscript axé sur le traitement optimisé des images sur une large gamme de chipsets d'appareils. Les développeurs peuvent écrire leurs opérations de traitement d'images dans Filterscript à l'aide de l'API d'exécution standard Renderscript, mais dans des contraintes plus strictes qui garantissent une plus grande compatibilité et une meilleure optimisation sur les processeurs, GPU et DSP.
Le script de filtrage est idéal pour l'accélération matérielle d'opérations de calcul et de traitement d'images simples, telles que celles pouvant être écrites pour les nuanceurs de fragments OpenGL ES. Comme il impose un ensemble flexible de contraintes matérielles, vos opérations sont optimisées et accélérées sur davantage de types de chipsets d'appareils. Toute application ciblant le niveau d'API 17 ou supérieur peut utiliser FilterScript.
Fonctionnalités intrinsèques du script
Dans Android 4.2, Renderscript est compatible avec un ensemble d'éléments intrinsèques de script : des primitives de filtrage accélérées ont été pré-implémentées afin de réduire la quantité de code à écrire et de garantir un gain de performances maximal pour votre application.
Les fonctionnalités intrinsèques sont disponibles pour les combinaisons, le flou, la matrice de couleurs, la convolutivité 3x3 et 5x5, la table de conversion par canal et la conversion d'un tampon YUV Android en RVB.
Groupes de scripts
Vous pouvez maintenant créer des groupes de scripts Renderscript et les exécuter tous avec un seul appel comme s'ils faisaient partie d'un seul script. Cela permet à Renderscript d'optimiser l'exécution des scripts d'une manière qu'il ne pourrait pas faire s'ils étaient exécutés individuellement.
Les benchmarks de traitement d'image Renderscript s'exécutent sur différentes versions de la plate-forme Android (Android 4.0, 4.1 et 4.2) sur le processeur uniquement sur un appareil Galaxy Nexus.
Analyses comparatives du traitement d'images Renderscript comparant les opérations exécutées avec un GPU et un processeur à celles exécutées uniquement sur le même appareil Nexus 10.
Si vous devez exécuter un graphe orienté acyclique d'opérations Renderscript, vous pouvez utiliser une classe de compilateur pour créer un groupe de scripts définissant les opérations. Au moment de l'exécution, Renderscript optimise l'ordre d'exécution et les connexions entre ces opérations pour obtenir les meilleures performances.
Améliorations continues
Lorsque vous utilisez Renderscript pour des opérations de calcul, vos applications bénéficient d'améliorations continues des performances et de l'optimisation dans le moteur Renderscript lui-même, sans aucun impact sur le code de votre application ni sur le besoin de recompilation.
À mesure que l'optimisation s'améliore, vos opérations s'exécutent plus rapidement et sur davantage de chips, sans aucune intervention de votre part. Le graphique de droite met en évidence l'amélioration des performances générée par les améliorations continues de l'optimisation de Renderscript sur les versions successives de la plate-forme Android.
Calcul GPU
Renderscript Compute est la première plate-forme de calcul portée pour s'exécuter directement sur le GPU d'un appareil mobile. Il exploite désormais automatiquement les ressources de calcul GPU dans la mesure du possible pour améliorer les performances. Grâce à l'intégration GPU, même les calculs les plus complexes pour le traitement graphique ou le traitement d'images peuvent s'exécuter avec des performances considérablement améliorées.
Toute application utilisant Renderscript sur un appareil compatible peut bénéficier immédiatement de cette intégration GPU, sans avoir à se recompiler. La tablette Nexus 10 est le premier appareil compatible avec cette intégration.
Nouvelles options intégrées pour les développeurs
Le système Android 4.2 comprend plusieurs nouvelles options pour les développeurs qui permettent de créer plus facilement des applications attrayantes et performantes. Les nouvelles options présentent des fonctionnalités permettant de déboguer et de profiler votre application à partir de n'importe quel appareil ou émulateur.
Sur les appareils équipés d'Android 4.2, les options pour les développeurs sont masquées par défaut, ce qui contribue à améliorer l'expérience des utilisateurs. Vous pouvez afficher les options pour les développeurs à tout moment en appuyant sept fois sur Paramètres > À propos du téléphone > Numéro de version sur n'importe quel appareil Android compatible.
Les nouvelles options pour les développeurs d'Android 4.2 incluent:
- Take bug report (Créer un rapport de bug) : prend immédiatement une capture d'écran et enregistre les informations sur l'état de l'appareil dans un espace de stockage de fichiers local, puis les joint à un nouvel e-mail sortant.
- Rapports de bug du menu Marche/Arrêt : ajoute une nouvelle option au menu Marche/Arrêt de l'appareil et à des paramètres rapides pour générer un rapport de bug (voir ci-dessus).
- Valider les applications sur USB : vous permet de désactiver la vérification des applications pour le téléchargement indépendant via USB, tout en continuant à vérifier les applications provenant d'autres sources telles que le navigateur. Cela peut accélérer le processus de développement tout en maintenant la fonctionnalité de sécurité activée.
- Afficher les mises à jour des couches matérielles : les couches matérielles clignotent en vert lorsqu'elles sont mises à jour.
- Show GPU overdraw (Afficher la superposition GPU) : met en évidence les zones de superposition GPU.
- Force 4x MSAA : active MSAA 4x dans les applications Open GL ES 2.0.
- Simuler des écrans secondaires : crée une ou plusieurs fenêtres en superposition non sécurisées sur l'écran actuel pour l'utiliser comme écran à distance simulé. Vous pouvez contrôler la taille et la densité de l'écran simulé.
- Enable OpenGL traces (Activer les traces OpenGL) : permet de suivre l'exécution d'OpenGL à l'aide de Logcat, Systrace ou de la pile d'appels sur glGetError.
Nouvelles technologies de plate-forme
Android 4.2 inclut diverses nouvelles technologies de plate-forme améliorées pour prendre en charge des cas d'utilisation de communications innovants sur un large éventail d'appareils. Dans la plupart des cas, les nouvelles technologies et améliorations de la plate-forme n'affectent pas directement vos applications. Vous pouvez donc en profiter sans aucune modification.
Renforcement de la sécurité
Chaque version d'Android inclut des dizaines d'améliorations de sécurité pour protéger les utilisateurs. Voici quelques-unes des améliorations apportées à Android 4.2:
- Validation des applications : les utilisateurs peuvent choisir d'activer "Vérifier les applications" et faire vérifier les applications par un vérificateur d'applications avant l'installation. La vérification des applications peut alerter l'utilisateur s'il tente d'installer une application potentiellement dangereuse. Si une application est particulièrement dangereuse, elle peut bloquer l'installation.
- Plus de contrôle sur les SMS premium : Android envoie une notification si une application tente d'envoyer un SMS à un numéro abrégé qui utilise des services premium, ce qui peut entraîner des frais supplémentaires. L'utilisateur peut choisir d'autoriser l'application à envoyer le message ou de le bloquer.
- VPN permanent : le VPN peut être configuré de sorte que les applications n'aient pas accès au réseau tant qu'une connexion VPN n'est pas établie. Cela empêche les applications d'envoyer des données sur d'autres réseaux.
- Épinglage de certificat : la mise en œuvre SSL libcore est désormais compatible avec l'épinglage de certificats. Les domaines épinglés recevront un échec de validation si le certificat n'est pas relié à un ensemble de certificats attendus. Cela constitue une protection contre le piratage potentiel des autorités de certification.
- Amélioration de l'affichage des autorisations Android : les autorisations ont été organisées en groupes plus facilement compréhensibles par les utilisateurs. Lors de l'examen des autorisations, l'utilisateur peut cliquer sur l'autorisation pour afficher des informations plus détaillées à son sujet.
- renforcement installé : le daemon installé ne s'exécute pas en tant qu'utilisateur racine, ce qui réduit la surface d'attaque potentielle pour l'élévation des privilèges racine.
- Renforcement des scripts init : les scripts init appliquent désormais la sémantique O_NOFOLLOW pour empêcher les attaques liées aux liens symboliques.
- FORTIFY_SOURCE : Android implémente désormais FORTIFY_SOURCE. Elle est utilisée par les applications et les bibliothèques système pour éviter toute corruption de mémoire.
- Configuration par défaut de ContentProvider : pour les applications qui ciblent le niveau d'API 17, l'option "export" est définie sur "false" par défaut pour chaque ContentProvider, ce qui réduit la surface d'attaque par défaut pour les applications.
- Cryptographie : modification des implémentations par défaut de SecureRandom et Cipher.RSA afin d'utiliser OpenSSL. Ajout de la prise en charge de SSLSocket pour TLSv1.1 et TLSv1.2 à l'aide d'OpenSSL 1.0.1.
- Correctifs de sécurité : les bibliothèques Open Source mises à niveau avec des correctifs de sécurité incluent WebKit, libpng, OpenSSL et LibXML. Android 4.2 inclut également des correctifs pour les failles spécifiques à Android. Des informations sur ces failles ont été fournies aux membres de l'Open Handset Alliance, et des correctifs sont disponibles dans le projet Android Open Source. Pour améliorer la sécurité, certains appareils équipés de versions antérieures d'Android peuvent également inclure ces correctifs.
Nouvelle pile Bluetooth
Android 4.2 introduit une nouvelle pile Bluetooth optimisée pour les appareils Android. La nouvelle pile Bluetooth développée en collaboration entre Google et Broadcom remplace la pile basée sur BlueZ et offre une compatibilité et une fiabilité améliorées.Audio à faible latence
Android 4.2 améliore la prise en charge de la lecture audio à faible latence, à commencer par les améliorations apportées dans la version Android 4.1 pour la latence de sortie audio à l'aide des API OpenSL ES, Soundpool et de générateurs de tonalités. Ces améliorations dépendent de la compatibilité matérielle. Les appareils qui offrent ces fonctionnalités audio à faible latence peuvent annoncer leur compatibilité avec les applications via une constante de fonctionnalité matérielle. De nouvelles API AudioManager sont fournies pour interroger le taux d'échantillonnage audio natif et la taille de la mémoire tampon, à utiliser sur les appareils qui revendiquent cette fonctionnalité.
Nouvelle interface matérielle de la caméra
Android 4.2 introduit une nouvelle implémentation de la pile d'appareils photo. Le sous-système d'appareils photo inclut les implémentations pour les composants du pipeline de caméra, tels que la capture en mode rafale avec des commandes de traitement.Nouvelle interface matérielle et interface de manette NFC
Android 4.2 est compatible avec les manettes basées sur la norme NCI du NFC-Forum. NCI fournit un protocole de communication standard entre un contrôleur NFC (NFC) et un hôte d'appareil. Il est compatible avec la nouvelle pile NFC développée en collaboration entre Google et Broadcom.Optimisations de l'environnement d'exécution Dalvik
L'environnement d'exécution Dalvik inclut des améliorations des performances et de la sécurité dans une gamme plus large d'architectures:
- Compatibilité JIT x86 d'Intel et compatibilité JIT MIPS de MIPS
- Paramètres de récupération de mémoire optimisés pour les appareils de plus de 512 Mo
- Les implémentations par défaut de SecureRandom et Cipher.RSA utilisent désormais OpenSSL
- Compatibilité de SSLSocket avec TLS v1.1 et TLS v1.2 via OpenSSL 1.0.1.
- Prise en charge intrinsèque des méthodes StrictMath "abs", "min", "max" et "sqrt"
- BouncyCastle mise à jour vers la version 1.47
- Mise à jour de zlib vers la version 1.27
- Mise à jour de dlmalloc vers la version 2.8.6
Android 4.1
Bienvenue dans Android 4.1, la première version de Jelly Bean !
Android 4.1 est la version la plus rapide et la plus fluide d'Android à ce jour. Nous avons apporté des améliorations à l'ensemble de la plate-forme et ajouté de nouvelles fonctionnalités intéressantes pour les utilisateurs et les développeurs. Ce document offre un aperçu des nouveautés pour les développeurs.
Consultez le document API Android 4.1 pour une présentation détaillée des nouvelles API de développement.
Pour en savoir plus sur les fonctionnalités de Jelly Bean pour les utilisateurs, rendez-vous sur www.android.com.
Plus rapide, plus fluide et plus réactif
Android 4.1 est optimisé pour offrir les meilleures performances d'Android et une latence tactile minimale, dans une interface utilisateur simple et intuitive.
Pour garantir une fréquence d'images cohérente, Android 4.1 étend le délai de synchronisation vsync à tous les dessins et animations effectués par le framework Android. Tout fonctionne en parallèle avec une pulsation vsync de 16 millisecondes : rendu de l'application, événements tactiles, composition de l'écran et actualisation de l'écran, de sorte que les images ne soient pas en avance ni en retard.
Android 4.1 ajoute également la triple mise en mémoire tampon dans le pipeline graphique, pour un rendu plus cohérent et plus fluide, du défilement à la pagination en passant par les animations.
Android 4.1 réduit la latence tactile non seulement en synchronisant l'écran tactile avec la synchronisation vsync, mais aussi en anticipant l'emplacement de votre doigt au moment de l'actualisation de l'écran. Cela se traduit par une réponse tactile plus réactive et uniforme. De plus, après des périodes d'inactivité, Android applique une optimisation des entrées du processeur lors de l'événement tactile suivant, afin de s'assurer qu'il n'y a pas de latence.
Les outils peuvent vous aider à optimiser les performances de vos applications. Android 4.1 est conçu pour fonctionner avec un nouvel outil appelé systrace, qui collecte les données directement à partir du noyau Linux pour produire une vue d'ensemble des activités du système. Les données sont représentées sous la forme d'un groupe de graphiques de séries temporelles empilés verticalement afin d'isoler les interruptions d'affichage et d'autres problèmes. L'outil est désormais disponible dans le SDK Android (Tools R20 ou version ultérieure).
Accessibilité améliorée
Les nouvelles API pour les services d'accessibilité vous permettent de gérer les gestes et le ciblage de l'accessibilité lorsque l'utilisateur se déplace dans les éléments à l'écran et les boutons de navigation à l'aide de gestes d'accessibilité, d'accessoires et d'autres entrées. Le système TalkBack et la fonctionnalité Explorer au toucher ont été repensés pour faciliter l'utilisation et s'appuyer sur l'accessibilité pour offrir un ensemble complet d'API aux développeurs.
Les services d'accessibilité peuvent associer leurs propres tutoriels aux paramètres d'accessibilité pour aider les utilisateurs à configurer et à utiliser leurs services.
Les applications qui utilisent des composants View standards héritent automatiquement de la compatibilité avec les nouvelles fonctionnalités d'accessibilité, sans aucune modification de leur code. Les applications qui utilisent des vues personnalisées peuvent utiliser de nouvelles API de nœud d'accessibilité pour indiquer les parties de la vue qui présentent un intérêt pour les services d'accessibilité.
Assistance pour les utilisateurs internationaux
Prise en charge du texte bidirectionnel et d'autres langues
Android 4.1 vous aide à toucher davantage d'utilisateurs grâce à la prise en charge du texte bidirectionnel dans les éléments TextView et EditText. Les applications peuvent afficher du texte ou le modifier selon des scripts qui s'écrivent de gauche à droite ou de droite à gauche. Les applications peuvent utiliser les nouveaux paramètres régionaux en hébreu et en arabe, ainsi que les polices associées.
Voici d'autres types de nouvelles langues prises en charge:
- Autres langues indo-aryennes: kannada, télougou et malayalam
- Nouveaux caractères emoji d'Unicode version 6.0
- Meilleure prise en charge des glyphes pour les utilisateurs japonais (versions des glyphes propres au japonais lorsque la langue du système est définie sur le japonais)
- Glyphes arabes optimisés pour WebView, en plus de ceux utilisés pour les TextViews
- Compatibilité avec le texte vertical dans les classes WebView, y compris le texte Ruby et d'autres glyphes de texte vertical
- La mise en gras synthétique est désormais disponible pour toutes les polices qui ne possèdent pas de glyphes gras dédiés.
Mappages de clavier à installer par l'utilisateur
La plate-forme est désormais compatible avec les plans de clavier à installer par l'utilisateur, par exemple pour les claviers internationaux supplémentaires et les types de disposition spéciaux. Par défaut, Android 4.1 inclut 27 mappages de clavier internationaux pour les claviers, dont Dvorak. Lorsque les utilisateurs connectent un clavier, ils peuvent accéder à l'application Paramètres et sélectionner un ou plusieurs mappages de clavier qu'ils souhaitent utiliser pour ce clavier. Lors de la saisie, les utilisateurs peuvent passer d'un mappage de clavier à l'autre à l'aide d'un raccourci (Ctrl+Espace).
Vous pouvez créer une application pour publier des mappages de clavier supplémentaires sur le système. L'APK contiendrait les ressources de disposition du clavier, basées sur le format de mappage de clavier Android standard. L'application peut proposer des dispositions de clavier supplémentaires à l'utilisateur en déclarant un broadcast receiver adapté pour ACTION_QUERY_KEYBOARD_LAYOUTS dans son fichier manifeste.
Nouvelles façons de créer une interface utilisateur esthétique
Notifications à développer
Les notifications sont depuis longtemps une fonctionnalité unique et populaire sur Android. Les développeurs peuvent les utiliser pour placer des informations importantes ou temporelles devant les utilisateurs dans la barre de notification, en dehors de l'interface utilisateur normale de l'application.
Android 4.1 apporte une mise à jour majeure au framework des notifications Android. Les applications peuvent désormais afficher des notifications plus grandes et plus riches pour les utilisateurs. Il est possible de les développer et de les réduire en pinceant l'écran ou en balayant l'écran. Les notifications sont compatibles avec de nouveaux types de contenus, y compris les photos, ont une priorité configurable et peuvent même inclure plusieurs actions.
Grâce à un outil de création de notifications amélioré, les applications peuvent créer des notifications qui utilisent une zone plus grande, jusqu'à 256 dp. Trois styles de notification modélisés sont disponibles:
- BigTextStyle : notification qui inclut un objet TextView multiligne.
- BigInboxStyle : notification qui affiche tous les types de listes, comme les messages, les titres, etc.
- BigPictureStyle : notification présentant du contenu visuel, tel qu'un bitmap.
En plus des styles créés à partir d'un modèle, vous pouvez créer vos propres styles de notification à l'aide de n'importe quelle vue distante.
Les applications peuvent ajouter jusqu'à trois actions à une notification. Celles-ci sont affichées sous le contenu de la notification. Les actions permettent aux utilisateurs de répondre directement aux informations contenues dans la notification de différentes manières (par exemple, par e-mail ou par téléphone), sans accéder à l'application.
Grâce aux notifications à développer, les applications peuvent fournir plus d'informations aux utilisateurs, sans effort et à la demande. Les utilisateurs gardent le contrôle et peuvent appuyer de manière prolongée sur une notification pour obtenir des informations sur l'expéditeur et, s'il le souhaite, désactiver les autres notifications de l'application.
Widgets d'application redimensionnables
Android 4.1 introduit des widgets d'application améliorés, qui peuvent être redimensionnés automatiquement en fonction de l'endroit où l'utilisateur les dépose sur l'écran d'accueil, de la taille à laquelle l'utilisateur les agrandit et de l'espace disponible sur l'écran d'accueil. Grâce aux nouvelles API App Widgets, vous pouvez optimiser le contenu de vos widgets d'application à mesure que leur taille évolue.
Lorsqu'un widget change de taille, le système en informe le fournisseur de l'application hôte, qui peut actualiser le contenu du widget si nécessaire. Par exemple, un widget peut afficher des graphiques plus grands et plus riches, ou des fonctionnalités ou options supplémentaires. Les développeurs peuvent garder le contrôle sur les tailles maximales et minimales, et mettre à jour d'autres options de widget si nécessaire.
Vous pouvez également fournir des mises en page en mode paysage et portrait distinctes pour vos widgets, que le système gonfle en conséquence lorsque l'orientation de l'écran change.
Les widgets d'application peuvent désormais s'afficher dans des lanceurs d'applications tiers et d'autres applications hôtes via un nouvel intent de liaison (AppWidgetManager.ACTION_APPWIDGET_BIND).
Navigation simplifiée dans les tâches
Android 4.1 vous permet de gérer facilement la navigation vers le haut proposée aux utilisateurs depuis vos applications et de leur offrir une expérience cohérente.
Vous pouvez définir la navigation vers le haut prévue pour chaque composant "Activité" de votre interface utilisateur en ajoutant un nouvel attribut XML dans le fichier manifeste de l'application. Au moment de l'exécution, lorsque des activités sont lancées, le système extrait l'arborescence de navigation vers le haut du fichier manifeste et crée automatiquement l'élément de navigation "Haut" dans la barre d'action. Les développeurs qui déclarent la navigation vers le haut dans le fichier manifeste n'ont plus besoin de gérer la navigation par rappel au moment de l'exécution, bien qu'ils puissent également le faire si nécessaire.
Une nouvelle classe TaskStackBuilder est également disponible. Elle vous permet de créer rapidement une pile de tâches synthétique à démarrer immédiatement ou à utiliser lorsqu'une activité est lancée à partir d'un PendingIntent. La création d'une pile de tâches synthétique est particulièrement utile lorsque les utilisateurs lancent des activités à partir de vues à distance, par exemple à partir de widgets et de notifications de l'écran d'accueil. Cela permet au développeur de fournir une expérience gérée et cohérente lors du retour arrière.
Animations faciles pour le lancement d'Activity
Vous pouvez utiliser une nouvelle classe d'assistance, ActivityOptions, pour créer et contrôler l'animation qui s'affiche lorsque vous lancez vos activités. Grâce à la classe d'assistance, vous pouvez spécifier des ressources d'animation personnalisées à utiliser au lancement de l'activité, ou demander de nouvelles animations de zoom qui commencent à partir de n'importe quel rectangle que vous spécifiez à l'écran et qui incluent éventuellement un bitmap miniature.
Transitions vers les modes clair et plein écran
Les nouveaux indicateurs d'interface utilisateur système dans la vue vous permettent de passer facilement d'une interface d'application standard (avec la barre d'action, la barre de navigation et la barre système visibles) au "mode Lumières" (avec les barres d'état et les barres d'action masquées et la barre de navigation grisée) ou au "mode plein écran" (avec la barre d'état, la barre d'action et la barre de navigation toutes masquées).
Nouveaux types de vues pouvant être distantes
Les développeurs peuvent désormais utiliser les vues GridLayout et ViewStub dans les notifications et les widgets de l'écran d'accueil. GridLayout vous permet de structurer le contenu de vos vues distantes et de gérer les alignements des vues enfants avec une hiérarchie d'interface utilisateur plus superficielle. ViewStub est une vue invisible de taille nulle qui peut être utilisée pour gonfler, de manière différée, des ressources de mise en page lors de l'exécution.
Aperçu du fond d'écran animé
Android 4.1 permet aux utilisateurs de trouver et installer plus facilement des fonds d'écran animés à partir des applications qui les incluent. Si votre application inclut des fonds d'écran animés, vous pouvez désormais lancer une activité (ACTION_CHANGE_LIVE_WALLPAPER) qui montre à l'utilisateur un aperçu du fond d'écran animé à partir de votre propre application. À partir de l'aperçu, les utilisateurs peuvent charger directement le fond d'écran animé.
Photos de contact en plus haute résolution
Avec Android 4.1, vous pouvez stocker des photos de contact jusqu'à 720 x 720, pour des photos encore plus riches et personnelles. Les applications peuvent stocker et récupérer les photos de contacts à cette taille ou utiliser toute autre taille nécessaire. La taille de photo maximale prise en charge selon les appareils peut varier. Par conséquent, les applications doivent interroger le fournisseur de contacts intégrés au moment de l'exécution pour obtenir la taille maximale de l'appareil actuel.
Nouveaux types d'entrée et nouvelles fonctionnalités
Soyez informé des appareils ajoutés et supprimés
Les applications peuvent s'inscrire pour recevoir une notification lorsque de nouveaux périphériques d'entrée sont connectés via USB, Bluetooth ou tout autre type de connexion. Ils peuvent utiliser ces informations pour modifier l'état ou les fonctionnalités selon les besoins. Par exemple, un jeu peut recevoir une notification indiquant qu'un nouveau clavier ou joystick est connecté, ce qui indique la présence d'un nouveau joueur.
Interroger les caractéristiques des périphériques d'entrée
Android 4.1 inclut des API qui permettent aux applications et aux jeux de tirer pleinement parti de tous les périphériques d'entrée connectés et disponibles.
Les applications peuvent interroger le gestionnaire d'appareils pour énumérer tous les périphériques d'entrée actuellement connectés et en savoir plus sur leurs fonctionnalités.
Contrôler le vibreur sur les périphériques d'entrée
Entre autres fonctionnalités, les applications peuvent désormais utiliser n'importe quel service de vibreur associé à un périphérique d'entrée connecté, comme les manettes Rumble Pak.
Animation et graphismes
Vsync pour les applications
L'extension de vsync au framework Android permet d'obtenir une fréquence d'images plus cohérente et une interface utilisateur fluide et stable. Pour que les applications en profitent également, Android 4.1 étend le timing vsync à l'ensemble des dessins et des animations lancés par les applications. Cela leur permet d'optimiser les opérations sur le thread UI et fournit une base de temps stable pour la synchronisation.
Les applications peuvent exploiter sans frais la synchronisation vsync, via le framework d'animation d'Android. Le framework d'animation utilise désormais la synchronisation vsync pour gérer automatiquement la synchronisation entre les animateurs.
Pour des utilisations spécialisées, les applications peuvent accéder à la synchronisation vsync via des API exposées par une nouvelle classe Choréographer. Les applications peuvent demander une invalidation sur le frame vsync suivant, ce qui est un bon moyen de planifier une animation lorsque l'application n'utilise pas le framework d'animation. Pour les utilisations plus avancées, les applications peuvent publier un rappel que la classe Choreographer exécutera sur l'image suivante.
Nouveaux types de transitions et actions d'animation
Le framework d'animation vous permet désormais de définir des actions de début et de fin à effectuer lors de l'exécution d'animations ViewPropertyAnimator, afin de faciliter leur synchronisation avec d'autres animations ou actions dans l'application. Cette action peut exécuter n'importe quel objet exécutable. Par exemple, l'exécutable peut spécifier qu'une autre animation doit commencer à la fin de la précédente.
Désormais, vous pouvez également spécifier qu'un ViewPropertyAnimator doit utiliser un calque pendant son animation. Auparavant, il était recommandé d'animer des vues complexes en configurant un calque avant de lancer une animation, puis en gérant un événement onAnimationEnd() pour supprimer le calque une fois l'animation terminée. Désormais, la méthode withLayer() de ViewPropertyAnimator simplifie ce processus avec un seul appel de méthode.
Un nouveau type de transition dans LayoutTransition vous permet d'automatiser les animations en réponse à toutes les modifications de mise en page dans un ViewGroup.
Nouveaux types de connectivité
Android Beam
Android Beam est une technologie NFC populaire qui permet aux utilisateurs de partager instantanément des contenus, simplement en touchant deux téléphones compatibles NFC.
Sur Android 4.1, Android Beam facilite le partage d'images, de vidéos ou d'autres données utiles en utilisant le Bluetooth pour le transfert de données. Lorsque l'utilisateur déclenche un transfert, Android Beam passe du NFC au Bluetooth, ce qui facilite la gestion du transfert de fichier d'un appareil à un autre.
découverte de services réseau Wi-Fi
Android 4.1 est compatible avec la détection de services basée sur DNS multicast, qui permet aux applications de rechercher des services proposés par des appareils similaires sur les réseaux Wi-Fi (appareils mobiles, imprimantes, appareils photo, lecteurs multimédias, etc.) et de s'y connecter. Les développeurs peuvent profiter de la détection de services de réseau Wi-Fi pour créer des jeux et des applications multiplates-formes ou multijoueurs.
À l'aide de l'API Service Discovery, les applications peuvent créer et enregistrer tout type de service, que tout autre appareil compatible NSD peut découvrir. Le service est annoncé par multicast sur le réseau à l'aide d'un identifiant de chaîne lisible, ce qui permet à l'utilisateur d'identifier plus facilement le type de service.
L'API permet aux appareils grand public de rechercher et d'identifier les services disponibles sur les appareils connectés au réseau Wi-Fi local. Après la découverte, les applications peuvent utiliser l'API pour résoudre le service vers une adresse IP et un port via lesquels ils peuvent établir une connexion de socket.
Vous pouvez profiter de cette API pour intégrer de nouvelles fonctionnalités dans vos applications. Par exemple, vous pouvez autoriser les utilisateurs à se connecter à une webcam, une imprimante ou une application sur un autre appareil mobile compatible avec les connexions Wi-Fi peer-to-peer.
Détection de services Wi-Fi P2P
Ice Cream Sandwich est compatible avec le P2P (Wi-Fi Peer-to-Peer), une technologie qui permet aux applications de détecter et d'associer directement les applications via une connexion peer-to-peer à haut débit (conformément au programme de certification Wi-Fi DirectTM de Wi-Fi Alliance). Wi-Fi P2P est un moyen idéal de partager des contenus multimédias, des photos, des fichiers et d'autres types de données et de sessions, même lorsqu'aucun réseau mobile ou Wi-Fi n'est disponible.
Android 4.1 va encore plus loin avec le Wi-Fi P2P, et offre la compatibilité avec les API pour la recherche de services pré-associés. La détection de services pré-associés permet à vos applications d'obtenir des informations plus utiles sur les appareils à proximité concernant les services compatibles, avant qu'elles ne tentent de se connecter. Les applications peuvent lancer la détection d'un service spécifique et filtrer la liste des appareils détectés pour n'afficher que ceux qui prennent en charge l'application ou le service cible.
Par exemple, cela signifie que votre application ne peut détecter que les appareils qui sont des "imprimantes" ou pour lesquels un jeu spécifique est disponible, au lieu de détecter tous les appareils P2P Wi-Fi à proximité. En revanche, votre application peut annoncer le service qu'elle fournit à d'autres appareils, qui peuvent le découvrir, puis négocier une connexion. Cela simplifie considérablement la découverte et l'association pour les utilisateurs, et permet aux applications de profiter plus efficacement du Wi-Fi P2P.
Grâce à la détection de services Wi-Fi P2P, vous pouvez créer des applications et des jeux multijoueurs permettant de partager des photos, des vidéos, des parties de jeux, des scores et presque tous les contenus, le tout sans nécessiter de réseau mobile ou Internet. Vos utilisateurs peuvent se connecter uniquement via une connexion p2p directe, ce qui évite d'utiliser la bande passante mobile.
Gestion de la bande passante réseau
Android 4.1 aide les applications à gérer la consommation des données de manière appropriée lorsque l'appareil est connecté à un réseau facturé à l'usage, y compris en cas de partage de connexion avec un point d'accès mobile. Les applications peuvent demander si le réseau actuel est facturé à l'usage avant de lancer un téléchargement volumineux qui, autrement, serait relativement coûteux pour l'utilisateur. Grâce à l'API, vous pouvez désormais identifier clairement les réseaux sensibles à l'utilisation des données et gérer votre activité en conséquence.
Nouvelles fonctionnalités multimédias
Accès au codec multimédia
Android 4.1 fournit un accès de bas niveau aux codecs matériels et logiciels de la plate-forme. Les applications peuvent interroger le système pour découvrir quels codecs multimédias de bas niveau sont disponibles sur l'appareil, puis les utiliser selon les besoins. Par exemple, vous pouvez maintenant créer plusieurs instances d'un codec multimédia, mettre en file d'attente des tampons d'entrée et recevoir en retour des tampons de sortie. De plus, le framework de codec multimédia est compatible avec le contenu protégé. Les applications peuvent rechercher un codec disponible capable de lire du contenu protégé à l'aide d'une solution DRM disponible sur l'appareil.
Audio USB
La sortie audio USB permet aux fournisseurs de matériel de créer du matériel, tel que des bornes audio, qui s'interfacent avec les appareils Android. Cette fonctionnalité est également fournie avec le kit de développement accessoire ouvert (ADK) Android pour donner à tous les développeurs la possibilité de créer leur propre matériel.
Déclenchement d'enregistrements audio
Android vous permet désormais de déclencher un enregistrement audio à la fin de la lecture d'une piste audio. Ceci est utile dans des situations telles que l'écoute d'un signal sonore pour encourager vos utilisateurs à commencer à parler pour enregistrer leur voix. Cette fonctionnalité vous aide à synchroniser l'enregistrement afin de ne pas enregistrer le son en cours de lecture et d'éviter que les enregistrements ne commencent trop tard.
Audio multicanal
Android 4.1 est compatible avec l'audio multicanal sur les appareils dont la sortie audio est multicanale via le port HDMI. L'audio multicanal vous permet de proposer des expériences rich media aux utilisateurs d'applications telles que les jeux, les applications de musique et les lecteurs vidéo. Sur les appareils qui ne disposent pas du matériel compatible, Android réduit automatiquement le volume audio au nombre de canaux pris en charge par l'appareil (généralement en stéréo).
Android 4.1 est également compatible avec l'encodage et le décodage des contenus audio AAC 5.1.
Prétraitement audio
Les développeurs peuvent appliquer des effets de prétraitement aux données audio enregistrées, par exemple pour appliquer la suppression du bruit afin d'améliorer la qualité de l'enregistrement vocal, l'annulation de l'écho pour l'écho acoustique et le contrôle du gain automatique pour le contenu audio dont les niveaux de volume sont incohérents. Les applications qui nécessitent un enregistrement audio de haute qualité et de bonne qualité peuvent bénéficier de ces préprocesseurs.
Chaînage audio
MediaPlayer permet d'associer des flux audio pour lire des fichiers audio sans interruption. Cela est utile pour les applications qui nécessitent des transitions fluides entre les fichiers audio, comme les lecteurs de musique, pour écouter des albums avec des pistes continues ou des jeux.
Routeur multimédia
Les nouvelles API MediaRouter, MediaRouteActionProvider et MediaRouteButton fournissent des mécanismes standards et une interface utilisateur permettant de choisir où lire les contenus multimédias. La compatibilité est intégrée avec les casques filaires et les casques et haut-parleurs Bluetooth A2Dp. Vous pouvez ajouter vos propres options de routage depuis votre propre application.
Calcul Renderscript
Android 4.1 étend le calcul de Renderscript pour vous offrir plus de flexibilité. Vous pouvez désormais échantillonner des textures dans vos scripts de calcul Renderscript, et de nouveaux pragmas sont disponibles pour définir la précision à virgule flottante requise par vos scripts. Cela vous permet d'activer des instructions NEON, telles que des opérations mathématiques vectorielles rapides sur le chemin du processeur, ce qui n'aurait pas été possible autrement avec la norme IEEE 754-2008 complète.
Vous pouvez désormais déboguer vos scripts de calcul Renderscript sur un émulateur x86 et des appareils matériels. Vous pouvez également définir plusieurs noyaux de style racine dans un seul fichier source Renderscript.
Navigateur Android et WebView
Dans Android 4.1, le navigateur Android et les WebViews incluent les améliorations suivantes:
- Amélioration de l'expérience utilisateur pour les vidéos HTML5, y compris avec l'option "Appuyer pour lire/mettre en pause" et une transition en douceur du mode intégré au plein écran.
- Amélioration de la vitesse de rendu et réduction de l'utilisation de la mémoire pour de meilleures performances de défilement et de zoom.
- Amélioration des performances des animations HTML5/CSS3/Canvas.
- Amélioration de la saisie de texte.
- Mise à jour du moteur JavaScript (V8) pour améliorer les performances JavaScript.
- Compatibilité avec la nouvelle spécification HTML5 Media Capture (attribut "capture" pour le type d'entrée des éléments "file").
API et services Google
Pour étendre encore davantage les fonctionnalités d'Android, plusieurs nouveaux services sont disponibles.
Google Cloud Messaging pour Android
Google Cloud Messaging (GCM) est un service qui permet aux développeurs d'envoyer des données de messagerie courtes à leurs utilisateurs sur des appareils Android, sans avoir besoin d'une solution de synchronisation propriétaire.
GCM gère tous les détails de la mise en file d'attente des messages et de leur distribution efficace sur les appareils Android ciblés. Elle prend en charge la multidiffusion de messages et peut atteindre jusqu'à 1 000 appareils connectés simultanément avec une seule requête. Il accepte également les charges utiles de messages, ce qui signifie qu'en plus d'envoyer des messages de chat à une application sur l'appareil, les développeurs peuvent envoyer jusqu'à 4K de données.
Google Cloud Messaging est entièrement sans frais pour tous les développeurs, et l'inscription est très simple. Accédez à la page Google Cloud Messaging pour vous inscrire, télécharger des messages et obtenir de la documentation.
Chiffrement des applications
À partir d'Android 4.1, Google Play contribuera à protéger les ressources d'application en chiffrant toutes les applications payantes à l'aide d'une clé spécifique à l'appareil avant qu'elles ne soient distribuées et stockées sur un appareil.
Actualités des applications intelligentes
La mise à jour intelligente des applications est une nouvelle fonctionnalité de Google Play qui offre un meilleur moyen de mettre à jour les applications sur les appareils. Lorsque les développeurs publient une mise à jour, Google Play ne fournit désormais que les bits qui ont été modifiés aux appareils, et non l'APK complet. Dans la plupart des cas, les mises à jour sont ainsi beaucoup plus légères, ce qui accélère leur téléchargement, économiser la batterie de l'appareil et préserver l'utilisation de la bande passante dans le cadre du forfait de données mobiles des utilisateurs. En moyenne, les mises à jour d'applications intelligentes font environ 1/3 de la taille d'une mise à jour d'APK complète.
Services Google Play
Les services Google Play aident les développeurs à intégrer des services Google, tels que l'authentification, dans leurs applications fournies via Google Play.
Les services Google Play sont automatiquement provisionnés sur les appareils des utilisateurs finaux par Google Play. Vous n'avez donc besoin que d'une bibliothèque cliente légère dans vos applications.
Comme votre application ne contient que la petite bibliothèque cliente, vous pouvez profiter de ces services sans augmenter considérablement la taille de téléchargement ni l'espace de stockage. En outre, Google Play fournira régulièrement des mises à jour des services, sans que les développeurs n'aient à publier de mises à jour d'applications pour en bénéficier.
Pour en savoir plus sur les API incluses dans les services Google Play, consultez la page du développeur sur les services Google Play.