沈工机械百宝箱-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 功能模块

  1. 启动页面:3秒后自动跳转到主页面
  2. 主功能页面:包含多个功能模块入口
  3. 线岔打磨图片快速标记:批量图片水印添加功能
  4. OCR识别工具:独立的OCR测试界面
  5. 沈铁AI助手(支持视觉理解通话/视频通话)
  6. 手信号指示灯:全屏信号灯显示功能
  7. 应用设置:帮助文档、关于我们、版本检测、高级功能激活等功能

首次激活流程

  • 激活入口:进入“应用设置及更多选项”页面,点击激活高级功能
  • 操作步骤:
    1. 输入激活码(联系开发者获取),点击确定。
    2. APP发起GET请求进行校验。
    3. 成功后写入本地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 版本检测服务

9. 开发规范

9.1 代码规范

  • 遵循Kotlin官方编码规范
  • 使用驼峰命名法
  • 类名使用大写字母开头
  • 方法名使用小写字母开头

9.2 注释规范

  • 类和方法添加文档注释
  • 复杂逻辑添加行内注释
  • 使用中文注释便于团队维护

9.3 资源命名规范

  • 使用小写字母和下划线命名
  • 前缀表示资源类型(btn_、tv_、iv_等)
  • 字符串资源使用语义化命名

10. 详细功能使用说明

10.1 启动页面

应用启动后会显示启动页面,1秒后自动跳转到主功能页面。

10.2 主功能页面

主功能页面包含以下功能入口:

  1. 线岔打磨图片快速标记:点击进入图片标记功能
  2. 应用设置及更多选项:点击进入设置页面
  3. 大机智能运维助手:点击进入AI对话界面
  4. 手信号指示灯:点击进入信号灯显示界面
  5. OCR识别工具:点击进入OCR测试界面

10.3 线岔打磨图片快速标记功能

使用步骤:

  1. 在主页面点击”线岔打磨图片快速标记”进入功能页面
  2. 选择标记模式(普通、三天、七天、十五天)
  3. 点击”选择图片”按钮从相册选择需要标记的图片(支持多选)
  4. 系统会自动为每张图片添加对应的文字水印
  5. 点击”保存”按钮将处理后的图片保存到手机相册

注意事项:

  • 图片水印会根据选择的标记模式自动添加相应文字
  • 水印文字为白色加粗大字体,确保清晰可见
  • 保存的图片会按照处理顺序命名并保存到相册

10.4 OCR识别工具功能

使用步骤:

  1. 在主页面点击”OCR识别工具”进入功能页面
  2. 点击”选择图片”从相册选择图片或点击”拍照”按钮拍照
  3. 选中图片后点击”识别图片”按钮开始OCR识别
  4. 识别结果会显示在下方文本框中
  5. 可以点击”复制结果”按钮将识别结果复制到剪贴板

注意事项:

  • OCR识别需要网络连接
  • 识别结果可能受图片质量影响,建议使用清晰的图片

10.5 智能助手功能

使用步骤:

  1. 在主页面点击”沈铁AI助手”进入聊天界面
  2. 在输入框中输入问题或点击语音按钮进行语音输入
  3. 点击发送按钮或按回车键发送消息
  4. AI助手会回复相关答案

功能特点:

  • 支持文本和语音两种输入方式
  • 支持语音播报回复内容
  • 支持多轮对话,保持上下文连贯性
  • 可以通过静音按钮控制语音播放

10.6 手信号指示灯功能

使用步骤:

  1. 在主页面点击”手信号指示灯”进入功能页面
  2. 点击相应颜色的按钮(红、绿、黄、白)进入全屏显示模式
  3. 使用音量键组合(先按音量上键,再按音量下键)退出全屏模式

注意事项:

  • 全屏模式下屏幕会保持常亮
  • 退出全屏模式后会返回功能选择页面

10.7 应用设置功能

使用步骤:

  1. 在主页面点击”应用设置及更多选项”进入设置页面
  2. 可以选择以下功能:
    • 使用帮助:在浏览器中打开帮助文档
    • 关于我们:查看应用介绍信息
    • 检测更新:检查应用是否有新版本

功能说明:

  • 使用帮助:跳转到网页版帮助文档
  • 关于我们:显示应用的详细介绍信息
  • 检测更新:自动检查是否有新版本,并提示用户更新

11. 未来扩展建议

11.1 功能扩展

  • 增加更多类型的OCR识别(如表格识别、手写识别)
  • 添加更多图片处理功能
  • 增加数据统计和分析功能

11.2 性能优化

  • 进一步优化图片处理算法
  • 减少内存占用
  • 提高OCR识别速度

11.3 安全增强

  • 使用更安全的API密钥存储方案
  • 增加网络请求加密
  • 添加数据本地加密存储

12. 维护说明

12.1 依赖库更新

  • 定期检查第三方库更新
  • 注意兼容性问题
  • 测试更新后的功能

12.2 版本管理

  • 遵循语义化版本控制
  • 详细记录版本变更日志
  • 做好版本回滚准备

12.3 文档维护

  • 及时更新技术文档
  • 记录重要设计决策
  • 保持文档与代码同步

13. 计划实现的功能

任务计划实时更新中···

  • 01.项目可行性研究
  • 02.增加图片快速标记
  • 03.增加手信号灯功能
  • 04.增加AI语音识别助手

14. 免责声明

  1. 用户使用本产品直接或间接发生的任何违反法律规定的行为,本系统、硬件及设备提供商将不承担任何责任。

15. 联系我们

有关该项目更多详细信息请阅读官方技术支持文档:


文档版本:V1.1.0 最后更新时间:2025-10-24