Retaining applications and settings when flashing custom ROMs The one thing that's been keeping me from flashing a custom Jelly Bean ROM on my Verizon Galaxy S3 (SCH-I535) is the fact that, unlike OTA updates, when I update my phone with a custom ROM, I'll lose all of my apps and settings.

I don't want to have to reinstall and reconfigure all of my apps every time a new version of Android comes out.

What options are out there for backing up and restoring applications and application settings between custom ROMs?
Synopsis
Titanium Backup, is the most popular tool for everybody, not just for ROM Flashers, its for everybody, due to a large number of features such as:

Backing up user apps and their data
All backups are saved on the SD-Card (really, I should be calling this external storage to future proof this answer as SD-Card readers are in favour of getting dropped)
The capability to store up to fifty backups
Extract data from a CWM recovery image (via CWM's backup within recovery)
Freeze an app, and put it into a state of &quot;suspension&quot; such that, it gets removed from the app drawer temporarily.
Schedule backups on a regular automatic basis or via a widget, and by tapping on the widget, Titanium Backup will perform the backup.
There's far too much that you can do with it.

What is this Titanium Backup you speak of, in plain english?
Think of this as a &quot;Time Machine&quot; application, where a backup is instigated, to backup user applications and their application data, and then can &quot;revert&quot; back in case of unforseen circumstances or... playing Angry Birds, and got to a euphoric state of delight in getting the high score, and decided to backup Angry Birds and the high-score data in place, &quot;just in case&quot; a foul-up is made.
The tool is often used heavily by ROM flashers, have AOSP Gingerbread, decide to go to AOSP JB, backup the apps etc, flash the new AOSP JB, and restore the apps.
Astute readers will point out a vital step that I left out, where does the Titanium Backup come from then, The answer is quite simple, every time there's a new update to the Titanium Backup in which Google Play automatically updates, first things first, instinctively, always, I do the following,

Launch Titanium Backup
Hit 'Menu', tap on 'More'
Finally, tap on 'Create &quot;update.zip&quot;'
Select 'TitaniumBackup-w.x.y.zip' under the heading titled, 'Select the name of the output file:' (Latest version, is 5.6.0)
The zip file is created and saved onto the /sdcard/TitaniumBackup-5.6.0.zip, so, its' just a matter of adb pull on that file, unzip it, and install on to a newly flashed ROM, for example, in this case, AOSP JB, via the adb install method.

Then from there, after installing it, Titanium Backup will simply re-load the archived information about the backups already in place on the SD-Card.
The full information wiki can be found here on the developer's website, if any further information is required. Also take a look at our titanium tag.