Android 10 pour les développeurs

Android 10 s'articule autour de trois thématiques importantes. Tout d'abord, Android 10 façonne les innovations mobiles grâce à un machine learning avancé et à la compatibilité avec les appareils émergents tels que les pliables et les téléphones compatibles 5G. Ensuite, Android 10 se concentre sur la confidentialité et la sécurité, avec près de 50 fonctionnalités offrant aux utilisateurs plus de protection, de transparence et de contrôle. Enfin, Android 10 étend les paramètres de bien-être numérique des utilisateurs pour permettre aux utilisateurs et aux familles de trouver un meilleur équilibre avec la technologie.

Voici un aperçu des fonctionnalités d'Android 10 pour les développeurs et de son utilisation actuelle.

Innovation et nouvelles expériences

Avec Android 10, vous pouvez bénéficier des dernières innovations matérielles et logicielles afin de 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 compatibilité robuste avec le mode multifenêtre, Android 10 étend le multitâche sur toutes les fenêtres d'application et assure la continuité de l'écran pour maintenir l'état de votre application lorsque l'appareil se plie ou se déplie. Android 10 ajoute un certain nombre d'améliorations dans onResume et onPause pour permettre la multireprise et envoyer une notification à votre application lorsqu'elle est active. Il modifie également le fonctionnement de l'attribut du fichier manifeste resizeableActivity pour vous aider à gérer l'affichage de votre application sur les écrans pliables et les grands écrans. Pour vous aider à créer des applications pour les appareils pliables, vous pouvez configurer un émulateur d'appareil pliable en tant qu'appareil virtuel (AVD) dans Android Studio. Pour savoir comment optimiser vos applications pour les appareils pliables, consultez le guide du développeur.

Réseaux 5G

La 5G promet d'offrir des vitesses toujours plus rapides et une latence plus faible. Android 10 est compatible avec la plate-forme 5G et étend les API existantes pour vous aider à profiter de ces améliorations. Vous pouvez utiliser les API de connectivité pour détecter si l'appareil dispose d'une connexion à bande passante élevée et vérifier si la connexion est facturée à l'usage. Ainsi, vos applications et vos jeux peuvent proposer une expérience riche et immersive aux utilisateurs via 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. Par défaut, les réponses suggérées et les actions fournies par le système sont insérées directement dans les notifications. Vous pouvez toujours fournir vos propres réponses et actions si vous le souhaitez. Il vous suffit de désactiver les réponses suggérées au cas par cas à l'aide de setAllowGeneratedReplies() et de setAllowSystemGeneratedContextualActions().

La fonctionnalité Réponse suggérée peut suggérer des actions en fonction du contenu des notifications.

Thème sombre

Android 10 ajoute un thème sombre à l'échelle du système, idéal en cas de faible luminosité et permettant 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 fait passer l'interface utilisateur du système en mode 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 profiter de la fonctionnalité DayNight d'AppCompat afin de proposer un thème sombre aux utilisateurs de 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 permet aux applications d'afficher le contenu en plein écran.

Android 10 introduit un mode de navigation entièrement par gestes qui élimine la zone de la barre de navigation et permet aux applications d'utiliser le plein écran pour proposer des expériences plus riches et plus immersives. Elle conserve la navigation habituelle "Retour", "Accueil" et "Récents" via les balayages depuis le bord plutôt qu'avec les boutons visibles. Pour se fondre parfaitement dans la navigation par gestes, vous devez passer d'un bord à l'autre en dessinant derrière la barre de navigation afin de créer une expérience immersive. Pour ce faire, les applications doivent utiliser l'API setSystemUiVisibility() pour s'afficher en plein écran, puis gérer les WindowInsets de manière appropriée pour garantir que les éléments importants de l'interface utilisateur ne sont pas dissimulés. Commencez dès maintenant à optimiser votre application et consultez notre série d'articles de blog pour en savoir plus.

Panneaux de paramètres

Vous pouvez désormais afficher les principaux paramètres système directement dans le contexte de votre application, via une nouvelle API du panneau des paramètres. Un panneau de 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, la technologie 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 de paramètres, il vous suffit de déclencher un intent avec l'une des nouvelles actions Settings.Panel.

Raccourcis de partage

Les raccourcis permettent aux utilisateurs d'accéder directement à une autre application pour partager du contenu plus rapidement et plus facilement. Les développeurs peuvent publier des cibles de partage qui lancent une activité spécifique dans leurs applications avec du contenu associé. Celles-ci sont visibles par les utilisateurs dans l'interface utilisateur de partage. Comme ils sont publiés à l'avance, l'UI de partage se charge instantanément lorsqu'elle est lancée. Le partage de raccourcis est semblable aux raccourcis d'application et utilise la même API ShortcutInfo. L'API est également compatible avec la bibliothèque AndroidX ShareTarget. Pour en savoir plus, consultez l'application exemple.

