Android 10 pour les développeurs

Android 10 est basé sur trois thèmes importants. Tout d'abord, Android 10 est à la pointe de l'innovation mobile grâce à un machine learning avancé et à la prise en charge des appareils émergents tels que les appareils pliables et les téléphones compatibles avec la 5G. Ensuite, Android 10 est axé sur la confidentialité et la sécurité, avec près de 50 fonctionnalités qui offrent aux utilisateurs une meilleure protection, une plus grande transparence et un contrôle accru. Enfin, Android 10 étend les commandes de bien-être numérique des utilisateurs afin que les personnes et les familles puissent trouver un meilleur équilibre avec la technologie.

Découvrez les nouveautés d'Android 10 pour les développeurs et comment vous pouvez les utiliser dès aujourd'hui.

Innovation et nouvelles expériences

Avec Android 10, vous pouvez tirer parti des dernières innovations matérielles et logicielles pour créer des expériences d'application exceptionnelles pour les utilisateurs.

Avec Android 10, vous pouvez optimiser vos applications pour les appareils pliables et autres appareils à grand écran.

Appareils pliables

S'appuyant sur une prise en charge robuste du mode multifenêtre, Android 10 étend le multitâche sur les fenêtres d'application et assure la continuité de l'écran pour maintenir l'état de votre application lorsque l'appareil est plié ou déplié. Android 10 apporte un certain nombre d'améliorations à onResume et onPause pour prendre en charge le mode multireprise et informer votre application lorsqu'elle est au premier plan. Il modifie également le fonctionnement de l'attribut de fichier manifeste resizeableActivity pour vous aider à gérer l'affichage de votre application sur les appareils pliables et les grands écrans. Pour vous aider à développer des applications pour les appareils pliables, vous pouvez configurer un émulateur pliable en tant qu'appareil virtuel (AVD) dans Android Studio. Pour en savoir plus sur l'optimisation de vos applications pour les appareils pliables, consultez le guide du développeur.

Réseaux 5G

La 5G promet d'offrir des débits plus rapides et une latence plus faible. Android 10 ajoute la prise en charge de la 5G et étend les API existantes pour vous aider à tirer parti de ces améliorations. Vous pouvez utiliser des API de connectivité pour détecter si l'appareil dispose d'une connexion à bande passante élevée et vérifier si la connexion est mesurée. Grâce à ces API, vos applications et vos jeux peuvent offrir aux utilisateurs des expériences riches et immersives sur la 5G.

Réponse suggérée dans les notifications

Android 10 utilise le ML sur l'appareil pour suggérer des actions contextuelles dans les notifications, telles que des réponses suggérées pour les messages ou l'ouverture d'une carte pour une adresse dans la notification. Vos applications peuvent profiter de cette fonctionnalité immédiatement, sans que vous ayez à faire quoi que ce soit. Les réponses et actions suggérées fournies par le système sont insérées directement dans les notifications par défaut. Vous pouvez toujours fournir vos propres réponses et actions si vous le souhaitez. Il vous suffit de désactiver la réponse suggérée pour chaque notification à l'aide de setAllowGeneratedReplies() et setAllowSystemGeneratedContextualActions().

La réponse suggérée peut suggérer des actions en fonction du contenu de la notification.

Thème sombre

Android 10 ajoute un thème sombre à l'échelle du système, idéal pour les conditions de faible luminosité et qui permet d'économiser la batterie. Les utilisateurs peuvent activer un nouveau thème sombre à l'échelle du système en accédant aux paramètres ou en activant l'économiseur de batterie. Cela modifie l'interface utilisateur du système en sombre et active le thème sombre des applications compatibles. Vous pouvez créer un thème sombre personnalisé pour votre application ou activer une nouvelle fonctionnalité "Forcer le mode sombre" qui permet au système de créer dynamiquement une version sombre à partir de votre thème existant. Vous pouvez également tirer parti de la fonctionnalité DayNight d'AppCompat pour proposer un thème sombre aux utilisateurs des versions antérieures d'Android. Pour en savoir plus, consultez le guide du développeur.

