Stay organized with collections
Save and categorize content based on your preferences.
android.app.backup
Contains the backup and restore functionality available to
applications. If a user wipes the data on their device or upgrades to a new Android-powered
device, all applications that have enabled backup can restore the user's previous data when the
application is reinstalled.
For more information, see the Data Backup guide.
All backup and restore operations are controlled by the BackupManager
. Each application that would
like to enable backup and preserve its data on remote storage must implement a
backup agent. A backup agent can be built by extending either BackupAgent
or BackupAgentHelper
. The BackupAgentHelper
class provides a wrapper around BackupAgent
that simplifies the procedures to implement a backup agent by
employing backup helpers such as SharedPreferencesBackupHelper
and
FileBackupHelper
.
The backup APIs let applications:
- Perform backup of arbitrary data to remote storage
- Easily perform backup of
SharedPreferences
and files
- Restore the data saved to remote storage
Interfaces
Classes
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[],[],null,["# android.app.backup\n\nAdded in [API level 8](/guide/topics/manifest/uses-sdk-element#ApiLevels) \n\nandroid.app.backup\n==================\n\n*** ** * ** ***\n\n[Kotlin](/reference/kotlin/android/app/backup/package-summary \"View this page in Kotlin\") \\|Java\n\nContains the backup and restore functionality available to\napplications. If a user wipes the data on their device or upgrades to a new Android-powered\ndevice, all applications that have enabled backup can restore the user's previous data when the\napplication is reinstalled.\n\nFor more information, see the [Data Backup](/guide/topics/data/backup) guide.\n\n\nAll backup and restore operations are controlled by the [BackupManager](/reference/android/app/backup/BackupManager). Each application that would\nlike to enable backup and preserve its data on remote storage must implement a\nbackup agent. A backup agent can be built by extending either [BackupAgent](/reference/android/app/backup/BackupAgent)\nor [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper). The [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper) class provides a wrapper around [BackupAgent](/reference/android/app/backup/BackupAgent) that simplifies the procedures to implement a backup agent by\nemploying backup helpers such as [SharedPreferencesBackupHelper](/reference/android/app/backup/SharedPreferencesBackupHelper) and\n[FileBackupHelper](/reference/android/app/backup/FileBackupHelper).\n\nThe backup APIs let applications:\n\n- Perform backup of arbitrary data to remote storage\n- Easily perform backup of [SharedPreferences](/reference/android/content/SharedPreferences) and files\n- Restore the data saved to remote storage\n\nInterfaces\n----------\n\n|------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [BackupHelper](/reference/android/app/backup/BackupHelper) | Defines the calling interface that [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper) uses when dispatching backup and restore operations to the installed helpers. |\n\nClasses\n-------\n\n|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [BackupAgent](/reference/android/app/backup/BackupAgent) | Provides the central interface between an application and Android's data backup infrastructure. |\n| [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper) | A convenient [BackupAgent](/reference/android/app/backup/BackupAgent) wrapper class that automatically manages heterogeneous data sets within the backup data, each identified by a unique key prefix. |\n| [BackupDataInput](/reference/android/app/backup/BackupDataInput) | Provides the structured interface through which a [BackupAgent](/reference/android/app/backup/BackupAgent) reads information from the backup data set, via its [onRestore()](/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)) method. |\n| [BackupDataInputStream](/reference/android/app/backup/BackupDataInputStream) | Provides an [InputStream](/reference/java/io/InputStream)-like interface for accessing an entity's data during a restore operation. |\n| [BackupDataOutput](/reference/android/app/backup/BackupDataOutput) | Provides the structured interface through which a [BackupAgent](/reference/android/app/backup/BackupAgent) commits information to the backup data set, via its [onBackup()](/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor)) method. |\n| [BackupManager](/reference/android/app/backup/BackupManager) | The interface through which an application interacts with the Android backup service to request backup and restore operations. |\n| [FileBackupHelper](/reference/android/app/backup/FileBackupHelper) | A helper class that can be used in conjunction with [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper) to manage the backup of a set of files. |\n| [FullBackupDataOutput](/reference/android/app/backup/FullBackupDataOutput) | Provides the interface through which a [BackupAgent](/reference/android/app/backup/BackupAgent) writes entire files to a full backup data set, via its [BackupAgent.onFullBackup(FullBackupDataOutput)](/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)) method. |\n| [FullRestoreDataInput](/reference/android/app/backup/FullRestoreDataInput) | Provides the interface through which a [BackupAgent](/reference/android/app/backup/BackupAgent) reads entire files from a full backup data set, via its [BackupAgent.onRestoreFile(FullRestoreDataInput)](/reference/android/app/backup/BackupAgent#onRestoreFile(android.app.backup.FullRestoreDataInput)) method. |\n| [RestoreObserver](/reference/android/app/backup/RestoreObserver) | Callback class for receiving progress reports during a restore operation. |\n| [SharedPreferencesBackupHelper](/reference/android/app/backup/SharedPreferencesBackupHelper) | A helper class that can be used in conjunction with [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper) to manage the backup of [SharedPreferences](/reference/android/content/SharedPreferences). |\n\n-\n\n Interfaces\n ----------\n\n - [BackupHelper](/reference/android/app/backup/BackupHelper)\n-\n\n Classes\n -------\n\n - [BackupAgent](/reference/android/app/backup/BackupAgent)\n - [BackupAgentHelper](/reference/android/app/backup/BackupAgentHelper)\n - [BackupDataInput](/reference/android/app/backup/BackupDataInput)\n - [BackupDataInputStream](/reference/android/app/backup/BackupDataInputStream)\n - [BackupDataOutput](/reference/android/app/backup/BackupDataOutput)\n - [BackupManager](/reference/android/app/backup/BackupManager)\n - [FileBackupHelper](/reference/android/app/backup/FileBackupHelper)\n - [FullBackupDataOutput](/reference/android/app/backup/FullBackupDataOutput)\n - [FullRestoreDataInput](/reference/android/app/backup/FullRestoreDataInput)\n - [RestoreObserver](/reference/android/app/backup/RestoreObserver)\n - [SharedPreferencesBackupHelper](/reference/android/app/backup/SharedPreferencesBackupHelper)"]]