以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看。现在我们用 Android Studio,有没有更方便的方法呢?
SQLScout
安装
SQLScout 是一个 Android Studio 的插件,通过点击:
Setting —> Plugings —> Browse Repositories
搜索 SQLScout 安装即可。
要是下载不动,可以到这里下载,然后点击 Install plugin from disk 导入。
加载
成功安装后重启 Android Studio,会发现右边的侧边栏出现了 SQLite Exporer,展开后点击「+」会出现三个选项:
我们从下往上说吧。
Local SQLite Database
如果要调试的数据库已经导出在电脑里了,就选择这一项来加载。
Android (Download Database Locally)
通常情况下,我们要调试的数据库是在手机上的,可以用这个功能把数据库提取出来。选择需要调试的设备、项目包名及数据库名就可以了。
Android (Live Device Connection)
上面两种方法的缺点很明显,都无法实时更新数据库。
Live Device Connection 是 SQLScout 2.0 新增的功能,和上面的区别是,它可以实时管理、更新数据库。
使用之前需要在在 project 的 build.gradle 里面添加:
allprojects {
repositories {
jcenter()
maven {
url 'http://www.idescout.com/maven/repo/'
}
}
}
在 module 的 build.gradle 里面添加:
compile 'com.idescout.sql:sqlscout-server:2.0'
在启动的 Activity 的 onCreate 方法添加一句代码:
SqlScoutServer.create(this, getPackageName());
调试
整个界面如下:
它们分别是:
- 数据库列表:要调试的数据库列表,展开显示数据库中的表,可以右键打开 SQL 编辑器。
- SQL 编辑器:输入 SQL 语句的地方,支持自动补全及代码高亮。
- 数据控制台:用类似 Excel 的格式展示查询的数据,也可以在这里编辑数据。
- 数据关系图:用于展示表和字段的关系。
是不是很好用,简直就是神器啊!但这么好用的东西是收费的。
穷屌丝用不起怎么办?接着往下看啊。
Android Debug Database
这是一个开源的项目(免费),项目地址在这。
先在 module 的 build.gradle 里面添加:
debugCompile 'com.amitshekhar.android:debug-db:1.0.0'
让手机和电脑处于一个局域网下,当项目跑起来的时候,在 logcat 里面会打印出这么一行:
D/DebugDB: Open http://XXX.XXX.X.XXX:8080 in your browser
把地址复制到浏览器,就会看到一个这样的界面:
很容易理解,里面几个栏目分别是:
- Query:写 SQL 语句的地方
- Databases:数据库
- Tables:数据库中的表
- Data:表中的数据,支持编辑、搜索
就是这么简单,妥妥的。