Android 10 peut créer un thème sombre pour votre application de manière dynamique avec "Forcer le mode sombre".

Navigation par gestes

La navigation par gestes offre aux applications le plein écran pour le contenu.

Android 10 introduit un mode de navigation entièrement gestuel qui élimine la zone de la barre de navigation et permet aux applications d'utiliser le plein écran pour offrir des expériences plus riches et plus immersives. Il conserve la navigation familière "Retour", "Accueil" et "Applications récentes" via des balayages sur les bords plutôt que des boutons visibles. Pour s'intégrer parfaitement à la navigation par gestes, votre doit aller d'un bord à l'autre, en passant derrière la barre de navigation pour créer une expérience immersive. Pour ce faire, les applications doivent utiliser l' API setSystemUiVisibility() pour être disposées en plein écran, puis gérer WindowInsets de manière appropriée afin de s'assurer que les éléments importants de l'interface utilisateur ne sont pas masqués. Commencez dès aujourd'hui à optimiser votre application et consultez notre série d'articles de blog pour en savoir plus.

Panneaux des paramètres

Vous pouvez désormais afficher les principaux paramètres système directement dans le contexte de votre application, via une nouvelle API de panneau des paramètres. Un panneau des paramètres est une interface utilisateur flottante que vous appelez pour afficher les paramètres dont les utilisateurs peuvent avoir besoin, tels que la connectivité Internet, le NFC et le volume audio. Par exemple, un navigateur peut afficher un panneau avec des paramètres de connectivité tels que le mode Avion, le Wi-Fi (y compris les réseaux à proximité) et les données mobiles. Pour afficher un panneau des paramètres, il vous suffit de déclencher un intent avec l'une des nouvelles actions Settings.Panel.

Raccourcis de partage

Les raccourcis de partage rendent le partage plus rapide et plus facile, permettant aux utilisateurs d'accéder directement à une autre application pour partager du contenu. Les développeurs peuvent publier des cibles de partage qui lancent une activité spécifique dans leurs applications avec du contenu joint, et celles-ci sont affichées aux utilisateurs dans l'interface utilisateur de partage. Comme elles sont publiées à l'avance, l'interface utilisateur de partage se charge instantanément au lancement. Les raccourcis de partage sont semblables aux raccourcis d'application et utilisent la même API ShortcutInfo. L'API est également compatible avec la bibliothèque ShareTarget AndroidX. Pour en savoir plus, consultez l'exemple d'application sample app.

Les raccourcis de partage permettent aux utilisateurs d'accéder directement à une activité spécifique de vos applications avec du contenu joint.

Confidentialité pour les utilisateurs

La confidentialité est un élément central d'Android 10, depuis les protections renforcées de la plate-forme jusqu'aux nouvelles fonctionnalités conçues dans un souci de confidentialité. S'appuyant sur les versions précédentes, Android 10 inclut des modifications importantes pour protéger la confidentialité et donner aux utilisateurs plus de contrôle, avec une interface utilisateur système améliorée, des autorisations plus strictes et des restrictions sur les données que les applications peuvent utiliser. Pour en savoir plus sur la prise en charge de ces modifications dans vos applications, consultez la section Modifications apportées à la confidentialité.

Les utilisateurs peuvent désormais choisir d'accorder l'accès à la position lorsque l'application est au premier plan.

Donner aux utilisateurs plus de contrôle sur les données de localisation : les utilisateurs ont plus de contrôle sur leurs données de localisation grâce à une nouvelle option d'autorisation. Ils peuvent désormais autoriser une application à accéder à la position uniquement lorsqu'elle est en cours d'utilisation (au premier plan). Pour la plupart des applications, cela offre un niveau d'accès suffisant, tandis que pour les utilisateurs, il s'agit d'une amélioration considérable en termes de transparence et de contrôle. Pour en savoir plus sur les modifications apportées à la localisation, consultez le guide du développeur ou notre article de blog.

