我在android中关注SQLite的简单教程。我在手机和平板电脑上尝试了代码,没有崩溃。主要布局就像它应该做的那样。(空活动)。应用程序应该创建数据库。但是,当我检查Android设备管理器文件浏览器时,我看不到“数据/数据”文件夹。相反,我在名为“mnt”的文件夹中看到了我的项目文件夹。我不知道为什么,但包名称是android studio中的com.something.dhbelper,它被保存在那个mnt文件夹中作为com.something.dbhelper1(数字添加到结尾)当我从PC断开手机和TAP我的文件icon在手机上,我看到android / data / data文件夹,我看不到“mnt”文件夹和我的应用程序。但是我的手机上有应用程序的快捷方式,我可以通过点击来运行它。
如何使用Android设备管理器的文件资源管理器查看该文件夹?
你有什么建议?有没有办法搜索,让我们说student.db文件?提前致谢。
答案 0 :(得分:1)
无法评论,所以我会在这里回答。
在模拟器中尝试。除非已植根,否则您无法访问设备上的这些文件夹。
您可以使用adb pull
shell命令将db文件复制到本地计算机上。
答案 1 :(得分:1)
答案 2 :(得分:0)
首先,除非您拥有root权限,否则您无法看到/data/data/
内部,因为它不可浏览。但是,您可以通过代码访问它。
mnt
的缩写mount
出现,因为Android Studio允许浏览路径,包括用于开发目的的db文件。
查看以下代码,将仅可访问但不可浏览的数据库文件复制到您想要的位置。请注意,只有创建数据库的应用程序才有权运行此代码。
File f=new File("/data/data/your.app.package/databases/your_db"); // case-sensitive!
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/db_dump.db"); // target location
while(true)
{
int i=fis.read();
if(i!=-1)
{fos.write(i);}
else
{break;}
}
fos.flush();
Toast.makeText(this, "DB dump OK", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(this, "DB dump ERROR", Toast.LENGTH_LONG).show();
}
finally
{
try
{
fos.close();
fis.close();
}
catch(IOException ioe)
{}
}
复制的