沈工机械百宝箱-APP软件说明文档
【声明⚠️】:本说明文档创建于2025年10月1日18:09,想法DEMO开始于2025年9月21日,数据更新日期:2025年10月24日11:09
开发者:中国铁路沈阳局集团有限公司-沈阳工务机械段-冯宏健。
联系方式:fhj@hongjian.cn;技术支持微信号:work_hj
其中所有版本中以本Markdown文档为准,文档中所涉及图片仅供参考,请以实物为准!
1. 项目概述
1.1 项目简介
“沈工机械百宝箱”是一款基于原生Kotlin开发的安卓应用,专为沈阳工务机械段干部职工设计,集成了图片快速标记、手信号灯、智能运维助手等实用功能。同时内部集成的AI智能助手也可服务于沈阳局集团公司所有干部职工,欢迎使用。如需增加知识库或定制训练更适合本站段的模型或智能体,欢迎联系开发者-冯宏健-18640640643。
1.2 功能模块
- 启动页面:3秒后自动跳转到主页面
- 主功能页面:包含多个功能模块入口
- 线岔打磨图片快速标记:批量图片水印添加功能
- OCR识别工具:独立的OCR测试界面
- 沈铁AI助手(支持视觉理解通话/视频通话)
- 手信号指示灯:全屏信号灯显示功能
- 应用设置:帮助文档、关于我们、版本检测、高级功能激活等功能
首次激活流程
- 激活入口:进入“应用设置及更多选项”页面,点击
激活高级功能。- 操作步骤:
- 输入激活码(联系开发者获取),点击确定。
- APP发起
GET请求进行校验。- 成功后写入本地
SharedPreferences,按钮文案变更为“已激活”且禁用;卸载重装才需重新激活,覆盖更新无需重复激活。- 未激活限制:
- 首次安装未激活时,点击“沈铁AI助手”或“OCR识别工具”会弹出提示,要求先至设置页激活,拦截进入。
- 覆盖更新与激活:覆盖安装不影响激活状态;卸载重装需重新激活。
权限说明
相机与麦克风:用于通话与视觉理解。网络:用于接口请求与网页资源。存储(如有):用于读取本地图片、缓存资源。
2. 技术架构
2.1 架构模式
- 开发语言:Kotlin
- 架构模式:MVVM (Model-View-ViewModel)
- UI设计:Material Design 3
- 设计模式:遵循Android官方推荐的设计模式和最佳实践
2.2 项目结构
sgjxbbx/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/shengyang/gongwu/jixie/
│ │ │ ├── res/
│ │ │ └── AndroidManifest.xml
│ │ └── test/
│ ├── build.gradle
│ └── proguard-rules.pro
├── gradle/
├── build.gradle
├── settings.gradle
├── gradle.properties
├── gradlew
└── README.md
3. 开发环境与工具
3.1 开发环境
- IDE:Android Studio
- 构建工具:Gradle 7.5
- JVM版本:Java 17
- Android SDK:API Level 34 (Android 14)
- 最低支持版本:API Level 26 (Android 8.0)
3.2 插件
com.android.application:Android应用插件kotlin-android:Kotlin支持插件
4. 核心技术栈
4.1 Android核心库
androidx.core:core-ktx:1.12.0:Android核心库的Kotlin扩展androidx.appcompat:appcompat:1.6.1:Android兼容库com.google.android.material:material:1.10.0:Material Design组件androidx.constraintlayout:constraintlayout:2.1.4:约束布局androidx.lifecycle:lifecycle-livedata-ktx:2.6.2:LiveData组件androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2:ViewModel组件androidx.navigation:navigation-fragment-ktx:2.7.5:导航组件androidx.navigation:navigation-ui-ktx:2.7.5:导航UI组件androidx.recyclerview:recyclerview:1.3.2:RecyclerView组件
4.2 第三方库
com.google.code.gson:gson:2.10.1:JSON解析库com.squareup.okhttp3:okhttp:4.10.0:HTTP网络请求库com.baidu.aip:java-sdk:4.15.6:百度AI SDK(OCR识别)com.google.guava:guava:23.0:Google工具库com.alibaba:dashscope-sdk-java:2.21.7:阿里云DashScope SDK
4.3 测试库
junit:junit:4.13.2:单元测试框架androidx.test.ext:junit:1.1.5:Android测试扩展androidx.test.espresso:espresso-core:3.5.1:UI测试框架
5. 核心功能实现
5.1 OCR识别功能
项目已将原有的Google ML Kit本地OCR方案替换为百度AI在线OCR方案,以提高识别准确率并减少APK体积。
5.1.1 百度AI OCR集成
5.1.2 核心类
BaiduOcrConfig.kt:百度OCR配置类OcrToolActivity.kt:OCR测试工具
5.1.3 主要方法
getAccessToken():获取百度AI访问令牌performBaiduOcr():执行百度OCR识别parseBaiduOcrResult():解析百度OCR结果
5.2 图片处理功能
5.2.1 线岔打磨图片快速标记
- 支持批量上传图片
- 可选择多种标记模式(普通、三天、七天、十五天)
- 自动添加指定文字水印
- 支持保存到手机相册
5.2.2 核心类
ImageMarkActivity.kt:图片标记主界面
5.3 智能运维助手(沈铁AI)功能
ChatActivity.kt:聊天主界面ChatAdapter.kt:聊天消息适配器ChatMessage.kt:聊天消息数据类
5.3.3 主要功能
- 支持文本输入和语音输入
- 支持文本转语音播放
- 支持多轮对话(通过sessionId保持对话上下文)
- 支持静音模式切换
- 支持视觉理解及音视频通话
5.4 手信号指示灯功能
5.4.1 核心类
SignalLightActivity.kt:手信号指示灯主界面
5.4.2 主要功能
- 支持红、绿、黄、白四种颜色的全屏显示
- 通过音量键组合退出全屏模式
- 保持屏幕常亮
5.5 版本检测与更新
- 使用OkHttp进行网络请求
- 通过Gson解析JSON响应
- 支持静默检查更新和手动检查更新
- 支持强制更新和可选更新
5.5.1 核心类
VersionCheckUtil.kt:版本检测工具类SettingsActivity.kt:设置界面
6. 权限管理
6.1 应用权限
INTERNET:网络访问权限READ_EXTERNAL_STORAGE:读取外部存储权限WRITE_EXTERNAL_STORAGE:写入外部存储权限CAMERA:相机权限RECORD_AUDIO:录音权限MANAGE_EXTERNAL_STORAGE:管理外部存储权限(Android 11+)
6.2 权限处理
- 针对不同Android版本进行权限适配
- Android 11及以上版本使用
MANAGE_EXTERNAL_STORAGE权限 - Android 10及以下版本使用传统的读写权限
7. 安全与优化
7.1 代码混淆
- 启用代码混淆(minifyEnabled true)
- 启用资源压缩(shrinkResources true)
- 配置ProGuard规则保护核心类不被混淆
7.2 依赖冲突解决
- 解决Guava库版本冲突问题
- 强制使用特定版本的依赖库
- 排除冲突的依赖模块
7.3 API密钥保护
- API密钥存储在配置文件中
- 建议在生产环境中使用更安全的存储方案(如Keystore)
8. 构建与部署
8.1 构建配置
- 编译SDK:API 34
- 目标SDK:API 34
- 最低SDK:API 26
- 构建类型:
- Debug:不启用混淆
- Release:启用混淆和资源压缩
8.2 混淆规则
- 保护OkHttp和Gson相关类
- 保护Activity和自定义View类
- 保护Parcelable实现类
8.3 版本检测服务
- 服务地址:https://blog.hongjian.cn/api/version-check.json
- 功能:版本检测、更新提示、下载链接
9. 开发规范
9.1 代码规范
- 遵循Kotlin官方编码规范
- 使用驼峰命名法
- 类名使用大写字母开头
- 方法名使用小写字母开头
9.2 注释规范
- 类和方法添加文档注释
- 复杂逻辑添加行内注释
- 使用中文注释便于团队维护
9.3 资源命名规范
- 使用小写字母和下划线命名
- 前缀表示资源类型(btn_、tv_、iv_等)
- 字符串资源使用语义化命名
10. 详细功能使用说明
10.1 启动页面
应用启动后会显示启动页面,1秒后自动跳转到主功能页面。
10.2 主功能页面
主功能页面包含以下功能入口:
- 线岔打磨图片快速标记:点击进入图片标记功能
- 应用设置及更多选项:点击进入设置页面
- 大机智能运维助手:点击进入AI对话界面
- 手信号指示灯:点击进入信号灯显示界面
- OCR识别工具:点击进入OCR测试界面
10.3 线岔打磨图片快速标记功能
使用步骤:
- 在主页面点击”线岔打磨图片快速标记”进入功能页面
- 选择标记模式(普通、三天、七天、十五天)
- 点击”选择图片”按钮从相册选择需要标记的图片(支持多选)
- 系统会自动为每张图片添加对应的文字水印
- 点击”保存”按钮将处理后的图片保存到手机相册
注意事项:
- 图片水印会根据选择的标记模式自动添加相应文字
- 水印文字为白色加粗大字体,确保清晰可见
- 保存的图片会按照处理顺序命名并保存到相册
10.4 OCR识别工具功能
使用步骤:
- 在主页面点击”OCR识别工具”进入功能页面
- 点击”选择图片”从相册选择图片或点击”拍照”按钮拍照
- 选中图片后点击”识别图片”按钮开始OCR识别
- 识别结果会显示在下方文本框中
- 可以点击”复制结果”按钮将识别结果复制到剪贴板
注意事项:
- OCR识别需要网络连接
- 识别结果可能受图片质量影响,建议使用清晰的图片
10.5 智能助手功能
使用步骤:
- 在主页面点击”沈铁AI助手”进入聊天界面
- 在输入框中输入问题或点击语音按钮进行语音输入
- 点击发送按钮或按回车键发送消息
- AI助手会回复相关答案
功能特点:
- 支持文本和语音两种输入方式
- 支持语音播报回复内容
- 支持多轮对话,保持上下文连贯性
- 可以通过静音按钮控制语音播放
10.6 手信号指示灯功能
使用步骤:
- 在主页面点击”手信号指示灯”进入功能页面
- 点击相应颜色的按钮(红、绿、黄、白)进入全屏显示模式
- 使用音量键组合(先按音量上键,再按音量下键)退出全屏模式
注意事项:
- 全屏模式下屏幕会保持常亮
- 退出全屏模式后会返回功能选择页面
10.7 应用设置功能
使用步骤:
- 在主页面点击”应用设置及更多选项”进入设置页面
- 可以选择以下功能:
- 使用帮助:在浏览器中打开帮助文档
- 关于我们:查看应用介绍信息
- 检测更新:检查应用是否有新版本
功能说明:
- 使用帮助:跳转到网页版帮助文档
- 关于我们:显示应用的详细介绍信息
- 检测更新:自动检查是否有新版本,并提示用户更新
11. 未来扩展建议
11.1 功能扩展
- 增加更多类型的OCR识别(如表格识别、手写识别)
- 添加更多图片处理功能
- 增加数据统计和分析功能
11.2 性能优化
- 进一步优化图片处理算法
- 减少内存占用
- 提高OCR识别速度
11.3 安全增强
- 使用更安全的API密钥存储方案
- 增加网络请求加密
- 添加数据本地加密存储
12. 维护说明
12.1 依赖库更新
- 定期检查第三方库更新
- 注意兼容性问题
- 测试更新后的功能
12.2 版本管理
- 遵循语义化版本控制
- 详细记录版本变更日志
- 做好版本回滚准备
12.3 文档维护
- 及时更新技术文档
- 记录重要设计决策
- 保持文档与代码同步
13. 计划实现的功能
任务计划实时更新中···
- 01.项目可行性研究
- 02.增加图片快速标记
- 03.增加手信号灯功能
- 04.增加AI语音识别助手
14. 免责声明
- 用户使用本产品直接或间接发生的任何违反法律规定的行为,本系统、硬件及设备提供商将不承担任何责任。
15. 联系我们
有关该项目更多详细信息请阅读官方技术支持文档:
- 欢迎添加微信合作交流: work_hj
- 电子邮箱:fhj@hongjian.cn
文档版本:V1.1.0 最后更新时间:2025-10-24