[](LICENSE Apache 2.0)
[
](HarmonyOS API 12+)
Sophon 是由货拉拉出品的一个专为鸿蒙应用开发设计的内挂调试工具,通过引入该库,即可快速在应用内展示一个悬浮的调试窗口,开发者可以实时监控应用性能、用户行为、网络请求等关键信息,大大提升开发调试效率。
- 收起/展开悬浮窗:一键收起或展开调试悬浮窗,灵活切换显示状态。
- 灵活摆放:按住顶部可拖动位置,按住底部可调整窗口大小。
- 基本信息展示:应用包名、版本号、安装大小、设备信息等
- 存储分析:应用数据大小、缓存大小统计
- 点击事件:记录用户点击位置、目标元素信息
- 页面导航:追踪页面跳转、路由变化
- 滚动行为:监控滚动事件和偏移量
- 无侵入式:基于ArkUI框架原生事件,无需修改业务代码
- HTTP请求拦截:支持Axios库的请求响应监控
- 请求详情:展示请求URL、方法、参数、响应
- Mock支持:支持请求拦截和模拟响应(开发中)
- 应用启动:监控应用启动事件
- 崩溃检测:实时捕获应用崩溃信息
- 性能问题:检测主线程阻塞、滑动卡顿
- 资源监控:内存不足、资源超限警告
- 控制台日志:拦截console.log、error、debug等日志
- 实时查看:实时查看日志输出
- 日志分类:按类型和时间组织日志信息(开发中)
- 文件系统:展示完整的文件目录树,浏览应用私有沙盒目录
- 文件预览:支持文本、图片等文件类型预览
- 自定义菜单入口:支持开发者自由添加外部菜单项,例如可以将自有的调试功能或者实验性开关集成在菜单中展示。
- 本工具仅供开发、测试环境使用,严禁在生产环境下集成或启用。
- 如误将 Sophon 发布至线上,可能导致敏感信息泄露、性能下降等严重风险。
- 请务必在打包发布前移除相关依赖或者禁用初始化,确保生产环境安全。
ohpm i @huolala/sophon尽早的启用,例如在 EntryAbility.ets 中:
import Sophon from '@huolala/sophon'
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage): void {
// ....
if (isDebugMode) { // 请确保当前为debug环境
Sophon.hookHttp() // hook Axios网络库,如果不是Axios可以不调用。 hook操作需要尽早开始
Sophon.showFloatWindow(this.context) // 展示悬浮窗。也可以放到后面你想展示的时候来调用
}
})
}
}@Builder
function CustomMenuBuilder(content: string) {
CustomMenuComponent({ text: content }) // content:初始化内容,可选
}
// 自定义菜单内容
@Component
struct CustomMenuComponent {
@State text: string = ''
build() {
Text(this.text)
}
}
// 添加菜单,需要UIContext
const cc = new ComponentContent(this.getUIContext(), wrapBuilder(CustomMenuBuilder), '我是自定义内容')
Sophon.addMenu('我是菜单入口名', cc)欢迎提交 Issue 和 Pull Request!
- 支持HarmonyOS API 12及以上
本项目采用 Apache 2.0 许可证。
联系方式:[email protected]

