Adaptation de l'application Android 11

Changements majeurs sur Android 11

1.1 Compatibilité

1.1.1 Stockage de partition

Description: Le mécanisme de stockage partitionné permet à l'application d'avoir sa propre zone de stockage dédiée dans l'espace de stockage externe. Cette zone est privée. Par conséquent, cette zone est très appropriée pour stocker les données privées des utilisateurs. Bien entendu, les applications ne peuvent pas accéder aux zones de stockage dédiées des autres applications. Mais si une application doit rendre accessibles à d'autres applications des fichiers spécifiques de sa propre zone de stockage dédiée, elle peut marquer ces fichiers comme partageables en définissant la méthode de partage de fichiers. Le stockage de partition jouera un très bon rôle dans la gestion des fichiers, la protection des applications et la protection des données de confidentialité des utilisateurs.

Sphère d'influence:

1) Applications dont targetSdkVersion est 30.

2) La targetSdkVersion est 29 et requestLegacyExternalStorage n'est pas défini sur true pour désactiver les applications de stockage de partition.

Suggestions d'adaptation:

Si votre application utilise toujours l'ancien mécanisme de stockage, vous devez maintenant migrer les données vers un répertoire compatible avec le stockage partitionné.

Où accéder au fichier

Autorisations requises

Méthode d'accès

Répertoire privé de l'application

Accès sans permission

getExternalFilesDir ()

Répertoires privés pour d'autres applications

Aucun, mais le fichier cible doit être marqué comme partageable par son application à l'aide de FileProvider

Obtenu via ParcelFileDescriptor et FileDescriptor

Répertoire de fichiers multimédia (audio, photo, fichier vidéo)

READ_EXTERNAL_STORAGE (nécessaire uniquement lors de l'accès aux fichiers d'autres applications)

API MediaStore

Télécharger le catalogue (fichiers de documents, etc.)

Accès sans permission

Framework d'accès au stockage SAF

Présentation détaillée du stockage de partition: https://developer.android.google.cn/preview/privacy/storage

1.1.2 Autorisation unique

Description: la version préliminaire d'Android 11 pour les développeurs divise les autorisations de manière plus granulaire et introduit le concept d '«autorisation unique». L'utilisateur peut effectuer une seule autorisation pour permettre à l'application d'accéder temporairement à l'emplacement, à la caméra ou au microphone de l'utilisateur, comme indiqué dans la figure ci-dessous. Après avoir obtenu cette autorisation, l'application peut obtenir l'accès aux données correspondantes dans les délais suivants:

1) Lorsque l'activité de l'application est visible.

2) Un court laps de temps après que l'application est passée à l'arrière-plan.

3) Un service de premier plan est démarré lorsque l'activité est visible, puis l'application est transférée en arrière-plan, puis l'application peut continuer à accéder aux données associées jusqu'à ce que le service de premier plan s'arrête.

Portée d'influence: Toutes les applications fonctionnant sous Android 11.

Conseil d'adaptation: si votre application a suivi les bonnes pratiques relatives aux autorisations (https://developer.android.google.com/privacy/best-practices), vous pouvez prendre en charge l'autorisation unique sans modifier l'application.

image.png

Figure: La fenêtre de demande d'autorisation dans l'application fournit des options d'autorisation ponctuelles

1.1.3 Comment obtenir l'autorisation d'accès aux informations de localisation de base

Remarque: lorsqu'une application demande des autorisations d'accès aux informations d'emplacement en arrière-plan, la fenêtre contextuelle qui permet aux utilisateurs d'accorder des autorisations ne propose plus l'option "Toujours autoriser". Cette option n'existe que sur la page d'octroi des autorisations d'application dans les paramètres, ce qui peut la réduire dans une certaine mesure La situation de «porte dérobée» de l'application se produit, comme illustré dans la figure suivante, et l'application pour l'autorisation d'emplacement d'arrière-plan exige que l'application dispose de l'autorisation d'emplacement de premier plan.

Zone concernée: toutes les applications exécutées sur la version d'aperçu pour les développeurs Android 11

Suggestion d'adaptation: si votre application détermine qu'elle a besoin d'obtenir l'autorisation d'accès aux informations de localisation en arrière-plan, elle doit maintenant être divisée en deux étapes, car il n'est plus possible de demander directement l'autorisation d'accès aux informations de localisation en arrière-plan sans l'autorisation d'accès aux informations de localisation de premier plan.

1) Demandez d'abord l'autorisation d'accès aux informations de localisation de la réception

2) Ensuite, demandez l'autorisation d'accès aux informations de localisation en arrière-plan, ce que l'on appelle «toujours autorisé», et l'utilisateur sera guidé vers les paramètres à accorder

image.png

Figure: Lors d'une demande d'autorisation d'accès aux informations de localisation en arrière-plan, la fenêtre contextuelle de demande d'autorisation dans l'application ne contient plus «Toujours autoriser»

