Prueba la copia de seguridad
| Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
|---|---|---|---|---|
| 21 de octubre de 2026 | - | - | - | 1.0.0-alpha03 |
Cómo declarar dependencias
Para agregar una dependencia en test backup, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:
Groovy
dependencies { implementation "androidx.test.backup:backup:1.0.0-alpha03" implementation "androidx.test.backup:backup-host:1.0.0-alpha03" }
Kotlin
dependencies { implementation("androidx.test.backup:backup:1.0.0-alpha03") implementation("androidx.test.backup:backup-host:1.0.0-alpha03") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.
Automated Backup Restore Test versión 1.0
Versión 1.0.0-alpha03
21 de octubre de 2026
Lanzamiento de androidx.test.backup:backup:1.0.0-alpha03 y androidx.test.backup:backup-host:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se simplificó la configuración de pruebas en los paquetes de pruebas de copia de seguridad del complemento de Android para Gradle, ya que se orienta automáticamente a la app probada cuando se omite
@BackupRestoreConfig. (I1452b) - Se agregó compatibilidad para heredar la configuración de
@BackupRestoreConfigy@Isolationde una clase de prueba externa en las clases de prueba de@Nested. (Ia45a8) - Se agregó compatibilidad para insertar
BackupRestoreControllerdirectamente en los constructores de clases de prueba y los métodos de configuración de@BeforeAll. (I6e822, Ia2ebd) - Se agregó compatibilidad para fijar un dispositivo específico a un rol de
@Deviceen pruebas multidispositivo con la propiedadandroidx.test.backup.device.serial.{role}. (I484be)
Correcciones de errores
- Se corrigieron
performBackupyperformRestorepara que las pruebas fallen de inmediato en lugar de pasar de forma silenciosa cuando se omite una copia de seguridad o está vacía, cuando el servicio de copia de seguridad genera un error o cuando un archivo de copia de seguridad local pertenece a una app o un dispositivo diferentes. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Se corrigió un problema por el que las pruebas se detenían de forma indefinida en dispositivos que no respondían. Para ello, se aplicaron tiempos de espera en los pasos de copia de seguridad, restablecimiento, acciones del dispositivo y limpieza. (I10661, I9cdee, If5f92)
- Se corrigió un error por el que
performBackupborraba los archivos de copia de seguridad generados cuando finalizaba la ejecución de la prueba, por lo que ahora los archivos de copia de seguridad se conservan en el disco después de que finalizan las pruebas. (I8c13f) - Se corrigieron los asistentes de prueba de la base de datos (
StorageDomain.Database) para almacenar y verificar correctamente los valoresnull, reemplazar las filas existentes cuando se propagan los datos de prueba, detectar configuraciones de tablas no válidas con anticipación y fallar cuando falta un archivo de base de datos esperado. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Se corrigieron los asistentes de prueba de
SharedPreferencespara conservar los tipos de datos con precisión y admitir la verificación de preferenciasnullo quitadas. (I8456d9, I1d0fc2) - Se corrigió
runOnDevicepara controlar cargas útiles de prueba grandes sin fallas, pausar el depurador cuando se habilitawaitForDebugger, encontrar el ejecutor de pruebas en nombres de paquetes de APK de prueba personalizados y evitar que las marcas internas del ejecutor se filtren en las acciones del dispositivo. (Ic73bd, Iede17, I1d172, I84c15) - Se mejoró la estabilidad y la velocidad de las pruebas, ya que se comparte una sola conexión de ADB en toda la ejecución de la prueba, se instalan los APK solo una vez por dispositivo y se muestra un mensaje claro cuando un APK no se puede instalar o iniciar. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Se corrigió el problema por el que
fetchDeviceLogsescribía archivos de registro vacíos y se detuvieron las ejecuciones de pruebas canceladas para que no generaran informes de fallas falsos. (I736c4, I7b199, Ia847e) - Se limpiaron las dependencias de
backup-hostpara queadblibesté disponible directamente para los emisores y las bibliotecas de registro o prueba internas ya no entren en conflicto con la ruta de clase de tu proyecto. (I6e822, Iba9a4, Ib4ec9)
Versión 1.0.0-alpha02
7 de octubre de 2026
Lanzamiento de androidx.test.backup:backup:1.0.0-alpha02 y androidx.test.backup:backup-host:1.0.0-alpha02. La versión 1.0.0-alpha02 incluye estas confirmaciones.
Cambios en la API
- Las claves de carga útil ahora se documentan como
BackupActionInputKeys,BackupActionOutputKeysyBackupActionValues, lo que reemplaza las constantes enBackupDeviceAction. Se agregaron las fábricasBackupDeviceActionResult.success()yfailure(), junto con los descriptores de accesoisSuccessyerrorMessage. (Ibd493).
Correcciones de errores
BackupRestoreController.clearAppDataahora arrojaIOExceptioncuandopm clearno informa un resultado correcto, en lugar de continuar de forma silenciosa. (I61556).- Los argumentos de shell que se pasan a
BackupRestoreControllerpara la ejecución del dispositivo ahora se escapan correctamente para evitar la inserción de comandos y garantizar que las rutas de acceso de archivos con espacios se manejen de forma segura. - Se reforzaron las acciones de almacenamiento agrupadas (
PopulateStorageActionyAssertStorageAction) contra los pases de verificación silenciosos para garantizar que las pruebas fallen estrictamente cuando falten los datos esperados. - Los organizadores de pruebas del host ahora respetan correctamente las fallas de acción en banda que informa el dispositivo en lugar de ignorarlas.
- Se corrigió un problema con la propagación de filas de la base de datos mediante la codificación por porcentaje del formato de conexión
'values'de la base de datos, lo que evita que se dañen los datos durante el transporte de la carga útil. - Se corrigieron las vulnerabilidades de seguridad en
androidx.test.backup:backup-hostactualizando las dependencias.
Versión 1.0.0-alpha01
23 de septiembre de 2026
Lanzamiento de androidx.test.backup:backup:1.0.0-alpha01 y androidx.test.backup:backup-host:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Funciones de la versión inicial
Versión inicial del framework de pruebas de copia de seguridad y restablecimiento automatizados para Android. Esta biblioteca proporciona una forma automatizada y de extremo a extremo para probar que los datos del usuario y las credenciales de la cuenta sobrevivan de forma segura a las actualizaciones del dispositivo y las restauraciones en la nube. En lugar de depender de las pruebas manuales, los desarrolladores pueden automatizar todo el ciclo de vida: propagar el estado de la app, crear una copia de seguridad según las reglas configuradas (dataExtractionRules y fullBackupContent), borrar la app y verificar la integridad de los datos después del restablecimiento. El framework proporciona dos artefactos: androidx.test.backup:backup-host (que se ejecuta en la computadora host para organizar los pases de copia de seguridad, limpieza y restablecimiento en ADB) y androidx.test.backup:backup (que se ejecuta en el dispositivo para propagar y verificar los datos de la app).
BackupRestoreController: Es la interfaz principal del host que se usa para controlar los flujos de trabajo de copia de seguridad, limpieza, restablecimiento y verificación de un dispositivo de prueba. Proporciona canalizaciones de conveniencia, comorunBackupRestoreFlow, así como operaciones detalladas (performBackup,performRestore,clearAppData,fetchDeviceLogsyrunOnDevice). Admite corrutinas de Kotlin y ejecución asíncrona de JavaListenableFuture.BackupRestoreExtension: Es una extensión de JUnit 5 Jupiter que resuelve y, luego, inserta parámetrosBackupRestoreControlleren los métodos de prueba. Administra sesiones de ADB independientes o compartidas, instala automáticamente APKs probados y de prueba, descarta las pantallas de bloqueo y los bloqueos de teclas de los dispositivos para desbloquear el almacenamiento protegido con credenciales y aplica el aislamiento de la zona de pruebas.BackupRestoreTestRunner: Es un ejecutor de pruebas deInstrumentationintegrado en el dispositivo que se ejecuta dentro de la zona de pruebas de la aplicación. Resuelve y ejecuta de forma dinámica las implementaciones deBackupDeviceActionsolicitadas que envían los organizadores del host y redirecciona de forma segura las cargas útiles de resultados JSON grandes al disco para evitar los límites del búfer de transacciones de Binder.BackupDeviceAction: Es el contrato para las acciones personalizadas del dispositivo que se ejecutan directamente en la zona de pruebas de la aplicación de destino durante la propagación de datos (PHASE_POPULATE) o la validación posterior al restablecimiento (PHASE_VERIFY).StorageDomain: Descriptores con tipos de datos estrictos (Preference,Database,TextFileyBinaryFile) que se usan junto con asistentes de acciones precompilados (PopulateStorageActionyAssertStorageAction) para propagar y confirmar automáticamenteSharedPreferences, bases de datos SQLite y archivos sin procesar en contextos de almacenamiento protegidos por credenciales (CE) y protegidos por dispositivos (DE) sin código estándar.BackupTransportMode: Especifica la topología de transporte de copias de seguridad de la plataforma que se simulará durante las pruebas, incluidasDEVICE_TO_DEVICE(migración de dispositivos físicos a través de USB o Wi-Fi Direct),CLOUD_ENCRYPTED(copia de seguridad en la nube con encriptación de extremo a extremo del cliente),CLOUD_UNENCRYPTED(copia de seguridad en la nube estándar) yLOCAL(copia de seguridad del sistema de archivos local sin conexión).@Devicey@Isolation: Son anotaciones de host para seleccionar dispositivos conectados que coincidan con números de serie, niveles de API o roles multidispositivo específicos, y configurar políticas de aislamiento de la zona de pruebas entre las ejecuciones de pruebas (IsolationPolicy.AUTOMATICfrente aIsolationPolicy.MANUAL).