Ways of Data Storage and Retrieval in Android App
-
Upload
vijeta-karani -
Category
Documents
-
view
218 -
download
0
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.