我正在开发一个应用程序,我知道我的数据库*.db将出现在data/data/com.****.***
我可以在sqlite管理器的帮助下从Eclipse中的AVD访问这个文件
但是我的安卓手机无法访问这个文件。 我谷歌了一下,它说我需要在我的手机上查找,但我不想这样做。
我如何访问我的data/data/.....目录在我的安卓手机“没有根它”?
是否可以更改目录data/data.....的用户权限没有生根?
我正在开发一个应用程序,我知道我的数据库*.db将出现在data/data/com.****.***
我可以在sqlite管理器的帮助下从Eclipse中的AVD访问这个文件
但是我的安卓手机无法访问这个文件。 我谷歌了一下,它说我需要在我的手机上查找,但我不想这样做。
我如何访问我的data/data/.....目录在我的安卓手机“没有根它”?
是否可以更改目录data/data.....的用户权限没有生根?
当前回答
SQLlite数据库存储在用户的手机,它隐藏在路径下:
/Data/Data/com.companyname.AppName/File/
你有两个选择:
你可以根你的手机,这样你就可以查看你的隐藏 db4文件 这不是解决方案,而是一种变通办法。为什么不直接创建测试呢 使用“select”语句在其中显示数据库表的页面。
其他回答
打开命令提示符 将目录改为E:\Android\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\platform-tools 输入以下命令 Adb -d shell 执行命令-as com.your.packagename cat databases/database.db > /sdcard/database.db 将目录更改为cd /sdcard,确保database.db在那里。 Adb pull /sdcard/database.db或者简单地从设备复制database.db。
要做到以上任何一项(即从手机本身访问受保护的文件夹),你仍然需要root。(这包括更改/data文件夹的挂载权限并访问它)
如果没有root,除了通过代码从应用程序内部读取外,直接访问/数据是不可能的。所以你可以试着把那个文件复制到sdcard或者其他可以访问的地方,然后,你就可以正常访问它了。
如果您使用的是开发人员设备,那么root不会使您的保修失效。对不起,我没有别的办法了。
可能要访问这个文件夹需要管理员权限。
所以你有两个选择:-
根您的设备,然后尝试访问此文件夹 使用模拟器
附注:如果您正在使用上述两个选项中的任何一个,您可以通过以下步骤访问此文件夹
打开DDMS透视图->您的设备->(选择文件资源管理器从 右窗口选项)选择package -> data -> data -> package name - >文件
从那里你可以调出你的文件
简单的答案是否定的。在即将到来的Android 13上,你不能访问任何东西 /存储/模拟/ 0 / Android / * 目录没有根你的设备或连接到PC,当然不是在Pixel设备。
阅读Android源页面,使用ADB访问这样的应用程序数据: https://developer.android.com/training/data-storage/manage-all-files
您还可以尝试将文件复制到SD卡文件夹,这是一个公共文件夹,然后您可以将文件复制到您的PC上,在那里您可以使用sqlite访问它。
下面是一些你可以用来将文件从data/data复制到公共存储文件夹的代码:
private void copyFile(final Context context) {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath =
context.getDatabasePath(DATABASE_NAME).getAbsolutePath();
String backupDBPath = "data.db";
File currentDB = new File(currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
清单:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />