HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db) 原创

Sasuke是我
发布于 2024-10-25 16:43
浏览
1收藏

HarmonyOS Debug Database 是一款功能强大的鸿蒙应用数据库调试工具,方便开发人员在应用程序 Debug 版本下快速调试关系型数据库 (RdbStore)、用户首选项 (Preferences)、键值数据库 (KVStore)

你可以点击下面的链接直接使用和获取 HarmonyOS Debug Database:

OpenHarmonyhttps://ohpm.openharmony.cn/#/cn/detail/@hadss%2Fdebug-db

giteehttps://gitee.com/ohadss/debug-database

Android-Debug-Database 相似, HarmonyOS Debug Database
可使开发者以非常简单的方式在浏览器中直接查看和操作三种 HarmonyOS 数据库,提升调试效率。

HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db)-鸿蒙开发者社区

功能特性

以下所有的功能都可以在不需要对设备进行 Root 操作(无需Root设备)的情况下使用:

  • 查看所有的 RdbStore 数据库 (包括加密数据库)
  • 查看指定 RdbStore 数据库中的所有表
  • 查看 RdbStore 数据库中指定表的所有数据
  • 在指定的 RdbStore 数据库上运行任何SQL查询来创建、删除数据库,或增删改查数据库数据
  • 直接对 RdbStore 数据进行增删改查
  • 下载指定 RdbStore 对应的数据库文件
  • 查看所有的 Preferences
  • 查看指定 Preferences中所有首选项数据
  • 直接对 Preferences 数据进行增删改查
  • 查看所有的 KVStore (包括加密KV数据库,需手动配置)
  • 查看指定 KVStore 中所有键值对数据
  • 直接对 KVStore 数据进行增删改查

使用说明

下载安装

ohpm install @hadss/debug-db

简单使用

import {DebugDB} from '@hadss/debug-db';

...
const context = getContext(this) as common.UIAbilityContext;
DebugDB.initialize(context); // 在浏览器中访问 http://XXX.XXX.XXX.XXX:8080/index.html (详细地址请在 Log 中查看)

进阶使用

1、开启条件编译

在项目打包时通常不希望将 Debug 版本使用的三方库打包进 Release 版本的 HAP 包中,因此需要在项目build-profile.json5配置文件中加入条件编译参数,并设置:

"buildOption":{
    "arkOptions":{
        "branchElimination":true
    }
}

关于应用编译选项的配置,详情可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-build-profile-V5

2、在应用中导入 DebugDB,设置 UIAbilityContext 及服务端运行的端口 ( 默认为 8080 ),依据需要配置加密的KV数据库名

下面为在应用中 ability 的 aboutToApper 阶段导入并启动 DebugDB 的一个完整示例。你也可以在应用程序的其他位置启动 DebugDB 服务:

import {common} from '@kit.AbilityKit';
import {DEBUG} from 'BuildProfile';

...
aboutToApper():void{
    if(DEBUG){
        const context = getContext(this) as common.UIAbilityContext;
        const port = 8080;
        import('@hadss/debug-db').then(async ns => {
           await ns.DebugDB.initialize(context, { port: 9090, encryptedKVStoreNames: ['MyEncryptedKVStore'] }); // context为必要参数,根据需要配置可选参数
        })
    }
}

其中,DebugDB相关启动参数以“对象”的形式配置。

在编译过程中,由于已开启了条件编译,编译器会对 BuildProfile 中的 DEBUG 字段进行判断,并根据当前打包的环境 (Debug 或 Release) 对未生效的代码进行编译剪枝,生成的 HAP 包中仅包含开发者的项目代码。

3、在浏览器中访问 DebugDB

当开发者启动应用程序后,应用后台会自动启动 DebugDB 服务,若成功启动,则可以在 DevEco Studio 的 Log 界面查看到以下日志:

You can access DebugDB through http://XXX.XXX.XXX.XXX:8080/index.html

日志中的网址即为 DebugDB 运行时的界面首页,另外,你也可以通过await DebugDB.getDebugDBAddress()直接获取到 DebugDB 的运行地址。

当应用程序处于运行状态时,你可以在浏览器中输入上述地址直接访问服务端,如果你希望手动开启和关闭服务,你可以通过await DebugDB.start()await DebugDB.stop()直接开启和关闭服务。

注意事项

  • 真机和使用浏览器的设备需要处于同一个网络环境 (Wifi 或 LAN)
  • 目前DevEco Studio 中集成的 HarmonyOS 模拟器暂不支持联网,若应用在模拟器启动则无法在外部设备的浏览器中直接访问 Debug 服务端。

DebugDB 界面

RdbStore

HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db)-鸿蒙开发者社区
HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db)-鸿蒙开发者社区

Preferences

HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db)-鸿蒙开发者社区

KVStore

HarmonyOS应用数据库调试工具 HarmonyOS Debug Database (debug-db)-鸿蒙开发者社区

常见错误

1. 启动 Debug 服务后,访问浏览器无法显示页面

  • 查看浏览器的设备与移动设备不处于同一个局域网中
  • 所配置的启动端口已经占用

2. 查询加密KV数据库时出现红体 “Query Execution Failed”

  • 未在启动时配置加密KV数据库名

3. DevEco 没有输出服务端地址信息

  • 应用启动模式为 Release 模式

其他说明

服务端
本项目使用的服务端为开源库 polka

相关权限

由于需要通过浏览器直接访问服务端获取数据库信息,因此 debug-db 使用了以下权限:

"requestPermission":[{
      "name": "ohos.permission.INTERNET"
    },{
      "name": "ohos.permission.GET_WIFI_INFO"
    },{
      "name": "ohos.permission.GET_NETWORK_INFO"
    }]

如果你觉得 HarmonyOS Debug Database (debug-db) 有用,可以在 https://gitee.com/ohadss/debug-database 了解更详细的使用方法,欢迎 star ⭐⭐⭐和提出任何的 issue ✌️✌️✌️~~~

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-10-25 16:43:55修改
收藏 1
回复
举报
2条回复
按时间正序
/
按时间倒序
精灵鼠小妹
精灵鼠小妹

值得推荐的工具

回复
2024-10-29 09:49:19
穿越时空111
穿越时空111

收藏了

回复
2024-10-29 11:44:19
回复
    相关推荐