Protection des données de localisation dans les analyses de réseau : la plupart des API d'analyse de réseau nécessitaient déjà l'autorisation d'accéder à la position approximative. Android 10 renforce la protection de ces API en exigeant l'autorisation d'accéder à la position précise au lieu de cela.

Empêcher le suivi des appareils : les applications ne peuvent plus accéder aux identifiants d'appareil non réinitialisables qui pourraient être utilisés pour le suivi, y compris l'IMEI de l'appareil, le numéro de série et les identifiants similaires. L'adresse MAC de l'appareil est également aléatoire lorsqu'il est connecté à des réseaux Wi-Fi par défaut. Consultez les bonnes pratiques pour vous aider à choisir les identifiants adaptés à votre cas d'utilisation et consultez les détails ici.

Sécurisation des données utilisateur dans le stockage externe : Android 10 introduit un certain nombre de modifications pour donner aux utilisateurs plus de contrôle sur les fichiers du stockage externe et les données d'application qu'ils contiennent. Les applications peuvent stocker leurs propres fichiers dans leurs propres bacs à sable privés, mais doivent utiliser MediaStore pour accéder aux fichiers multimédias partagés et utiliser le sélecteur de fichier système pour accéder aux fichiers partagés dans la nouvelle collection Téléchargements. En savoir plus ici.

Blocage des interruptions indésirables : Android 10 empêche le lancement d'applications en arrière-plan qui passent de manière inattendue au premier plan et prennent le contrôle d'une autre application. En savoir plus ici.

Sécurité

Android 10 introduit un nombre de fonctionnalités qui renforcent la sécurité des utilisateurs grâce aux avancées en matière de chiffrement, renforcement de la plate-forme et d'authentification. Pour en savoir plus sur les mises à jour de sécurité de Android 10 , cliquez ici.

Chiffrement du stockage : tous les appareils compatibles lancés avec Android 10 doivent chiffrer les données utilisateur. Pour rendre cette opération plus efficace, Android 10 inclut Adiantum, notre nouveau mode de chiffrement.

TLS 1.3 par défaut : Android 10 active également TLS 1.3 par défaut, une révision majeure de la norme TLS qui offre des avantages en termes de performances et de sécurité renforcée.

Renforcement de la plate-forme : Android 10 inclut également un renforcement pour plusieurs domaines de la plate-forme essentiels à la sécurité.

Biométrie améliorée : Android 10 étend le framework BiometricPrompt pour prendre en charge les méthodes d'authentification passives telles que la reconnaissance faciale, et ajoute des flux d'authentification implicites et explicites. Dans le flux explicite, l'utilisateur doit confirmer explicitement la transaction dans le TEE lors de l'authentification. Le flux implicite est conçu comme une alternative plus légère pour les transactions avec authentification passive. Android 10 améliore également le remplacement des identifiants d'appareil lorsque cela est nécessaire. En savoir plus ici.

Appareil photo et médias

Profondeur de champ dynamique pour les photos

Les applications peuvent désormais demander une image à profondeur de champ dynamique, qui se compose d'un JPEG, de métadonnées XMP liées aux éléments de profondeur et d'une carte de profondeur et de confiance intégrée dans le même fichier. Cela vous permet de proposer des options de flou et de bokeh spécialisées dans votre application. La profondeur de champ dynamique est un format ouvert pour l'écosystème. Nous collaborons avec nos partenaires pour l'intégrer aux appareils équipés d'Android 10 et versions ultérieures.

Avec l'image à profondeur de champ dynamique, vous pouvez proposer des options de flou et de bokeh spécialisées dans votre application.

Capture de la lecture audio

Désormais, toute application qui lit de l'audio peut autoriser d'autres applications à capturer son flux audio à l'aide de une nouvelle API de capture de la lecture audio. En plus d'activer le sous-titrage codé et les sous-titres, l'API vous permet de prendre en charge des cas d'utilisation courants tels que les jeux en streaming en direct. Nous avons conçu cette nouvelle fonctionnalité en tenant compte de la confidentialité et de la protection des droits d'auteur. Par conséquent, la possibilité pour une application de capturer l'audio d'une autre application est limitée, ce qui permet aux applications de contrôler entièrement si leurs flux audio peuvent être capturés. Pour en savoir plus, consultez cet article de blog.

