2012-07-22 29 views

Trả lời

6
  • kết nối điện thoại với pc
  • mở dấu nhắc lệnh trong /sdk-directory/tools
  • loại adb pull /data/data/com.example.app/databases/database.db

nơi com.example.app là tên gói ứng dụng của bạn và database.db là file cơ sở dữ liệu

đó là trong trường hợp thiết bị của bạn đã được root, nếu không thử theo dõi

https://stackoverflow.com/a/8433520/1300995

+0

thi s làm việc nhưng các tập tin kéo không hiển thị bất kỳ bảng. – Andrain

1

Nếu bạn sử dụng nhật thực thì hãy chuyển đến chế độ xem DDMS. từ File Explorer Tab -> đĩa dữ liệu> đĩa dữ liệu> gói ứng dụng name> databases-> tên databse

chọn tập tin cơ sở dữ liệu db sau đó nhấn nút kéo

+0

Ở thiết bị bình thường, bạn thậm chí không thể mở thư mục dữ liệu. –

+0

tùy thuộc vào thiết bị của bạn. –

39

Bạn có thể sử dụng các lệnh này cho kéo cơ sở dữ liệu từ bạn thiết bị. Gõ các lệnh này thông qua android studio là rất dễ dàng. Hãy chắc chắn rằng bạn đã đặt đường dẫn adb trên toàn cầu vào hệ thống của bạn. Sau đó, mở cửa sổ "terminal" từ dưới lên android studio và gần "Android Monitor". Bây giờ bạn chỉ cần cập nhật các lệnh sau với tên gói thực của tên ứng dụng và tên tệp cơ sở dữ liệu của bạn. Bạn sẽ lấy tệp ra khỏi thiết bị.

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file" 
adb pull /data/data/package.name/databases/file . 
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file" 

lệnh dành cho Android 5.0+ /data/data/package.name/databases/file sẽ là:

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file" 
adb exec-out run-as package.name cat databases/file > newOutFileName 
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file" 
+0

Tuyệt vời. Cảm ơn thông tin này. –

+1

supern .. thank yu –

+0

Hoàn hảo. Nếu bạn muốn kiểm tra thư mục dữ liệu trước, hãy xem bài đăng này: http: // stackoverflow.com/questions/9017073/is-it-possible-to-see-application-data-từ-adb-shell-the-same-way-i-see-it-moun – shadowhorst

4

Cách tốt nhất để xem và quản lý cơ sở dữ liệu bạn ứng dụng Android là sử dụng này thư viện https://github.com/sanathp/DatabaseManager_For_Android

Tệp hoạt động java đơn lẻ của nó, chỉ cần thêm tệp java vào thư mục nguồn của bạn, bạn có thể xem các bảng trong cơ sở dữ liệu ứng dụng, cập nhật, xóa, chèn hàng vào bảng.

Khi quá trình phát triển hoàn tất, hãy xóa tệp java khỏi thư mục src của bạn.

Nó đã giúp tôi rất nhiều. Hy vọng nó cũng giúp bạn.

Bạn có thể xem demo 1 phút ở đây: http://youtu.be/P5vpaGoBlBY

2
adb root 
adb remount 
adb pull <remote> <local> 
2

Tôi biết đây là một câu hỏi cũ, tuy nhiên điều này là những gì tôi đã làm để kéo các tập tin cơ sở dữ liệu SQLite từ ứng dụng trên thiết bị.

  1. Tiết kiệm các tập tin từ gói ứng dụng để sdcard thiết bị

adb -d shell "run-as com.dautechnology.abdimuna.smartparking cat /data/data/<myAppPackageName>/databases/<databaseFileName> > /sdcard/<databaseFileName>"

Lệnh trên sẽ lưu trữ tập tin vào/sdcard Bạn có thể xác minh các tập tin bằng cách adb shell ls sdcard/ Sau đó thoát khỏi adb shell bằng cách nhập exit

  1. Kéo thứ e tập tin từ sdcard đến vị trí làm việc hiện tại của bạn.

adb pull sdcard/<databaseFileName> 3. Di chuyển tệp vào Máy tính để bàn hoặc địa điểm mong muốn của bạn.

mv <databseFileName> ~/Desktop

Tôi hy vọng điều này sẽ giúp ai đó ở ngoài đó.

0

Do chương trình khác trong ứng dụng

try { 
    File file = Environment.getExternalStorageDirectory(); 
    File data = Environment.getDataDirectory(); 

    if (file.canWrite()) { 
     String currentPath = "/data/data/" + getPackageName() + "/databases/yourdbname"; 
     String copyPath = "copydb_name.db"; 
     File currentDB = new File(currentPath); 
     File backupDB = new File(file, copyPath); 

     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) { 

} 

Hãy chắc chắn rằng được phép cúp

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
1

Bạn có thể bỏ qua tất cả những giai đoạn giữa với một lệnh.

Trong máy tính của bạn chạy shell:

adb -d shell 'run-as <package_name> cat /data/data/<package_name>/databases/<db_name>' > <local_file_name> 
1

Bạn có thể sử dụng màn hình thiết bị Android để kéo nó. Chuyển đến Công cụ -> Android -> Trình giám sát thiết bị Android

  1. Chọn thiết bị của bạn từ danh sách bên trái.
  2. Chọn FileExplorer tab
  3. Mở rộng đĩa dữ liệu> Xóa dữ liệu -> "yourpackageName" -> cơ sở dữ liệu
  4. Chọn databaseFile của bạn và trên đầu trang bấm chuột phải vào biểu tượng này save icon kéo một tập tin hình thành một thiết bị.
  5. Lưu nó trên bàn của bạn sau đó sử dụng công cụ này để mở nó: http://sqlitebrowser.org/
0

từ phiên bản 24 trở đi tôi sử dụng các lệnh này để kéo cơ sở dữ liệu

adb shell 
run-as package.name 
cat /databases/database.db > /sdcard/database.db 
exit 
exit 
adb pull /sdcard/database.db 

trước khi phiên bản 24

adb pull /data/data/package name/databases/database.db 

đủ

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