Breve descripción del plan de adaptación a Android 10(29)
1 Según la documentación oficial de Google, Android 10 ha introducido muchos cambios.
Documentos oficiales:/about/versiones/10/highlights? hl=zh_cn
Cambios de privacidad en 1.1 y Android 10
Cambios de privacidad importantes en 1.1.1
Almacenamiento particionado
Para A filtrado La vista de almacenamiento externo puede proporcionar acceso a archivos y colecciones de medios específicos de la aplicación, y las aplicaciones que disfrutan de archivos en el almacenamiento externo pueden usar directorios de colecciones de medios y archivos específicos de la aplicación.
Mejora el control del usuario sobre los permisos de posicionamiento.
Los permisos solo en primer plano permiten a los usuarios tener un mayor control sobre el acceso de una aplicación a la información de ubicación del dispositivo. En segundo plano, se garantiza que las aplicaciones que solicitan acceso a la información de ubicación del usuario se degradarán correctamente sin actualizar la información de ubicación en segundo plano.
Obtén información de ubicación en segundo plano usando los permisos introducidos en Android 10.
El sistema realiza actividades en segundo plano.
Para las aplicaciones que inician actividades en segundo plano, restrinja las aplicaciones que inician actividades sin interacción del usuario al uso de actividades activadas por notificaciones.
Identificadores de hardware no reiniciables
Restringe las aplicaciones que acceden al número de serie del dispositivo y al IMEI para que utilicen identificadores reiniciables por el usuario.
Permisos de escaneo inalámbrico
El acceso a ciertos métodos de escaneo Wi-Fi, Wi-Fi Aware y Bluetooth requiere un permiso de ubicación preciso. ¿Cuáles son las solicitudes de escenarios de uso relacionados de aplicaciones que utilizan WLAN API y Bluetooth API? ¿ACCESO_FINE_LOCATION? Permisos
1.1.2 Más cambios de privacidad
Identificadores y datos: se han impuesto nuevas restricciones a los identificadores de hardware como IMEI, números de serie, MAC y datos similares.
? La información íntima de contacto ha sido eliminada.
? ¿Asignar direcciones MAC aleatoriamente
? El acceso al sistema de archivos /proc/net está restringido.
? Se ha impuesto una restricción a los identificadores de dispositivos que no se pueden restablecer.
? Restringir el acceso a los datos del portapapeles.
? Proteger el número de serie del dispositivo USB
Cámara y conexión: proporciona medidas de protección más sólidas para los metadatos de la cámara y la API de conexión. ? El acceso a los detalles y metadatos de la cámara está restringido.
? Se imponen restricciones a la hora de habilitar y deshabilitar WLAN.
? El acceso directo a las redes WLAN configuradas está restringido.
? Algunas API de telefonía, API de Bluetooth y API de WLAN requieren permisos de ubicación precisos.
Permisos: Algunos cambios en el modelo de permisos y requisitos.
? ¿Restringir el acceso al contenido de la pantalla
? ¿Comprobaciones de permisos de cara al usuario (para aplicaciones heredadas)
? ¿Reconocimiento de actividad física
? El grupo de permisos se ha eliminado de la interfaz.
1.2 Cambios de comportamiento que afectan a las aplicaciones
document:/about/versions/10/behavior-changes-all? hl=zh_cn
Restringir interfaces que no son SDK: para ayudar a garantizar la estabilidad y compatibilidad de las aplicaciones, la plataforma Android comenzó a restringir el uso de interfaces que no son SDK en Android 9 (nivel de API 28). Android 10 incluye una lista actualizada de interfaces restringidas que no pertenecen al SDK (basada en la colaboración con desarrolladores de Android y las últimas pruebas internas). Nuestro objetivo es garantizar que existan alternativas abiertas antes de restringir el uso de interfaces que no pertenecen al SDK.
Navegación por gestos: a partir de Android 10, los usuarios pueden habilitar la navegación por gestos en sus dispositivos. Cuando el usuario la habilita, la navegación por gestos afectará a todas las aplicaciones del dispositivo, independientemente de si la aplicación tiene como objetivo el nivel API 29. Por ejemplo, si el usuario desliza el dedo desde el borde de la pantalla, el sistema interpreta el gesto como navegación "hacia atrás", a menos que la aplicación reemplace explícitamente el gesto con la parte correspondiente de la pantalla.
¿Cambios en NDK
? * * *Los objetos de disfrute no deben contener reubicaciones de texto.
? ¿Las rutas de la biblioteca biónica y del enlazador dinámico cambiaron
? Los binarios/bibliotecas del sistema se asignan a la memoria de solo ejecución.
¿Cambios de seguridad
? De forma predeterminada, TLS 1.3 está habilitado.
? TLS no confía en los certificados firmados con SHA-1.
? ¿Cambios y mejoras en el comportamiento del llavero
? Otros cambios de cifrado y TLS
WLAN Live
En Android 10, las siguientes transmisiones relacionadas con Wi-Fi Direct no son fijas:
WIFI_P2P_CONNECTION_ CHANGE_Action
WIFI _ P2P _ ESTE _ DISPOSITIVO _ CAMBIADO _ ACCIÓN
Si su aplicación depende de recibir estas transmisiones al registrarse (porque ha estado pegajosa antes), utilice el método get() apropiado para obtener información durante la inicialización.
¿Función de reconocimiento de WLAN?
Android 10 ha ampliado el soporte y ahora permite la creación sencilla de sockets TCP/UDP utilizando rutas de datos compatibles con Wi-Fi. Para crear un socket TCP/UDP conectado a un socket de servidor, el dispositivo cliente necesita conocer la dirección IPv6 y el puerto del servidor. Anteriormente, la comunicación debía realizarse fuera de frecuencia (por ejemplo, usando BT o WLAN para detectar mensajes de Capa 2) o descubrirse en frecuencia usando otro protocolo (por ejemplo, mDNS). Con la ayuda de Android 10, dichos mensajes se pueden enviar como parte de la configuración de red.
Ventana de alerta del sistema en dispositivos Go
Las aplicaciones que se ejecutan en dispositivos Android 10 (versión Go) no pueden obtener el permiso SYSTEM_ALERT_WINDOW. Esto se debe a que dibujar la ventana superpuesta consume demasiada memoria, lo que es muy perjudicial para el rendimiento de los dispositivos Android con poca memoria.
Si una aplicación que se ejecuta en un dispositivo Go con Android 9 o una versión anterior obtiene el permiso SYSTEM_ALERT_WINDOW, el permiso se conservará incluso si el dispositivo se actualiza a Android 10. Las aplicaciones sin este permiso no podrán obtenerlo después de actualizar el dispositivo.
Si una aplicación en un dispositivo Go envía un intent con una acción action_manage_overlay_permission, el sistema rechazará automáticamente la solicitud y llevará al usuario a la pantalla de configuración, que mostrará No se permite otorgar este permiso, ya que puede ralentizar el dispositivo. Si una aplicación en un dispositivo Go llama a Settings.canDrawOverlays(), este método siempre devolverá falso. Del mismo modo, estas restricciones no se aplican a las aplicaciones a las que se les otorgó el permiso SYSTEM_ALERT_WINDOW antes de que el dispositivo se actualizara a Android 10.
Advertencia para aplicaciones en sistemas Android antiguos.
En dispositivos con Android 10 o superior, los usuarios verán una advertencia si ejecutan una aplicación para Android 5.1 (API nivel 22) o inferior por primera vez. Si una aplicación requiere que el usuario otorgue permisos, el sistema primero le brindará al usuario la oportunidad de ajustar los permisos de la aplicación antes de permitir que se ejecute por primera vez.
Debido a los requisitos de Target API de Google Play, los usuarios solo verán estas advertencias cuando ejecuten aplicaciones que no se hayan actualizado recientemente. También introduciremos requisitos de API de destino similares en 2019 para aplicaciones distribuidas a través de otras tiendas. Para obtener una comprensión detallada de estos requisitos, consulte Requisitos para niveles API de destino extendido en 2019.
Se ha eliminado el conjunto de cifrado SHA-2 CBC.
Los siguientes conjuntos de cifrado SHA-2 CBC se han eliminado de la plataforma:
TLS_RSA_WITH_AES_128_CBC_sha256
TLS_ RSA _ CON _ AES _ 256 _ CBC _ sha 256
TLS_ECD he_ECD sa_CON_AES_128_CBC_sha 256
TLS_ECD he_ECD sa_CON_AES_256_CBC_sha 384
TLS_ECD he_RSA_CON_AES_128_CBC_sha 256
TLS_ECD he_RSA_CON_AES_256_CBC_sha 384
Estos conjuntos de cifrado son menos seguros que conjuntos de cifrado similares que utilizan GCM, y la mayoría de los servidores admiten la variante GCM y la variante CBC de estos conjuntos de cifrado, o ambas No compatibles.
¿Cambios en el uso de la aplicación
? Mejoras en el uso de la aplicación de tatuajes de uso: Android 10 ahora puede usar tatuajes de uso para rastrear con precisión el uso de la aplicación cuando se usa en modo de pantalla dividida o imagen en imagen. Además, Android 10 puede rastrear correctamente el uso de aplicaciones instantáneas.
? Active el modo de escala de grises por aplicación: Android 10 puede configurar el modo de visualización en escala de grises para cada aplicación.
? Active el modo de distracción por aplicación: Android 10 puede configurar opcionalmente aplicaciones en "modo de distracción". En este momento, sus notificaciones se suprimirán y no se mostrará como aplicación recomendada.
? Pausar y reproducir: en Android 10, las aplicaciones pausadas no pueden reproducir audio.
Cambios en la conexión HTTPS
Si una aplicación que se ejecuta en Android 10 pasa nulo a setSSLSocketFactory(), se producirá una excepción IllegalArgumentException. En versiones anteriores, pasar null a setSSLSocketFactory() tenía el mismo efecto que pasar la fábrica de sockets SSL predeterminada actual.
La biblioteca android.preference ha quedado obsoleta.
A partir de Android 10, la biblioteca android.preference quedará obsoleta. En su lugar, los desarrolladores deberían utilizar la biblioteca de preferencias de AndroidX, que forma parte de Android Jetpack. Para obtener recursos adicionales que le ayuden con la migración y el desarrollo, consulte la guía de instalación actualizada y nuestras aplicaciones de muestra abiertas y documentación de referencia.
Cambios en la biblioteca de la utilidad de archivos ZIP
Android 10 ha realizado los siguientes cambios en las clases del paquete java.util.ZIP (utilizado para procesar archivos ZIP). ¿Estos cambios harán que el comportamiento de la biblioteca sea más consistente entre Android y otras plataformas que usan java.util.zip
? Booster Pump
En versiones anteriores, si se llamaba a algunos métodos en la clase de intérprete después de llamar a end(), estos métodos arrojarían IllegalStateException. En Android 10, estos métodos generarán NullPointerException.
? ZipFile
En Android 10 y versiones posteriores, si el archivo ZIP proporcionado no contiene ningún archivo, el constructor del archivo ZIP (parámetros de tipo File, int y Charset) no generará una ZipException.
? ZipOutputStream
En Android 10 y versiones posteriores, si el método Finish() en ZIPOutputStream intenta escribir un flujo de salida para un archivo zip que no contiene ningún archivo, el método no genera una ZipException.
Reemplazo de cámara
Muchas aplicaciones que usan cámaras asumen que si el dispositivo está en posición vertical, el dispositivo físico también estará en posición vertical, como se describe en Orientación de la cámara. Esta suposición podría hacerse en el pasado, pero eso ha cambiado a medida que se han ampliado los tipos de dispositivos disponibles (como los plegables). Hacer tales suposiciones sobre estos dispositivos puede resultar en una rotación y/o escala incorrecta de la pantalla del visor de la cámara.
Las aplicaciones dirigidas a plataformas por encima del nivel API deben configurar explícitamente android:resizeableActivity y proporcionar las funciones necesarias para manejar operaciones de ventanas múltiples.
Seguimiento del consumo de batería
A partir de Android 10, SystemHealthManager restablece sus estadísticas de uso de la batería cada vez que el dispositivo se desconecta después de un evento de carga significativo. En términos generales, un evento de carga importante ocurre cuando la batería de un dispositivo está completamente cargada o cuando la carga del dispositivo pasa de casi vacía a casi llena.
Antes de Android 10, las estadísticas de uso de la batería se restablecían cada vez que se desconectaba el dispositivo, sin importar cuán pequeño fuera el cambio en el nivel de la batería.
Android Beam ha quedado obsoleto.
En Android 10, hemos abandonado oficialmente Android Beam, una característica antigua que permite compartir datos entre múltiples dispositivos a través de comunicación de campo cercano (NFC). También eliminamos algunas API NFC relacionadas. Android Beam todavía está disponible para los socios fabricantes de dispositivos que lo necesiten, pero ya no se encuentra en la etapa de desarrollo activo. Sin embargo, Android seguirá admitiendo otras funciones y API de NFC, y casos de uso como la lectura de datos de etiquetas y la realización de pagos seguirán funcionando como se esperaba.