【发布时间】:2011-03-25 14:51:38
【问题描述】:
我正在为 Galaxy Tab 开发一个应用程序,现在我需要在 /data/data// 文件夹中获取一些文件。
模拟器真的非常慢。所以我正在设备上进行测试,并且需要从设备中获取文件(从我能够做到的模拟器中)。我该怎么做?
【问题讨论】:
标签: android filesystems
我正在为 Galaxy Tab 开发一个应用程序,现在我需要在 /data/data// 文件夹中获取一些文件。
模拟器真的非常慢。所以我正在设备上进行测试,并且需要从设备中获取文件(从我能够做到的模拟器中)。我该怎么做?
【问题讨论】:
标签: android filesystems
在您的代码中添加调试功能,将受保护文件夹中的所需文件复制到手机的 SD 卡中。然后,您可以从您的 PC 访问它们。
public static void backupFile() throws IOException {
String inFileName = "/data/data/your.package.name/........"; //TODO Use folder/filename
File inFile = new File(inFileName);
FileInputStream fis = new FileInputStream(inFile);
String outFileName = Environment.getExternalStorageDirectory()+"/........"; //TODO Use output filename
OutputStream output = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0)
output.write(buffer, 0, length);
output.flush();
output.close();
fis.close();
}
【讨论】:
设备上的 /data 目录具有受限权限。要使用 adb 复制文件,您需要已植根您的设备。
【讨论】:
adb pull <path>
会将文件从设备下载到您的当前目录。
您还可以使用adb shell 使用常用的 shell 命令来探索您的设备。 adb shell ls <path> 会让你在不完全进入 shell 的情况下做到这一点。
编辑 - 这不适用于 /data 目录或其他受限目录中的文件,除非您对设备具有 root 访问权限。
【讨论】: