Reference

/data/data

/data/data is the directory on Android internal storage where each app keeps its private files, databases, shared preferences, and cache. Every package gets its own subfolder, isolated by a unique Linux UID, and the whole folder is deleted when the app is uninstalled.

Android developmentAndroid

/data/data

Also known as: android app data dir, private data folder, /data/data android

/data/data is the directory on Android internal storage where each app keeps its private files, databases, shared preferences, and cache. Every package gets its own subfolder, isolated by a unique Linux UID, and the whole folder is deleted when the app is uninstalled.

  • Holds each app's private files, databases, shared_prefs, and cache at /data/data/<package>.
  • Isolated by a unique Linux UID, so no other unrooted app can read it.
  • The entire folder is deleted automatically when the app is uninstalled.

What lives in /data/data

/data/data/<package> is the root of an app's private internal storage. Inside it the system creates standard subfolders: databases/ for SQLite files, shared_prefs/ for preference XML, files/ (returned by getFilesDir()), and cache/ (returned by getCacheDir()). These paths are the concrete bytes Android sums up under Settings > Apps > <app> > Storage.

Each app runs as its own Linux user, so the folder is owned by a unique UID and chmodded so no other app can read or write it. This sandboxing is enforced by the kernel, not just by the framework. On modern multi-user devices the same location is also surfaced as /data/user/0/<package>, which is a symlink-style alias for user 0.

Why you normally can't see it

Because the directory sits in the app's sandbox, an ordinary app, a file manager, or ADB without root cannot browse another package's /data/data subfolder. Only the owning app, the system, and a rooted shell have access. Apps interact with their own slice through Context methods like getFilesDir(), getCacheDir(), getDatabasePath(), and getSharedPreferences() rather than by hardcoding the path.

This is distinct from external storage (the user-visible /sdcard), where shared media lives. /data/data is strictly per-app private data, which is why clearing it or uninstalling the app affects only that one app.

What a cleaner can and cannot touch

A storage cleaner like Cleanor can read its own cache subfolder freely and can report total per-app data and cache sizes through StorageStatsManager, but it cannot reach into another app's /data/data folder to delete files directly. The platform deliberately blocks that.

What it can do is surface the clearable cache portion and route the user to the system's per-app storage screen, where Android exposes Clear cache (removes the cache subfolder) and Clear data (wipes the entire /data/data/<package> tree, resetting the app). The cleaner's job is to make that distinction obvious so users only delete what is safe.

Related terms

Keep reading the reference.

Act on it

Guides and tools for this topic.