Android 数据存储
-----------Every noble work is at first impossible.
1.数据存储方式;
2.存储方式详细介绍;
3.adb学习;
存储方式
文件存储
Share Preference`
Files
SQLite3
NetWork
一、SharedPreferences方式存储数据方法:
1)getSharedPreference;
2)getSharePreferences.Editor;
3)Editor.commit();
源码举例:
<span style="font-size:24px;"><span> </span>Button bt = (Button) findViewById(R.id.button1);
assert bt != null;
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sp = MainActivity.this.getSharedPreferences("My", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("yourname", "sundy1");
editor.putString("yourname2", "sundy2");
editor.commit();
Toast.makeText(MainActivity.this, "SharedPreferences 数据建立", Toast.LENGTH_SHORT).show();
}
});</span>
补充,如果要得到数据文件内容,只需要sp.getString及其他方法等即可,而不需要用编辑器editor去操作。adb shell使用
adb data/data ---包存放位置
adb pull 使用及问题解决(push出现此类问题也可借此方法解决)
举例:adb pull /data/data/myapplication.com.myapplication666/shared_prefs/my.xml d:/
把通过SharedPreferences方式存储的文件提取到本地D盘。
1)adb shell后,cd data/data进入data/data目录时会发现权限被拒绝,并提示Permission denied。
解决方法:输入su/su root,申请root权限,然后手机上点击授权,再次执行cd data/data即可进入手机data/data目录。
注意:前提是手机必须获得root权限。
2)问题:使用adb pull命令从Android系统中读取文件失败。显示:Permission denied。
原因:是由于文件权限原因引起。
使用ls -l命令查看android系统中的文件权限为:
-rw-rw---- my.xml my.xml
也就是说,该文件只有my.xml用户以及my.xml群组拥有读写权限,而adb shell的用户为shell,既不是my.xml用户,也不在my.xml群组中,所以没有权限读取这个文件。所以就出现了
Permission denied。
解决方法:修改文件权限。
使用su命令,用超级用户登录。修改该文件权限,让其他用户可以读取该文件。
chmod 664 文件名
如果是要使用adb push使用电脑上的文件覆盖该文件,则需要把写权限也要给其他用户,也就是:
chmod 777 文件名
pull文件夹失败,需要看是否文件夹下还有没修改权限为 777 的文件存在
二、Files:使用内部存储和使用外部存储(未掌握,待续)
三、Network(未掌握,待续)
四、SQLite3
方法:
getReadableDatabase();
getWriteableDatabase();
onCreat(SQLiteDatabase db, int oldVersion, int newVersion);
onOpen(SQLiteDatabase db);
onUpgrade(SQLiteDatabase db).