美文网首页
在手机未Root查看data/data文件夹中应用的目录,及复制

在手机未Root查看data/data文件夹中应用的目录,及复制

作者: 馨予务心竞 | 来源:发表于2020-12-11 11:06 被阅读0次

查看:Android studio里的Device File Explorer查看

复制数据数据库:

(一)工具保存;直接接着上面找到自己的数据库,然后单击右键。saveAs选择要保存的地址,即可保存成功

1.在AnroidManifest.xml中将debuggable属性设置为false,设置为true将无法在没有root权限的情况下查看应用的目录,会得到类似permission denied的信息。

2.获取test数据库文件路径:Applications.context().getDatabasePath("test")

3.复制数据文件到指定目录

try {

copyDB(Applications.context(),Applications.context().getDatabasePath("approval"),new                    File(FileUtil.getFilePath()+File.separator+"approval_db.db"));

}catch (IOException e) {

LogUtils.e("copyDB:"+e);

  e.printStackTrace();

}

/**

* 复制数据库

* */

private  void copyDB(Context context, File fromDB, File toDB)

throws IOException {

// 判断是否存在文件

  LogUtils.e("copyDB:"+"-toDB-Path:"+toDB.getPath());

  if (toDB.exists()) {

// 已经存在文件

      toDB.delete();

  }

// 创建新的db

  SQLiteDatabase s = SQLiteDatabase.openOrCreateDatabase(toDB, null);

  // // 复制asseets中的db文件

  // InputStream myInput = context.getAssets().open(Constant.SYS_DB_NAME);

  InputStream myInput =new FileInputStream(fromDB);

  String outFileName = toDB.getPath();

  OutputStream myOutput =new FileOutputStream(outFileName);

  byte[] buffer =new byte[1024];

  int length;

  while ((length = myInput.read(buffer)) >0) {

myOutput.write(buffer, 0, length);

  }

myOutput.flush();

  myOutput.close();

  myInput.close();

  s.close();

}

相关文章

网友评论

      本文标题:在手机未Root查看data/data文件夹中应用的目录,及复制

      本文链接:https://www.haomeiwen.com/subject/mtcjgktx.html