Adaptación de la aplicación Android 11

Cambios importantes en Android 11

1.1 Compatibilidad

1.1.1 Almacenamiento de particiones

Descripción: El mecanismo de almacenamiento particionado permite que la aplicación tenga un área de almacenamiento dedicada propia en el espacio de almacenamiento externo. Esta área es privada, por lo que esta área es muy adecuada para almacenar los datos privados de los usuarios. Por supuesto, las aplicaciones no pueden acceder a las áreas de almacenamiento dedicadas de otras aplicaciones. Pero si una aplicación necesita hacer que archivos específicos en su propia área de almacenamiento dedicada sean accesibles para otras aplicaciones, puede marcar estos archivos como compartibles configurando el método de intercambio de archivos. El almacenamiento de particiones desempeñará un papel muy bueno en la gestión de archivos, la protección de aplicaciones y la protección de datos de privacidad del usuario.

Esfera de influencia:

1) Aplicaciones cuya targetSdkVersion es 30.

2) targetSdkVersion es 29 y requestLegacyExternalStorage no se establece en true para deshabilitar las aplicaciones de almacenamiento de particiones.

Sugerencias de adaptación:

Si su aplicación aún usa el mecanismo de almacenamiento anterior, ahora debe migrar los datos a un directorio compatible con el almacenamiento particionado.

Dónde acceder al archivo

Permisos requeridos

Método de acceso

Directorio privado de la aplicación

Acceso sin permiso

getExternalFilesDir ()

Directorios privados para otras aplicaciones

Ninguno, pero el archivo de destino debe estar marcado como compartible por su aplicación usando FileProvider

Obtenido a través de ParcelFileDescriptor y FileDescriptor

Directorio de archivos multimedia (archivo de audio, foto, video)

READ_EXTERNAL_STORAGE (solo es necesario para acceder a archivos de otras aplicaciones)

MediaStore   API

Descargar catálogo (archivos de documentos, etc.)

Acceso sin permiso

Marco de acceso de almacenamiento SAF

Introducción detallada del almacenamiento de particiones: https://developer.android.google.cn/preview/privacy/storage

1.1.2 Autorización única

Descripción: la versión de vista previa para desarrolladores de Android 11 divide los permisos de una manera más granular e introduce el concepto de "autorización única". El usuario puede realizar una única autorización para permitir que la aplicación obtenga acceso temporal a la ubicación, cámara o micrófono del usuario, como se muestra en la figura siguiente. Una vez obtenida esta autorización, la aplicación puede acceder a los datos correspondientes dentro de los siguientes plazos:

1) Cuando la actividad de la aplicación es visible.

2) Un breve período de tiempo después de que la aplicación pasa a segundo plano.

3) Se inicia un servicio en primer plano cuando la actividad es visible, y luego la aplicación se transfiere al fondo, luego la aplicación puede continuar accediendo a los datos relacionados hasta que se detiene el servicio en primer plano.

Alcance de influencia: todas las aplicaciones que se ejecutan en Android 11.

Consejo de adaptación: si su aplicación ha seguido las mejores prácticas relacionadas con los permisos (https://developer.android.google.com/privacy/best-practices), puede admitir la autorización única sin cambiar la aplicación.

image.png

Figura: La ventana de solicitud de permiso en la aplicación proporciona opciones de permiso por única vez

1.1.3 Cómo obtener la autoridad de acceso a la información de ubicación de fondo

Nota: Cuando una aplicación solicita permisos de acceso a la información de ubicación en segundo plano, la ventana emergente que permite a los usuarios otorgar permisos ya no ofrecerá la opción de "Permitir siempre". Esta opción solo existe en la página de concesión de permisos de la aplicación en la configuración, lo que puede reducirla hasta cierto punto. Se produce la situación de "puerta trasera" de la aplicación, como se muestra en la siguiente figura, y la solicitud del permiso de ubicación en segundo plano requiere que la aplicación tenga el permiso de ubicación en primer plano.

Área afectada: todas las aplicaciones que se ejecutan en la versión de vista previa para desarrolladores de Android 11

Sugerencia de adaptación: si su aplicación determina que necesita obtener el permiso de acceso a la información de ubicación en segundo plano, ahora debe dividirse en dos pasos, porque ya no es posible solicitar directamente el permiso de acceso a la información de ubicación en segundo plano sin el permiso de acceso a la información de ubicación en primer plano.

1) Primero solicite el permiso de acceso a la información de ubicación de la recepción

2) Luego solicite el permiso de acceso a la información de ubicación en segundo plano, que es el llamado "siempre permitido", y el usuario será guiado a la configuración para otorgar

image.png

