[EVO 4G Android Development] tkirton:
This is the common confusion that happened when Froyo was released.

Starting with Froyo, Google included an implementation of Apps2SD that uses the existing FAT32 partition on your SD card. It creates a special folder on your SD card that is normally hidden (most File Managers can see it, though). The options you are seeing regarding moving apps to SD card is from this version of Apps2SD.

This version only moves applications. Dalvik-cache is still left in internal storage and can eat away at your phone storage, even with applications on your SD card. Plus, program data is also left on internal storage, so any web browsing and additional program information will eat away at your internal storage.

The plus side on this implementation is you don't need to know anything else and you don't need to root. Plus, if the programs are compiled using at least Froyo SDK, you can choose which programs move to SD card and which ones stay (some programs will automatically move to the SD card...Angry Birds is one example).

The minus is that some report is that it is a slower implementation of Apps2SD, plus you can't move dalvik-cache or program data. Also, this implementation is only available in version 2.2 and greater (Froyo, Gingerbread). Also, unless programs were recompiled using the Froyo or Gingerbread SDK, they will not move to the SD card without using a third party program or a rom that is designed to force the move.

Classic Apps2SD (also knows as A2SD+, Apps2EXT, SD-EXT) is an implementation that has existed since Cupcake (version 1.5..it may have existed before that). This implementation uses a native Linux (EXT2, EXT3 or EXT4) partition you create on your SD card to move your applications to. The benefit to this is that since Android's kernel is Linux, there is no special instructions to get applications to run in this partition. The trick to this implementation is that it uses a well-documented Linux function called Symbolic Links. Symbolic links perform a similar function as shortcuts do in Windows. The application directory is not located in internal storage, but on the SD card. A pointer file is created to redirect any programs to reference the SD card. This function is behind the scenes...Android will always think it is saving to internal storage when it is really saving to the SD card.

The plus side to this is that some people claim operations are faster in this implementation (since it is using native Linux filesystem). Also, using the same redirections, other files can be put on the SD card (dalvik-cache [Dalvik2SD, Cache2SD] and program data [Data2SD]), freeing up more internal space. Plus, it is compatible with all versions of Android.

The minus side to this is that you would have to repartition your SD card into two partitions (EXT2 / EXT3 / EXT4, and FAT32). You will need to root your phone. Stock roms (or the original software that came on your phone) will not work with this implementation unless it is modified. Also, you will need a third-party implementation (most roms have some form of Apps2SD/Apps2EXT implementation, so this is not usually a concern). You will usually not be able to pick and choose which program to send to external storage...it's usually all or nothing.