Prepárate para 12L, una actualización de funciones para pantallas grandes que se lanzará a principios del próximo año. Pruébala hoy.

Cambios en copias de seguridad y restablecimiento

Se realizaron cambios en la manera en que funcionan la copia de seguridad y el restablecimiento en apps que se ejecutan en Android 12 y se orientan a esta versión. La copia de seguridad y el restablecimiento de Android tienen dos formatos:

  • Copias de seguridad en la nube: Los datos del usuario se almacenan en Google Drive de un usuario para que después se puedan restablecer en ese dispositivo o en uno nuevo.
  • Transferencias de un dispositivo a otro (D2D): Los datos del usuario se envían directamente a su dispositivo nuevo desde su dispositivo anterior, por ejemplo, mediante un cable.

A fin de obtener más información para crear una copia de seguridad de los datos y restablecerlos, consulta Cómo crear una copia de seguridad automática para los datos del usuario y Cómo crear una copia de seguridad de los pares clave-valor con Android Backup Service.

Cambios en la funcionalidad de la transferencia de D2D

Apps que se ejecutan en Android 12 y versiones posteriores, y se orientan a estas:

  • Si especificas android:allowBackup="false", se inhabilitan las copias de seguridad en Google Drive, pero no las transferencias de D2D para la app.

  • Si especificas las reglas de inclusión y exclusión con el mecanismo de configuración de XML, ya no se afectará a las transferencias de D2D, aunque sí a las copias de seguridad en Google Drive. Si deseas especificar reglas para las transferencias de D2D, debes usar la configuración nueva, que se trata en la siguiente sección.

Formato nuevo de inclusión y exclusión

Las apps que se ejecutan en Android 12 y versiones posteriores, y se orienten a estas usan un formato diferente para la configuración de XML. Este formato logra que sea explícita la diferencia entre la copia de seguridad en Google Drive y la transferencia de D2D, ya que requiere que especifiques por separado las reglas de inclusión y exclusión para las copias de seguridad en la nube y para las transferencias de D2D.

De forma opcional, también puedes usar este formato con el fin de especificar reglas para las copias de seguridad; en ese caso, se ignora la configuración anterior.

Cambios en el formato XML

El siguiente formato se usa para configurar las copias de seguridad y el restablecimiento en Android 11 y versiones anteriores:

<full-backup-content>
    <include domain=["file" | "database" | "sharedpref" | "external" |
                     "root"] path="string"
    requireFlags=["clientSideEncryption" | "deviceToDeviceTransfer"] />
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                     "root"] path="string" />
</full-backup-content>

A continuación, se muestran en negrita los cambios en el formato.

<data-extraction-rules>
  <cloud-backup [disableIfNoEncryptionCapabilities="true|false"]>
    ...
    <include domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
  </cloud-backup>
  <device-transfer>
    ...
    <include domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
    <exclude domain=["file" | "database" | "sharedpref" | "external" |
                        "root"] path="string"/>
    ...
  </device-transfer>
</data-extraction-rules>

Cada sección de la configuración (<cloud-backup>, <device-transfer>) incluye reglas que se aplican solo a ese tipo particular de transferencia. De esta manera, por ejemplo, puedes excluir un archivo o un directorio de las copias de seguridad en Google Drive mientras todavía lo estás enviando durante transferencias de D2D. Es posible que sea útil si tienes archivos que son demasiado grandes para crear una copia de seguridad en la nube, pero que se pueden transferir entre dispositivos sin problemas.

Si no se establecen reglas para un modo particular de copia de seguridad, como si faltara la sección <device-transfer>, ese modo se habilita por completo para todo el contenido, excepto los directorios no-backup y cache, como se describe en Archivos con copia de seguridad.

La app puede configurar la marca disableIfNoEncryptionCapabilities en la sección <cloud-backup> para asegurarse de que la copia de seguridad se cree solo si se puede encriptar, por ejemplo, cuando el usuario tiene una pantalla de bloqueo. Establecer esta restricción impide que las copias de seguridad se envíen a la nube si el dispositivo del usuario no es compatible con la encriptación. Sin embargo, como las transferencias de D2D no se envían al servidor, funcionarán incluso en dispositivos que no admitan la encriptación.

Marca del manifiesto para apps

Orienta las apps a la configuración nueva de XML mediante el atributo android:dataExtractionRules en el archivo de manifiesto. Cuando lo haces, se ignora el atributo android:fullBackupContent que se orienta a la configuración anterior. En la siguiente muestra de código, se observan las entradas nuevas en el archivo de manifiesto:

<application
    ...
    <!-- The below attribute is ignored. -->
    android:fullBackupContent="old_config.xml"
    <!-- You can point to your new configuration using the new
         dataExtractionRules attribute . -->
    android:dataExtractionRules="new_config.xml"
    ...>
</application>