Figura: Al solicitar el permiso de acceso a la información de ubicación en segundo plano, la ventana emergente de solicitud de permiso en la aplicación ya no contiene "Permitir siempre"

image.png

Figura: La concesión de permisos de acceso a la información de ubicación en segundo plano solo se puede realizar en la configuración

1.1.4 Visibilidad del paquete

Descripción: la versión de vista previa para desarrolladores de Android 11 cambia la forma en que las aplicaciones consultan otras aplicaciones instaladas en el mismo dispositivo y cómo interactúan con ellas.

Rango afectado: aplicaciones cuyo targetSdkVersion es 30

Sugerencia de adaptación: la aplicación debe agregar el elemento <queries> al archivo de manifiesto de la aplicación para que el sistema sepa qué otras aplicaciones instaladas se le deben mostrar. Si su aplicación realiza interacciones comunes con otras aplicaciones, no es necesario que cambie la aplicación. Para obtener más información sobre la visibilidad de los paquetes de vista previa para desarrolladores de Android 11, consulte

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

1.1.5 Nuevos tipos de servicios en primer plano

Descripción: Android 11 cambia la forma en que el servicio de primer plano accede a los datos relacionados con la cámara y el micrófono para proteger aún más la privacidad del usuario.

Rango afectado: aplicaciones cuyo targetSdkVersion es 30

Sugerencia de adaptación: debe agregar nuevos tipos de cámara y micrófono en el atributo foregroundServiceType de la declaración de servicio en primer plano, de lo contrario no se obtendrán los datos de la cámara y el micrófono.

1.1.6 El uso del cuadro de mensaje de vista personalizada está restringido

Nota: El sistema bloqueará el cuadro de mensaje de vista personalizada publicado desde el fondo. Este tipo de cuadro de mensaje usa setView () para definir un diseño para sí mismo, como se muestra en la figura. Por consideraciones de seguridad y experiencia del usuario, el sistema bloquea los cuadros de mensajes de vista personalizada iniciados desde el fondo. Pero el cuadro de mensaje de vista personalizada publicado desde el primer plano aún puede tener efecto normalmente, y el cuadro de mensaje de texto creado con Toast.makeText () no se ve afectado, y puede tener efecto normalmente cuando se publica en primer plano y en segundo plano.

Rango afectado: aplicaciones cuyo targetSdkVersion es 30

Sugerencia de adaptación: se recomienda utilizar el control de solicitud de información (Snackbar) en su lugar.

image.png

Figura: Ejemplo de un cuadro de mensaje de vista personalizada publicado desde el fondo en Android Q

1.1.7 Actualización de la lista de interfaces que no pertenecen al SDK

Nota: Android 11 tiene una gran cantidad de actualizaciones en la lista de interfaces que no pertenecen al SDK. Para actualizar la lista de interfaces, consulte https://developer.android.google.cn/preview/non-sdk-11. Estos cambios pueden traer diferentes grados de problemas de compatibilidad a algunas aplicaciones que dependen de interfaces que no son SDK, especialmente aplicaciones que dependen de la interfaz de lista de grises de Android Q, porque algunas de estas interfaces se han incluido en la lista negra de Android 11. .

Alcance de influencia: todas las aplicaciones que se ejecutan en Android 11.

Sugerencia de adaptación: si su aplicación se basa en la interfaz restringida de Android 11, debe comenzar a planificar la actualización del SDK y migrar a una alternativa al SDK.

 

1.2 Nueva experiencia y métodos interactivos

Cada vez que se actualiza el sistema Android, casi traerá algunos cambios nuevos en la experiencia interactiva, y esta vez Android 11 no es una excepción.

P.ej:

1.2.1 Burbuja de chat

El método de conversación de las burbujas de chat se lanzó oficialmente y ya no es una función experimental. Esta función permite minimizar la ventana de conversación a una o más burbujas flotantes, y las burbujas se pueden expandir en páginas en modo ventana pequeña;

image.png

Figura: Notificación de mensaje en forma de burbuja

image.png

Figura: La burbuja se expande en una pequeña ventana de sesión

1.2.2 Animación de transición del teclado del nuevo método de entrada

Con la ayuda de dos nuevas interfaces API: Insets Animation Listener y WindowInsets Animation Controller, Android 11 trae una nueva transición al teclado del método de entrada con el que tenemos que lidiar todos los días. Animación, estas APIs te permiten ajustar más fácilmente el contenido de la aplicación, manteniéndose sincronizado con la aparición y desaparición del IME y otros elementos como la barra de estado y navegación. Esta es una muestra proporcionada por Google https://github.com/android/user-interface-samples/tree/master/WindowInsetsAnimation. En comparación con la animación que aparece directamente desde la parte inferior en la versión principal actual, la animación del teclado del nuevo método de entrada puede cambiar cuadro por cuadro siguiendo el movimiento real de nuestros dedos, presentando efectos de deslizamiento de entrada y salida más suaves y naturales, y así sucesivamente.

 

