# android.app.backup

Added in[API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# android.app.backup

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/app/backup/package-summary "View this page in Kotlin")\|Java

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](https://developer.android.com/guide/topics/data/backup)guide.

<br />

All backup and restore operations are controlled by the[BackupManager](https://developer.android.com/reference/android/app/backup/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](https://developer.android.com/reference/android/app/backup/BackupAgent)or[BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper). The[BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)class provides a wrapper around[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)that simplifies the procedures to implement a backup agent by employing backup helpers such as[SharedPreferencesBackupHelper](https://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper)and[FileBackupHelper](https://developer.android.com/reference/android/app/backup/FileBackupHelper).

The backup APIs let applications:

- Perform backup of arbitrary data to remote storage
- Easily perform backup of[SharedPreferences](https://developer.android.com/reference/android/content/SharedPreferences)and files
- Restore the data saved to remote storage

## Interfaces

|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [BackupHelper](https://developer.android.com/reference/android/app/backup/BackupHelper) | Defines the calling interface that[BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)uses when dispatching backup and restore operations to the installed helpers. |

## Classes

|---------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)                                     | Provides the central interface between an application and Android's data backup infrastructure.                                                                                                                                                                                                                                                                                                          |
| [BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)                         | A convenient[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)wrapper class that automatically manages heterogeneous data sets within the backup data, each identified by a unique key prefix.                                                                                                                                                                        |
| [BackupDataInput](https://developer.android.com/reference/android/app/backup/BackupDataInput)                             | Provides the structured interface through which a[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)reads information from the backup data set, via its[onRestore()](https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor))method.                            |
| [BackupDataInputStream](https://developer.android.com/reference/android/app/backup/BackupDataInputStream)                 | Provides an[InputStream](https://developer.android.com/reference/java/io/InputStream)-like interface for accessing an entity's data during a restore operation.                                                                                                                                                                                                                                          |
| [BackupDataOutput](https://developer.android.com/reference/android/app/backup/BackupDataOutput)                           | Provides the structured interface through which a[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)commits information to the backup data set, via its[onBackup()](https://developer.android.com/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor))method. |
| [BackupManager](https://developer.android.com/reference/android/app/backup/BackupManager)                                 | The interface through which an application interacts with the Android backup service to request backup and restore operations.                                                                                                                                                                                                                                                                           |
| [FileBackupHelper](https://developer.android.com/reference/android/app/backup/FileBackupHelper)                           | A helper class that can be used in conjunction with[BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)to manage the backup of a set of files.                                                                                                                                                                                                              |
| [FullBackupDataOutput](https://developer.android.com/reference/android/app/backup/FullBackupDataOutput)                   | Provides the interface through which a[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)writes entire files to a full backup data set, via its[BackupAgent.onFullBackup(FullBackupDataOutput)](https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput))method.                                   |
| [FullRestoreDataInput](https://developer.android.com/reference/android/app/backup/FullRestoreDataInput)                   | Provides the interface through which a[BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)reads entire files from a full backup data set, via its[BackupAgent.onRestoreFile(FullRestoreDataInput)](https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.app.backup.FullRestoreDataInput))method.                                |
| [RestoreObserver](https://developer.android.com/reference/android/app/backup/RestoreObserver)                             | Callback class for receiving progress reports during a restore operation.                                                                                                                                                                                                                                                                                                                                |
| [SharedPreferencesBackupHelper](https://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper) | A helper class that can be used in conjunction with[BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)to manage the backup of[SharedPreferences](https://developer.android.com/reference/android/content/SharedPreferences).                                                                                                                               |

-

  ## Interfaces

  - [BackupHelper](https://developer.android.com/reference/android/app/backup/BackupHelper)
-

  ## Classes

  - [BackupAgent](https://developer.android.com/reference/android/app/backup/BackupAgent)
  - [BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper)
  - [BackupDataInput](https://developer.android.com/reference/android/app/backup/BackupDataInput)
  - [BackupDataInputStream](https://developer.android.com/reference/android/app/backup/BackupDataInputStream)
  - [BackupDataOutput](https://developer.android.com/reference/android/app/backup/BackupDataOutput)
  - [BackupManager](https://developer.android.com/reference/android/app/backup/BackupManager)
  - [FileBackupHelper](https://developer.android.com/reference/android/app/backup/FileBackupHelper)
  - [FullBackupDataOutput](https://developer.android.com/reference/android/app/backup/FullBackupDataOutput)
  - [FullRestoreDataInput](https://developer.android.com/reference/android/app/backup/FullRestoreDataInput)
  - [RestoreObserver](https://developer.android.com/reference/android/app/backup/RestoreObserver)
  - [SharedPreferencesBackupHelper](https://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper)