![Android 4.4 sur téléphone et tablette](https://developer.android.google.cn/static/images/kk-devices.png?authuser=6&hl=fr)
Bienvenue dans Android 4.4 KitKat !
Android KitKat apporte toutes les fonctionnalités les plus innovantes, les plus belles et les plus utiles d'Android sur toujours plus d'appareils dans le monde entier.
Ce document offre un aperçu des nouveautés pour les développeurs.
Pour en savoir plus sur KitKat pour le grand public, rendez-vous sur www.android.com.
Android pour tous
Android 4.4 est conçu pour s'exécuter rapidement, de manière fluide et réactive sur une gamme d'appareils bien plus étendue que jamais, y compris sur des millions d'appareils d'entrée de gamme à travers le monde, qui ne disposent que de 512 Mo de RAM.
KitKat simplifie chaque composant majeur pour réduire l'utilisation de la mémoire, et introduit de nouveaux outils et API pour vous aider à créer des applications innovantes, réactives et à faible capacité de mémoire.
Les OEM qui développent la nouvelle génération d'appareils Android peuvent bénéficier de recommandations et d'options ciblées pour exécuter Android 4.4 efficacement, même sur les appareils à faible mémoire. Le réglage du cache de code JIT Dalvik, la fusion KSM du noyau, le passage à la zRAM et d'autres optimisations aident à gérer la mémoire. De nouvelles options de configuration permettent aux OEM de régler les niveaux de mémoire insuffisante pour les processus, de définir les tailles de cache graphiques, de contrôler la récupération de mémoire, etc.
Dans Android, les modifications apportées au système améliorent la gestion de la mémoire et réduisent l'espace mémoire utilisé. Les processus du système principal sont réduits pour utiliser moins de tas de mémoire et protègent désormais de manière plus agressive la mémoire système des applications consommant de grandes quantités de RAM. Lorsque plusieurs services démarrent en même temps, par exemple lorsque la connectivité réseau change, Android les lance désormais en série, par petits groupes, pour éviter les pics d'utilisation de mémoire.
Android 4.4 permet aux développeurs de proposer des applications efficaces et réactives sur tous les appareils. Une nouvelle API, ActivityManager.isLowRamDevice(), vous permet d'ajuster le comportement de votre application en fonction de la configuration de la mémoire de l'appareil. Vous pouvez modifier ou désactiver les fonctionnalités de grande capacité de mémoire selon vos besoins, selon les cas d'utilisation que vous souhaitez prendre en charge sur les appareils d'entrée de gamme. Pour en savoir plus sur l'optimisation de vos applications pour les appareils à faible mémoire, cliquez ici.
De nouveaux outils vous offrent également des informations précieuses sur l'utilisation de la mémoire de votre application. L'outil Procstats détaille l'utilisation de la mémoire au fil du temps, avec les durées d'exécution et l'espace mémoire utilisé pour les applications de premier plan et les services d'arrière-plan. Une vue sur l'appareil est également disponible comme nouvelle option pour les développeurs. L'outil meminfo a été amélioré pour faciliter la détection des tendances et des problèmes de mémoire. De plus, il révèle une surcharge de mémoire supplémentaire qui n'était pas visible auparavant.
Nouvelles fonctionnalités NFC via l'émulation de carte hôte
Android 4.4 est compatible avec une nouvelle plate-forme compatible avec les transactions NFC sécurisées via l'émulation de carte hôte (HCE), pour les paiements, les programmes de fidélité, l'accès aux cartes, les titres de transport et d'autres services personnalisés. Avec la technologie HCE, n'importe quelle application sur un appareil Android peut émuler une carte à puce NFC, ce qui permet aux utilisateurs d'effectuer des transactions avec l'application de leur choix. Aucun composant sécurisé provisionné sur l'appareil n'est nécessaire. Les applications peuvent également utiliser un nouveau mode Lecteur pour agir en tant que lecteurs de cartes HCE et d'autres transactions NFC.
![Symbole du paiement sans contact](https://developer.android.google.cn/static/images/kk-contactless-card.png?authuser=6&hl=fr)
La technologie HCE d'Android émule les cartes à puce basées sur la norme ISO/IEC 7816 qui utilisent le protocole sans contact ISO/IEC 14443-4 (ISO-DEP) pour leur transmission. Ces cartes sont actuellement utilisées par de nombreux systèmes, y compris l'infrastructure de paiement NFC EMVCO existante. Android utilise des identifiants d'application (AID) tels que définis dans la norme ISO/IEC 7816-4 pour acheminer les transactions vers les applications Android appropriées.
Les applications déclarent les AID compatibles dans leurs fichiers manifestes, ainsi qu'un identifiant de catégorie qui indique le type d'assistance disponible (par exemple, "paiements"). Si plusieurs applications sont compatibles avec le même AID dans la même catégorie, Android affiche une boîte de dialogue permettant à l'utilisateur de choisir l'application à utiliser.
Lorsque l'utilisateur effectue un paiement sans contact au terminal de point de vente, le système extrait l'AID préféré et achemine la transaction vers l'application appropriée. L'application lit les données de la transaction et peut utiliser n'importe quel service local ou réseau pour vérifier, puis finaliser la transaction.
La technologie HCE d'Android nécessite la présence d'un contrôleur NFC dans l'appareil. La compatibilité HCE est déjà largement disponible sur la plupart des contrôleurs NFC, qui offrent une compatibilité dynamique avec les transactions HCE et SE. Les appareils Android 4.4 compatibles NFC incluent le paiement sans contact pour faciliter les paiements via la technologie HCE.
Cadre d'impression
Les applications Android peuvent désormais imprimer tout type de contenu via le Wi-Fi ou des services hébergés dans le cloud tels que Google Cloud Print. Dans les applications compatibles avec l'impression, les utilisateurs peuvent découvrir les imprimantes disponibles, modifier la taille du papier, choisir les pages à imprimer et imprimer presque n'importe quel type de document, d'image ou de fichier.
Android 4.4 est compatible avec les plates-formes natives pour l'impression, ainsi que des API permettant de gérer l'impression et d'ajouter de nouveaux types de compatibilité des imprimantes. La plate-forme fournit un gestionnaire d'impression qui assure la médiation entre les applications qui demandent l'impression et les services d'impression installés qui gèrent les requêtes d'impression. Le gestionnaire d'impression fournit des services partagés et une interface utilisateur système pour l'impression, offrant aux utilisateurs un contrôle cohérent sur l'impression depuis n'importe quelle application. Il garantit également la sécurité du contenu lors de sa transmission entre les processus, d'une application à un service d'impression.
![Mobile en mode paysage montrant les fonctionnalités de compatibilité de l'imprimante](https://developer.android.google.cn/static/images/kk-print-land-n5.jpg?authuser=6&hl=fr)
Vous pouvez ajouter la compatibilité d'impression à vos applications ou développer des services d'impression pour des types d'imprimantes spécifiques.
Les fabricants d'imprimantes peuvent utiliser de nouvelles API pour développer leurs propres services d'impression, des composants enfichables qui ajoutent une logique et des services spécifiques aux fournisseurs pour communiquer avec des types d'imprimantes spécifiques. Ils peuvent créer des services d'impression et les distribuer via Google Play, ce qui permet aux utilisateurs de les trouver et de les installer facilement sur leurs appareils. Comme pour les autres applications, vous pouvez à tout moment mettre à jour les services d'impression Over The Air.
Les applications clientes peuvent utiliser de nouvelles API pour ajouter des fonctionnalités d'impression à leurs applications avec un minimum de modifications du code. Dans la plupart des cas, vous ajouterez une action d'impression à votre barre d'action et une UI pour choisir les éléments à imprimer. Vous devez également mettre en œuvre des API pour créer des tâches d'impression, interroger le gestionnaire d'impression pour connaître leur état et annuler des tâches. Cela vous permet d'imprimer presque tous les types de contenus, qu'il s'agisse d'images et de documents locaux, de données réseau ou d'une vue affichée sur un canevas.
Pour une compatibilité étendue, Android utilise PDF comme format de fichier principal pour l'impression. Avant l'impression, votre application doit générer une version PDF correctement paginée de votre contenu. Pour plus de commodité, l'API d'impression fournit des classes d'assistance natives et WebView pour vous permettre de créer des PDF à l'aide des API de dessin Android standards. Si votre application sait comment dessiner le contenu, elle peut rapidement créer un PDF afin de l'imprimer.
La plupart des appareils équipés d'Android 4.4 incluent Google Cloud Print en tant que service d'impression préinstallé en tant que service d'impression, ainsi que plusieurs applications Google compatibles avec l'impression, telles que Chrome, Drive, Galerie et QuickOffice.
Framework d'accès au stockage
Un nouveau framework d'accès au stockage permet aux utilisateurs de parcourir et d'ouvrir facilement des documents, des images et d'autres fichiers sur tous leurs fournisseurs de stockage de documents préférés. Une interface utilisateur standard facile à utiliser permet aux utilisateurs de parcourir les fichiers et d'accéder aux fichiers récents de manière cohérente entre les applications et les fournisseurs.
![Mobile affichant une barre latérale ouverte dans le nouveau framework d'accès au stockage](https://developer.android.google.cn/static/images/kk-saf2-n5.jpg?authuser=6&hl=fr)
![Mobile présentant les services Box intégrés dans le nouveau framework d'accès au stockage](https://developer.android.google.cn/static/images/kk-saf1-n5.jpg?authuser=6&hl=fr)
Box et d'autres ont intégré leurs services dans le framework d'accès au stockage, permettant ainsi aux utilisateurs d'accéder facilement à leurs documents à partir d'applications du système.
Les services de stockage cloud ou locaux peuvent participer à cet écosystème en implémentant une nouvelle classe de fournisseur de documents qui encapsule leurs services. La classe du fournisseur inclut toutes les API nécessaires pour enregistrer le fournisseur auprès du système et pour gérer la navigation, la lecture et l'écriture de documents dans le fournisseur. Le fournisseur de documents peut permettre aux utilisateurs d'accéder à toutes les données distantes ou locales pouvant être représentées sous forme de fichiers (texte, photos, fonds d'écran, vidéos, fichiers audio, etc.).
Si vous créez un fournisseur de documents pour un service cloud ou local, vous pouvez le fournir aux utilisateurs dans le cadre de votre application Android existante. Après avoir téléchargé et installé l'application, les utilisateurs auront un accès instantané à votre service à partir de n'importe quelle application participant au framework. Cela peut vous aider à gagner en exposition et à renforcer l'engagement des utilisateurs, car ceux-ci trouveront vos services plus facilement.
Si vous développez une application cliente qui gère des fichiers ou des documents, vous pouvez l'intégrer au framework d'accès au stockage en utilisant simplement de nouveaux intents CREATE_DOCUMENT ou OPEN_DOCUMENT pour ouvrir ou créer des fichiers. Le système affiche automatiquement l'interface utilisateur standard pour parcourir les documents, y compris tous les fournisseurs de documents disponibles.
Vous pouvez intégrer votre application cliente une seule fois, pour tous les fournisseurs, sans code spécifique à celui-ci. À mesure que les utilisateurs ajoutent ou suppriment des fournisseurs, ils conservent l'accès à leurs services préférés depuis votre application, sans que votre code ne soit modifié ni mis à jour.
Storage Access Framework est intégré à l'intent GET_CONTENT existant. Les utilisateurs ont donc également accès à l'ensemble de leurs anciennes sources de données et contenus à partir de la nouvelle interface utilisateur du système pour la navigation. Les applications peuvent continuer à utiliser GET_CONTENT pour permettre aux utilisateurs d'importer des données. Le framework d'accès au stockage et l'UI du système pour la navigation permettent aux utilisateurs de rechercher et d'importer plus facilement leurs données à partir d'un éventail plus large de sources.
La plupart des appareils équipés d'Android 4.4 incluront Google Drive et le stockage local pré-intégré en tant que fournisseurs de documents. Les applications Google fonctionnant avec des fichiers utilisent également le nouveau framework.
Capteurs à faible consommation d'énergie
Regroupement des capteurs
Android 4.4 est compatible avec la plate-forme pour le traitement par lot des capteurs matériels, une nouvelle optimisation qui peut considérablement réduire la consommation d'énergie des activités de capteurs en cours.
Avec le traitement par lot des capteurs, Android fonctionne avec le matériel de l'appareil pour collecter et transmettre efficacement les événements de capteurs par lots plutôt qu'individuellement au fur et à mesure qu'ils sont détectés. Cela permet au processeur d'application de l'appareil de rester inactif à faible consommation d'énergie jusqu'à la distribution des lots. Vous pouvez demander des événements par lot à partir de n'importe quel capteur à l'aide d'un écouteur d'événements standard, et vous pouvez contrôler l'intervalle de réception des lots. Vous pouvez également demander la diffusion immédiate des événements entre les cycles de traitement par lot.
Le traitement par lot des capteurs est idéal pour les cas d'utilisation à faible consommation d'énergie sur le long terme tels que l'activité physique, le suivi de la position géographique, la surveillance, etc. Elle peut améliorer l'efficacité de votre application et vous permet de suivre les événements de capteurs en continu, même lorsque l'écran est éteint et que le système est en veille.
Le traitement par lot des capteurs est actuellement disponible sur le Nexus 5, et nous collaborons avec nos partenaires de chipsets pour qu'il soit disponible sur davantage d'appareils dès que possible.
![Compatibilité avec le nouveau détecteur de pas sur mobile](https://developer.android.google.cn/static/images/kk-sensors-moves-n5.jpg?authuser=6&hl=fr)
![Prise en charge du nouveau compteur de pas sur mobile](https://developer.android.google.cn/static/images/kk-sensors-runtastic-n5.jpg?authuser=6&hl=fr)
Les fonctionnalités Moves et Runtastic Pedomètre utilisent le détecteur de pas matériel pour proposer des services de longue durée et à faible consommation d'énergie.
Détecteur de pas et compteur de pas
Android 4.4 est également compatible avec deux nouveaux capteurs composites (le détecteur de pas et le compteur de pas), qui permettent à votre application de suivre les pas lorsque l'utilisateur marche, court ou monte des escaliers. Ces nouveaux capteurs sont mis en œuvre dans le matériel pour une faible consommation d'énergie.
Le détecteur de pas analyse l'entrée de l'accéléromètre pour reconnaître le moment où l'utilisateur a effectué un pas, puis déclenche un événement à chaque pas. Le compteur de pas suit le nombre total de pas depuis le dernier redémarrage de l'appareil et déclenche un événement à chaque modification du nombre de pas. Étant donné que la logique et la gestion des capteurs sont intégrées à la plate-forme et au matériel sous-jacent, vous n'avez pas besoin de gérer vos propres algorithmes de détection dans votre application.
Les détecteurs de pas et les capteurs de compteur sont disponibles sur le Nexus 5. Nous collaborons avec nos partenaires de chipsets pour qu'ils soient disponibles sur les nouveaux appareils dès que possible.
Fournisseur de SMS
Si vous développez une application de messagerie qui utilise des SMS ou des MMS, vous pouvez désormais utiliser un fournisseur de SMS partagés et de nouvelles API pour gérer le stockage et la récupération des messages dans votre application. Le nouveau fournisseur de SMS et les nouvelles API définissent un modèle d'interaction standardisé pour toutes les applications qui gèrent des SMS ou des MMS.
Avec le nouveau fournisseur et les nouvelles API, Android 4.4 introduit une nouvelle sémantique pour la réception de messages et l'écriture dans le fournisseur. Lorsqu'un message est reçu, le système l'achemine directement vers l'application de chat par défaut de l'utilisateur à l'aide du nouvel intent SMS_DELIVER. D'autres applications peuvent toujours écouter les messages entrants à l'aide de l'intent SMS_RECEIVED. De plus, le système n'autorise désormais que l'application par défaut à écrire des données de message au fournisseur, bien que d'autres applications puissent les lire à tout moment. Les applications qui ne sont pas définies par défaut par l'utilisateur peuvent tout de même envoyer des messages. Le système gère l'écriture de ces messages au fournisseur pour le compte de l'application, de sorte que les utilisateurs puissent les voir dans l'application par défaut.
Le nouveau fournisseur et la nouvelle sémantique permettent d'améliorer l'expérience utilisateur lorsque plusieurs applications de chat sont installées, et vous aident à créer de nouvelles fonctionnalités de messagerie avec des API entièrement compatibles et à compatibilité ascendante.
De nouvelles façons de créer des applications attrayantes
![Mobile affichant la nouvelle fonctionnalité du mode immersif](https://developer.android.google.cn/static/images/kk-immersive-n5.jpg?authuser=6&hl=fr)
Un nouveau mode immersif permet aux applications d'utiliser chaque pixel de l'écran pour afficher du contenu et capturer des événements tactiles.
Mode immersif plein écran
Vos applications peuvent désormais utiliser chaque pixel de l'écran de l'appareil pour présenter votre contenu et capturer des événements tactiles. Android 4.4 ajoute un nouveau mode immersif plein écran qui vous permet de créer des interfaces utilisateur à fond perdu sur les téléphones et les tablettes, masquant l'intégralité de l'interface utilisateur du système, comme la barre d'état et la barre de navigation. Il est idéal pour les contenus visuels riches tels que des photos, des vidéos, des cartes, des livres et des jeux.
Dans le nouveau mode, l'interface utilisateur du système reste masquée, même lorsque les utilisateurs interagissent avec votre application ou votre jeu. Vous pouvez capturer des événements tactiles n'importe où sur l'écran, même dans les zones qui seraient autrement occupées par les barres système. C'est un excellent moyen de créer une interface utilisateur plus grande, plus riche et plus immersive dans votre application ou votre jeu, et de réduire les distractions visuelles.
Pour que les utilisateurs aient toujours un accès facile et cohérent à l'UI du système à partir du mode immersif plein écran, Android 4.4 accepte un nouveau geste : en mode immersif, un balayage depuis le bord du haut ou du bas de l'écran affiche désormais l'UI du système.
Pour revenir au mode immersif, les utilisateurs peuvent toucher l'écran en dehors des limites de la barre ou attendre un court instant que les barres soient masquées automatiquement. Pour une expérience utilisateur cohérente, le nouveau geste fonctionne également avec les méthodes précédentes pour masquer la barre d'état.
Framework de transitions pour l'animation de scènes
La plupart des applications structurent leurs flux autour de plusieurs états clés de l'interface utilisateur qui exposent différentes actions. De nombreuses applications utilisent également des animations pour aider les utilisateurs à comprendre leur progression entre ces états et les actions disponibles dans chacun d'eux. Pour faciliter la création d'animations de haute qualité dans votre application, Android 4.4 introduit un nouveau framework de transitions.
Le framework de transitions vous permet de définir des scènes (généralement des hiérarchies d'affichage) et des transitions, qui décrivent comment animer ou transformer les scènes lorsque l'utilisateur y accède ou les quitte. Vous pouvez utiliser plusieurs types de transition prédéfinis pour animer vos scènes en fonction de propriétés spécifiques, telles que les limites de la mise en page ou la visibilité. Il existe également un type de transition automatique qui effectue un fondu, un déplacement et un redimensionnement automatiques des vues lors d'un changement de scène. En outre, vous pouvez définir des transitions personnalisées qui animent les propriétés les plus importantes pour votre application. Vous pouvez également insérer vos propres styles d'animation si nécessaire.
Avec le framework de transitions, vous pouvez également animer des modifications de votre UI à la volée, sans avoir à définir de scènes. Par exemple, vous pouvez apporter une série de modifications à une hiérarchie des vues, puis faire en sorte que TransitionManager exécute automatiquement une transition différée pour ces modifications.
Une fois que vous avez configuré des transitions, il est facile de les appeler à partir de votre application. Par exemple, vous pouvez appeler une seule méthode pour commencer une transition, apporter diverses modifications à votre hiérarchie des vues, puis lancer automatiquement des animations pour animer les modifications spécifiées.
![UI translucide du système](https://developer.android.google.cn/static/images/kk-home.jpg?authuser=6&hl=fr)
Les applications peuvent utiliser de nouveaux styles de fenêtre pour demander des barres système translucides.
Vous pouvez utiliser TransitionManager pour un contrôle personnalisé des transitions qui s'exécutent entre des scènes spécifiques de votre flux d'application. Le gestionnaire de transition vous permet de définir la relation entre les scènes et les transitions qui s'exécutent pour des changements de scène spécifiques.
Style translucide de l'interface utilisateur du système
Pour optimiser l'impact de votre contenu, vous pouvez désormais utiliser de nouveaux styles et thèmes de fenêtre pour demander une UI translucide du système, y compris la barre d'état et la barre de navigation. Pour assurer la lisibilité des boutons de la barre de navigation ou des informations de la barre d'état, des dégradés subtils sont affichés derrière les barres système. Un cas d'utilisation typique est une application qui doit apparaître sur un fond d'écran.
Accès avancé aux notifications
Les services d'écoute des notifications peuvent désormais voir plus d'informations sur les notifications entrantes créées à l'aide des API du générateur de notifications. Les services d'écoute peuvent accéder aux actions d'une notification ainsi qu'à de nouveaux champs supplémentaires (texte, icône, image, progression, chronomètre, etc.) pour extraire des informations plus claires sur la notification et les présenter d'une manière différente.
Chromium WebView
Android 4.4 inclut une toute nouvelle mise en œuvre de WebView basée sur Chromium. La nouvelle Chromium WebView vous offre les toutes dernières fonctionnalités en matière de compatibilité, de performances et de compatibilité pour créer et afficher votre contenu Web.
Chromium WebView est compatible avec de nombreux formats HTML5, CSS3 et JavaScript. Il est compatible avec la plupart des fonctionnalités HTML5 disponibles dans Chrome pour Android 30. Il propose également une version mise à jour de JavaScript Engine (V8), qui offre des performances JavaScript considérablement améliorées.
En outre, la nouvelle WebView de Chromium permet le débogage à distance à l'aide des outils pour les développeurs Chrome. Par exemple, vous pouvez utiliser les outils pour les développeurs Chrome sur votre ordinateur de développement pour inspecter, déboguer et analyser votre contenu WebView en direct sur un appareil mobile.
La nouvelle WebView de Chromium est incluse sur tous les appareils compatibles équipés d'Android 4.4 ou version ultérieure. Vous pouvez profiter de la nouvelle WebView dès maintenant, avec un minimum de modifications aux applications et contenus existants. Dans la plupart des cas, votre contenu migrera de manière fluide vers la nouvelle implémentation.
Nouvelles fonctionnalités multimédias
Enregistrement de l'écran
Vous pouvez désormais créer facilement des vidéos de haute qualité de votre application, directement depuis votre appareil Android. Android 4.4 prend en charge l'enregistrement d'écran et fournit un utilitaire d'enregistrement d'écran qui vous permet de démarrer et d'arrêter l'enregistrement sur un appareil connecté à votre environnement SDK Android via USB. C'est une nouvelle façon idéale de créer des tutoriels pour votre application, des supports de test, des vidéos marketing et plus encore.
Avec l'utilitaire d'enregistrement d'écran, vous pouvez enregistrer une vidéo du contenu de l'écran de votre appareil et la stocker sous forme de fichier MP4 sur l'appareil. Vous pouvez enregistrer à n'importe quelle résolution et débit compatibles avec l'appareil de votre choix. La sortie conserve le format de l'écran. Par défaut, l'utilitaire sélectionne une résolution égale ou proche de la résolution d'affichage de l'appareil dans l'orientation actuelle. Une fois l'enregistrement terminé, vous pouvez partager la vidéo directement depuis votre appareil ou extraire le fichier MP4 vers votre ordinateur hôte pour la postproduction.
Si votre application lit une vidéo ou un autre contenu protégé que vous ne souhaitez pas que l'enregistreur d'écran capture, vous pouvez utiliser SurfaceView.setSecure() pour marquer le contenu comme sécurisé.
Vous pouvez accéder à l'enregistrement d'écran via l'outil adb inclus dans le SDK Android, à l'aide de la commande adb shell screenrecord. Vous pouvez également le lancer via logcat dans Android Studio.
Changement de résolution via la lecture adaptative
Android 4.4 est officiellement compatible avec la lecture adaptative dans le framework multimédia Android. La lecture adaptative est une fonctionnalité facultative des décodeurs vidéo pour MPEG-DASH et d'autres formats, qui permet un changement fluide de la résolution pendant la lecture. Le client peut commencer à alimenter les trames vidéo d'entrée du décodeur d'une nouvelle résolution, et la résolution des tampons de sortie change automatiquement, sans écart important.
Le changement de résolution sur Android 4.4 permet aux applications multimédias d'offrir une expérience vidéo en streaming nettement supérieure. Les applications peuvent rechercher la prise en charge de la lecture adaptative au moment de l'exécution à l'aide des API existantes et mettre en œuvre le changement de résolution à l'aide des nouvelles API introduites dans Android 4.4.
Chiffrement courant pour DASH
Android est désormais compatible avec le Common Encryption (CENC) pour MPEG-DASH, fournissant un schéma DRM multiplateforme standard pour gérer la protection du contenu. Les applications peuvent bénéficier de CENC via le framework DRM modulaire d'Android et les API de plate-forme compatibles avec DASH.
Diffusion HTTP en direct
Android 4.4 met à jour la compatibilité du protocole HTTP Live Streaming (HLS) de la plate-forme vers un sur-ensemble correspondant à la version 7 de la spécification HLS (version 4 du protocole). Pour en savoir plus, consultez le brouillon IETF.
Tunnelisation audio vers DSP
Pour une lecture audio hautes performances et à faible consommation d'énergie, Android 4.4 ajoute une plate-forme compatible avec la tunnelisation audio vers un processeur de signal numérique (DSP) dans le chipset de l'appareil. Avec la tunnellisation, le décodage audio et les effets de sortie sont déchargés sur le DSP, ce qui active moins souvent le processeur de l'application et utilise moins de batterie.
Le tunnel audio peut considérablement améliorer l'autonomie de la batterie dans des cas d'utilisation tels que l'écoute de musique avec un casque lorsque l'écran est éteint. Par exemple, avec un tunnel audio, le Nexus 5 offre jusqu'à 60 heures de lecture audio hors réseau, soit une augmentation de plus de 50% par rapport aux sons non tunnelés.
Les applications multimédias peuvent tirer parti du tunnel audio sur les appareils compatibles sans avoir à modifier le code. Le système applique un tunnel pour optimiser la lecture audio chaque fois qu'elle est disponible sur l'appareil.
![Visuel montrant l'effet audio améliorant le volume](https://developer.android.google.cn/static/images/kk-loudnessEnhancerAnnotated.png?authuser=6&hl=fr)
Visualisation de la manière dont l'effet LoudnessEnhancer peut rendre le contenu vocal plus audible.
La tunnellisation audio nécessite la compatibilité avec le matériel de l'appareil. Le tunnel audio est actuellement disponible sur le Nexus 5, et nous travaillons avec nos partenaires de chipsets pour qu'il soit disponible sur davantage d'appareils dès que possible.
Surveillance audio
Les applications peuvent utiliser de nouveaux outils de surveillance dans l'effet visualiseur pour obtenir des mises à jour sur les niveaux de pic et de RMS de tout contenu audio en cours de lecture sur l'appareil. Par exemple, vous pouvez l'utiliser de manière créative dans des visualiseurs musicaux ou pour implémenter la mesure de la lecture dans un lecteur multimédia.
Outil pour améliorer le son
Les applications de lecture de contenus multimédias peuvent augmenter le volume des contenus parlés à l'aide du nouvel effet LoudnessEnhancer, qui agit comme un compresseur avec des constantes temporelles spécialement adaptées à la voix.
Horodatage audio pour améliorer la synchronisation AV
Le framework audio peut désormais signaler les horodatages de présentation du HAL de sortie audio aux applications, pour une meilleure synchronisation audio-vidéo. Les horodatages audio permettent à votre application de déterminer à quel moment une image audio spécifique a été présentée (ou a été) à l'utilisateur hors de l'appareil. Vous pouvez utiliser les informations d'horodatage pour synchroniser plus précisément l'audio avec les images vidéo.
Wi-Fi CERTIFIÉ MiracastTM
Les appareils Android 4.4 peuvent désormais être certifiés conformes à la spécification Wi-Fi Alliance pour l'affichage Wi-Fi et être compatibles avec Miracast. Pour faciliter les tests, une nouvelle option pour les développeurs d'affichage sans fil propose des commandes et des paramètres de configuration avancés pour la certification de l'affichage sans fil. Vous pouvez accéder à l'option sous Settings > Developer options > Wireless display Certification (Paramètres > Options pour les développeurs > Certification de l'affichage sans fil). Le Nexus 5 est un appareil d'affichage sans fil certifié Miracast.
Calcul RenderScript
![Graphique des optimisations de rendu](https://developer.android.google.cn/static/images/kk-rs-chart-versions.png?authuser=6&hl=fr)
Les benchmarks de performances pour Android 4.4 et Android 4.3 s'exécutent sur les mêmes appareils (Nexus 7, Nexus 10).
Amélioration continue des performances
Lorsque vos applications utilisent RenderScript, elles bénéficient d'un réglage continu des performances directement dans l'environnement d'exécution RenderScript, sans aucune recompilation. Le graphique de droite montre les gains de performances dans Android 4.4 sur deux chipsets populaires.
Accélération du GPU
Toute application utilisant RenderScript sur un appareil compatible bénéficie de l'accélération du GPU, sans modification du code ni recompilation. Depuis le lancement de l'accélération du GPU RenderScript sur la Nexus 10, divers autres partenaires matériels ont ajouté cette fonctionnalité.
Avec Android 4.4, l'accélération du GPU est désormais disponible sur le Nexus 5, ainsi que sur les Nexus 4, Nexus 7 (2013) et Nexus 10. Nous collaborons avec nos partenaires pour proposer cette fonctionnalité sur davantage d'appareils dès que possible.
RenderScript dans le NDK Android
Vous pouvez désormais exploiter RenderScript directement à partir de votre code natif. Une nouvelle API C++ dans le kit de développement natif Android (NDK) vous permet d'accéder aux mêmes fonctionnalités RenderScript disponibles via les API du framework, y compris les fonctionnalités intrinsèques de script, les noyaux personnalisés, etc.
Si vous devez gérer des tâches volumineuses et exigeantes en performances en code natif, vous pouvez les effectuer à l'aide de RenderScript et les intégrer à votre code natif. RenderScript offre d'excellentes performances sur une large gamme d'appareils, avec une compatibilité automatique avec les processeurs multicœurs, les GPU et d'autres processeurs.
Lorsque vous créez une application qui utilise RenderScript via le NDK, vous pouvez la distribuer sur n'importe quel appareil équipé d'Android 2.2 ou version ultérieure, tout comme avec la bibliothèque Support RenderScript disponible pour les API du framework.
Graphismes
GLES2.0 SurfaceFlinger
Android 4.4 met à niveau son SurfaceFlinger d'OpenGL ES 1.0 vers OpenGL ES 2.0.
Nouvelle prise en charge de Hardware Composer pour les affichages virtuels
La dernière version d'Android Hardware Composer, HWComposer 1.3, prend en charge la composition matérielle d'un écran virtuel en plus de l'écran principal externe (par exemple, HDMI) et a amélioré l'interopérabilité OpenGL ES.
Nouveaux types de connectivité
Nouveaux profils Bluetooth
Android 4.4 prend en charge deux nouveaux profils Bluetooth pour permettre aux applications de gérer un éventail plus large d'interactions à faible consommation d'énergie et multimédias. La technologie Bluetooth HID over GATT (HOGP) permet aux applications d'interagir avec des appareils à faible latence avec des appareils à faible consommation d'énergie, tels que des souris, des joysticks et des claviers. Le Bluetooth MAP permet à vos applications d'échanger des messages avec un appareil à proximité, par exemple un terminal automobile pour une utilisation mains libres ou un autre appareil mobile. En tant qu'extension du Bluetooth AVRCP 1.3, les utilisateurs peuvent désormais régler le volume absolu sur le système depuis leur appareil Bluetooth.
Les plates-formes compatibles avec HOGP, MAP et AVRCP sont basées 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 Android dotés de fonctionnalités Bluetooth compatibles.
Pistolets infrarouges
Android 4.4 est compatible avec les Blasters infrarouges intégrés, ainsi qu'une nouvelle API et un nouveau service système qui vous permet de créer des applications pour en tirer parti.
Grâce à la nouvelle API, vous pouvez créer des applications qui permettent aux utilisateurs de contrôler à distance les téléviseurs, les tuners, les commutateurs et d'autres appareils électroniques situés à proximité. L'API permet à votre application de vérifier si le téléphone ou la tablette dispose d'un émetteur infrarouge, d'interroger ses fréquences opérateur, puis d'envoyer des signaux infrarouges.
Comme l'API est standard sur les appareils Android équipés d'Android 4.4 ou version ultérieure, votre application peut prendre en charge le plus large éventail possible de fournisseurs sans avoir à écrire de code d'intégration personnalisé.
Compatibilité TDLS Wi-Fi
Android 4.4 permet de diffuser facilement et rapidement des contenus multimédias et d'autres données entre des appareils déjà connectés au même réseau Wi-Fi grâce à la fonctionnalité TDLS (Wi-Fi Tunneled Direct Link Setup).
Accessibilité
Paramètres de sous-titrage pour l'ensemble du système
Android 4.4 offre désormais une meilleure expérience d'accessibilité dans toutes les applications en ajoutant des préférences à l'échelle du système pour les sous-titres. Les utilisateurs peuvent accéder à Paramètres > Accessibilité > Sous-titres pour définir les préférences globales de sous-titrage, par exemple pour indiquer si les sous-titres doivent s'afficher ou non, et choisir la langue, la taille du texte et le style de texte à utiliser.
Les applications qui utilisent des vidéos peuvent désormais accéder aux paramètres de sous-titrage de l'utilisateur et ajuster la présentation en fonction des préférences de l'utilisateur. Une nouvelle API de gestionnaire de sous-titres vous permet de vérifier et de surveiller les préférences de sous-titrage de l'utilisateur. Le gestionnaire de sous-titres indique l'état de sous-titrage préféré de l'utilisateur, ainsi que ses paramètres régionaux préférés, le facteur de mise à l'échelle et le style de texte. Le style de texte comprend les couleurs de premier plan et d'arrière-plan, les propriétés de contour et la police de caractères.
![Mobile en mode paysage affichant les sous-titres dans les préférences de sous-titres du système](https://developer.android.google.cn/static/images/kk-captions-n5.jpg?authuser=6&hl=fr)
Les applications peuvent désormais se référer aux préférences de sous-titres définies pour l'ensemble du système de l'utilisateur. Un exemple du style d'affichage attendu est affiché directement dans les paramètres.
De plus, les applications qui utilisent VideoView peuvent utiliser une nouvelle API pour transmettre un flux de sous-titres avec un flux vidéo pour le rendu. Le système gère automatiquement l'affichage des sous-titres sur les images vidéo en fonction des paramètres système de l'utilisateur. Actuellement, VideoView n'accepte l'affichage automatique des sous-titres qu'au format WebVTT.
Toutes les applications qui affichent des sous-titres doivent vérifier les préférences de sous-titrage du système de l'utilisateur et rendre les sous-titres le plus fidèlement possible à ces préférences. Pour en savoir plus sur l'apparence de combinaisons de paramètres spécifiques, vous pouvez prévisualiser des sous-titres dans différentes langues, tailles et styles directement dans l'application Paramètres.
API d'accessibilité améliorée
Android 4.4 étend les API d'accessibilité pour permettre une description structurelle et sémantique plus précise et l'observation des éléments à l'écran. Avec les nouvelles API, les développeurs peuvent améliorer la qualité des commentaires accessibles en fournissant aux services d'accessibilité plus d'informations sur les éléments à l'écran.
Dans les nœuds d'accessibilité, les développeurs peuvent désormais déterminer si un nœud est un pop-up, obtenir son type d'entrée, etc. Vous pouvez également utiliser de nouvelles API pour travailler avec des nœuds contenant des informations sous forme de grille, telles que des listes et des tables. Par exemple, vous pouvez désormais spécifier de nouvelles actions compatibles, des informations sur les collections, des modes de région en temps réel, etc.
Les nouveaux événements d'accessibilité permettent aux développeurs de suivre de plus près les modifications apportées au contenu des fenêtres. Ils peuvent désormais écouter les modifications apportées au mode d'exploration tactile de l'appareil.
Compatibilité avec les utilisateurs internationaux
Mise en miroir de drawables pour les paramètres régionaux qui se lisent de droite à gauche
Si votre application cible les utilisateurs qui se servent de scripts de droite à gauche, vous pouvez utiliser une nouvelle API pour déclarer qu'un drawable doit être mis en miroir automatiquement lorsque les paramètres régionaux de l'utilisateur incluent ce type de langue.
Déclarer un drawable comme mis en miroir automatique vous permet d'éviter la duplication des éléments dans votre application et réduit la taille de votre APK. Lorsque vous disposez de drawables réutilisables pour les présentations de gauche à droite et de droite à gauche, vous pouvez déclarer les versions par défaut comme étant mises en miroir automatiquement, puis les omettre de vos ressources d'orientation de droite à gauche.
![](https://developer.android.google.cn/static/images/kk-pseudolocale-rtl.png?authuser=6&hl=fr)
L'option Forcer la mise en page de droite à gauche vous permet de tester plus facilement la localisation de votre application.
Vous pouvez déclarer différents types de drawables comme mis en miroir automatiquement dans le code de votre application, tels que les bitmaps, les fichiers Nine-Patch, les couches, les listes d'états et d'autres drawables. Vous pouvez également déclarer un drawable comme mis en miroir automatiquement dans vos fichiers de ressources à l'aide d'un nouvel attribut.
Forcer l'orientation de droite à gauche
Pour tester et déboguer plus facilement les problèmes de mise en miroir de mise en page sans passer à un langage de droite à gauche, Android inclut une nouvelle option pour les développeurs qui force l'orientation de la mise en page de droite à gauche dans toutes les applications.
L'option "Forcer l'orientation de droite à gauche" permet de basculer l'appareil vers le mode d'affichage de droite à gauche pour toutes les langues et affiche le texte dans votre langue actuelle. Cela peut vous aider à détecter les problèmes de mise en page dans votre application sans avoir à l'afficher dans une langue se lisant de droite à gauche. Vous pouvez accéder à cette option dans Settings > Developer options > Force RTL layout direction (Paramètres > Options pour les développeurs > Forcer la mise en page de droite à gauche).
Renforcement de la sécurité
SELinux (mode d'application)
Android 4.4 met à jour sa configuration SELinux de "permissive" à "enforcing". Cela signifie que les éventuels cas de non-respect des règles dans un domaine SELinux auquel une règle en vigueur est appliquée seront bloqués.
Amélioration des algorithmes cryptographiques
Android a encore amélioré sa sécurité en prenant en charge deux autres algorithmes cryptographiques. Le fournisseur de keystores est désormais compatible avec l'algorithme de signature numérique à courbe elliptique (ECDSA, Elliptic Curve Digital Signature Algorithm) pour améliorer la sécurité de la signature numérique, ce qui s'applique à des scénarios tels que la signature d'une application ou d'une connexion de données. La fonction de dérivation de la clé de chiffrement permet de protéger les clés cryptographiques utilisées pour le chiffrement complet du disque.
Autres améliorations
Sur les appareils multi-utilisateurs, les VPN sont désormais appliqués par utilisateur. Cela peut permettre à un utilisateur d'acheminer tout le trafic réseau via un VPN sans affecter les autres utilisateurs de l'appareil. De plus, Android est désormais compatible avec le niveau 2 de FORTIFY_SOURCE, et l'ensemble du code est compilé avec ces protections. FORTIFY_SOURCE a été amélioré pour fonctionner avec clang.
Outils d'analyse de l'utilisation de la mémoire
Procstats
Un nouvel outil appelé procstats vous aide à analyser les ressources de mémoire utilisées par votre application, ainsi que celles utilisées par les autres applications et services exécutés sur le système.
Procstats suit l'exécution des applications au fil du temps et fournit des données sur leur durée d'exécution et leur utilisation de la mémoire pour vous aider à déterminer leur efficacité. C'est particulièrement important pour les applications qui lancent des services qui s'exécutent en arrière-plan, car cela vous permet de surveiller leur durée d'exécution et la quantité de RAM qu'elles utilisent. Procstats collecte également des données sur l'utilisation de la mémoire au fil du temps pour les applications de premier plan afin de déterminer le profil de mémoire global de l'application.
Procstats peut vous aider à identifier les services d'arrière-plan démarrés par votre application. Vous pouvez suivre la durée d'exécution de ces services et la quantité de RAM qu'ils utilisent pendant cette opération. Procstats vous permet également de profiler votre application lorsqu'elle est au premier plan, en utilisant l'utilisation de la mémoire au fil du temps pour déterminer son profil de mémoire global.
![](https://developer.android.google.cn/static/images/kk-procstats.png?authuser=6&hl=fr)
Le nouvel outil procstats vous permet de vérifier l'utilisation de la mémoire des applications et services au fil du temps.
![](https://developer.android.google.cn/static/images/kk-meminfo.png?authuser=6&hl=fr)
L'outil amélioré meminfo vous permet d'afficher les détails de l'utilisation de la mémoire pour une application.
Vous pouvez accéder aux procstats à partir de l'outil adb inclus dans le SDK Android, adb shell dumpsys procstats. En outre, pour le profilage sur l'appareil, consultez l'option pour les développeurs "Process Stats" ci-dessous.
État et profilage de la mémoire sur l'appareil
Android 4.4 inclut une nouvelle option pour les développeurs qui facilite l'analyse du profil de mémoire de votre application lorsqu'elle s'exécute sur n'importe quel appareil ou émulateur. Il est particulièrement utile d'obtenir une vue de l'utilisation de la mémoire par votre application et de ses performances sur les appareils disposant de peu de RAM. Vous pouvez accéder à cette option sous Settings > Developer options > Process stats (Paramètres > Options pour les développeurs > Statistiques de processus).
![Google Mobile présente la nouvelle option "Process Stats" (Statistiques de traitement)](https://developer.android.google.cn/static/images/kk-proc-device-overview-n5.jpg?authuser=6&hl=fr)
![Présentation des informations sur l'utilisation sur mobile dans la nouvelle option "Process Stats" (Statistiques de processus)](https://developer.android.google.cn/static/images/kk-proc-device-detail-n5.jpg?authuser=6&hl=fr)
Traiter les statistiques est un moyen pratique de vérifier l'utilisation de la mémoire de votre application. Vous pouvez comparer votre application à d'autres et faire un zoom avant sur des données spécifiques la concernant ou ses services d'arrière-plan.
L'option Process Stats (Statistiques de traitement) affiche diverses métriques de haut niveau sur l'utilisation de la mémoire de votre application, en fonction des données collectées à l'aide du nouveau service procstats. L'écran principal affiche un résumé de l'état de la mémoire système. Le vert indique le temps relatif passé avec une faible utilisation de RAM, le jaune indique une utilisation modérée de la RAM et le rouge indique une utilisation élevée (critique) de la RAM
Sous le résumé, vous trouverez une liste résumant la charge de mémoire de chaque application sur le système. Pour chaque application, une barre bleue indique la charge de mémoire calculée relative (environnement d'exécution x avg_pss) de son processus, et un nombre de pourcentage indique la durée relative passée en arrière-plan. Vous pouvez filtrer la liste pour n'afficher que les processus au premier plan, en arrière-plan ou mis en cache. Vous pouvez également inclure ou exclure des processus système. Vous pouvez également définir la durée des données collectées sur 3, 6, 12 ou 24 heures, et inclure ou exclure la mémoire utilisée par Google.
Pour examiner de plus près l'utilisation de la mémoire d'une application spécifique, appuyez sur celle-ci. Pour chaque application, vous pouvez désormais voir un résumé de la mémoire consommée et le pourcentage de l'intervalle de collecte pendant lequel l'application a été exécutée. Vous pouvez également consulter l'utilisation moyenne et maximale au cours de la période de collecte, sous les services de l'application ainsi que le pourcentage de temps d'exécution.
L'analyse de votre application à l'aide des données de "Process Stats" peut révéler des problèmes et suggérer des optimisations possibles pour votre application. Par exemple, si votre application s'exécute plus longtemps qu'elle ne le devrait ou utilise trop de mémoire sur une période donnée, vous pouvez corriger des bugs dans votre code pour améliorer les performances de votre application, en particulier lorsqu'elle s'exécute sur un appareil à faible RAM.