1.3 Nuevo soporte a nivel de hardware

1.3.1 Android 11 admitirá mejor varias pantallas de teléfonos móviles para mejorar la experiencia del usuario

● Pantalla de cascada: el área de "cascada" de la pantalla de cascada hará que el contenido del borde muestre distorsión y toque accidental. En Android 11, los desarrolladores ya pueden controlar la interacción del área de "cascada". El método DisplayCutout.getSafeInset ... () existente ahora devolverá un área de borde segura que puede evitar el área de la cascada y los golpes.

● Pantalla de alta actualización: Android 11 ha agregado una nueva API-Surface.setFrameRate () para permitir que las aplicaciones establezcan su frecuencia de actualización preferida, a fin de aprovechar la pantalla de alta actualización y obtener una mejor experiencia de usuario, al mismo tiempo que ayuda al sistema a funcionar. La conmutación inteligente durante la aplicación resuelve el problema de consumo de energía que puede ser causado por una alta frecuencia de actualización del nivel del sistema.

1.3.2 Android 11 admite el uso simultáneo de varias cámaras

Los desarrolladores pueden usar la nueva API para consultar la compatibilidad con el uso de varias cámaras al mismo tiempo (incluidas la cámara frontal y la cámara trasera). Si necesita comprobar el estado de compatibilidad en el dispositivo que ejecuta la aplicación, puede utilizar los dos métodos siguientes. El método getConcurrentCameraIds () puede devolver la combinación de ID de cámara, y isConcurrentSessionConfigurationSupported () puede consultar si el dispositivo de cámara puede admitir simultáneamente la configuración de sesión correspondiente.

 

1.4 Soporte 5G mejorado

Android 11 ofrece "medición dinámica" y "estimación de ancho de banda" para 5G, para utilizar mejor las características de alto ancho de banda y baja latencia de 5G. Flexible para diferentes escenarios y diferentes condiciones de red, calidad de medios de transmisión adaptativa.

 

1.5 Otras funciones

1.5.1 Instalación incremental de APK de ADB

Puede llevar mucho tiempo instalar un APK grande en el dispositivo. La instalación incremental de APK de ADB puede instalar suficientes APK para iniciar la aplicación mientras transmite los datos restantes en segundo plano, lo que acelera el proceso. Si el dispositivo admite esta función y ha instalado las últimas herramientas de la plataforma SDK, el comando adb install utilizará automáticamente esta función. O ejecute este comando adb install –incremental para usar esta función. Antes de ejecutar la instalación incremental de APK de ADB, primero debe firmar el APK y crear un archivo de esquema de firma de APK v4. Y el archivo de firma v4 debe colocarse junto al APK para que esta función funcione correctamente.

1.5.2 Motivo de salida del proceso de solicitud

Android 11 introdujo el método ActivityManager.getHistoricalProcessSalirReasons () para informar el motivo de la finalización de cualquier proceso recientemente. Las aplicaciones pueden usar este método para recopilar información de diagnóstico de fallas, como la terminación del proceso debido a ANR, problemas de memoria u otras razones. Además, también puede utilizar el nuevo método setProcessStateSummary () para almacenar información de estado personalizada para un análisis posterior.

1.5.3 Cargador de recursos dinámico

Android 11 presenta dos nuevas clases de API, ResourcesLoader y ResourcesProvider, para admitir los métodos de búsqueda y carga de recursos en expansión dinámica. Uno de los principales casos de uso es permitir que las aplicaciones accedan a recursos en directorios específicos fuera del APK.

Link de referencia

 La actualización del mecanismo de almacenamiento en Android 11: https://developer.android.google.cn/preview/privacy/storage

Siga las mejores prácticas con respecto a los permisos: https://developer.android.google.com/privacy/best-practices

 Visibilidad del paquete en Android 11: https://developer.android.google.cn/preview/privacy/package-visibility

 Actualización del cuadro de mensaje en Android 11: g.co/dev/toast

 Lista de interfaces que no pertenecen al SDK actualizada: https://developer.android.google.cn/preview/non-sdk-11

 Ejemplo de animación de transición de teclado de nuevo método de entrada: https://github.com/android/user-interface-samples/tree/master/WindowInsetsAnimation

 Cambios de privacidad significativos en Android 11: https://developer.android.google.cn/preview/privacy

Descripción general de las nuevas funciones y API de Android 11: https://developer.android.google.cn/preview/features

Supongo que te gusta

Origin blog.csdn.net/weixin_40611659/article/details/108747906
Recomendado
Clasificación