Android has specific rules regarding the installation of applications and their physical location. It works like and hierarchical structure:
- If the app has a specified location by the developer, this takes priority.
- If it is not specified in the app, then the default install location is used.
Android has 3 identifiers for app storage location: that may be mentioned on the application manifest android:installLocation:
The application must be installed on the internal device storage only. If this is set, the application will never be installed on the external storage. If the internal storage is full, then the system will not install the application.
The application may be installed on the external storage, but the system will install the application on the internal storage by default. If the internal storage is full, then the system will install it on the external storage.
The application prefers to be installed on the external storage (SD card). There is no guarantee that the system will honor this request. The application might be installed on internal storage if the external media is unavailable or full, or if the application uses the forward-locking mechanism (not supported on external storage).
Old applications may have no choice but to install on the internal storage, as per the Google Documentation:
The ability for your application to install on the external storage is a feature available only on devices running API Level 8 (Android 2.2) or greater. Existing applications that were built prior to API Level 8 will always install on the internal storage and cannot be moved to the external storage (even on devices with API Level 8).
What can I do?
You can manage the installed applications and set their storage location, all from one place:
- Tap "home" to return to your device home screen;
- Tap your device "menu" button;
- Depending on your device, you either have to:
- Tap "Manage apps";
- Tap "Settings" > "Applications" > "Manage applications".
- Now access the third tab where it reads "USB Storage" or "On SD card" (again, varies with the device);
- Here are listed all the applications that are allowed to be moved to your External Storage, tab over one to bring up more options about it;
- When the application details panel opens, you have a button "Move to SD card", use it to move that application to your External Storage;
- Press "back" to return to the list. If you've moved the app to the external memory, you will notice that a green tick is present on the right side on the list, to let you know that the application file is currently on your External Storage.
This is a safe guide to have your OS managing the applications and moving then from Internal Storage to External Storage without hacks or tricks. You can read all about it on the Google Official Documentation.