自应用发布以来,我一直在使用Android Studio开发应用。
直到最近,一切都很好,我必须调试和检查数据库文件。由于我不知道如何直接看到数据库,当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。
为此,我必须打开DDMS >文件资源管理器。一旦我打开DDMS,我必须重新连接USB,我失去了调试线程。在检查数据库文件之后,我必须关闭DDMS并重新连接USB以回到调试模式。
这太复杂了。有人有更好的方法来做到这一点在Android Studio(我知道它更容易在Eclipse) ?
从Android Studio查看数据库:
选项1:
Download and install SQLiteBrowser.
Copy the database from the device to your PC:
Android Studio versions < 3.0:
Open DDMS via Tools > Android > Android Device Monitor
Click on your device on the left.
You should see your application:
Go to File Explorer (one of the tabs on the right), go to /data/data/databases
Select the database by just clicking on it.
Go to the top right corner of the Android Device Monitor window. Click on the 'pull a file from the device' button:
A window will open asking you where you want to save your database file. Save it anywhere you want on your PC.
Android Studio versions >= 3.0:
Open Device File Explorer via View > Tool Windows > Device File Explorer
Go to data > data > PACKAGE_NAME > database, where PACKAGE_NAME is the name of your package (it is com.Movie in the example above)
Right click on the database and select Save As.... Save it anywhere you want on your PC.
Now, open the SQLiteBrowser you installed. Click on 'open database', navigate to the location you saved the database file, and open. You can now view the contents of your database.
选项2:
转到这个Github存储库,并按照自述文件中的说明在您的设备上查看您的数据库。你得到的结果是这样的:
就是这样。当然,在发布应用之前,你应该撤销所有这些步骤。
通过ADB Shell连接到Sqlite3
我还没有找到任何方法来做到这一点,在Android工作室,但我访问db与远程shell,而不是每次拉动文件。
在这里找到所有信息:
http://developer.android.com/tools/help/adb.html#sqlite
1-在命令提示符中进入你的平台工具文件夹
2-输入命令adb devices获取您的设备列表
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx device
3-连接一个外壳到您的设备:
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
4-导航到包含你的db文件的文件夹:
cd data/data/<your-package-name>/databases/
5-运行sqlite3连接到你的数据库:
sqlite3 <your-db-name>.db
6-运行你喜欢的sqlite3命令,例如:
Select * from table1 where ...;
注意:在下面可以找到更多要运行的命令。
SQLite备忘单
在SQLite数据库中查看表有几个步骤:
列出数据库中的表:
.tables
列出表格的外观:
. schema的表
打印整个表格:
SELECT * FROM tablename;
列出所有可用的SQLite提示命令:
.help
事实上,我很惊讶没有人给出这个解决方案:
看看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