我正在開發Galaxy Tab的應用程序,現在我需要在/ data/data文件夾中獲取一些文件。在設備的根目錄中獲取文件
模擬器真的很慢。所以我在設備上進行測試,並且需要從設備(從模擬器我能夠做到)獲取文件。我怎樣才能做到這一點?
我正在開發Galaxy Tab的應用程序,現在我需要在/ data/data文件夾中獲取一些文件。在設備的根目錄中獲取文件
模擬器真的很慢。所以我在設備上進行測試,並且需要從設備(從模擬器我能夠做到)獲取文件。我怎樣才能做到這一點?
在您的代碼中添加一個調試功能,將所需的文件從受保護的文件夾複製到手機的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();
}
adb pull <path>
將從設備下載文件到當前目錄。
您還可以使用adb shell
來使用常用shell命令探索您的設備。 adb shell ls <path>
會讓你在沒有完全進入shell的情況下做到這一點。
編輯 - 對於/ data目錄中的文件或其他受限制的目錄中的文件不起作用,除非您具有對設備的根訪問權限。
錯誤:設備權限不足 – 2011-03-25 15:25:55
是的,不幸的是,某些目錄受到限制。/data/data中的應用程序目錄不應該是。 – 2011-03-25 15:35:51
有趣。我的印象是,數據/數據下的任何東西都不會以這種方式訪問。我從來沒有能夠從無根設備上的/數據中提取任何文件。也許我從來沒有選擇正確的文件? – slund 2011-03-25 15:45:56
設備上的/ data目錄具有受限權限。要使用adb複製文件,您需要植入設備。
不錯!永不言敗。 – 2011-03-25 16:08:04
啊,漂亮!這會派上用場。 – slund 2011-03-25 16:10:11
中間。我認爲這可能是一個解決方案。 – 2011-03-25 17:04:35