Les raccourcis de partage permettent aux utilisateurs d'accéder directement à une activité spécifique dans vos applications en y associant du contenu.

Confidentialité des utilisateurs

La confidentialité est au cœur d'Android 10, qu'il s'agisse de protections renforcées sur la plate-forme ou de nouvelles fonctionnalités conçues dans cette optique. Sur la base des versions précédentes, Android 10 inclut des modifications importantes pour protéger la confidentialité et donner plus de contrôle aux utilisateurs, 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. Consultez les modifications apportées à la confidentialité pour savoir comment les prendre en charge dans vos applications.

Les utilisateurs peuvent désormais choisir d'accorder l'accès aux données de localisation lorsque l'application est exécutée 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 lorsque l'application est en cours d'utilisation (s'exécutant au premier plan). Pour la plupart des applications, cela offre un niveau d'accès suffisant, tandis que pour les utilisateurs, cela représente une nette amélioration en termes de transparence et de contrôle. Pour en savoir plus sur les modifications de l'emplacement, consultez le guide du développeur ou notre article de blog.

Protéger les données de localisation lors des analyses de réseau : la plupart des API pour l'analyse des réseaux nécessitaient déjà l'autorisation de localisation approximative. Android 10 renforce la protection autour de ces API en exigeant plutôt l'autorisation d'accéder à la position précise.

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 le code IMEI de l'appareil, le numéro de série et d'autres identifiants similaires. Par défaut, l'adresse MAC de l'appareil est également aléatoire lorsqu'il est connecté à des réseaux Wi-Fi. Consultez les bonnes pratiques pour choisir les identifiants adaptés à votre cas d'utilisation, et pour en savoir plus, cliquez ici.

Sécuriser les données utilisateur dans un espace de stockage externe : Android 10 introduit un certain nombre de modifications pour donner aux utilisateurs plus de contrôle sur les fichiers de l'espace de stockage externe et les données d'application qu'ils contiennent. Les applications peuvent stocker leurs propres fichiers dans leur bac à sable privé, mais elles 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

Blocage des interruptions indésirables : Android 10 empêche les lancements d'applications en arrière-plan qui passent inopinément au premier plan et qui prennent le dessus sur une autre application. En savoir plus

Sécurité

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

Chiffrement du stockage : tous les appareils compatibles lancés avec Android 10 doivent chiffrer les données utilisateur. Pour plus d'efficacité, 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 une sécurité renforcée.

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

Biométrie améliorée : Android 10 étend le framework BiometricPrompt pour prendre en charge des méthodes d'authentification passives telles que le visage, et ajouter 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 pour offrir une alternative plus légère pour les transactions avec authentification passive. Android 10 améliore également le remplacement des identifiants de l'appareil si nécessaire. En savoir plus

Appareil photo et contenu multimédia

Profondeur de photo dynamique

Les applications peuvent désormais demander une image de profondeur dynamique, qui se compose d'un fichier JPEG, de métadonnées XMP liées aux éléments liés à la profondeur, et d'une carte de profondeur et de confiance intégrée dans le même fichier. Ils vous permettent de proposer des options de floutage et de bokeh spécialisées dans votre application. La profondeur dynamique est un format ouvert pour l'écosystème. Nous travaillons avec nos partenaires pour le proposer sur les appareils équipés d'Android 10 ou version ultérieure.

Grâce aux images de profondeur dynamique, vous pouvez proposer des options de floutage et de bokeh spécialisées dans votre application.

Capture de la lecture audio

Désormais, toute application qui lit du contenu audio peut permettre à d'autres applications de capturer son flux audio à l'aide d'une nouvelle API de capture de lecture audio. En plus d'activer les sous-titres, l'API vous permet de prendre en charge des cas d'utilisation courants tels que les jeux de streaming en direct. Nous avons conçu cette nouvelle fonctionnalité dans le respect de la confidentialité et de la protection des droits d'auteur. Par conséquent, la capacité d'une application à capturer le contenu audio d'une autre application est limitée, ce qui donne aux applications le contrôle total sur l'enregistrement de leurs flux audio. Pour en savoir plus, consultez cet article de blog.

Nouveaux codecs audio et vidéo

Android 10 est compatible avec le codec vidéo Open Source AV1, qui permet aux fournisseurs de contenus multimédias de diffuser du contenu vidéo de haute qualité sur des appareils Android en consommant moins de bande passante. En outre, Android 10 est compatible avec l'encodage audio à l'aide d'Opus, un codec ouvert et libre de droits, optimisé pour le streaming vocal et musical, et de HDR10+ pour les vidéos HDR 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 chaque codec donné, vous pouvez obtenir la liste des tailles et des fréquences d'images acceptées.

