2012-07-22 49 views

回答

6
  • 将设备连接到PC
  • 打开命令提示符/sdk-directory/tools
  • adb pull /data/data/com.example.app/databases/database.db

其中com.example.app是您的应用程序包名称和database.db是数据库文件

那万一您的设备已根植,如果不尝试遵循

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

+0

thi s工作,但拉文件不显示任何表。 – Andrain 2015-12-02 04:27:46

1

如果您使用eclipse,则转到DDMS视图。从文件浏览器选项卡 - >数据 - >数据 - >应用程序包的名称 - >数据库 - > DATABSE名

选择数据库DB文件然后点击按钮拉

+0

在普通设备上,您甚至无法打开数据文件夹。 – 2014-11-19 00:53:35

+0

这取决于您的设备。 – 2015-01-06 03:33:53

39

您可以使用这些命令从拉动数据库您设备。通过android studio键入这些命令非常简单。请确保您已将全局adb路径设置为您的系统。然后从底部打开“终端”窗口到android studio并且靠近“Android Monitor”。现在您只需使用应用程序的实际包名称和数据库文件名更新以下命令。您将从设备中取出文件。

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" 

为Android 5.0以上版本/data/data/package.name/databases/file的命令是:

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

非常好。感谢这些信息。 – 2014-11-19 01:02:09

+1

上传..谢谢yu – 2015-02-19 10:42:52

+0

完美。如果你想先检查数据文件夹,看看这篇文章:http:// stackoverflow。com/questions/9017073/is-it-it-it-it-see-application-data-from-adb-shell-the-same-way-i-see-it-moun – shadowhorst 2015-06-26 18:04:08

4

查看和管理你的Android应用数据库的最佳方法是使用此库https://github.com/sanathp/DatabaseManager_For_Android

它是一个单一的Java活动文件,只需将java文件添加到您的源文件夹,您可以查看您的应用程序数据库中的表,更新,删除,插入行到你的表。

开发完成后,从src文件夹中删除java文件即可。

它帮助了我很多,希望它也能帮助你。

您可以查看1分钟的演示在这里:http://youtu.be/P5vpaGoBlBY

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

我知道这是一个老问题,但是这是我做的,从应用拉设备的SQLite数据库文件。

  1. 从应用程序包中的文件保存到设备的SD卡

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

上述命令将存储文件/ SD卡 可以通过 adb shell ls sdcard/ 然后从ADB壳出口验证文件通过键入exit

  1. Pull th从sdcard到您当前的工作位置的e文件。

adb pull sdcard/<databaseFileName> 3.将文件移到桌面或您想要的位置。

mv <databseFileName> ~/Desktop

我希望这可以帮助一个人在那里。

0

编程做它在应用

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

} 

确保获准

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

你可以跳过所有这些中间阶段用一个命令。

在您的电脑程序中运行:

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

您可以使用Android设备监视器把它拉。 前往工具 - > Android - > Android设备监视器

  1. 从左侧列表中选择您的设备。
  2. 选择FileExplorer标签
  3. 展开数据 - >数据 - >“yourpackageName” - >数据库
  4. 选择databaseFile并在此图标 save icon 点击右上角的拉文件形成设备。
  5. 将它保存在你的办公桌上,然后使用这个工具来打开它: http://sqlitebrowser.org/
0

从版本24起我使用这些命令来拉数据库

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

版本24之前

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

就足够了

相关问题