Skip to content

HuolalaTech/sophon_harmony

Repository files navigation

Sophon - 鸿蒙应用开发调试工具

[License](LICENSE Apache 2.0) [HarmonyOS](HarmonyOS API 12+)

中文 | English

📖 项目简介

Sophon 是由货拉拉出品的一个专为鸿蒙应用开发设计的内挂调试工具,通过引入该库,即可快速在应用内展示一个悬浮的调试窗口,开发者可以实时监控应用性能、用户行为、网络请求等关键信息,大大提升开发调试效率。

✨ 核心功能展示

1 2

🪐 全局悬浮窗

  • 收起/展开悬浮窗:一键收起或展开调试悬浮窗,灵活切换显示状态。
  • 灵活摆放:按住顶部可拖动位置,按住底部可调整窗口大小。

🔍 应用信息展示

  • 基本信息展示:应用包名、版本号、安装大小、设备信息等
  • 存储分析:应用数据大小、缓存大小统计

🎯 用户行为追踪

  • 点击事件:记录用户点击位置、目标元素信息
  • 页面导航:追踪页面跳转、路由变化
  • 滚动行为:监控滚动事件和偏移量
  • 无侵入式:基于ArkUI框架原生事件,无需修改业务代码

🌐 网络请求监控

  • HTTP请求拦截:支持Axios库的请求响应监控
  • 请求详情:展示请求URL、方法、参数、响应
  • Mock支持:支持请求拦截和模拟响应(开发中)

📊 系统事件监听

  • 应用启动:监控应用启动事件
  • 崩溃检测:实时捕获应用崩溃信息
  • 性能问题:检测主线程阻塞、滑动卡顿
  • 资源监控:内存不足、资源超限警告

📝 日志管理

  • 控制台日志:拦截console.log、error、debug等日志
  • 实时查看:实时查看日志输出
  • 日志分类:按类型和时间组织日志信息(开发中)

📁 沙盒文件浏览

  • 文件系统:展示完整的文件目录树,浏览应用私有沙盒目录
  • 文件预览:支持文本、图片等文件类型预览

🛠️ 外部菜单接入

  • 自定义菜单入口:支持开发者自由添加外部菜单项,例如可以将自有的调试功能或者实验性开关集成在菜单中展示。

⚠️ 生产风险警告

  • 本工具仅供开发、测试环境使用,严禁在生产环境下集成或启用
  • 如误将 Sophon 发布至线上,可能导致敏感信息泄露、性能下降等严重风险。
  • 请务必在打包发布前移除相关依赖或者禁用初始化,确保生产环境安全。

📦 快速接入

1. 添加依赖

ohpm i @huolala/sophon

2. 功能启用

尽早的启用,例如在 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) // 展示悬浮窗。也可以放到后面你想展示的时候来调用
      }
    })
  }
}

3. 自定义菜单 (可选)

@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]


About

a dev tool for harmony mobile platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published