# debug-database **Repository Path**: daryl_code/debug-database ## Basic Information - **Project Name**: debug-database - **Description**: No description available - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2024-09-25 - **Last Updated**: 2024-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HarmonyOS Debug Database (debug-db) ### HarmonyOS Debug Database 是一款功能强大的鸿蒙应用开发三方库,方便开发人员在应用程序 Debug 版本下快速调试应用的关系型数据库 (RdbStore)、用户首选项 (Preferences) 以及键值数据库 (KVStore) 与 [Android-Debug-Database](https://github.com/amitshekhariitbhu/Android-Debug-Database?tab=readme-ov-file) 相似, HarmonyOS Debug Database 允许开发者以非常简单的方式在**浏览器**中直接查看和操作三种 HarmonyOS 数据库,提升调试效率。 ## 功能特性 ##### 以下所有的功能都可以在不需要对设备进行 Root 操作(无需Root设备)的情况下使用 - 查看所有的RdbStore数据库 - 查看指定RdbStore数据库中的所有表 - 查看RdbStore数据库中指定表的所有数据 - 在指定的RdbStore数据库上运行任何SQL查询来创建、删除数据库,或增删改查数据库数据 - 直接对RdbStore数据进行增删改查 - 下载指定RdbStore对应的数据库文件 - 查看所有的Preferences - 查看指定Preferences中所有首选项数据 - 直接对Preferences数据进行增删改查 - 查看所有的KVStore - 查看指定KVStore中所有键值对数据 - 直接对KVStore数据进行增删改查 ## 使用说明 #### 下载安装 ``` ohpm install @hadss/debug-db ``` #### 简单使用 ``` import DebugDB from @hadss/debug-db; ... DebugDB.initialize(context); // 在Log中访问 http://XXX.XXX.XXX.XXX:8080/index.html ``` #### 进阶使用 ##### 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) 下面为在应用中 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('debug-db').then(async ns => { await ns.DebugDB.initialize(context,port); // context为必要参数,port为可选参数 }) } } ``` 由于已开启了**条件编译**,编译器会对 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 的运行地址。 当应用程序处于运行状态时,你可以在浏览器中输入上述地址直接访问服务器。 ##### 注意事项: - 真机和使用浏览器的设备需要处于同一个网络环境 (Wifi 或 LAN) - 目前DevEco Studio 中集成的 HarmonyOS 模拟器暂不支持联网,若应用在模拟器启动则无法在外部设备的浏览器中直接访问 Debug 服务器。 ## DebugDB 界面 ##### RdbStore ![](./assets/pic1.png) ![](./assets/pic2.png) ##### Preferences ![](./assets/pic3.png) ##### KVStore ![](./assets/pic4.png) ## 其他说明 #### 相关权限 由于需要通过浏览器直接访问服务器获取数据库信息,因此 debug-db 使用了以下权限: ``` "requestPermission":[{ "name":"ohos.permission.INTERNET" },{ "name":"ohos.permission.GET_WIFI_INFO" }] ``` #### 约束与限制 在下述版本通过验证: DevEco Studio NEXT Developer Beta6 (5.0.3.706) --SDK:API 12 (5.0.0.61) #### 觉得这个项目有用吗?❤️ - 点击此页面右上角的⭐按钮来支持本项目。✌️ #### 本项目当前为 RC 版本,我们后续将会开发更多的功能并对错误进行修复,使用过程中发现的任何问题都可以提issue给我们,欢迎你的反馈。 #### 开源协议 本项目基于[Apache License 2.0](https://gitee.com/openharmony-tpc/ImageKnife/blob/master/LICENSE),请自由地享受与参与开源。🌏