Ways of Data Storage and Retrieval in Android App

download Ways of Data Storage and Retrieval in Android App

of 2

Transcript of Ways of Data Storage and Retrieval in Android App

  • 8/13/2019 Ways of Data Storage and Retrieval in Android App

    1/2

    Ways of Data Storage and Retrieval in Android App

    1. Shared Preferences:The SharedPreferences class provides a general framework that allows us to

    save and retrieve persistent key-value pairs of primitive data types. We can

    use SharedPreferences to save any primitive data: booleans, floats, ints, longs,

    and strings. This data will persist across user sessions (even if the application is

    killed).

    Shared preferences are for quick access and are loaded in the memory for fast

    access along with the application. So if we try to store large amount of data in

    shared preference, it is going to cause some more usage of critical memory of the

    app (and I guess if too big to store in memory some swapping would happen

    causing performance impacts).Better to use DB/file system/web server for huge

    data by storing small quantities of information that are very often accessed by

    the app we can in-fact increase the application performance.

    2. Internal Storage:We can store data items to the internal storage on the users devices. The

    advantage to this is that it does not rely on any external media, but the

    disadvantage is that some devices have extremely limited amounts of storage

    space available. Storing to internal memory essentially means saving data files

    within the internal device directory structure. When we save files to the internal

    storage, other applications cant access them and, by default, neither can the

    user, so it offers good reliability. The FileOutputStream write method takes byte

    parameters, so we can only use this technique to store data.

    3. External Storage:Many Android users are dependent on external media storage such as SD cards

    due to insufficient internal storage. SD cards offer apps an increased amount of

    storage space, but they impose additional considerations. For example, we

    cannot assume that a user will have an SD card or other external media resource.

    For this reason the programming code needs to carry out checks before storing

    data in this way. We also need to accommodate the possibility of the userchanging their SD card. Its also worth bearing in mind that files saved to an SD

    card can be accessed by other apps and by the user directly, so the data is more

    vulnerable to corruption. Here we can store the files in the sdcard in any format

    (Excel, XML, etc.).

    4. Databases:If the app uses more complex data items, we can create a SQLitedatabase to

    store them using the relational model. When we create a SQLite database for the

    app, we can access it from any point within your Java code, and it will not beaccessible from anywhere else. There are many advantages to using a database,

  • 8/13/2019 Ways of Data Storage and Retrieval in Android App

    2/2

    such as the ability to store and execute structured queries. SQLite database can

    also be queried and the data retrieval is much more robust. The SQLite database

    adds immense power to your entries.The SQLiteDatabase class provides themeans to manage the data, including query, insert and update methods. One

    potential downside to using an SQLite database in your Android apps is theamount of processing code required, and the necessary skill set. However, SQLite

    has many limitations related to the number of columns, rows, amount of data to

    be stored, etc.Operation is little bit slow comparing to shared preferences.Accessing the database again and again can affect the performance of the app

    greatly.

    easier to setup great for temporary (testing databases) great for rapid development great for embedding in an application doesn't have user management doesn't have many performance features doesn't scale well.

    5. Web Storage:Since Android devices provide Internet connectivity, your apps can of course use

    data stored on the Web. Naturally, you need to consider how your applications

    will cope with restricted or missing connectivity. As with a Web application, thisoption allows you to store data using virtually any platform or model you prefer.

    The Java language also benefits from a range of standard libraries for handling

    data fetched over a network, from sources such as SQL databases (MySQL) and

    XML documents. The packages java.net and android.net provide classes for

    managing networked data.

    far more difficult/complex to set up better options for performance tuning can scale well if tuned properly can manage users, permissions, etc.