README
百宝工具箱 ToolBox Pro · 鸿蒙原生版
# 百宝工具箱 ToolBox Pro · 鸿蒙原生版
兼容多系统的本地离线工具箱。参考 QQ 浏览器工具箱设计,主打文件处理与开发辅助。 所有计算均在设备本地完成,不联网、不上传、不依赖任何云 API,适合个体开发者上架。
本工程为 纯血鸿蒙原生版(ArkTS),同一套代码可运行于:
- HarmonyOS 4.x(你的大型科技企业 4.3 手机)✅
- HarmonyOS NEXT(纯血鸿蒙)✅
Android 版 / 通用版(桌面+Web)/ iOS 版 将在后续批次实现,iOS 最后做。
一、技术栈
- 语言:ArkTS
- UI:ArkUI(声明式,Stage 模型)
- 编译目标:compatibleSdkVersion 10(兼容 HarmonyOS 4.0+ 与 NEXT)
- 仅使用 HarmonyOS 4.x 公开标准 Kit,未使用 NEXT 专属 API,可广泛运行于各类大型科技企业设备
- 系统能力:
@ohos.security.cryptoFramework(MD5/SHA 哈希)@ohos.util.Base64Helper/@ohos.buffer(编解码)@ohos.resourceManager(rawfile 字典加载)@ohos.pasteboard(复制)@ohos.file.picker(PhotoViewPicker / DocumentViewPicker 选择文件)@ohos.file.fs(文件读写)@ohos.multimedia.image(图片解码 / 编码 / PixelMap 操作)@ohos.zlib(ZIP 解压)Canvas/CanvasRenderingContext2D/OffscreenCanvasRenderingContext2D(绘制)
二、工程结构
ToolBoxPro-HarmonyOS/
├── AppScope/
│ ├── app.json5 # 应用配置(bundleName/version)
│ └── resources/base/
│ ├── element/string.json # 应用名
│ └── media/app_icon.jpg # 应用图标
├── entry/ # 主模块
│ ├── src/main/
│ │ ├── ets/
│ │ │ ├── entryability/EntryAbility.ets
│ │ │ ├── pages/ # 页面
│ │ │ │ ├── Index.ets # 首页(分类+全部工具+搜索)
│ │ │ │ ├── CategoryPage.ets # 分类详情
│ │ │ │ ├── ToolRunnerPage.ets # 工具分发器
│ │ │ │ └── SettingsPage.ets # 设置/关于
│ │ │ ├── components/ToolCommon.ets # 通用组件(头部/按钮/IO卡片/规划占位)
│ │ │ ├── model/ToolRegistry.ets # 工具元数据注册表
│ │ │ ├── tools/
│ │ │ │ ├── dev/ # 开发工具(6)
│ │ │ │ ├── text/ # 文本工具(6)
│ │ │ │ ├── image/ # 图片工具(4)
│ │ │ │ ├── compress/ # 压缩包工具(3)
│ │ │ │ ├── pdf/ # PDF 工具(4)
│ │ │ │ └── media/ # 多媒体工具(3)
│ │ │ └── utils/ # 工具库
│ │ │ ├── theme.ets
│ │ │ ├── CryptoUtil.ets # 哈希/字节
│ │ │ ├── EncodingUtil.ets # Base64/URL/进制
│ │ │ ├── QRCodeUtil.ets # 二维码生成器(纯TS)
│ │ │ ├── DictLoader.ets # 拼音/简繁字典加载
│ │ │ ├── ImageUtil.ets # 图片选择/读写/打包
│ │ │ └── ZipUtil.ets # ZIP 写入/解压/CRC32
│ │ ├── resources/
│ │ │ ├── base/ # 字符串/颜色/字号/路由
│ │ │ ├── dark/ # 暗色模式
│ │ │ └── rawfile/ # 字典数据
│ │ │ ├── pinyin.txt # 拼音字典(4.4万条)
│ │ │ ├── s2t.txt # 简转繁映射
│ │ │ └── t2s.txt # 繁转简映射
│ │ └── module.json5
│ ├── build-profile.json5
│ ├── hvigorfile.ts
│ └── oh-package.json5
├── build-profile.json5 # 工程级构建配置
├── hvigorfile.ts
└── oh-package.json5
三、已实现功能(v1.0.0,共 26 个工具)
✅ 开发工具(6,全部可用)
| 工具 | 说明 |
|---|---|
| 哈希计算 | MD5 / SHA-1 / SHA-224 / SHA-256 / SHA-384 / SHA-512 |
| Base64 | 编码 / 解码(非法输入容错) |
| URL编解码 | encodeURIComponent / decodeURIComponent |
| 进制转换 | 二/八/十/十六进制互转,支持大整数(无精度丢失) |
| JSON格式化 | 美化 / 压缩 / 语法校验 |
| 二维码生成 | 字节模式,版本 1-40 自动选版,L/M/Q/H 纠错,8 种掩码,Reed-Solomon 纠错 |
✅ 文本工具(6,全部可用)
| 工具 | 说明 |
|---|---|
| 字数统计 | 字符/词数/行数/中英文/数字/标点/UTF-8 字节 |
| 排序去重 | 升降序 / 去重 / 反转 / 按长度排序 |
| 文本对比 | 基于 LCS 的逐行差异(+/- 标记 + 统计) |
| 大小写转换 | 全大/全小/首字母大写/句首大写/反转/全角转半角 |
| 拼音转换 | 汉字转拼音,带声调/无声调可选,覆盖 4.4 万字 |
| 简繁转换 | 简体 ⇄ 繁体 互转,基于 OpenCC 字符映射 |
✅ 图片工具(4,全部可用)
| 工具 | 说明 |
|---|---|
| 图片压缩 | JPEG/WebP 输出,质量 10-100% 可调,自动计算压缩率 |
| 格式转换 | PNG / JPEG / WebP 互转 |
| 加水印 | 文字水印,字号/颜色/透明度/位置(4 角)可调 |
| 九宫格切图 | 一张图居中裁剪为正方形后切成 3x3 共 9 张朋友圈图 |
✅ 压缩包工具(2 可用 + 1 规划中)
| 工具 | 说明 |
|---|---|
| ZIP压缩 | 多文件打包为 ZIP(STORED 归档模式,纯 TS 实现,含 CRC32) |
| 解压压缩包 | @ohos.zlib 解压 ZIP/GZ 到沙箱并列表展示(RAR/7Z 不支持) |
| 密码管理 | 规划中:ZIP 加密需 NAPI 集成 minizip-ng |
🚧 PDF 工具(4,全部规划中)
| 工具 | 说明 |
|---|---|
| PDF合并 | 规划中:需 NAPI 集成 pdfium |
| PDF拆分 | 规划中:需 NAPI 集成 pdfium |
| PDF转图片 | 规划中:需 NAPI 集成 pdfium 渲染引擎 |
| PDF加水印 | 规划中:需 NAPI 集成 pdfium 内容流注入 |
🚧 多媒体工具(3,全部规划中)
| 工具 | 说明 |
|---|---|
| 视频转GIF | 规划中:需 NAPI 集成 AVCodec 解码视频帧 |
| GIF合成 | 规划中:纯 TS GIF89a 编码器(含色彩量化与 LZW) |
| m3u8转mp4 | 不支持:涉及网络下载,违反「全本地、无网络」合规原则 |
状态说明:✅ = 完全可用;🚧 = 已实现 UI 占位,能力规划中(含技术方案与临时方案)
四、规划中能力的实现路径
| 模块 | 实现方式 | 难度 | 备注 |
|---|---|---|---|
| ZIP 加密 | NAPI + minizip-ng | 中 | AES-256 / 传统 ZipCrypto |
| RAR / 7Z 解压 | NAPI + unrar / 7zip SDK | 高 | 商用授权注意 |
| PDF 合并/拆分/转图/水印 | NAPI + pdfium | 中 | Google Chromium 同款引擎 |
| 视频转 GIF | NAPI AVCodec + TS LZW | 高 | 色彩量化在 TS 侧 |
| GIF 合成 | 纯 TS GIF89a 编码器 | 中 | 无 NAPI 依赖 |
五、构建与安装
环境要求
- DevEco Studio 4.1 或更高(推荐 5.0+)
- HarmonyOS SDK(API 10+)
步骤
-
打开工程
- DevEco Studio → File → Open → 选择
ToolBoxPro-HarmonyOS目录
- DevEco Studio → File → Open → 选择
-
同步依赖
- 打开后 IDE 会自动 Sync;若未自动,点击右上角
Sync Now
- 打开后 IDE 会自动 Sync;若未自动,点击右上角
-
连接手机
- 大型科技企业手机(HarmonyOS 4.3)开启「开发者选项」与「USB 调试」
- USB 连接电脑,手机弹窗选择「允许调试」
-
运行
- 顶部设备下拉框选中你的手机
- 点击 ▶ Run(或 Shift+F10)
- 等待 hvigor 编译并自动安装到手机
-
签名(首次运行)
- File → Project Structure → Project → Signing Configs
- 勾选「Automatically generate signature」自动生成调试证书
- 保存后重新 Run
单独构建 HAP
hvigorw assembleHap
产物位于 entry/build/default/outputs/default/entry-default-signed.hap
六、字典数据来源与许可
| 文件 | 来源 | 许可 |
|---|---|---|
| pinyin.txt | mozillazg/pinyin-data | MIT |
| s2t.txt / t2s.txt | BYVoid/OpenCC | Apache-2.0 |
数据已处理为 char\tpinyin 紧凑格式,作为 rawfile 打包,首次使用时解析缓存。
七、设计取舍说明(针对个体开发者)
- 已剔除所有需调用云 API 的功能:OCR/AI 证件照/翻译/识别/汇率等。
- 已剔除敏感信息功能:扫描身份证/银行卡/户口本等,便于应用商店审核。
- 无任何联网权限,仅本地计算,隐私安全。
- 不实现 m3u8 转 mp4 等涉及网络下载的功能,确保审核合规。
- 暂未集成 NAPI 第三方库:ZIP 加密、RAR/7Z 解压、PDF 操作等需要原生库的能力以「规划中」占位形式展示,避免引入审核风险。
八、已知问题与后续
- ZIP 压缩当前为 STORED 归档模式(不压缩,仅打包);DEFLATE 压缩需后续 NAPI 或第三方纯 TS 库实现。
- 二维码建议首次用手机相机扫描验证(若某版本纠错表偏差导致不可扫,反馈后修正)。
- 多音字拼音取首个常用读音。
- 图片水印使用 OffscreenCanvas 绘制,大图可能耗时;超过 4000px 的图建议先压缩。
九、后续端规划
| 端 | 形态 | 技术栈 | 优先级 |
|---|---|---|---|
| 纯血鸿蒙版 | 原生 App | ArkTS / ArkUI(本工程) | ✅ 已完成 |
| 通用版 | 桌面 App + Web | Tauri (Rust) + Web 前端 / SPA + WASM | 中 |
| 安卓版 | 原生 App | Kotlin / Jetpack Compose | 中 |
| iOS 版 | 原生 App | Swift / SwiftUI | 低(最后做) |
如需新增端(Android / 桌面+Web / iOS),告诉我即可继续。