您的位置:首页 > 移动开发 > Android开发

android 未root手机获取应用的sqlite数据库

2017-05-17 21:52 302 查看
在android中我们常用sqlite数据库来存放文件,在开发中我们可能需要查看所有的数据,以保证数据的准确性。在已经root的手机下,我们可以进入/data/data/包名/databases目录下获取数据库文件,可以在ddms界面导出,用sqliteexport软件查看。

但如果手机没有root,我们用ddms是打不开/data/data目录的。那如何获取相应的db文件呢?我们可以用文件拷贝的方法,代码如下

//找到文件的路径  /data/data/包名/databases/数据库名称
File dbFile = new File(Environment.getDataDirectory().getAbsolutePath()+"/data/"+getPackageName()+"/databases/test.db");
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//文件复制到sd卡中
fis = new FileInputStream(dbFile);
fos = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/copy.db");
int len = 0;
byte[] buffer = new byte[2048];
while(-1!=(len=fis.read(buffer))){
fos.write(buffer, 0, len);
}
fos.flush();

} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭数据流
try{
if(fos!=null)fos.close();
if (fis!=null)fis.close();
}catch(IOException e){
e.printStackTrace();
}

}


在android manifest文件加上权限,经过测试,可行。简单粗暴

<uses-permission android
4000
:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