Definitions
- System App: an app that is installed on the (usually read-only) System partition (
/system
)
- User App: all others (installed in phone memory or on the internal/external sdcard)
User-Apps and System-Apps
Concerning System-Apps versus User-Apps, please see What are the differences between a system app and user app? as suggested by dymutaos.
Apps on SD
A special case are "Apps on SD". Starting with Android 2.2 (aka Fozen Yoghurt or, in short, Froyo), App2SD became a standard feature to the Android system. However, not all apps can be installed/moved to SD card this way, and for good reasons:
- the developer might decide to not permit it (see App Install Location in the Android developer documentation)
- certain functionalities do not permit it, as they would no longer work
In the second group belong...
- AutoStart: Apps could no longer be automatically started by the system (at
boot_completed
), as the SD card is only mounted after that event was broadcast
- when mounting the sdcard to a computer as USB storage, it is no longer available locally on the device -- hence the apps are no longer available -- hence they would be closed. Quoting from the mentioned source:
When the user enables USB mass storage to share files with a computer or unmounts the SD card via the system settings, the external storage is unmounted from the device and all applications running on the external storage are immediately killed.
- services offered by such apps would not be available because of the above
- Widgets will fail exactly because of the above reasons
- same issues for input method engines, live wallpapers, account-managers, sync-adapters, and more (all described on the above linked source)
Sure there are possibilities to force almost any app to SD (e.g. DroidSail has this ability) -- but that would break above mentioned features, if any such app offers them. Another alternative is offered by e.g. Link2SD (rooted devices only), which utilizes a separate partition for those apps -- a partition not mounted to the PC, so a few restrictions are circumvented.
Summary
Basically, there's no difference between the apps -- but it makes a difference where they are installed. Certain privileges are reserved to system apps only, as explained in this answer -- but system apps cannot be moved to sd. Apps on SD have certain restrictions, so not every app can be moved there -- but the good of it is: if an app can be moved there, it might save you valuable space on the internal storage, especially when that is limited (as it often is on low-end devices).