老外的一段解释
--------------------------------------------------------------------------------------------------------------------------------------------
The storage in your device is partitioned, so as example I have 32GB of storage:
name | fs type | size
/system | ext4 | 591MB
: is the partition where the ROM is stored, it's mounted read only so you can't normally write there
/data | ext4 | 1.5GB
: is the partition called "Internal storage", it's used to store apps and it's data.
/storage/sdcard0 | vfat | 27GB
: it's an emulated sd card, so even if it's part of the same physical storage it's seen by the os as an sd card.
then there are other minor partitions.
Some manufacturers choose to not enable move to sd card for the emulated sd card, some enable it, it's not a bug just a choice.
As for your question, you didn't mention how big is the app you want to move and also to move an app to sd android creates a file that it's an encrypted ext4 filesystem which contains the app, so it might require more space than the original app size plus maybe there are checks to leave some free space in the sdcard.
To have a quick look at how your storage is partitioned you can install from Play Store "Partition Table" or the program mentioned by @Lunation Studios
Refer:http://stackoverflow.com/questions/25361238/difference-between-internal-sd-card-and-internal-storage
---------------------------------------------------------------------------------------------------------------------------------------------------
Your data storage options are the following:
- Shared Preferences
- Store private primitive data in key-value pairs.
- Internal Storage
- Store private data on the device memory.
- External Storage
- Store public data on the shared external storage.
- SQLite Databases
- Store structured data in a private database.
- Network Connection
- Store data on the web with your own network server.
http://developer.android.com/guide/topics/data/data-storage.html