Which Android Data Storage Technique to use?

Different Storage options in Android

enter image description here


Content Providers

enter image description here

  • Consider the structured data added to the device from application1 is
    not accessible to another application2 present in the same device but
    the profile photo added to the device by application1 is available to
    the application2 running in the same device

  • Consider android device as a city, the applications in it are the
    houses in the city, people in the houses(application) are the data.
    Now content provider is like an broker in the city(android device).
    This broker provide access for the people in the city for finding
    different houses referring as the content provider in the android
    device provide access for the data in the device for different
    applications.


Shared Preferences

enter image description here

  • Consider I have an App say a Face book App which I use to log in to
    my account.

  • Now the very first time I enter my username and password to get
    access to my account. Say I log out of the application an hour later
    again I use the same Face book App to login again to my application.

  • I have to enter username and password again to login to my account
    and I set a theme to my application and other settings on how my app
    looks in my current phone

  • This is un-necessary because consider I am using my phone to login to
    the application. So I will always use my phone to login again and
    again, thus entering my credentials again and again is more work
    shows it’s not a user friendly app

  • Shared Preferences is very handy in such scenarios where I can use
    its feature to share my data in a xml file Which physically exists in
    the Android app installed in my phone which is not destroyed even if
    the app is closed. Here we can save user preferences data of the
    current application.

  • As a result next time I open my app in my phone I can see the data
    automatically filled in the necessary fields and the settings are


File Storage

enter image description here

  • In Android we can use the device storage space to store the data in
    it for the applications. The type of data involves things such as a
    text file, image file, video file, audio file etc.

  • As seen in the figure as we can see that there are two places we can
    do this. One way is to write the raw files into primary /secondary
    storage. Another way is to write the cache files into the
    primary/secondary storage.

  • There is also difference between storing raw data and the cache data,
    the raw data once stored in memory by user has to be explicitly
    deleted by the user explicitly otherwise it would exist till then.
    Cache data stored in memory is not a permanent data because the
    system automatically deletes it if it feels there is shortage of
    memory.

enter image description here

Internal Storage:

  • Consider a user in an application has stored data in internal
    storage, then only that user of that application has access to that
    data on the mobile and that data is automatically deleted when the
    user uninstalls the application. Speaking of which internal memory is
    private.

  • The apps internal storage directory is stored using the name package
    name in a special place in the android file system.

  • Other apps or users of current app have no access to the file set by
    a particular user and a particular app unless it is explicitly made
    available to the user for readable/writable access.

enter image description here


SQLite

enter image description here

  • Sqlite is used to store more structured data locally in a mobile
    where the android app is running. Structured data involves as of
    which shown in the figure like a student’s information in the form of
    rows and columns.

  • Sqlite offers similar functionality like Mysql and oracle but with
    limited functional features. Some of the things involve performing
    query operations on tables. There are features though like creating
    views but also some features are not available like stored procedure.

  • Sqlite is very helpful in storing complex and large data which can be
    downloaded once and can be used again and again until the application
    is running. When the application is closed the sqlite database is
    also destroyed.


Putting all the pieces together

enter image description here

Leave a Comment