El Proyecto de código abierto de Android (AOSP) proporciona varias herramientas y conjuntos de pruebas para probar diferentes partes de tu implementación. Antes de usar las páginas de esta sección, debes familiarizarte con los siguientes términos:
- Dispositivo compatible con Android
- Un dispositivo que puede ejecutar cualquier app escrita por desarrolladores externos que utilicen el SDK y el NDK de Android. Los dispositivos compatibles con Android deben cumplir con los requisitos del documento de definición de compatibilidad (CDD) y aprobar el Conjunto de pruebas de compatibilidad (CTS). Los dispositivos compatibles con Android son aptos para participar en el ecosistema de Android, que incluye una licencia potencial de Google Play y del paquete de aplicaciones y APIs de los Servicios de Google para dispositivos móviles (GMS), y el uso de la marca Android. Si bien todos pueden usar el código fuente de Android, para ser considerado parte del ecosistema, un dispositivo debe ser compatible con Android.
- artefacto
- Un registro relacionado con compilaciones que permite solucionar problemas locales.
- Documento de definición de compatibilidad (CDD)
- Un documento que enumera los requisitos de software y hardware para un dispositivo compatible con Android.
- Conjunto de pruebas de compatibilidad (CTS)
Un paquete de pruebas gratuito y de calidad comercial disponible para descargar como objeto binario o como fuente en el AOSP. El CTS es un conjunto de pruebas de unidades diseñado para integrarse en tu flujo de trabajo diario. Su objetivo es mostrar incompatibilidades y garantizar que el software siga siendo compatible a lo largo del proceso de desarrollo.
Las pruebas de CTS y de plataforma no son mutuamente excluyentes. A continuación, se indican algunos lineamientos generales:
- Si una prueba afirma la corrección de las funciones o los comportamientos de la API del framework, y la prueba se debe aplicar en todos los socios OEM, debe estar en CTS.
- Si una prueba está diseñada para detectar regresiones durante el desarrollo de la plataforma, y puede requerir un permiso privilegiado para llevarse a cabo, y puede depender de los detalles de implementación (como se lanzó en AOSP), debe ser una prueba de plataforma.
- Servicios de Google para dispositivos móviles (GMS)
Una colección de apps y APIs de Google que se pueden preinstalar en dispositivos.
- GoogleTest (GTest)
Un framework de prueba y simulación de C++. Por lo general, los objetos binarios de GTest acceden a capas de abstracción de nivel inferior o realizan IPC sin procesar con varios servicios del sistema. El enfoque de prueba para GTest suele estar estrechamente relacionado con el servicio que se prueba. CTS contiene el framework de GTest.
- prueba de instrumentación
Un entorno de ejecución de prueba especial, que inicia el comando
am instrument, en el que el proceso de la app de destino se reinicia y se inicializa con el contexto de app básico, y se inicia un subproceso de instrumentación dentro la máquina virtual del proceso de app. CTS contiene pruebas de instrumentación.- Logcat
Una herramienta de línea de comandos que crea un registro de mensajes del sistema, incluidos los seguimientos de pila, los casos de error del sistema y los mensajes que escribes desde tu app con la clase
Log.- registro
Uso de un registro para hacer un seguimiento de los eventos del sistema informático, como los errores. El proceso de registro en Android es complejo debido a la combinación de estándares que se combinan en la herramienta Logcat.
- prueba después del envío
Una prueba de Android que se realiza cuando se confirma un nuevo parche en una rama de kernel común. Si ingresas
aosp_kernelcomo nombre de rama parcial, podrás ver una lista de ramas de kernel con resultados disponibles. Por ejemplo, los resultados deandroid-mainlinese pueden encontrar en https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.- prueba antes del envío
Una prueba que se usa para evitar que se introduzcan fallas en los kernels comunes.
- Trade Federation
También llamado Tradefed, un framework de pruebas continuas diseñado para ejecutar pruebas en dispositivos Android. Por ejemplo, Tradefed se usa para ejecutar pruebas del Conjunto de pruebas de compatibilidad y del Conjunto de pruebas de proveedores.
- Conjunto de pruebas de proveedores (VTS)
Un conjunto de capacidades extensas para las pruebas de Android, que promueve un proceso de desarrollo basado en pruebas y automatiza las pruebas del kernel de la capa de abstracción de hardware (HAL) y del SO.
Tipos de pruebas de plataforma
Por lo general, una prueba de plataforma interactúa con uno o más de los servicios del sistema Android o capas HAL, ejerce las funcionalidades del tema en prueba y afirma la corrección del resultado de la prueba. Una prueba de plataforma puede hacer lo siguiente:
- (Tipo 1) Ejercer las APIs del framework con el framework de Android. Las APIs específicas que se ejercen pueden incluir lo siguiente:
- APIs públicas diseñadas para apps de terceros
- APIs ocultas diseñadas para apps privilegiadas, es decir, APIs del sistema o APIs privadas (
@hideoprotected,package private)
- (Tipo 2) Invocar servicios del sistema Android con proxies de binder o IPC sin procesar directamente.
- (Tipo 3) Interactuar directamente con las HALs con APIs de bajo nivel o interfaces de IPC.
Por lo general, las pruebas de tipo 1 y 2 son pruebas de instrumentación, mientras que las pruebas de tipo 3 suelen ser GTests.
Próximos pasos
A continuación, se incluye una lista de documentos que puedes leer para obtener información más detallada:
Si no estudiaste la arquitectura de Android, consulta Descripción general de la arquitectura.
Si creas un dispositivo compatible con Android, consulta la descripción general del programa de compatibilidad de Android.
Para integrar pruebas de instrumentación, funcionales, de métricas y de host JAR en un servicio de pruebas continuas de la plataforma, consulta Flujo de trabajo de desarrollo de pruebas.
Para detectar y proteger tus dispositivos contra vulnerabilidades, consulta Pruebas de seguridad.
Para obtener información sobre cómo probar tus implementaciones de HAL y kernel, consulta Conjunto de pruebas de proveedores (VTS) e infraestructura.
Para realizar pruebas de apps, lee Aspectos fundamentales de las pruebas de apps para Android y realiza Aspectos avanzados de Android en Kotlin 05.1:Pruebas de aspectos básicos con las muestras proporcionadas.
Obtén información sobre las pruebas básicas antes del envío que tienes disponibles a través de los hooks de repo. Estos hooks se pueden usar para ejecutar linters, verificar el formato y activar pruebas de unidades antes de continuar, como subir una confirmación. Estos hooks están inhabilitados de forma predeterminada. Para obtener más información, consulta Hooks de carga previa de AOSP.
Para obtener más información sobre el registro, consulta Comprende el registro.
Para comprender cómo depurar código de Android, consulta Cómo depurar código nativo en la plataforma de Android.