2009-07-09 42 views
43

Tôi đã tạo một cơ sở dữ liệu SQLite trên thiết bị Android. Chương trình có thể đọc/ghi vào cơ sở dữ liệu để tệp cơ sở dữ liệu rõ ràng đã được tạo. SQLiteDatabase.mPath được đặt thànhAndroid: Các tệp cơ sở dữ liệu được lưu trữ ở đâu?

db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 

nhưng khi tôi duyệt các thư mục trên thiết bị, tôi không thể định vị tệp khách hàngDB.db. Tôi nhìn vào bên trong thư mục dữ liệu nhưng nó có vẻ trống.

Có ai biết điều gì có thể sai ở đây không?

Trả lời

28

Nếu bạn có nghĩa là bạn đã truy cập /data và không tìm thấy gì trong đó, và bạn đang kiểm tra một phần thông thường của phần cứng Android, dự kiến. DDMS không có quyền duyệt qua /data.

Tuy nhiên, ít nhất nếu ứng dụng của bạn được biên dịch ở chế độ gỡ lỗi, bạn có thể sử dụng lệnh adb pull tại bảng điều khiển để tải xuống tệp của mình trực tiếp.

+0

Trong trình quản lý tệp thiết bị của tôi, tôi đã tìm kiếm 'filename.sqlite' nhưng tôi không nhận được kết quả? Bạn có thể nói lý do tại sao? –

+0

@VivekWarde: Bạn không thể duyệt bộ nhớ trong trên thiết bị sản xuất. – CommonsWare

+0

vì vậy tôi có thể xem cơ sở dữ liệu sqlite của mình ngoài thư mục tài sản –

6

Trong chế độ gỡ lỗi, bạn có thể sử dụng adb shell và duyệt nội dung thư mục. Trong trình bao, bạn có thể gọi sqlite3 /data/data/dev.client.android/databases/clientDB.db để phân tích DB.

+0

Tôi đã thử nhập mã này vào tab Thiết bị đầu cuối trong Android Studio trong khi ứng dụng đã được gỡ lỗi nhưng nó không nhận ra lệnh. Thư mục của ứng dụng trên máy tính của tôi là đường dẫn trong bảng điều khiển. Đây có phải là nơi tôi nên nhập nó không? –

33

thử getDatabasePath trên ContextWrapper (http://developer.android.com/reference/android/content/ContextWrapper.html). Nếu bạn đang ở trong một thử Hoạt động hoặc ứng dụng lớp:

File dbFile = getDatabasePath(MY_DB_NAME); 
Log.i(dbFile.getAbsolutePath()); 

Chỉ cần giả định của nó trong /data/data/my.package.name/databases/ là xấu như không có đảm bảo các dữ liệu chưa được chuyển vào thẻ SD hoặc thiết bị/hệ điều hành vừa quyết định chọn một thư mục dữ liệu khác nhau.

Các vấn đề liên quan