This method will COMPLETELY move your apps from phone memory to sd card.
This method has been tested on a rooted Galaxy Ace running Froyo. This won't work with gingerbread.
You need your phone to be rooted.
(The Script file)
(Darktremor 18.104.22.168 Beta 04)
Either ADB to run commands on PC (android sdk) or Terminal app on phone
Please note that this script sleeps for 8 seconds at boot time to make sure that the SD card is loaded before mounting.
1. Backup all data, both on your phone and your SD card. Your sdcard will be wiped clean.
2. Partition your SD card as following: 1st partition FAT32, 2nd partition ext2. (you can start with 1-2 GB. Make sure that you use ext2 only, as ext3 and ext4 are not supported by the stock kernel)
-->Reboot into CWM recovery
-->In android system recovery, select partition sdcard
-->In the partition sdcard menu, select partition sd
-->Follow the instructions on the phone to partition your sd card. You can optionally set a swap file while you are partitioning your sd card.
For a complete guide to partition your sd card, go here
3. Insert your SD card and make sure that your phone recognizes it correctly.
Connect your phone in Mass Storage mode, then extract the contents of "a2sd_enabler.sh.zip" to your SD card root directory. Also copy dtapps2sd-2.zip to the root of the sd card & rename it as "update.zip"
4. Disconnect mass storage. Open command prompt, navigate to your android sdk->platform-tools folder and execute:
hit up terminal app & type:
5- Type in the following commands (try copy-paste each line then hit enter):
cp /sdcard/a2sd_enabler.sh /data/local/tmp/
chmod 755 /data/local/tmp/a2sd_enabler.sh
6. To double check everything, reboot your phone and login again as root through adb,(or hit the terminal app) then run the following command, and find a line similar to the highlighted line in the output below:
/dev: 142220K total, 12K used, 142208K available (block size 4096)
/mnt/asec: 142220K total, 0K used, 142220K available (block size 4096)
/cache: 25656K total, 12K used, 25644K available (block size 4096)
/data: 185240K total, 36768K used, 148472K available (block size 4096)
/system: 213376K total, 211520K used, 1856K available (block size 4096)
/system/sd: 1032088K total, 38512K used, 993576K available (block size 4096)
/mnt/sdcard: 6783016K total, 190356K used, 6592660K available (block size 4096)
/mnt/secure/asec: 6783016K total, 190356K used, 6592660K available (block size 4096)
7. Now you're good to go. Reboot into recovery and select "apply update" & then select file "update.zip". Reboot.
And you're done.
See the origin thread @Xda-developers here
If you have problems, please post them here.