Introducción a AndroidQ y adaptación de versión
Si quieres adaptar la App, principalmente necesitas establecer el siguiente estilo:
¿Y usar este atributo? android: attr/textColorPrimary
Además, Google también proporciona un interruptor Force Dark.
Para obtener más información, consulte la introducción oficial de Google al modo oscuro Q.
Android 10 permite controlar botones sin confirmación del usuario.
setConfirmationRequired(false)
Cuando los datos biométricos del usuario no están disponibles, setDeviceCredentialAllowed() se puede configurar para permitir que el usuario se autentique mediante PIN, contraseña de gesto y contraseña numérica.
(1) La adaptación se puede dividir en dos tipos.
(2) Requisitos de tiempo para la adaptación en Google y los principales mercados de aplicaciones:
Si la API original de nuestro proyecto es 25 y queremos actualizar directamente a API 29, necesitamos para adaptarse: Andoird O, Android P, Android Q, se requieren en las tres etapas de adaptación.
La adaptación de estas API se presentará brevemente a continuación:
Debe crear un canal antes de crear una notificación y debe pasar el ID del canal al crear la notificación.
2.1 ¿Qué es una aplicación front-end? (La aplicación front-end aquí se refiere a restricciones de servicio)
2.2 ¿Qué son las restricciones de servicio en segundo plano?
2.3 Solución:
Establezca una actividad con un tema transparente y luego configure la orientación de la pantalla.
Se produce la siguiente excepción
Debe ser un error en los teléfonos móviles de Google 8.0, que se ha solucionado en versiones posteriores.
3.2.1 Cambio del directorio de datos de webview
Si la API se establece en 28, varios procesos utilizan el mismo directorio webView.
Excepción lanzada:
Solución: establezca diferentes directorios de datos de vista web para diferentes procesos.
3.2.2 Desuso del cliente HTTP Apache
En Android 6.0, Google eliminó la compatibilidad con el cliente HTTP Apache. A partir de Android 9, las bibliotecas de contenido se eliminaron de bootclasspath y no están disponibles para las aplicaciones de forma predeterminada. Para continuar usando el cliente HTTP Apache, las aplicaciones orientadas a Android 9 y superiores pueden agregar lo siguiente a su AndroidManifest.xml:
3.2.3 Control de interfaz no SDK
El veridex oficial del verificador se utiliza para detectar dónde se utilizan interfaces que no son SDK en el apk.
Los resultados del escaneo son similares a la imagen a continuación (la imagen proviene de la herramienta veridex en la versión Android P (VII) que escanea interfaces que no son SDK. También puede consultar este artículo para conocer el uso de veridex) :
3.2.4 Servicios de recepción
Las aplicaciones que utilizan servicios de primer plano en Android 9 o superior deben solicitar el permiso FOREGROUND_SERVICE y el sistema otorgará automáticamente este permiso a la aplicación que lo solicite. el permiso. Si una aplicación de Android 9 o superior intenta crear un servicio en primer plano y no se solicita FOREGROUND_SERVICE, el sistema generará una SecurityException.
3.3.1 Cambio de espacio de almacenamiento de la aplicación
De forma predeterminada, si la aplicación apunta a Android Q, ingresará a la vista de filtro al acceder a archivos en dispositivos de almacenamiento externos. Las aplicaciones pueden utilizar el contexto.
getExternalFileSdir() almacena archivos dedicados a sí mismo en su propio directorio. Una aplicación con una vista filtrada siempre tiene acceso de lectura/escritura a los archivos que crea, ya sea que los archivos estén ubicados en un directorio específico de esa aplicación o fuera de ella. Las aplicaciones pueden acceder a estos archivos sin declarar ningún permiso de almacenamiento.
Solo cuando se cumplen las dos condiciones siguientes, una aplicación puede acceder a archivos creados por otras aplicaciones:
Guía de rectificación de compatibilidad de aplicaciones de la versión Google Q
Alianza de desarrolladores de Huawei Centro de documentación
Google Android-8.0-Migración