Nouveaux codecs audio et vidéo

Android 10 ajoute la prise en charge du codec vidéo Open Source AV1, qui permet aux fournisseurs de contenus multimédias de diffuser des contenus vidéo de haute qualité sur les appareils Android en utilisant moins de bande passante. De plus, Android 10 prend en charge l'encodage audio à l'aide d' Opus, un codec Open Source libre de droits optimisé pour la diffusion de la parole et de la musique, ainsi que HDR10+ pour les vidéos à plage dynamique élevée sur les appareils compatibles. L'API MediaCodecInfo offre un moyen plus simple de déterminer les capacités de rendu vidéo d'un appareil Android. Pour n'importe quel codec, vous pouvez obtenir la liste des tailles et des fréquences d'images compatibles.

API MIDI native

Pour les applications qui effectuent leur traitement audio en C++, Android 10 introduit une API MIDI native pour communiquer avec les appareils MIDI via le NDK. Cette API permet de récupérer des données MIDI dans un rappel audio à l'aide d'une lecture non bloquante, ce qui permet un traitement à faible latence des messages MIDI. Essayez-la avec l'application exemple et le code source ici.

Micros directionnels et zoomables

Android 10 vous offre plus de contrôle sur la capture audio grâce à une nouvelle API MicrophoneDirection. Vous pouvez utiliser l'API pour spécifier une direction préférée du micro lors de l'enregistrement audio. Par exemple, lorsque l'utilisateur enregistre une vidéo "selfie", vous pouvez demander le micro avant pour l'enregistrement audio (s'il existe). De plus, cette API introduit un moyen standardisé de contrôler les micros zoomables, ce qui permet à votre application de contrôler la dimension du champ d'enregistrement.

Vulkan sur toutes les plates-formes

Android 10 étend l'impact de Vulkan avec notre implémentation de l' API multiplate-forme simple permettant la création de graphiques 3D hautes performances. Vulkan 1.1 est désormais obligatoire sur tous les appareils 64 bits équipés d'Android 10 et versions ultérieures, et recommandé pour tous les appareils 32 bits. Nous constatons déjà une dynamique importante en matière de prise en charge de Vulkan dans l'écosystème : parmi les appareils équipés d'Android N ou version ultérieure, 53 % sont compatibles avec Vulkan 1.0.3 ou version ultérieure. Avec la nouvelle exigence d'Android 10, nous nous attendons à ce que l'adoption s'améliore encore au cours de l'année à venir.

Connectivité

Connectivité Internet et peer-to-peer améliorée

Nous avons refactorisé la pile Wi-Fi pour améliorer la confidentialité et les performances, ainsi que pour améliorer les cas d'utilisation courants tels que la gestion des appareils IoT et la suggestion de connexions Internet, sans nécessiter l'autorisation d'accéder à la position. Les API de connexion réseau facilitent la gestion des appareils IoT via le Wi-Fi local, pour les fonctions peer-to-peer telles que la configuration, le téléchargement ou l'impression. Les API de suggestion de réseau permettent aux applications de proposer aux utilisateurs des réseaux Wi-Fi préférés pour la connectivité Internet.

Modes de performances Wi-Fi

Les applications peuvent désormais demander le Wi-Fi adaptatif en activant les modes hautes performances et faible latence. Ces modes peuvent être très utiles lorsque la faible latence est importante pour l'expérience utilisateur, comme dans les jeux en temps réel, les appels vocaux actifs et les cas d'utilisation similaires. La plate-forme fonctionne avec le micrologiciel de l'appareil pour répondre aux exigences avec la plus faible consommation d'énergie. Pour utiliser les nouveaux modes de performances, appelez WifiManager.WifiLock.createWifiLock() avec WIFI_MODE_FULL_LOW_LATENCY ou WIFI_MODE_FULL_HIGH_PERF. Dans ces modes, la plate-forme fonctionne avec le micrologiciel de l'appareil pour répondre aux exigences avec la plus faible consommation d'énergie.

Bases d'Android

Optimisations ART

Les améliorations apportées à l'environnement d'exécution ART permettent à vos applications de démarrer plus rapidement, de consommer moins de mémoire et de s'exécuter de manière plus fluide, sans que vous ayez à faire quoi que ce soit. Les profils ART fournis par Google Play permettent à ART de précompiler des parties de votre application avant même son exécution. Lors de l'exécution, Android 10 ajoute la récupération de mémoire générationnelle au récupérateur de mémoire de copie simultanée (CC) d'ART pour rendre la récupération de mémoire plus efficace en termes de temps et de processeur, réduire les saccades et aider les applications à mieux fonctionner sur les appareils d'entrée de gamme.

Ce graphique montre le pourcentage d'amélioration du temps de démarrage pour des applications spécifiques lorsqu'elles sont testées à l'aide de profils Play.

API Neural Networks 1.2

Nous avons ajouté 60 nouvelles opérations, dont ARGMAX, ARGMIN et LSTM quantifié, ainsi qu'un certain nombre d'optimisations des performances. Cela permet d'accélérer un plus grand nombre de modèles, tels que ceux pour la détection d'objets et la segmentation d'images. Nous collaborons avec des fournisseurs de matériel et des frameworks de machine learning populaires tels que TensorFlow pour optimiser et déployer la prise en charge de NNAPI 1.2.

API Thermal

Lorsque les appareils sont trop chauds, ils peuvent ralentir le processeur et/ou le GPU, ce qui peut affecter les applications et les jeux de manière inattendue. Désormais, dans Android 10, les applications et les jeux peuvent utiliser une API thermique pour surveiller les modifications sur l'appareil et prendre des mesures pour rétablir la température normale. Par exemple, les applications de streaming peuvent réduire la résolution/le débit binaire ou le trafic réseau, une application d'appareil photo peut désactiver le flash ou l'amélioration intensive des images, ou un jeu peut réduire la fréquence d'images ou la tessellation des polygones. En savoir plus ici.

Compatibilité via des API publiques

Android 10 continue d'étendre les restrictions sur les interfaces non SDK, afin que les applications n'utilisent plus que des API publiques. Si une interface que vous utilisez actuellement est limitée, vous pouvez demander une nouvelle API publique pour cette interface à la place. Pour vous aider à effectuer la transition et à éviter que vos applications ne cessent de fonctionner, nous n'activons les restrictions que lorsque votre application cible Android 10 (API 29). Pour en savoir plus sur les restrictions, consultez le guide du développeur.

Mises à jour plus rapides, code plus récent

Android 10 est conçu pour des mises à jour plus rapides grâce au projet Treble, qui fournit une interface cohérente et testable entre Android et le code d'appareil sous-jacent des fabricants d'appareils et de silicium. Grâce à Treble, les fabricants d'appareils peuvent intégrer Android 10 aux appareils compatibles avec Treble plus rapidement et à moindre coût.

Android 10 est également la première version à prendre en charge le projet Mainline (officiellement appelé mises à jour du système Google Play), notre nouvelle technologie permettant de sécuriser les utilisateurs Android et de maintenir leurs appareils à jour avec d'importantes modifications de code, directement depuis Google Play. Grâce aux mises à jour du système Google Play, nous pouvons mettre à jour des composants internes spécifiques sur tous les appareils équipés d'Android 10 et versions ultérieures, sans nécessiter de mise à jour complète du système par le fabricant de l'appareil.

Pour les développeurs, nous nous attendons à ce que ces mises à jour d'Android 10 contribuent à assurer la cohérence de l'implémentation de la plate-forme sur tous les appareils et, à terme, à une plus grande uniformité qui réduira vos coûts de développement et de test.

Premiers pas

Pour obtenir des ressources complètes pour les développeurs pour Android 10, consultez la page developer.android.com/10.