L'objectif d'Android est d'aider les utilisateurs à profiter des dernières innovations, tout en s'assurant que leur sécurité et leur confidentialité sont les priorités absolues.
Certaines des bonnes pratiques décrites sur cette page figurent également dans l'aide-mémoire.
Faites attention aux autorisations
Renforcez la confiance des utilisateurs en faisant preuve de transparence et en leur donnant le contrôle sur la façon dont ils utilisent votre application.
Demandez le nombre minimal d'autorisations nécessaires aux besoins de votre fonctionnalité. Chaque fois que vous apportez des modifications majeures à votre application, examinez les autorisations demandées pour vérifier que les fonctionnalités de votre application en ont toujours besoin.
- À noter que les versions les plus récentes d'Android introduisent souvent des moyens d'accéder aux données dans le respect de la confidentialité, sans nécessiter d'autorisation. Pour en savoir plus, consultez la page Déterminer si votre appli doit demander des autorisations.
- Si votre application est distribuée sur Google Play, Android Vitals vous indique le pourcentage d'utilisateurs qui refusent les autorisations dans votre application. Utilisez ces données pour réévaluer la conception des fonctionnalités dont les autorisations requises sont le plus souvent refusées.
Suivez la méthode suivante afin d'expliquer pourquoi une fonctionnalité de votre application nécessite une autorisation. Demandez l'autorisation lorsque c'est nécessaire et non au démarrage de l'application, afin que la nécessité de l'autorisation soit claire pour les utilisateurs.
Gardez à l'esprit que les utilisateurs ou le système peuvent refuser l'autorisation plusieurs fois. Android respecte ce choix de l'utilisateur en ignorant les demandes d'autorisation provenant de la même application.
Réalisez une dégradation élégante de votre application lorsque les utilisateurs refusent ou révoquent une autorisation. Par exemple, vous pouvez désactiver la fonctionnalité de saisie vocale de votre application si l'utilisateur n'accorde pas l'autorisation du micro.
Lorsque vous mettez à jour votre application, supprimez l'accès de votre application à toute autorisation d'exécution dont elle n'a plus besoin.
Si vous utilisez un SDK ou une bibliothèque qui accède à des données protégées par des autorisations dangereuses, les utilisateurs attribueront généralement cette situation à votre application. Assurez-vous de comprendre les autorisations requises par vos SDK et leur finalité.
- Si vous testez votre application sur Android 11 (niveau d'API 30), utilisez l'audit des accès aux données pour découvrir les endroits où des données privées sont accessibles dans votre code et dans celui de bibliothèques tierces.
Limitez votre utilisation des données de localisation
Si votre application peut être exécutée dans les cas d'utilisation prévus sans accéder aux données de localisation, ne demandez aucune autorisation d'accéder à la position. Si votre application demande l'autorisation d'accéder aux données de localisation, aidez les utilisateurs à prendre une décision éclairée.
- Si votre application doit collecter des informations de localisation, expliquez aux utilisateurs comment votre application les utilise pour leur offrir des avantages spécifiques.
- Si votre application doit associer l'appareil de l'utilisateur à un appareil à proximité via le Wi-Fi ou le Bluetooth, utilisez le gestionnaire d'appareils associés, qui ne nécessite pas d'autorisations d'accéder à la position.
- Vérifiez le niveau de précision des données de localisation dont votre application a besoin. L'accès à des données de localisation approximatives convient à la plupart des cas d'utilisation liés à la position de l'appareil.
- Accédez aux données de localisation tant que l'utilisateur peut voir votre application. De cette façon, les utilisateurs peuvent mieux comprendre pourquoi votre application demande des données de localisation.
- Si votre application nécessite l'accès à des données de localisation en arrière-plan, par exemple lors de l'implémentation du géorepérage, assurez-vous qu'il est essentiel à la fonctionnalité de base de l'application et mis en œuvre de façon évidente pour les utilisateurs. En savoir plus sur les éléments à prendre en compte pour l'utilisation de la localisation en arrière-plan
- Sous Android 10 (niveau d'API 29) ou version ultérieure, les utilisateurs peuvent limiter l'accès à la position de votre application pendant son utilisation. Concevez votre application de sorte qu'elle opère une dégradation élégante lorsqu'elle ne peut pas accéder en permanence aux données de localisation.
- Si votre application doit conserver l'accès à la position pour une tâche en cours déclenchée par l'utilisateur après que celui-ci a quitté son UI, démarrez un service de premier plan avant que votre application ne passe en arrière-plan. Pour ce faire, vous pouvez utiliser l'un des rappels de cycle de vie d'Android, comme
onPause()
. - Ne déclenchez pas de services de premier plan à partir de l'arrière-plan. Envisagez plutôt de lancer votre application à partir d'une notification, puis d'exécuter le code de localisation lorsque l'UI de votre application devient visible.
Gérer les données en toute sécurité
Remarque : Afin d'en savoir plus sur les données considérées comme sensibles, consultez l'article Données utilisateur du Centre d'informations réglementaires pour les développeurs Google Play.
Traitez les données sensibles de manière transparente et sécurisée.
- Indiquez aux utilisateurs quand et pourquoi votre application collecte, utilise ou partage des données sensibles.
- Si possible, utilisez le modèle de l'espace de stockage cloisonné. Découvrez comment migrer vers un espace de stockage cloisonné en fonction des cas d'utilisation de votre application.
- Privilégiez toujours des connexions réseau sécurisées. Pour les données au repos de votre application, utilisez le chiffrement des identifiants intégré d'Android. Pour les données en transit, utilisez TLS, le successeur de SSL, pour toutes les transmissions de données, quel que soit leur niveau de confidentialité.
- Placez les fichiers contenant des données sensibles dans votre répertoire privé d'application, au sein de la mémoire de stockage interne.
- Sous Android 10 (niveau d'API 29), stockez les fichiers qui ne sont pertinents que pour votre application dans le répertoire spécifique à l'application sur le stockage externe. En savoir plus sur l'espace de stockage cloisonné
- Si vous devez transmettre des données sensibles à une autre application, utilisez un intent explicite. Accordez un accès unique aux données pour restreindre davantage l'accès de l'autre application.
- Affichez une indication en temps réel que vous capturez à partir du micro ou de la caméra, même lorsque votre application est au premier plan. Notez qu'Android 9 (niveau d'API 28) ou version ultérieure n'autorise pas l'accès au micro ou à la caméra lorsque votre application est exécutée en arrière-plan.
- N'incluez pas de données sensibles dans les messages logcat ni dans les fichiers journaux de votre application. Découvrez comment traiter les données utilisateur.
Jetpack propose plusieurs bibliothèques pour renforcer la sécurité des données de votre application. Pour en savoir plus, consultez les guides sur l'utilisation de la bibliothèque Jetpack Security et de la bibliothèque Jetpack Preferences.
Utilisez des identifiants réinitialisables
Respectez la confidentialité des données des utilisateurs en utilisant des identifiants réinitialisables. Pour en savoir plus, consultez les Bonnes pratiques concernant les identifiants uniques.
- N'accédez pas au code IMEI ni au numéro de série de l'appareil, car ces identifiants sont permanents. Si vous essayez d'accéder à ces identifiants dans une application qui cible Android 10 (niveau d'API 29) ou une version ultérieure, une erreur
SecurityException
se produit. - N'utilisez un identifiant publicitaire que pour le profilage des utilisateurs ou pour des cas d'utilisation d'annonces. Pour les applications sur Google Play, il s'agit d'une obligation. Respectez toujours les préférences des utilisateurs concernant le suivi de la publicité à des fins de personnalisation.
- Pour la grande majorité des cas d'utilisation autres que les annonces, utilisez un identifiant unique universel (GUID, globally-unique identifier) stocké de manière privée, qui est limité à l'application.
- Utilisez les paramètres sécurisés Android ID (SSAID) pour partager l'état entre vos applications sans que l'utilisateur n'ait besoin de se connecter à un compte. Découvrez comment effectuer le suivi des préférences des utilisateurs déconnectés entre les applications.