Files
anroid-CheckShot/README.md

5.2 KiB
Raw Permalink Blame History

巡检相机 - Android 巡检图片处理工具

巡检相机是一个面向 Android 的巡检图片处理工具,包含水印处理、拼图合成、以及丰富的设置能力,配合 AirTest 自动化测试用例,帮助实现端到端的图像工作流。

软件界面截图

启动应用后,可以看到以下主要界面:

1. 相机界面

相机界面

主相机界面,支持拍照、自动/手动对焦、曝光调节,拍摄后自动叠加水印

2. 相册界面

相册界面

相册管理界面,支持本地存储、分类管理、预览、导出/分享

3. 拼图界面

拼图界面

多图拼图合成界面,支持 2x2 和 3x3 网格布局

4. 设置界面

设置界面

应用设置界面,支持水印样式、地点获取方式、合成布局、图片质量、文件名模板、记录人信息等配置

功能特点

  • 相机模块 使用 CameraX 库实现拍照、自动/手动对焦、曝光调节,拍摄后自动叠加水印(时间 + 地点)
  • 水印处理 支持时间水印(格式固定为 "yyyy 年 MM 月 d 日 HH:mm:ss")和地点水印(优先联网解析,失败时显示经纬度),提供三种预设样式(默认/简约/醒目)
  • EXIF 元数据 自动写入 GPS 坐标、拍摄时间、相机型号、作者信息到照片 EXIF
  • 多图拼图(合成)模块 支持 2x2、1x3、3x1 等多种网格布局,图片自动缩放裁剪,支持图片替换、删除、添加和质量控制(高/标准/低)
  • 文字编辑模块 在合成图片的顶部(标题 + 日期时间)和底部(内容 + 记录人)添加带背景的文字说明,支持智能换行
  • 图片管理 本地存储、按日期分组查看(今天/昨天/上月/更早)、预览、删除、导出/分享
  • 文件名模板 支持自定义文件名格式,可用占位符:{project} {device} {inspector} {date} {time}
  • 设置与通用配置 水印样式、地点获取方式(网络/GPS、合成布局、图片质量、文件名模板、记录人信息等均可配置
  • 测试与自动化 集成 AirTest 测试用例 + JUnit 单元测试,覆盖拼图等场景

安装步骤

  1. 克隆项目

    git clone http://124.223.26.33:3000/xiaji/anroid-CheckShot.git
    cd anroid-CheckShot
    
  2. 构建调试 APK

    ./gradlew assembleDebug
    
  3. 安装到设备

    adb install -r app/build/outputs/apk/debug/app-debug.apk
    
  4. 安装 AirTest 依赖(用于测试)

    pip install airtest pocoui
    

使用示例

基本使用

  1. 启动应用:在 Android 设备/模拟器上安装并打开巡检相机
  2. 拍照:点击相机按钮拍照,自动添加水印
  3. 拼图:选择多张图片进行拼图合成
  4. 查看相册:浏览和管理拍摄的照片

构建发布 APK

# 构建签名 APK需配置好 keystore
./gradlew assembleRelease

# 构建产物位置
app/build/outputs/apk/release/app-release.apk

运行测试

# 确保设备已连接
adb devices

# 运行 AirTest 拼图测试
airtest run test/airtest/test_puzzle_merge.py --device Android:///

# 运行手动测试脚本
python test_android.py      # 基础功能测试
python test_camera.py       # 相机功能测试
python test_gallery.py      # 相册功能测试

目录结构

anroid-CheckShot/
├── app/                          # App 模块
│   ├── src/main/                 # 主代码
│   │   ├── java/                 # Kotlin/Java 代码
│   │   └── res/                  # 资源文件
│   ├── build.gradle.kts          # App 级构建配置
│   └── my-release.jks            # 签名密钥(本地)
├── test/                         # 测试代码
│   └── airtest/                  # AirTest UI 测试
├── gradle.properties             # Gradle 属性(含签名配置)
├── build.gradle.kts              # 项目级构建配置
├── settings.gradle.kts           # 项目设置
└── README.md                     # 项目说明

贡献指南

  1. Fork 项目仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

常见问题 (FAQ)

Q: 如何修改水印样式? A: 在设置界面中选择水印样式(默认/简约/醒目),可实时预览效果。

Q: AirTest 测试失败怎么办? A: 确保设备已连接且已安装 AirTest 依赖,检查设备是否开启开发者选项和 USB 调试。

Q: 拼图功能支持哪些布局? A: 支持 2x2、1x3、3x1 等多种网格布局,图片会自动缩放裁剪以适配网格。

Q: 如何自定义文件名格式? A: 在设置界面的"文件名模板"中编辑,支持占位符:{project}(项目)、{device}(设备 ID{inspector}(记录人)、{date}(日期)、{time}(时间)。

联系方式/反馈渠道

  • 问题反馈:请在仓库中提交 Issue
  • 代码贡献:欢迎提交 Pull Request