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-backup
및 cache
디렉터리를 제외한 모든 콘텐츠에 이 모드가 완전히 사용 설정됩니다.
앱은 <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>