Skip to content

Latest commit

 

History

History
131 lines (124 loc) · 9.33 KB

File metadata and controls

131 lines (124 loc) · 9.33 KB

完整项目结构

← 返回架构主文档

目录结构

CalculatorX/
├── entry/
├── AppScope/             # HarmonyOS 应用级配置:Bundle、版本、全局字符串与应用图标
├── docs/                 # 📚 项目文档:架构、规划、变更日志、贡献指南与技术审查
├── hvigor/               # Hvigor 构建系统配置
├── .clang-tidy           # C/C++ 静态检查规则
├── .clangd               # clangd 配置
├── .gitignore            # Git 忽略规则
├── build-profile.json5   # 工程级产品、签名与模块构建配置
├── code-linter.json5     # ArkTS/ETS 代码检查规则
├── README.md             # 项目介绍、功能与构建说明
└── LICENSE               # 开源许可证

entry 目录结构

entry/src/main/                   # 📦 主 HAP 模块源码
├── ets/                              # 📱 ArkTS 前端逻辑与视图层
│   ├── entryability/
│   │   └── EntryAbility.ets              # 应用入口:偏好初始化、主题应用、主页加载、全屏布局与导航条避让
│   ├── entrybackupability/
│   │   └── EntryBackupAbility.ets        # 备份扩展能力(当前为基础实现)
│   │
│   ├── pages/                        # 🧭 全局页面与骨架层(Shell)
│   │   ├── Index.ets                     # 主枢纽:动态挂载插件、全局事件、侧边栏和历史抽屉
│   │   ├── DocViewer.ets                 # 文档查看器:隐私政策、用户协议等应用内文档
│   │   ├── HelpDocs.ets                  # 帮助页面:加载 rawfile/docs 的 Nextra 静态站点
│   │   ├── history/
│   │   │   └── HistoryManager.ets        # 全局历史页:分类检索、图文展示、复制与删除
│   │   └── settings/
│   │       ├── Settings.ets              # 设置主页:主题、角度、触感、格式、精度与启动页
│   │       ├── About.ets                 # 关于页面:版本、许可与开发者信息
│   │       └── Credits.ets               # 鸣谢页面:第三方库与贡献者
│   │
│   ├── components/                   # 🧩 业务插件与共享 UI 组件
│   │   ├── ScientificCalc.ets            # 科学计算器:Shift 双层键盘、三角/微积分/排列组合等
│   │   ├── BasicCalc.ets                 # 基础计算器:四则、百分数、Ans、连续退格
│   │   ├── MatrixCalc.ets                # 矩阵插件:1×1–6×6 模板与线性代数运算
│   │   ├── EquationSolver.ets            # 方程求解:2–6 行方程组,支持 x/y/z/u/v/w 六个未知数
│   │   ├── StatisticsCalc.ets            # 统计分析插件(占位,开发中)
│   │   ├── UnitConverter.ets             # 单位转换插件(占位,开发中)
│   │   ├── FormulaScreen.ets             # 双 WebView 中枢:按键分发、计算调度、显示与历史入库
│   │   ├── TopBar.ets                    # 顶栏:菜单、撤销/重做、状态岛和历史入口
│   │   ├── SideBarMenu.ets               # 侧边栏:模块分组、手势关闭与弹性回弹
│   │   ├── HistorySheet.ets              # 当前模块历史半模态抽屉
│   │   ├── PrivacyDialog.ets             # 隐私协议确认弹窗
│   │   │
│   │   ├── common/                   # 🧱 通用 UI 与交互积木
│   │   │   ├── KeyGestureWrapper.ets     # 按键手势基座:连续触发、菜单、滑动气泡、Shift 等策略
│   │   │   ├── UniversalHistoryList.ets  # 通用历史列表:日期分组、图文混排、回填与滑动删除
│   │   │   └── MenuComponents.ets        # 无状态菜单积木:标题、分隔线、按钮与分组容器
│   │   │
│   │   ├── graphing/                 # 📈 函数图像子系统:五种类型、最多十条叠加
│   │   │   ├── GraphingCalc.ets          # 顶层枢纽:状态、事件、图例与 Sheet 生命周期
│   │   │   ├── GraphingCanvas.ets        # Canvas 绘图、Float64Array、Pan/Pinch 与帧率节流
│   │   │   ├── GraphingEditSheet.ets     # 函数 CRUD、焦点、定义域与类型选择
│   │   │   ├── GraphingKeyboard.ets      # 动态变量键盘、Shift 层与定义域数字键盘
│   │   │   └── GraphingTypes.ets         # FunctionType 与 GraphFunctionItem 类型
│   │   │
│   │   └── exchange/                 # 🔄 转换类插件
│   │       ├── BaseConverter.ets         # 进制转换插件(占位,开发中)
│   │       └── rates/                    # 💱 汇率换算子系统
│   │           ├── ExchangeRate.ets          # 主控制器:交叉换算、联网刷新、缓存、列表增删排序
│   │           ├── ExchangeKeyboard.ets      # 汇率专属数字键盘:金额、AC、退格、确定与收起
│   │           ├── CurrencySelector.ets      # 货币选择器:搜索、常用分组、A-Z 索引与高亮
│   │           ├── CurrencyData.ets          # 172 种货币/资产:代码、名称、符号与搜索关键词
│   │           └── ExchangeTypes.ets         # CurrencyListItem 与 API 响应类型
│   │
│   ├── utils/                        # 🧠 核心服务、配置与纯逻辑
│   │   ├── EngineService.ets             # LaTeX 清洗、JS 注入、MathJSON 与 N-API 调度
│   │   ├── InputTranslator.ets           # 70+ ActionID → 标准 LaTeX,含排列组合样式
│   │   ├── HapticUtils.ets               # Auto/Sharp/Soft/Hard 四档触感曲线
│   │   ├── CalculatorConfigs.ets         # 图标、按键视觉、路由与 PreferenceConfigs
│   │   ├── PreferenceManager.ets         # Preferences 读写、落盘与 AppStorage 批量注入
│   │   ├── ApiConfig.ets                 # 本地汇率 API 配置
│   │   ├── ApiConfig.template.ets        # 可公开复用的 API 配置模板
│   │   └── Logger.ets                    # ArkTS hilog 日志门面
│   │
│   └── database/
│       └── HistoryRepository.ets         # RDB:建表/索引、去重、每模块100条、查询与删除
│
├── cpp/                          # ⚙️ C++ 计算机代数与图像采样引擎
│   ├── CMakeLists.txt                # N-API 构建:静态链接 Giac、SymEngine、Boost 与 GMP
│   ├── engine.cpp                    # N-API calculate():模式路由、精度分发与 ArrayBuffer 返回
│   ├── core/
│   │   ├── parser.cpp/.h                 # MathJSON → SymEngine 递归解析与特殊节点处理
│   │   ├── MatrixParser.cpp/.h           # 矩阵 AST → 二维结构 → Giac 指令
│   │   ├── giac_bridge.cpp/.h            # 积分、极限、方程、矩阵与 Romberg 降级
│   │   ├── GraphingEngine.cpp/.h         # RPN 虚拟机、自适应采样与 Marching Squares
│   │   └── ErrorHandler.h                # 六类业务错误码与前端消息映射
│   ├── utils/
│   │   ├── FastMath.cpp/.h               # 超大阶乘/幂的数量级与科学记数法节点
│   │   ├── FormatUtils.cpp/.h            # DMS、分数、浮点、方程和全局 LaTeX 格式化
│   │   └── Logger.h                      # C++ hilog 日志宏
│   ├── include/                          # nlohmann/json 与 GMP 头文件
│   ├── libs/arm64-v8a/                   # GMP 预编译静态库
│   ├── third_party/                      # Giac、SymEngine、Boost 固定版本源码包
│   └── types/libentry/
│       ├── Index.d.ts                    # ArkTS 侧 N-API 类型声明
│       └── oh-package.json5
│
├── resources/                    # 🎨 HarmonyOS 资源与本地 Web 沙箱
│   ├── base/                         # 通用颜色、尺寸、字符串、媒体与页面配置
│   ├── dark/                         # 深色模式颜色资源
│   └── rawfile/
│       ├── calculator.html               # MathLive 输入/结果、自适应字号与光标追踪
│       ├── render.html                   # 离屏公式截图:html2canvas → Base64 → ArkTS
│       ├── compute-engine.min.js         # MathJSON Compute Engine
│       ├── mathlive.min.js               # MathLive 公式编辑与排版
│       ├── html2canvas.min.js            # HTML → Canvas 截图库
│       ├── mathlive-fonts.css
│       ├── mathlive-static.css
│       ├── fonts/                        # Cambria Math 与 KaTeX 数学字体
│       ├── icons/                        # 数学、矩阵、方程和菜单 SVG 图标
│       ├── help/                         # 应用内帮助图片
│       └── docs/                         # Nextra 静态帮助站点(HTML、图片与 _next 产物)
│
└── module.json5                          # Ability、设备类型、页面与网络/振动权限声明


← 返回架构主文档