이제 Android 13 개발자 프리뷰를 사용할 수 있습니다. 지금 사용해 보시고 의견을 알려 주세요.

백업 및 복원 변경사항

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Android 12에서 실행되거나 Android 12를 타겟팅하는 앱에서 백업 및 복원의 작동 방식을 변경했습니다. Android 백업 및 복원에는 두 가지 형식이 있습니다.

  • 클라우드 백업: 사용자 데이터가 사용자의 Google Drive에 저장되므로 나중에 기존 기기나 새 기기에서 복원할 수 있습니다.
  • 기기 간(D2D) 전송: 사용자 데이터가 기존 기기에서 사용자의 새 기기로 직접 전송(예: 케이블 사용)됩니다.

데이터 백업 및 복원 방법에 관한 자세한 내용은 자동 백업으로 사용자 데이터 백업Android Backup Service로 키-값 쌍 백업을 참고하세요.

D2D 전송 기능 변경사항

Android 12 이상에서 실행되거나 Android 12 이상을 타겟팅하는 앱

  • android:allowBackup="false"를 지정하면 Google Drive 백업이 사용 중지되지만 앱의 D2D 전송은 사용 중지되지 않습니다.

  • XML 구성 메커니즘으로 포함 및 제외 규칙을 지정하면 더 이상 D2D 전송에 영향을 미치지 않지만 Google Drive 백업에는 여전히 영향을 미칩니다. D2D 전송 규칙을 지정하려면 다음 섹션에서 다루는 새 구성을 사용해야 합니다.

새로운 포함 및 제외 형식

Android 12 이상에서 실행되거나 Android 12 이상을 타겟팅하는 앱은 XML 구성에 다른 형식을 사용합니다. 이 형식은 클라우드 백업과 D2D 전송에 포함 및 제외 규칙을 별도로 지정하도록 하여 Google Drive 백업과 D2D 전송 간의 차이를 명확히 합니다.

원한다면 백업 규칙을 지정하는 데 사용할 수도 있습니다. 이 경우 이전 구성이 무시됩니다.

XML 형식 변경사항

다음은 Android 11 이하에서 백업 및 복원 구성에 사용되는 형식입니다.

<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>

다음은 형식의 변경사항을 굵게 표시하여 보여줍니다.

<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>

구성의 각 섹션(<cloud-backup>, <device-transfer>)에는 특정 전송 유형에만 적용되는 규칙이 포함되어 있습니다. 이를 통해 D2D 전송 중에 파일이나 디렉터리를 계속 전송하면서 Google Drive 백업에서 이를 제외하는 작업 등을 할 수 있습니다. 너무 커서 클라우드에 백업할 수 없지만 문제없이 기기 간에 전송할 수 있는 파일이 있는 경우에 유용할 수 있습니다.

<device-transfer> 섹션이 누락된 경우와 같이 특정 백업 모드 규칙이 없다면 백업되는 파일에 설명된 대로 no-backupcache 디렉터리를 제외한 모든 콘텐츠에 이 모드가 완전히 사용 설정됩니다.

앱은 <cloud-backup> 섹션에서 disableIfNoEncryptionCapabilities 플래그를 설정하여 사용자에게 잠금 화면이 있는 경우와 같이 암호화할 수 있는 경우에만 백업이 이뤄지도록 할 수 있습니다. 이 제약조건을 설정하면 사용자의 기기에서 암호화를 지원할 수 없는 경우 백업이 클라우드로 전송되는 것이 중지되지만 D2D 전송은 서버로 전송되지 않으므로 암호화를 지원하지 않는 기기에서도 계속 작동합니다.

앱의 매니페스트 플래그

매니페스트 파일에서 android:dataExtractionRules 속성을 사용하여 앱이 새 XML 구성을 가리키도록 합니다. 새 XML 구성을 가리키면 이전 구성을 가리키는 android:fullBackupContent 속성은 무시됩니다. 다음 코드 샘플은 새 매니페스트 파일 항목을 보여줍니다.

<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>