Where app data is stored on Android depends on whether you mean app files, cache, or internal user data—and you’ll find the exact locations fast. This guide tells you the clear winner for where to check for each type of Android app data, from internal storage to external/media directories and system-controlled folders. If you need to locate data for troubleshooting, backups, or privacy checks, you’ll know exactly where it lives after the first read.
App data on Android is stored primarily in app-private folders on internal storage (typically under `/data/data/
Introduction
When people ask “Where is app data stored on Android?”, they usually mean one of three things: (1) what files are persistent (kept across app restarts and usually across device reboots), (2) what is cache/temporary (safe to delete if you understand the impact), and (3) what is stored externally where users or other apps might have visibility. Android splits storage into internal app-private directories, cache directories, and—in certain cases—app-specific external storage paths under `/storage/emulated/0/Android/data/

For business teams, IT administrators, and developers, understanding these locations matters for:
- Debugging data loss (e.g., clearing cache vs. uninstalling)
- Compliance and data governance (where personal or sensitive data lives)
- Forensics and incident response (how to safely inspect without corrupting apps)
- Performance (knowing what can be reclaimed vs. what must persist)
Below, we’ll walk through the exact common storage locations and what they typically contain, then explain how modern Android storage restrictions (scoped storage) change the picture.
Typical Android App Data Types vs. Storage Location (Practical Guide)
| # | Storage location (common) | Data types most often found | Persistence | Access scope | Operational risk |
|---|---|---|---|---|---|
| 1 | /data/data/<package>/databases/ | SQLite DB files (Room/SQLite), query history DBs | High | App-private | ★☆☆☆☆ |
| 2 | /data/data/<package>/shared_prefs/ | SharedPreferences XML (settings, tokens, feature flags) | High | App-private | ★★☆☆☆ |
| 3 | /data/data/<package>/files/ | Persistent app files, downloaded documents (internal), exports | High | App-private | ★★★☆☆ |
| 4 | /data/data/<package>/files/ (app-specific subdirs) | App-created subfolders (e.g., /files/cache_db_export) | Medium–High | App-private | ★★☆☆☆ |
| 5 | /data/data/<package>/cache/ | HTTP response cache, decoded bitmaps, temp processing outputs | Low–Medium | App-private | ★☆☆☆☆ |
| 6 | /storage/emulated/0/Android/data/<package>/cache/ | Cache for media/file experiences (when app uses external context) | Low–Medium | App-specific external | ★☆☆☆☆ |
| 7 | /storage/emulated/0/Android/data/<package>/files/ | User-visible documents/media created via external app directories | Medium | App-specific external | ★★☆☆☆ |
Internal Storage: app-private data directories
- Typical path: `/data/data/
/` *(app-only access)* - Contains: sensitive files like databases and shared preferences (via app context)
Android’s internal storage is the default for most persistent app data. The key principle is app-private isolation: by design, other apps can’t directly read these folders, even if they know the paths, because they run under different UIDs and are protected by Android’s permission model.
What you’ll usually find inside
Within `/data/data/
- `/databases/`: SQLite database files (e.g., created by Room or the standard SQLiteOpenHelper).
- `/shared_prefs/`: SharedPreferences XML (settings, feature flags, small bits of state).
- `/files/`: persistent application files (documents, exported content stored internally, app-specific state).
- `/no_backup/` (sometimes): files that aren’t included in Android’s automatic backups (depends on how the app writes them).
Business-relevant implications
- Security/compliance: Internal app-private data generally reduces unintended data exposure.
- Change management: Clearing user data/uninstalling typically removes `/data/data/
/` entirely for that app. - Forensics caution: Copying or modifying internal files can corrupt the app unless you stop the app and understand file locks and schema migrations.
Cache Storage: temporary files
- Typically stored under: `/data/data/
/cache/` - Cleared by the system when space is needed; safe to delete if you understand impact
Cache is designed to be recreatable. That said, “safe to delete” has a nuance: while Android may clear cache automatically, manually deleting cache can still cause additional network calls, slower startup, or reprocessing.
What cache typically contains
Cache directories often include:
- Decoded image/bitmap caches (to avoid re-decoding)
- HTTP response caches (if the app uses caching layers)
- Temporary exports or intermediate processing artifacts
- WebView cache (depending on how the app configures WebView)
When cache deletion is appropriate
- Debugging: If UI behavior seems stale or corrupted, flushing cache can eliminate stale resources.
- Storage pressure triage: If a device is low on space, cache cleanup helps.
When cache deletion is risky
- If the app erroneously stores important state in cache (some apps do), you may see login resets or missing offline data after cleanup. From a governance standpoint, this is exactly why the internal directory separation matters.
Files & Databases: persistent app data
- App files often live under: `/data/data/
/files/` - Databases and preferences may be in subfolders like `databases/` and `shared_prefs/`
If you’re looking for “the real data” behind an Android app, it’s usually under `files/`, `databases/`, and `shared_prefs/`. These locations are typically persistent across app restarts and generally not cleared unless the user clears app data or the app is uninstalled.
Databases (`/databases/`)
SQLite databases are frequently used for:
- Offline content (messages, catalog data, cached metadata)
- Application state that requires querying
- Audit/event tables within the app
Key detail: schema migrations can change table structures over time. Copying DB files between devices or app versions may fail or produce inconsistent states if the app expects a newer schema.
App files (`/files/`)
Files can include:
- Downloaded documents (when stored internally)
- Attachments imported for processing
- Serialized models or settings snapshots
Often, apps create subdirectories within `files/` to organize by feature (e.g., `files/reports/`, `files/attachments/`). Those subfolders are still under app-private protection.
SharedPreferences (`/shared_prefs/`)
SharedPreferences are typically small but important:
- User settings (theme, notifications)
- Feature flags or AB test toggles
- Sometimes session tokens or “last sync” markers
For security teams: SharedPreferences can be a place where sensitive metadata ends up if developers don’t use strong encryption (Android Keystore, EncryptedSharedPreferences). It’s not inherently “public,” but it’s still a target for attackers if the device is compromised.
External Storage: app-specific locations (when used)
- App-specific external path: `/storage/emulated/0/Android/data/
/` - Often used for media or files the user can access (permissions may apply)
Not all apps use external storage, and not all external storage paths are equally accessible. The most important idea is that Android distinguishes between:
- Internal app-private storage (default, protected)
- App-specific external directories (still scoped to your app, but on shared “emulated” storage)
- User media collections managed via MediaStore (depending on Android version and usage)
When an app needs files that are easier to back up externally, share with the user, or integrate with file managers, it may use app-specific external directories.
Common external subpaths
If an app uses the external app context APIs, you might see:
- `.../Android/data/
/cache/` - `.../Android/data/
/files/` - Sometimes app-specific subfolders for exported documents
What changes with user visibility
Files stored in app-specific external folders are generally not “fully public,” but they may be discoverable via file managers under appropriate conditions and may behave differently with device backups, syncing, and removable media scenarios.
Scoped storage & modern Android restrictions
- Many apps use scoped storage instead of broad external access
- Location and access depend on Android version and storage permissions
Modern Android (Android 10+ with scoped storage, and onward) restricts how apps access external storage. Practically, this means:
- Apps typically cannot freely browse shared external directories anymore.
- For user media (photos, audio, videos), apps are expected to use MediaStore with the appropriate permissions and filters.
- For non-media files, apps may rely on app-specific external directories or the system file picker and document APIs.
Why this affects “where app data is stored”
If you’re inspecting a phone and expecting to find everything under `/storage/emulated/0/`, you may miss important data:
- Many apps keep their critical state internally (`/data/data/
/...`). - External directories might contain only media exports, user-visible files, or caches.
Actionable guidance for teams
- When auditing storage usage, evaluate both internal app storage and app-specific external storage.
- Do not assume an app’s “data folder” corresponds to everything the app persists—modern apps often split responsibilities across internal DBs and external exports.
How to find your app’s storage location (practical steps)
- Use Android Studio Device File Explorer or ADB to inspect folders
- Check “Storage” in Settings to understand what’s counted as app data vs cache
If you need to confirm the actual storage location on a real device (especially across different Android versions and OEM skins), use these practical steps.
1) Android Studio Device File Explorer
- Connect the device
- Open Device File Explorer
- Navigate to paths under:
- `/data/data/
/` (requires appropriate debugging capability/permissions) - `/storage/emulated/0/Android/data/
/`
This is often the fastest way to visually confirm databases, preferences, and cached files.
2) ADB (for advanced inspection)
With ADB and appropriate privileges, you can inspect folder contents and sizes. Common workflows include:
- Listing directories to identify where the app keeps persistent items
- Checking cache vs files vs databases subfolders
(Exact commands vary by device security configuration, Android version, and whether you use root/shell capabilities. Avoid copying live files—stop the app first when possible.)
3) Settings → Storage (user-facing validation)
Android’s app storage UI helps you distinguish:
- App data (often persistent items and sometimes DB-backed caches)
- Cache (temporary/recreatable data)
This is valuable for:
- Estimating what users perceive as “used space”
- Understanding whether “Clear cache” would meaningfully reduce storage
4) Map files to app behavior
For operational accuracy, connect what you see on disk to runtime behavior:
- Clear cache → does the app refresh remote content?
- Clear storage/data → does it log out/reset?
- Uninstall/reinstall → does data disappear entirely?
This empirical approach is often more reliable than assumptions.
Conclusion
Android app data is mainly stored in internal app-private folders (commonly `/data/data/
Next, inspect your app’s folders using Android Studio/Device File Explorer or ADB, and cross-check with Settings → Storage to confirm what’s stored where—so you can debug reliably, manage storage responsibly, and avoid unintended data loss.
Frequently Asked Questions
What happens to app data when I install an Android app?
When you install an Android app, the app itself is stored in the device’s /data/app directory, while its private app data is stored under /data/data/
How can I find where my Android app data is stored on my phone?
App data is typically located at /data/data/
Where is downloaded content or media stored for Android apps?
Many apps store files like downloads, images, or exported documents in their app-specific directories inside internal storage, such as /storage/emulated/0/Android/data/
Why do I lose app data after uninstalling an app on Android?
By design, Android removes the app’s private data from /data/data/
Which is better for preserving Android app data: backup or keeping files in internal storage?
For most users, enabling Android backup (and app-specific cloud sync) is safer because it survives factory resets and device changes more reliably than internal app storage. Keeping files only in internal storage can be risky if the app is cleared or uninstalled, since the /data/data/
References
- Google Scholar Google Scholar
https://scholar.google.com/scholar?q=where+android+app+data+is+stored - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=android+internal+storage+app-specific+directory+data - https://scholar.google.com/scholar?q=android+external+storage+app-specific+directories Google Scholar
https://scholar.google.com/scholar?q=android+external+storage+app-specific+directories - Access app-specific files | App data and files | Android Developers
https://developer.android.com/training/data-storage/app-specific - Access app-specific files | App data and files | Android Developers
https://developer.android.com/training/data-storage/app-specific#external - https://developer.android.com/training/data-storage/files
https://developer.android.com/training/data-storage/files - Save simple data with SharedPreferences | App data and files | Android Developers
https://developer.android.com/training/data-storage/shared-preferences - Save data using SQLite | App data and files | Android Developers
https://developer.android.com/training/data-storage/sqlite - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=where+app+data+is+stored+android - where app data is stored android - Search results
https://en.wikipedia.org/wiki/Special:Search?search=where+app+data+is+stored+android