How to fully backup non-rooted devices?
Solution Available for 4.0+ Devices:
For 4.0+ devices there is a solution called &quot;adb backup&quot;.
Note: This only works for apps that do not disallow backup!
Apps that disallow backup are simply ignored when creating a backup using this way.
This makes use of adb so you have to have the Android Software Development Kit (SDK) installed on your computer (on some Linux distributions: just packages android-tools-adb and android-tools-adbd).
NOTE: This solution will not back up and restore contact, SMS or calendar information
The options for the adb command are:
adb backup [-f &lt;file&gt;] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|nosystem] [-keyvalue|-nokeyvalue] [&lt;packages...&gt;]


-f : the path of the *.ab file that will be saved on your computer. This file is a compressed file that contains an archive of the data/apks from your device.
-apk|-noapk : indicates if the *.apk files should be backed up (default is -noapk)
-obb|-noobb : enable/disable backup of any installed apk expansion (aka .obb) files associated with each application (default is -noobb)
-shared|-noshared: enable/disable backup of the device's shared storage / SD card contents (default is -noshared)
-all : indicates that you want the entire system backed up. you can use the packages filter to just backup specific packages, or use -all for a full system backup.
-system|-nosystem: indicates if all the system applications and data are included when backing up. (default is -system)
-keyvalue|-nokeyvalue: include apps that perform key/value backups. (default -nokeyvalue)
&lt;packages&gt; : this is where you can list specific packages to backup. Use these if you want to back up only specific applications. If using -all, you do not need to specify packages.


How to backup your device:
First, you need to enable &quot;USB debugging&quot; on you Android device:

Go to &quot;About device&quot; (or &quot;About phone&quot; or &quot;About tablet&quot;) section in Settings
Tap 7 times on &quot;Build number&quot; row (usually the last row). After that &quot;Developer options&quot; section will appear in Settings



Go to &quot;Developer options&quot; section in Settings
Tap the &quot;USB Debugging&quot; checkbox


Second, on your PC from the command prompt you will need to be able to locate both the adb command and your backup file. The easiest way to do this is to run the adb command from the directory where adb is located.
In Windows Explorer navigate to where you installed the Android SDK and SHIFT+RIGHT CLICK on the platform-tools folder.

This will open a command prompt (your window will look different than mine).
In Mac's Terminal you can type cd  and then drag the folder platform-tools folder from finder to the terminal window and the path will be inserted. Hit  and you will be in the right place.
In Linux, I hope you know how to locate and cd to the parent directory of the adb command. You are using Linux after all.
From here type the following command:
Windows:
adb backup -apk -shared -all -nosystem -f backup08262012.ab

Linux &amp; Mac
./adb backup -apk -shared -all -nosystem -f backup08262012.ab
## Notice that -all doesn't mean ALL. See the big bold NOTE at the top of this answer.
## You can also include -system and -keyvalue to be able to backup and restore *some* system settings.
# drop the `./` in the command if you are using `android-tools-adb` package

(if you want to store the backup in a different directory, include a path for the &quot;.ab&quot; file as shown in the screenshot below.)

You will then be prompted on your device for a password (this is used to encrypt the backup):

To restore, it works almost the same way.
Windows:
adb restore backup08262012.ab

Linux &amp; Mac
./adb restore backup08262012.ab

Then you will be prompted for your password to restore on the device:


Now for the shameless self promotion:
Droid Explorer (v0.8.8.7+) will be able to handle this for 4.0+ devices. While Droid Explorer is currently optimized for Rooted devices, this functionality will work for non-rooted devices as well.
Droid Explorer will do full backups of the device and save them in %USERPROFILE%\Android Backups&lt;/code&gt;. Within that folder is a folder named for the device, and inside that folder are the backups.

Double clicking on the Android Backup file will allow you to restore your device from the backup file.