docs: 添加 Axis Innovators Box 框架完整 API 文档

- 新增浏览器模块技术文档,涵盖 BrowserCore、BrowserWindow 等核心组件
- 添加事件系统文档,包括 EventBus、GlobalEventBus 及各类事件定义
- 创建 LanguageManager 国际化管理器详细说明文档
- 新增 Log4j2OutputStream 标准输出重定向类文档
- 添加 Main 入口类启动流程与路由机制说明
- 创建 BrowserCreationCallback 回调接口使用指南
- 完善 AxisInnovatorsBox 主类架构与崩溃诊断系统文档
This commit is contained in:
2026-01-03 08:46:19 +08:00
parent 06f36fc3f0
commit 7badbb0d8e
29 changed files with 3011 additions and 2275 deletions

View File

@@ -0,0 +1,110 @@
# RegistrationTool 类技术文档
**包路径:** `com.axis.innovators.box.register.RegistrationTool`
**主要功能:** 工具箱组件注册中心、功能分类管理器
**作者:** tzdwindows 7
---
## 1. 概述
`RegistrationTool`**Axis Innovators Box** 的功能调度核心。它负责管理主程序中所有的工具项(`ToolItem`)及其所属的分类(`ToolCategory`。通过该类开发者可以将各种功能模块如调试工具、编程环境、AI 推理等)注册到主界面的工具栏中。
该类不仅内置了丰富的系统工具,还为外部插件提供了一套标准的扩展接口,支持基于命名空间的工具注册逻辑。
## 2. 核心职责
* **功能分类管理:** 将相似功能的工具组织在 `ToolCategory`如“调试工具”、“AI工具”
* **工具项路由:** 定义点击工具图标后的具体行为(通过 `AbstractAction` 实现窗口弹出或逻辑执行)。
* **插件扩展支持:** 提供 API 允许插件在加载时动态注入自定义工具。
* **唯一性校验:** 确保每个注册项拥有唯一的 `UUID` 和注册名称Registered Name防止冲突。
* **平台适配:** 在初始化时根据 `BuildInformation` 检查操作系统兼容性(主要针对 Windows
## 3. 内置工具分类
在 Windows 系统环境下,`RegistrationTool` 默认初始化以下分类及工具:
### 3.1 调试工具 (Debug Tools)
* **Frida 注入工具:** 使用 Frida 框架对目标进程进行脚本注入。
### 3.2 编程工具 (Programming Tools)
* **JarApi 查看器:** 反射查看 JAR 包内的方法定义及其注解。
* **C 语言编辑器:** 智能化的 C 语言编译与编辑环境。
* **多语言在线执行:** 支持多种编程语言的实时在线运行,具备无限循环检测机制。
* **数据库管理:** 跨平台的数据库管理客户端。
* **Linux 终端:** 启动一个真实的 Linux 终端模拟环境。
* **MySQL 控制台:** 模拟 MySQL 命令行交互界面。
### 3.3 AI 工具 (AI Tools)
* **本地 AI 执行工具:** 在本地运行开源大语言模型LLM。支持自动加载 **CUDA** 硬件加速库(通过 `LM` 类)。
### 3.4 系统工具 (System Tools)
* **任务栏主题设置:** 深度定制 Windows 任务栏的外观、颜色和透明度。
---
## 4. 插件扩展机制
`RegistrationTool` 支持插件化扩展,插件可以通过以下方法将自己的工具分类注册到主程序中:
```java
public void addToolCategory(ToolCategory toolCategory,
PluginDescriptor pluginDescriptor,
String registeredName)
```
**命名空间规则:**
为了防止不同插件之间的工具冲突,系统会自动使用 `插件注册名:工具注册名` 的格式生成全局唯一的标识符。
---
## 5. API 接口说明
### 5.1 注册方法
| 方法 | 描述 |
| :--- | :--- |
| `addToolCategory(ToolCategory, String)` | 注册一个新的工具分类(系统级使用)。 |
| `addToolCategory(ToolCategory, PluginDescriptor, String)` | **插件专用接口**。通过插件描述符注册分类。 |
### 5.2 查询方法
| 方法 | 描述 |
| :--- | :--- |
| `ToolCategory getToolCategory(UUID id)` | 根据 UUID 获取分类对象。 |
| `UUID getUUID(String registeredName)` | 根据注册名称(如 "system:debugTools")获取其 UUID。 |
| `List<ToolCategory> getToolCategories()` | 获取当前所有已注册的分类列表。 |
---
## 6. 关键技术约束:注册时机
**生命周期限制:**
`RegistrationTool` 的注册操作具有严格的时机限制:**必须在应用主窗口启动(`run` 方法执行完毕)之前完成。**
* 如果在主窗口已处于显示状态(`main.isWindow()``true`)时尝试添加工具,系统会通过日志记录 `logger.warn("Wrong time to add tools")` 并拒绝注册。
* 这种设计确保了 UI 在渲染初期能获得完整的工具树,避免动态修改 UI 导致的线程竞争或布局闪烁。
---
## 7. 错误处理
如果在注册过程中检测到**重复的注册名称**,该类会抛出 `RegistrationError`。这是一种致命错误,旨在提醒开发者工具标识符冲突,必须在开发阶段解决。
## 8. 示例代码:添加简单工具
```java
ToolCategory myCategory = new ToolCategory("我的工具", "icon.png", "说明");
myCategory.addTool(new ToolItem("弹窗演示", "btn.png", "点击会弹出消息", 100, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "你好,这是注册工具!");
}
}));
// 注册到系统
registrationTool.addToolCategory(myCategory, "my_custom_tools");
```
---
*文档生成时间: 2026-01-02*