image.png

Figure: L'octroi d'autorisations d'accès aux informations d'emplacement d'arrière-plan ne peut être effectué que dans les paramètres

1.1.4 Visibilité du package

Description: la version d'aperçu pour les développeurs d'Android 11 modifie la façon dont les applications interrogent les autres applications installées sur le même appareil et comment elles interagissent avec elles.

Plage concernée: applications dont targetSdkVersion est 30

Suggestion d'adaptation: l'application doit ajouter l'élément <queries> au fichier manifeste de l'application afin que le système sache quelles autres applications installées doivent lui être affichées. Si votre application effectue des interactions courantes avec d'autres applications, vous n'avez pas besoin de changer d'application. Pour plus d'informations sur la visibilité des packages d'aperçu pour les développeurs Android 11, veuillez consulter

https://developer.android.google.cn/preview/privacy/package-visibility。

1.1.5 Nouveaux types de services de premier plan

Description: Android 11 change la façon dont le service de premier plan accède aux données relatives à la caméra et au microphone pour protéger davantage la confidentialité des utilisateurs.

Plage concernée: applications dont targetSdkVersion est 30

Suggestion d'adaptation: vous devez ajouter de nouveaux types de caméra et de microphone dans l'attribut foregroundServiceType de la déclaration de service de premier plan, sinon les données de caméra et de microphone ne seront pas obtenues.

1.1.6 L'utilisation de la boîte de message d'affichage personnalisé est restreinte

Remarque: la boîte de message de vue personnalisée publiée en arrière-plan sera bloquée par le système. Ce type de boîte de message utilise setView () pour définir une mise en page pour lui-même, comme illustré dans la figure. Pour des raisons de sécurité et d'expérience utilisateur, le système bloque les boîtes de message de vue personnalisée lancées en arrière-plan. Mais la boîte de message d'affichage personnalisé publiée à partir du premier plan peut toujours prendre effet normalement, et la boîte de message texte créée avec Toast.makeText () n'est pas affectée et elle peut prendre effet normalement lorsqu'elle est publiée au premier plan et en arrière-plan.

Plage concernée: applications dont targetSdkVersion est 30

Suggestion d'adaptation: Il est recommandé d'utiliser le contrôle d'invite d'information (Snackbar) à la place.

image.png

Figure: Exemple de boîte de message de vue personnalisée publiée à partir de l'arrière-plan sur Android Q

1.1.7 Mise à jour de la liste des interfaces non SDK

Remarque: Android 11 propose un grand nombre de mises à jour de la liste des interfaces non SDK. Pour la mise à jour de la liste des interfaces, veuillez consulter https://developer.android.google.cn/preview/non-sdk-11. Ces modifications peuvent entraîner différents degrés de problèmes de compatibilité avec certaines applications qui reposent sur des interfaces non SDK, en particulier les applications qui reposent sur l'interface de la liste de gris Android Q, car certaines de ces interfaces ont été incluses dans la liste noire d'Android 11. .

Portée d'influence: Toutes les applications fonctionnant sous Android 11.

Suggestion d'adaptation: si votre application repose sur l'interface restreinte d'Android 11, vous devez commencer à planifier la mise à niveau du SDK et la migration vers une alternative SDK.

 

1.2 Nouvelle expérience et méthodes interactives

Chaque fois que le système Android est mis à niveau, il apportera presque de nouveaux changements dans l'expérience interactive, et cette fois, Android 11 ne fait pas exception.

Par exemple:

1.2.1 Bulle de discussion

La méthode de conversation des bulles de discussion est officiellement lancée et n'est plus une fonctionnalité expérimentale. Cette fonctionnalité permet de réduire la fenêtre de conversation à une ou plusieurs bulles flottantes, et les bulles peuvent être développées en petites pages en mode fenêtre;

image.png

Figure: Notification de message sous forme de bulle

image.png

Figure: La bulle se développe dans une petite fenêtre de session

1.2.2 Nouvelle animation de transition de clavier de méthode de saisie

Avec l'aide de deux nouvelles interfaces API - Insets Animation Listener et WindowInsets Animation Controller, Android 11 apporte une nouvelle transition au clavier de la méthode de saisie que nous devons gérer chaque jour Animation, ces API vous permettent d'ajuster plus facilement le contenu de l'application, en restant synchronisé avec l'apparition et la disparition de l'IME et d'autres éléments tels que l'état et la barre de navigation. Ceci est un exemple fourni par Google https://github.com/android/user-interface-samples/tree/master/WindowInsetsAnimation. Par rapport à l'animation qui apparaît directement du bas dans la version grand public actuelle, la nouvelle animation de clavier de méthode de saisie peut changer image par image en suivant le mouvement réel de nos doigts, présentant des effets de glissement d'entrée et de sortie plus doux et plus naturels, etc.

 

