Android uses multiple file system and its directory structure also differ for different manufacturers. So, the data location may vary for mobile phones. Each installed app has its own data directory assigned in Android, using the app's package name. There might be a similar directory on the external SD card, generally used by apps with larger amounts of data.
Applications in Android have a default data directory, which is /data/data/<package_name>. By default, the apps databases, settings, and all other data are stored in this folder. If an application have large amount of data to be stored, or if the device is low on internal memory, then it create and store data on SDCard (Android/data/<package_name>).
However, all applications can store data on the SDCard. They can use directory names according to requirement, and it accumulates space in SDCard, as data not always get deleted after un-installation of applications.
Following are the contents of the directory:
databases/: This directory stores app's databases
lib/: It has libraries and helpers for the app
files/: It is directory for other related files
shared_prefs/: Preferences and settings are stored in this directory.
cache/: Application cache is stored in cache directory.
System apps are stored in /system/app a privileged apps in /system/priv-app.
Normal and downloaded apps are stored in internal memory in /data/app.
Apps stored on external memory are contained in encrypted folder in /mnt/sdcard/.android_secure. As at runtime Android needs them to be decrypted, it will decrypt them and store a decrypted copy on tmpfs in /mnt/asec.