API MIDI native

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

Micros directionnels avec zoom

Android 10 vous permet de mieux contrôler la capture audio grâce à la nouvelle API MicroDirection. Vous pouvez utiliser l'API pour spécifier une direction préférée pour le micro lorsque vous enregistrez un enregistrement audio. Par exemple, lorsque l'utilisateur prend une vidéo de "selfie", vous pouvez demander l'utilisation du micro frontal pour l'enregistrement audio (s'il existe). En outre, cette API introduit une méthode standardisée de contrôle des micros pouvant faire l'objet d'un zoom, ce qui permet à votre application de contrôler la dimension du champ d'enregistrement.

Vulkan partout

Android 10 renforce l'impact de Vulkan avec notre implémentation de l'API multiplate-forme simple et peu coûteuse pour des graphismes 3D hautes performances. Vulkan 1.1 est désormais obligatoire sur tous les appareils 64 bits équipés d'Android 10 ou version ultérieure. Il s'agit également d'une recommandation pour tous les appareils 32 bits. Nous constatons déjà une dynamique importante concernant la 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 prévoyons une amélioration encore plus importante de l'adoption au cours de l'année à venir.

Connectivité

Meilleure connectivité peer-to-peer et Internet

Nous avons refactorisé la pile Wi-Fi pour améliorer la confidentialité et les performances, ainsi que pour améliorer des cas d'utilisation courants tels que la gestion d'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 suggestions de réseau permettent aux applications de présenter les réseaux Wi-Fi préférés à l'utilisateur pour la connectivité Internet.

Modes de performances du Wi-Fi

Les applications peuvent désormais demander un réseau Wi-Fi adaptatif en activant les modes hautes performances et à faible latence. Ces fonctionnalités peuvent s'avérer très utiles lorsque la latence est importante pour l'expérience utilisateur, comme les jeux en temps réel, les appels vocaux actifs et des cas d'utilisation similaires. La plate-forme fonctionne avec le micrologiciel de l'appareil pour répondre aux exigences avec la consommation d'énergie la plus faible. 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 consommation d'énergie la plus faible.

Principes de base 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 plus facilement, sans aucune action de votre part. Les profils ART fournis par Google Play permettent à ART de précompiler des parties de votre application avant même son exécution. Au moment de l'exécution, Android 10 ajoute la récupération de mémoire générée par la génération de mémoire au récupérateur de mémoire en copie simultanée (CC) d'ART. L'objectif est d'améliorer l'efficacité de la récupération de mémoire en termes de temps et de processeur, de réduire les à-coups et d'améliorer l'exécution des applications sur les appareils bas de gamme.

Ce graphique présente le pourcentage d'amélioration du temps de démarrage pour des applications spécifiques 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'une série d'optimisations des performances. Cela posera les bases de l'accélération d'un éventail beaucoup plus large de modèles, tels que ceux de détection d'objets et de segmentation d'image. Nous travaillons avec des fournisseurs de matériel et des frameworks de machine learning populaires tels que TensorFlow pour optimiser et déployer la compatibilité avec NNAPI 1.2.

API Thermal

Lorsque les appareils chauffent, ils peuvent limiter le processeur et/ou le GPU, ce qui peut affecter les applications et les jeux de manière inattendue. Désormais, avec Android 10, les applications et les jeux peuvent utiliser une API thermique pour surveiller les modifications de l'appareil et prendre des mesures pour aider à 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 de l'image, ou un jeu peut réduire la fréquence d'images ou la tessellation des polygones. Pour en savoir plus, cliquez ici.

Compatibilité via des API publiques

Android 10 continue d'étendre les restrictions sur les interfaces non SDK, afin que les applications passent progressivement à n'utiliser 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 le plantage de vos applications, 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 via le 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 puces. Grâce à Treble, les fabricants d'appareils peuvent déployer Android 10 plus rapidement et à moindre coût sur les appareils compatibles avec Treble.

Android 10 est également la première version compatible avec Project Mainline (officiellement appelée mises à jour du système Google Play), notre nouvelle technologie qui permet de sécuriser les utilisateurs Android et de maintenir leurs appareils à jour avec des modifications de code importantes, directement depuis Google Play. Avec les 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 ou version ultérieure, sans avoir besoin d'une mise à jour complète du système de la part du fabricant.

Pour les développeurs, ces mises à jour d'Android 10 devraient contribuer à assurer la cohérence de l'implémentation de la plate-forme sur tous les appareils et, au fil du temps, apporter une plus grande uniformité, ce qui réduira vos coûts de développement et de test.

Premiers pas

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