Force Google Maps to save cached maps on SD card I am downloading a large number of map areas in Google Map for offline use. It appears that, by default, Google Map writes its cache to my phone's relatively scarce internal memory. Is there a way to force Google Maps to use SD card instead?

I am using Google Maps 6.7.0 (latest version as of May 2012) on Android 2.3.3.
Update to Maps 6.9.0 (released 2012-06-27) or later if you not already have done so. Google added the feature one you wanted:


  What's in this version:
  * Save maps for use offline


Besides this: Cached tiles for Google Maps are saved to the SD card.

To also answer your exact question (for users that cannot upgrade): 

Use Android's provided 'move to sdcard' mechanism or install some 3rd party apps to do it (Link2SD, App2SD skripts, most need a custom rom however).

If all above is not an option and you like to do it manually:

Prerequisites:


Root access
Know which directory you want to move
Be sure that directory doesn't contain executables
Awareness: /sdcard/ is world-readable and many apps can write to it.
You might not want to expose sensitive data to other apps 
Be sure the app is not running.
If something breaks, you might fix it by clearing the appdata  
The app might break if sdcard is not accessible (e.g. phone plugged into PC)


A. You need to find the package name of your desired app (just reverse the steps here, aka go to the Google Play website of the app and see the package name in the browser's URL, for Maps it's 'com.google.android.apps.maps').
The location for the app's internal data is then: /data/data/[PKG_NAME]

B. Find the big subdirectory that you want to move, use a terminal emulator or adb shell access to execute something like this on the device:

me@workstation:~$ adb shell
root@android:/ # cd /data/data/com.google.android.apps.maps
root@android:/data/data/com.google.android.apps.maps # du -sh *
8.5K    app_sslcache
9.0K    cache
55.0K   databases
52.0K   files
2.0K    lib
2.5K    shared_prefs


C. Move &amp; symlink


mkdir -p /sdcard/Android/data/[PKG_NAME]/linked 
mv /data/data/[PKG_NAME]/[BIG_DIR] /sdcard/Android/data/[PKG_NAME]/linked/[BIG_DIR]
ln -s /sdcard/Android/data/[PKG_NAME]/linked/[BIG_DIR] /data/data/[PKG_NAME]/[BIG_DIR]