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,108 @@
这是一个为您编写的专门用于介绍 `package com.axis.innovators.box``AxisInnovatorsBox` 类的 Markdown 文档。
该文档详细涵盖了类的架构、核心功能、生命周期管理、崩溃处理机制以及主题系统。
***
# AxisInnovatorsBox 类技术文档
**包路径:** `com.axis.innovators.box.AxisInnovatorsBox`
**版本:** 0.2.2
**作者:** tzdwindows 7, lyxyz5223, 🐾Mr. Liu🐾, 泽钰
## 1. 概述
`AxisInnovatorsBox`**Axis Innovators Box** 应用程序的核心入口类和应用控制器。它主要负责应用程序的生命周期管理、全局配置初始化、插件加载、GUI 窗口调度、崩溃诊断报告生成以及用户身份验证。
该类采用了 **单例模式 (Singleton Pattern)**,确保在整个应用运行期间只有一个主控制器实例存在,并通过 `GlobalEventBus` 进行事件驱动的模块间通信。
## 2. 核心架构与职责
该类承载了以下关键职责:
* **启动引导 (Bootstrapping):** 解析命令行参数,初始化 Log4j2 日志系统,加载原生库 (JNI)。
* **资源加载:** 并行加载 Java 插件 (`PluginLoader`) 和 Python 插件 (`PluginPyLoader`),并管理加载进度条 (`ProgressBarManager`)。
* **GUI 管理:** 初始化主窗口 (`MainWindow`),管理子窗口 (`WindowsJDialog`),并处理系统托盘 (`Tray`)。
* **主题与外观:** 集成 FlatLaf 和 Material 主题,支持明/暗模式自动切换及系统主题监听。
* **异常熔断与诊断:** 捕获未处理的异常,生成包含堆栈、内存快照 (Heap Dump)、线程快照等的详细崩溃报告。
* **安全与验证:** 处理 Casdoor 用户登录,管理加密的 Token (`AESCryptoUtil`, `Base64CryptoUtil`)。
## 3. 关键特性详解
### 3.1 启动流程 (`run` 方法)
启动过程被设计为异步非阻塞模式:
1. **环境检查:** 区分快速启动模式 (`quickStart`) 和调试模式 (`isDebug`)。
2. **原生库加载:** 在静态块中加载核心原生库:`FridaNative`, `ThrowSafely`, `DogAgent`, `RegisterTray`
3. **插件加载线程:** 开启独立线程加载插件,避免阻塞 UI 渲染,同时通过 `ProgressBarManager` 反馈进度。
4. **事件广播:** 插件加载完成后,通过事件总线发送 `StartupEvent``OpenFileEvents`
5. **UI 呈现:** 最终调用 `runWindow()` 初始化并显示主界面。
### 3.2 强大的崩溃诊断系统 (`organizingCrashReports`)
这是该类最复杂的功能之一。当发生未捕获异常时,它会:
1. 拦截异常(包括 EDT 线程异常)。
2. 收集全面的调试信息:
* **日志:** Log4j2 的所有 Appender 日志。
* **JVM 信息:** 类加载器层级、内存使用详情 (Heap/Non-Heap)、线程堆栈 (Thread Dump)、GC 状态。
* **系统环境:** 环境变量、系统属性。
* **内存转储:** 调用 `HotSpotDiagnosticMXBean` 生成 `.hprof` 文件。
3. **UI 反馈:** 弹出一个自定义的崩溃对话框,展示错误堆栈和插件信息。
4. **导出:** 允许用户将所有诊断信息打包导出为 ZIP 文件。
### 3.3 主题管理系统 (`setTopic` & `updateTheme`)
支持高度可定制的外观,并能响应系统级的主题变更:
* **集成主题库:** FlatLaf (Light, Dark, IntelliJ, Darcula, Mac), Material (Oceanic, Lite, Mars), 以及 Java 标准主题 (Metal, Motif)。
* **动态切换:** 通过 `WindowsTheme` 监听系统主题变化,并实时广播 `TopicsUpdateEvents` 事件来刷新所有已打开的窗口。
### 3.4 身份验证 (`popupLogin`)
* 集成了 **Casdoor** 认证服务器。
* 使用 `StateManager` 本地存储加密后的登录 Token。
* 支持自动登录:如果本地存在有效 Token自动解密并校验否则弹出登录窗口。
## 4. 主要方法说明
| 方法签名 | 描述 |
| :--- | :--- |
| `static void run(String[] args, boolean isDebug, boolean quickStart)` | 程序的静态入口点。初始化全局异常处理并启动主实例。 |
| `void quit()` | 安全退出程序,中断主线程并关闭 JVM。 |
| `void runWindow()` | 初始化主窗口 UI加载注册的工具组件并显示窗口。 |
| `void organizingCrashReports(Exception e)` | 核心崩溃处理逻辑。收集数据并显示错误报告 GUI。 |
| `void reloadAllWindow()` | 重新加载所有活动窗口(主窗口及子弹窗),用于主题切换或语言更新时刷新 UI。 |
| `void updateTheme(String themeName, boolean isDarkMode)` | 设置 Swing 的 LookAndFeel 并触发全局主题更新事件。 |
| `static AxisInnovatorsBox getMain()` | 获取当前运行的应用主实例(单例)。 |
## 5. 调试功能
`isDebug``true` 时,程序会:
1. 启动一个独立的 `DebugWindow`,实时显示应用内部状态。
2. 允许通过 `generateFileDump()` 等内部方法手动生成性能分析数据。
## 6. 原生库依赖
该类在静态初始化块中加载了以下原生库,表明应用具备底层系统交互能力:
* **FridaNative:** 可能用于动态插桩或 Hook。
* **ThrowSafely:** 安全异常处理。
* **DogAgent:** 代理或监控组件。
* **RegisterTray:** 系统托盘的原生实现。
## 7. 代码示例:获取主实例与工具注册
```java
// 获取主程序实例
AxisInnovatorsBox app = AxisInnovatorsBox.getMain();
// 获取注册工具管理器
RegistrationTool tool = app.getRegistrationTool();
// 检查是否处于调试环境
if (app.isDebugEnvironment()) {
System.out.println("Current task progress: " + app.progressBarManager);
}
// 强制重新加载 UI (例如在插件更改后)
SwingUtilities.invokeLater(() -> {
app.reloadAllWindow();
});
```
---
*文档生成时间: 2026-01-02*