android中提供了一个轻量级的数据存储方法:SharedPreferences
IOS中同样也有一个轻量级的数据存储方法:preference
android相关类:SharedPreferences
IOS相关类:NSUserDefaults
android:
sharedPreference 的保存格式是xml。
保存路径:
/data/data/<packagename>/shared_prefs
使用场景非常的多,比如保存用户名 帐号 密码 或者应用的一些偏好设置 等等
使用起来也非常的简单:(分为读写两部分)
public staticboolean saveUserInfo(Context context, String number, String password) {
try {
// /data/data/包名/shared_prefs/test
SharedPreferences sp = context.getSharedPreferences("test", Context.MODE_PRIVATE);
// 获得一个编辑对象
Editor edit = sp.edit();
// 存数据
edit.putString("number", number);
edit.putString("password", password);
// 提交, 数据真正存储起来了.
edit.commit();
returntrue;
} catch (Exception e) {
e.printStackTrace();
}
returnfalse;
}
public static Map<String, String> getUserInfo(Context context) {
SharedPreferences sp = context.getSharedPreferences("test", Context.MODE_PRIVATE);
String number = sp.getString("number",null);
String password = sp.getString("password",null);
if(!TextUtils.isEmpty(number) && !TextUtils.isEmpty(password)) {
Map<String, String> userInfoMap = new HashMap<String, String>();
userInfoMap.put("number", number);
userInfoMap.put("password", password);
return userInfoMap;
}
returnnull;
}
这里保存文件的格式可以指定为:
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限以及 Context.MODE_PRIVATE。
sharedpreference 持久化数据非常的方便。同时不同的应用程序之间也可以用这个属性交互数据:
1.两个应用程序需要在AndroidManifest.xml中manifest节点里添加sharedUserId属性,并且要一样,而且还要有两级。
2.该preference创建时必须指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。
3.获取另外一个应用的context:
ContextotherAppsContext = createPackageContext("包名", Context.CONTEXT_IGNORE_SECURITY);
4.获取需要共享sharedPreference
SharedPreferencessharedPreferences=otherAppsContext.getSharedPreferences("test",Context.MODE_WORLD_READABLE);