1.3 Nouveau support au niveau matériel

1.3.1 Android 11 prendra mieux en charge divers écrans de téléphone mobile pour améliorer l'expérience utilisateur

● Écran de la cascade: la zone "cascade" de l'écran de la cascade provoquera une distorsion et un contact accidentel du contenu du bord. Sur Android 11, les développeurs peuvent déjà contrôler l'interaction de la zone "cascade". La méthode DisplayCutout.getSafeInset ... () existante renverra désormais une zone frontalière sûre qui peut éviter la zone de la cascade et les franges.

● Écran de rafraîchissement élevé: Android 11 a ajouté une nouvelle API-Surface.setFrameRate () pour permettre aux applications de définir leur taux de rafraîchissement préféré, afin de tirer parti de l'écran de rafraîchissement élevé et d'obtenir une meilleure expérience utilisateur, tout en aidant également le système à fonctionner La commutation intelligente pendant l'application résout le problème de consommation d'énergie qui peut être causé par un taux de rafraîchissement élevé au niveau du système.

1.3.2 Android 11 prend en charge l'utilisation simultanée de plusieurs caméras

Les développeurs peuvent utiliser la nouvelle API pour interroger la prise en charge de l'utilisation de plusieurs caméras en même temps (y compris la caméra avant et la caméra arrière). Si vous devez vérifier l'état de la prise en charge sur le périphérique exécutant l'application, vous pouvez utiliser les deux méthodes suivantes. La méthode getConcurrentCameraIds () peut renvoyer la combinaison des ID de caméra et isConcurrentSessionConfigurationSupported () peut demander si le périphérique de caméra peut prendre en charge simultanément la configuration de session correspondante.

 

1.4 Prise en charge améliorée de la 5G

Android 11 apporte une «mesure dynamique» et une «estimation de la bande passante» pour la 5G, afin de mieux utiliser les caractéristiques de bande passante élevée et de faible latence de la 5G. Flexible pour différents scénarios et différentes conditions de réseau, qualité de diffusion multimédia adaptative.

 

1.5 Autres fonctions

1.5.1 Installation d'APK incrémentielle ADB

L'installation d'un fichier APK volumineux sur l'appareil peut prendre du temps. L'installation incrémentielle d'APK d'ADB peut installer suffisamment d'APK pour démarrer l'application tout en diffusant les données restantes en arrière-plan, accélérant ainsi le processus. Si l'appareil prend en charge cette fonction et que vous avez installé les derniers outils de la plate-forme SDK, la commande adb install utilisera automatiquement cette fonction. Ou exécutez cette commande adb install –incremental pour utiliser cette fonctionnalité. Avant d'exécuter l'installation d'APK incrémentielle ADB, vous devez d'abord signer l'APK et créer un fichier de schéma de signature APK v4. Et le fichier de signature v4 doit être placé à côté de l'APK pour que cette fonction fonctionne correctement.

1.5.2 Motif de sortie du processus de candidature

Android 11 a introduit la méthode ActivityManager.getHistoricalProcessExitReasons () pour signaler la raison de l'arrêt récent d'un processus. Les applications peuvent utiliser cette méthode pour collecter des informations de diagnostic de panne, telles que l'arrêt du processus en raison de l'ANR, des problèmes de mémoire ou pour d'autres raisons. En outre, vous pouvez également utiliser la nouvelle méthode setProcessStateSummary () pour stocker des informations d'état personnalisées en vue d'une analyse ultérieure.

1.5.3 Chargeur de ressources dynamiques

Android 11 introduit deux nouvelles classes d'API, ResourcesLoader et ResourcesProvider, pour prendre en charge les méthodes de recherche et de chargement des ressources en expansion dynamique. L'un des principaux cas d'utilisation est d'autoriser les applications à accéder aux ressources dans des répertoires spécifiques en dehors de l'APK.

Lien de référence

 La mise à jour du mécanisme de stockage dans Android 11: https://developer.android.google.cn/preview/privacy/storage

Suivez les meilleures pratiques concernant les autorisations: https://developer.android.google.com/privacy/best-practices

 Visibilité du package sous Android 11: https://developer.android.google.cn/preview/privacy/package-visibility

 Mise à jour de la boîte de message sous Android 11: g.co/dev/toast

 Mise à jour de la liste des interfaces non SDK: https://developer.android.google.cn/preview/non-sdk-11

 Nouvel exemple d'animation de transition de clavier de méthode de saisie: https://github.com/android/user-interface-samples/tree/master/WindowInsetsAnimation

 Changements de confidentialité importants dans Android 11: https://developer.android.google.cn/preview/privacy

Vue d'ensemble des nouvelles fonctionnalités et API d'Android 11: https://developer.android.google.cn/preview/features

Je suppose que tu aimes

Origine blog.csdn.net/weixin_40611659/article/details/108747906
conseillé
Classement