All I can offer is the source code for android.app.BackupAgent
and the source code for android.backup.BackupManager
.
BackupAgent
is an abstract class and according to the javadoc in the source it "is the central interface between an application and Android's settings backup mechanism." It has abstract onBackup()
and onRestore()
methods.
There is also BackupManager
. The javadoc says "BackupManager
is the interface to the system's backup service. Applications simply instantiate one, and then use that instance to communicate with the backup infrastructure." It has a dataChanged()
method to call to schedule a backup and a beginRestoreSession()
method to start a restore.
Now, the interesting things in the code for BackupManager
are:
*
* @hide pending API solidification
*/
and:
/** @hide TODO: REMOVE THIS */
public static final boolean EVEN_THINK_ABOUT_DOING_RESTORE = true;
So it seems that this is still a work in progress and the EVEN_THINK_ABOUT_DOING_RESTORE
member variable is an easy way to disable backup functionality. My guess is that it is disabled in production Android builds.