Android 资料存储 - Part1 - SharedPreferences

霍建柏
2023-12-01

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
  • Internal Storage
  • External Storage
  • SQLite Databases
  • Network Connection

一般我们使用 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


 类似资料: