ref: Android 应用程式开发实战
ref: http://developer.android.com/guide/topics/data/data-storage.html
ref: http://stackoverflow.com/questions/6146106/where-are-shared-preferences-stored
当计算机在运算时,一般是将运算会用到的资料放至 RAM 中,减少 IO(Input/ Output) 所需要的时间,但是当计算机需要关机时,便需要将运算结果,存到非挥发性内存(如 ROM 之类)储存运算结果,确保数据不会在系统断电以後消失。
一般计算机系统大都提供共享档案机制,使程序间可以储存和存取档案,达到数据共享,而 Android系统所采的方法是所有应用的数据和档案预设为非共享,除非透过一些操作(如 Content Provider 、隐通道(?!) 等)才能达到应用间数据共享。
Android系统有五种数据储存的方法:
一般我们使用 Shared Preferences 储存简单、轻量级的数据,比如说 booleans, floats, ints, longs, 和 String 类型的数据 。首先用 getSharedPreferences() 获取 SharedPreferences 对象 sp,然後再调用 sp.edit() 对数据作编辑,最後再用 sp.commit() 作提交,将数据写入到系统中,比如说写入 float 类型的数据便如下:
SharedPreferences sp = mContext.getSharedPreferences(MainActivity.PREF_FOR_CURRENT_BUDGET,
Context.MODE_PRIVATE);
sp.edit().putFloat(MainActivity.PREF_FOR_CURRENT_BUDGET, value).commit();
而从 SharedPreferences 取得数据的方法为:
SharedPreferences sp = getSharedPreferences(PREF_FOR_CURRENT_BUDGET, MODE_PRIVATE);
mTotalBudget = sp.getFloat(PREF_FOR_CURRENT_BUDGET, 0);
具体API方法说明,请查找官网API说明~
至於每个 APP 的 SharedPreferences 具体储存的位置,是在
/data/data/应用包名/shared_prefs/PREFS_NAME.xml
或
/data/data/应用包名/shared_prefs/应用包名_preferences.xml