Android offers several local storage options for different needs — Room/SQLite (structured data), DataStore/SharedPreferences (key-value settings), files, and more. Choosing the right one based on the data's nature is important.
Storage options
ROOM (over SQLite) → relational DATABASE for STRUCTURED data, queries, relationships:
→ the recommended way to store significant structured/relational data locally
DATASTORE → modern KEY-VALUE (and typed) storage for preferences/settings:
→ replaces SharedPreferences; coroutine/Flow-based, safer
SHARED PREFERENCES → older key-value storage (simple settings) — being superseded by
DataStore
FILES → internal/external storage for files (app data, media, documents)
KEYSTORE / EncryptedSharedPreferences → SECURE storage for sensitive data (keys, tokens)
