自应用发布以来,我一直在使用Android Studio开发应用。

直到最近,一切都很好,我必须调试和检查数据库文件。由于我不知道如何直接看到数据库,当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。

为此,我必须打开DDMS >文件资源管理器。一旦我打开DDMS,我必须重新连接USB,我失去了调试线程。在检查数据库文件之后,我必须关闭DDMS并重新连接USB以回到调试模式。

这太复杂了。有人有更好的方法来做到这一点在Android Studio(我知道它更容易在Eclipse) ?


当前回答

使用android sqlite作为服务器端数据库

遵循以下步骤:

找到数据库工具窗口,然后像下图一样点击它

点击加号图标,并选择Android SQLite如下图

将你的android设备连接到你的电脑 选择您关心的包,并选择如下图所示的数据库 在执行上述所有步骤之前,您必须确保拥有访问文件/data/data/ database/ databasfile .db的权限

在所有这些步骤之后,您将看到如下所示的数据库内容:

最后一点是

每次更新数据库数据时,都必须单击更新图标。

希望这对你有用!谢谢你!

其他回答

我知道这个问题很老了,但我相信这个问题仍然存在。

从浏览器查看数据库

我创建了一个开发工具,你可以作为一个库集成到你的android应用程序项目。该工具在应用程序中打开一个服务器套接字,通过web浏览器进行通信。您可以浏览整个数据库并直接通过浏览器下载数据库文件。

集成可以通过jitpack.io完成:

项目build.gradle:

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

应用build.gradle:

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

安装应用程序类

为了只在特定的构建类型或产品风格中编译DebugGhostLib,我们需要一个抽象的Application类,它将以特殊的风格派生。把下面的类放在你的主文件夹(在java > your.app.package下):

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

现在,对于您的发布构建类型(或产品风味),您将以下应用程序类添加到您的发布(或产品风味)文件夹(也在java > your.app.package下):

public class MyApp extends AbstractDebugGhostExampleApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

这个应用程序类不会引用DebugGhostLib。

同时告诉AndroidManifest.xml你正在使用自己的应用程序类。这将在你的主文件夹中完成:

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->
    </application>
</manifest>

现在,对于您的调试构建类型(或产品风味),您将以下应用程序类添加到您的调试(或产品风味)文件夹(也在java > your.app.package下):

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    @Override
    public void onCreate() {
        super.onCreate();

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
        mDebugGhostBridge.startDebugGhost();
    }
}

你可以在这里找到工具。

我把这个过程的unix命令行自动化放在一起,并把代码放在这里:

https://github.com/elliptic1/Android-Sqlite3-Monitor

它是一个shell脚本,以包名和数据库名作为参数,从附加的Android设备下载数据库文件,并针对下载的文件运行自定义脚本。然后,使用像“watch”这样的unix工具,你可以打开一个终端窗口,定期更新数据库脚本输出的视图。

事实上,我很惊讶没有人给出这个解决方案:

看看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

要知道sqlite数据库存储由你在android studio,你需要遵循简单的步骤:

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.

欲了解更多信息,此链接将是有用的。 http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

要查看您的db文件中的数据,您需要下载sqlite浏览器或在任何浏览器中添加相同的插件,因此您需要在浏览器中打开文件并查看您的数据。

从http://sqlitebrowser.org/下载浏览器

这里是屏幕截图显示浏览器包含注册数据库

谢谢,

我使用windows 7,我的设备是一个模拟的android设备API 23。我想对于任何真实的设备都是一样的,只要它是根设备,API不超过23

进入工具-> Android -> Android设备监视器。 进入文件资源管理器。在我的例子中,它在data/data//app_webview/databases/file_0/1中

我必须手动在名为"1"的文件末尾添加。db