Sco*_*Zhu 229 android ddms android-sqlite android-studio
自从它发布以来,我一直在使用Android Studio来开发我的应用程序.
一切都很好,直到最近,我必须与检查数据库文件一起调试.由于我不知道如何直接查看数据库,当我调试生成数据库文件时,我必须将数据库文件从手机导出到PC.
为了做到这一点,我必须打开DDMS > File Explorer.一旦我打开DDMS,我就必须重新连接USB,我就失去了调试线程.检查数据库文件后,我必须关闭DDMS并再次重新连接USB以返回调试模式.
这太复杂了.有没有人有更好的方法在Android Studio中执行此操作(我知道它在Eclipse中更容易)?
ojo*_*ifu 282
编辑:要在仿真器上查看数据库,请按照以下步骤操作(对于实际设备,请滚动到底部):
将数据库从设备复制到PC:
Android Studio版本<3.0:
通过开放DDMSTools > Android > Android Device Monitor
点击左侧的设备.
你应该看到你的申请:

转到文件资源管理器(右侧的其中一个选项卡),转到/data/data/databases

只需单击它即可选择数据库.
转到Android Device Monitor窗口的右上角.点击" 从设备中提取文件 "按钮:

将打开一个窗口,询问您要保存数据库文件的位置.将它保存在PC上的任何位置.
Android Studio版本> = 3.0:
打开设备文件浏览器通过View > Tool Windows > Device File Explorer
转到data > data > PACKAGE_NAME > database,PACKAGE_NAME是您的包的名称(在上面的示例中是com.Movie)
右键单击数据库并选择Save As....将它保存在PC上的任何位置.
现在,打开您安装的SQLiteBrowser.单击" 打开数据库 ",导航到保存数据库文件的位置,然后打开.您现在可以查看数据库的内容.
转到此 Github存储库并按照自述文件中的说明操作,以便能够在您的设备上查看数据库.你得到的是这样的:
而已.但是,在发布应用程序之前,您应该撤消所有这些步骤.
Dis*_*two 195
我还没有找到任何方法在Android Studio中执行此操作,但我使用远程shell访问数据库而不是每次都拉取文件.
在此处查找所有信息:http: //developer.android.com/tools/help/adb.html#sqlite
1-在命令提示符中转到platform-tools文件夹
2-输入命令adb devices以获取设备列表
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx device
Run Code Online (Sandbox Code Playgroud)
3-将shell连接到您的设备:
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
Run Code Online (Sandbox Code Playgroud)
4-导航到包含db文件的文件夹:
cd data/data/<your-package-name>/databases/
Run Code Online (Sandbox Code Playgroud)
5-运行sqlite3连接到你的db:
sqlite3 <your-db-name>.db
Run Code Online (Sandbox Code Playgroud)
6-运行你喜欢的sqlite3命令,例如:
Select * from table1 where ...;
Run Code Online (Sandbox Code Playgroud)
注意:查找下面要运行的更多命令.
在SQLite数据库中查看表有几个步骤:
列出数据库中的表:
.tables
Run Code Online (Sandbox Code Playgroud)列出表格的外观:
.schema tablename
Run Code Online (Sandbox Code Playgroud)打印整个表格:
SELECT * FROM tablename;
Run Code Online (Sandbox Code Playgroud)列出所有可用的SQLite提示命令:
.help
Run Code Online (Sandbox Code Playgroud)w3b*_*ark 72
我真的很惊讶没有人给出这个解决方案:
看看Stetho
我曾多次出于不同的目的使用Stetho(其中一种是数据库检查).在实际的网站上,他们还讨论了网络检查的功能并查看了视图层次结构.
它只需要一点设置:1个gradle依赖项添加(你可以为生产版本注释掉),几行代码来实例化Stetho,以及一个Chrome浏览器(因为它使用Chrome devtools来处理所有事情).
更新:您现在可以使用Stetho查看Realm文件(如果您使用的是Realm而不是SQLite DB):https://github.com/uPhyca/stetho-realm
更新#2:您现在可以使用Stetho查看Couchbase文档:https://github.com/RobotPajamas/Stetho-Couchbase
更新#3:Facebook正致力于将所有Stetho功能添加到其新工具Flipper中.Flipper已经拥有Stetho的许多功能.所以,现在可能是进行转换的好时机.https://fbflipper.com/docs/stetho.html
die*_*mes 69
不使用模拟器时最简单的方法
$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name
Run Code Online (Sandbox Code Playgroud)
我有一段时间没有测试过这个.它可能不适用于API> = 25.如果cp命令不起作用,请尝试以下操作之一:
# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>
# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name
Run Code Online (Sandbox Code Playgroud)
第一个块将数据库的权限配置为可读.这种杠杆作用run-as允许您模拟包的用户进行更改.
$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as
Run Code Online (Sandbox Code Playgroud)
接下来,我们将数据库复制到世界可读/可写目录.这允许adb pull用户访问.
$ cp /data/data/your.package.name/databases/database_name /sdcard
Run Code Online (Sandbox Code Playgroud)
然后,替换现有的读/写权限.这对您的应用程序的安全性很重要,但是在下次安装时将替换这些权限.
$ run-as your.package.name
$ chmod 660 databases/database_name
$ chmod 660 databases
$ exit # Exit the shell started with run-as
Run Code Online (Sandbox Code Playgroud)
最后,将数据库复制到本地磁盘.
$ exit # Exits shell on the mobile device (from adb shell)
$ adb pull /sdcard/database_name
Run Code Online (Sandbox Code Playgroud)
Ali*_*ali 47
在Android Studio 3中,您可以在Android Studio的右下方看到"设备文件资源管理器"部分.
打开它,然后你可以看到文件树,你可以在这个路径中找到一个应用程序数据库:
/data/data/{package_name}/databases/
Run Code Online (Sandbox Code Playgroud)
Sco*_*Zhu 23
最后,我找到了一个最简单的解决方案,不需要打开DDMS.
实际上,解决方案基于@Distwo所提到的,但它不一定非常复杂.
首先,请记住设备中数据库文件的路径,它应该是相同的.例如我的是:/data/data/com.XXX.module/databases/com.XXX.module.database
其次,执行此命令将数据库文件拉到PC上
adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/
Run Code Online (Sandbox Code Playgroud)
您需要做的只是复制并存储此命令,然后您可以反复使用它.
第三,如果你有权限被拒绝或类似的东西,只需adb root在上一个命令之前运行.
Nab*_*bin 16
在Android Studio 中查看数据库内容的简单方法。
您可以使用一个非常简单的 Android Studio 功能Database Inspector。您可以在其中使用新的数据库检查器检查、查询和修改应用程序的数据库。例如,您可以通过修改数据库中的值并在设备上实时 测试这些更改来调试正在运行的应用程序,而无需离开 Android Studio。
首先,将您的应用部署到运行 API 级别 26 或更高级别的设备,然后从菜单栏中选择“查看”>“工具窗口”>“数据库检查器”。
首先,在Android Studio中安装Database Navigator插件
二、重启Android Studio
第三,将数据库保存到默认位置,如:(C:\Users\User Name\Documents\AndroidStudio\DeviceExplorer\emulator or device\data\data\package name\databases)
四、在Database Navigator中连接保存的dbname_db文件
提供在第三步中使用的相同 DB 文件路径
即(C:\Users\User Name\Documents\AndroidStudio\DeviceExplorer\emulator 或 device\data\data\package name\databases\package naem\dbname_db)
最后,只需测试数据库连接并打开控制台并执行您想做的任何操作。
如果你想刷新DB只是重复步骤二,只是保存或刷新。
快乐编码!!!!!
Dan*_*iel 16
最简单的方法是使用Android Debug Database库(GitHub 上有 7.7k 星)。
好处:
如何使用:
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'到build.gradle (module);D/DebugDB: Open http://192.168.232.2:8080 in your browser链接会不同),在浏览器中打开;重要的:
adb forward tcp:8080 tcp:8080有关更多信息,请访问GitHub 上的库页面。
Sha*_*ble 10
经过我将建议的所有解决方案
使用Stethos
让我们看看它是多么简单
在build.gradle文件中添加以下依赖项
compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'
Run Code Online (Sandbox Code Playgroud)
然后转到mainActivity onCreate方法添加以下行
Stetho.initializeWithDefaults(this);
Run Code Online (Sandbox Code Playgroud)
这需要你
import com.facebook.stetho.Stetho;
Run Code Online (Sandbox Code Playgroud)
现在,当从Android工作室运行应用程序时,打开Chrome并在地址栏中键入
chrome:// inspect /
在资源选项卡> Web SQL中检查数据库和表格可以轻松实时播放
Android 4.1 Canary 5 Preview 中引入了新的数据库检查器,您现在可以直接从 IDE 中检查、查询、修改和调试正在运行的应用程序中的 SQLite 数据库 - https://developer.android.com/studio/preview/features?linkId =86173020#数据库检查员
也支持数据库实时查询 - https://developer.android.com/studio/preview/features?linkId=86173020#query
尽管这是一个很老的问题,但我认为它今天仍然相关。使用最新版本的 android studio 我找到了一种查看它的方法 [我不确定它是否在以前的版本中可用。]
以下是查看数据库中数据的方法:
脚步 :
转到 查看 > 工具窗口 > 设备文件资源管理器
然后文件夹数据>数据,您将看到应用程序列表。
向下滚动一点并查看包[您的应用程序包]。
找到你的包后,查看databases文件夹并选择文件,右键单击并保存[下载]
由于不能直接看到数据,有一个工具,DB Browser for SQLite,去网站https://sqlitebrowser.org/
打开数据库浏览器,点击打开数据库,选择你下载的数据库表,它会显示数据。
新编辑
现在(在您阅读这篇文章的时候),它变得更加容易,因为 Android Studio 已经带有数据库检查器(就在右下角附近)。
单击它,您将看到数据库。但是,请确保最小 API 级别为 26,如果不通过build.gradle文件将其更改为minSdkVersion 26
最简单的方法是连接您的设备并运行 Android Studio 然后从工具栏:
另一种方法是使用 Stetho 库:
将 Stello 依赖项添加到您的 build.gradle:
编译 'com.facebook.stetho:stetho:1.5.0'
将以下行放在您的应用程序类或主活动的 onCreate() 上:
Stetho.initializeWithDefaults(this);
连接您的设备,运行应用程序并在 Chrome 上输入以下站点:
铬://检查/#devices
就是这样。您现在可以浏览您的表格。
注意:建议在转移到生产之前删除依赖项。
随着Android Studio 4.1 Canary 和 Dev 预览版的发布,您可以使用名为的新工具
安装 AS 4.1+,运行应用程序,打开数据库检查器,现在您可以在数据库检查器面板的左侧查看数据库文件,然后选择表来查看内容。
您可以使用“运行 SQL”选项运行查询,或者如果您使用Room,然后打开数据库检查器并运行应用程序,则可以通过单击注释左侧的运行按钮在界面中运行 DAO 查询@Query。
要知道你在android studio中创建的sqlite数据库存储位置,你需要按照简单的步骤:
1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.
Run Code Online (Sandbox Code Playgroud)
有关更多信息,此链接将非常有用. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/
要查看db文件中存在的数据,您需要下载sqlite浏览器或在任何浏览器中添加相同的插件,因此您需要在浏览器中打开文件并查看数据.
从http://sqlitebrowser.org/下载浏览器
以下是显示包含注册数据库的浏览器
谢谢,
| 归档时间: |
|
| 查看次数: |
401325 次 |
| 最近记录: |