我正在處理一些SQLite代碼並想檢查數據庫。如果我在模擬器上運行代碼,我可以使用DDMS文件管理器從data \ data \ myProject \數據庫中提取文件,但是如果我在實際硬件上運行它,data \ data文件夾將無法訪問。除了獲得對手機的root權限之外,還有其他解決方法嗎?DDMS文件瀏覽器無法訪問數據數據(HTC Desire HD)
回答
SQLIte數據庫實際上只是一個存儲在手機內存中的文件,您可以將它複製到手機SD卡上,然後從PC輕鬆訪問它。下面是正是你所需要的功能。只需確保在使用函數之前更改軟件包名稱和數據庫名稱。
public static void backupDatabase() throws IOException {
//Open your local db as the input stream
String inFileName = "/data/data/your.package.name/databases/database.sqlite";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory()
+ "/database.sqlite";
//Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
//Close the streams
output.flush();
output.close();
fis.close();
}
正如你可以從代碼中觀察到,數據庫總是存儲在文件夾中:
/data/data/your.package.name/databases/
名稱(在我們的例子「database.sqlite」)是擴展SQLiteOpenHelper當你選擇了一個。顯然,您還需要將「your.package.name」替換爲應用程序包的名稱。
對於我們這些沒有固定電話的人來說,這是一項很好的技術。只要確保你添加權限WRITE_EXTERNAL_STORAGE,否則它將無法工作。它正在我的異常處理程序中被捕獲,所以我錯過了它。 –
嗨,我沒有嘗試,但我真的不知道數據文件在哪裏?我使用Windows和我的Android文件存儲在工作區下,但沒有數據文件在我的包 –
我相信您的應用程序可以更改其本地存儲數據文件的unix權限,以便其他應用程序和adb可以訪問它們。
但是,您的應用程序無法更改安全電話的/ data目錄中缺少列表權限。
因此,您將不得不使用'adb pull/full/path/to/file'來抓取文件 - 由於您無法生成/ data或其他幾個中間目錄父母的列表,因此無法瀏覽該文件的文件。
真的,唯一的解決辦法就是把你的文件放在一些你可以在開發過程中像在SD卡上訪問它的地方。然後,一旦你滿意的東西正常工作把文件放在你想要的地方。
我這樣說是因爲我有零售Nexus One和開發商Nexus One。在使用DDMS文件資源管理器時,我注意到我可以瀏覽開發人員設備上的數據文件夾,但無法在零售設備上瀏覽。我植根於我的零售設備,並沒有幫助。
所以我想在這個問題上需要做更多的研究。但在此之前,我希望這有助於。
複製文件到/ mnt/SD卡使用
cp /data/data/<packagename>/databases/<dbname>/<filename> /mnt/sdcard
利用亞行,然後使用
adb pull /mnt/sdcard/<filename>
從到/ mnt/SD卡複製到桌面,然後使用sqlite3的進行查看。
只是想知道如何沒有root的cp .. :) – yoshi
您必須爲您的設備創建根目錄。轉到命令提示符並轉到您的adb所在的位置。
例如
C:\ Program Files文件\的Android \ Android的SDK \平臺工具
型adb root
。現在去你的文件瀏覽器並檢查。
哦我的..這樣一個簡單的方法來做到這一點..你是一個生命的救星..非常感謝你.. –
- 1. HTC Desire HD和Android SDK
- 2. 無法在設備上打開數據庫文件(HTC Desire)
- 3. HTC Desire中的數據庫鎖問題
- 4. 從我的Android設備(HTC Desire HD)訪問本地IIS網站
- 5. android usb adb驅動htc desire hd
- 6. Android eclipse DDMS - 無法訪問數據/數據/手機上
- 7. 數據目錄在DDMS文件瀏覽器查看
- 8. 無法瀏覽H2數據庫文件?
- 9. 從瀏覽器訪問ArangoDB數據
- 10. 僅文字顏色的HTC Desire HD的失敗
- 11. 無法訪問android /數據文件夾
- 12. 無法訪問數據庫文件
- 13. 小問題在DDMS數據文件夾
- 14. 訪問數據庫直播/無需刷新瀏覽器,而AJAX
- 15. htc desire hd無法啓動(-webkit-min-device-pixel-ratio:2)媒體查詢?
- 16. Android Desire HD位圖縮放
- 17. 無法使用Nexus One訪問DDMS的文件資源管理器中的數據文件夾!
- 18. 數據庫處理在Android 2.2.1上停止工作(Desire HD 1.72.405.3)
- 19. 在特定版本的HTC DESIRE HD SQLite中缺少表格
- 20. HTC Desire HD的不接受的setParameter()與hardware.Camera
- 21. 在MacBook Pro上通過adb調試HTC Desire HD
- 22. 在android java中調用c文件:fgets()函數無法在HTC Desire上工作
- 23. Appium無法訪問瀏覽器異常
- 24. Docker tomcat無法從瀏覽器訪問
- 25. 在文件瀏覽器僅探索高達數據/數據/
- 26. 無法訪問數據庫
- 27. 無法訪問數據庫
- 28. 無法訪問IplImage數據
- 29. 無法訪問JSON數據
- 30. 無法訪問數據庫
你必須爲你的手機換機。 –
必須通過瀏覽才能成爲root用戶,但程序可以通過其全路徑名更改文件的權限,從而使其可訪問。 –