Android introduced the ability to install applications on the phone’s external storage (referred to henceforth as ES) back in 2.2.
This is accomplished using the android:installLocation attribute in the manifest file.
Google also provided guidelines on when not to install on ES.
My question then is this, how does Android determine how much of an app stays on the internal storage and what gets transferred to ES?
For example I’ve seen apps that are 3MB in size when on internal storage and getting reduced to only 1.5MB when its transferred to ES.
And then you can see apps that are 13MB when on internal storage but get reduced < 200K when transferred to ES.
Are there some internal mechanics that a programmer can use to maximize the amount installed to ES? Perhaps a way to mark classes, resources, etc to inform the compiler that they can be safely transferred to ES?
Thanks in advance.
Before 2.3, native code could not be moved to the SD card, for some games and certain apps (Nook for Android) native code can be huge. So this resulted in the APK file only being moved to the SD card. The .so native code file which is extracted from the .APK was kept on the device.
There is no way to market certain files for installation on the SD card.