2026-03-17 23:07:06 +08:00
|
|
|
|
# 巡检相机 - Android 巡检图片处理工具
|
2026-02-28 00:44:52 +08:00
|
|
|
|
|
2026-03-17 23:07:06 +08:00
|
|
|
|
巡检相机是一个面向 Android 的巡检图片处理工具,包含水印处理、拼图合成、以及丰富的设置能力,配合 AirTest 自动化测试用例,帮助实现端到端的图像工作流。
|
|
|
|
|
|
|
|
|
|
|
|
## 软件界面截图
|
|
|
|
|
|
|
|
|
|
|
|
启动应用后,可以看到以下主要界面:
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 相机界面
|
|
|
|
|
|

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

|
|
|
|
|
|
|
|
|
|
|
|
*相册管理界面,支持本地存储、分类管理、预览、导出/分享*
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 拼图界面
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
*多图拼图合成界面,支持 2x2 和 3x3 网格布局*
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 设置界面
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
*应用设置界面,支持水印、合成、通用等配置项调整*
|
2026-02-28 00:44:52 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 功能特点
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-17 23:10:21 +08:00
|
|
|
|
- **相机模块**:✅ 使用 CameraX 库实现拍照、自动/手动对焦、曝光调节,拍摄后自动叠加水印(时间+地点)
|
|
|
|
|
|
- **水印处理**:✅ 支持时间水印(格式固定为 "yyyy年-MM月-dd日 HH:mm:ss")和地点水印(优先联网解析,失败时显示经纬度),提供三种预设样式
|
|
|
|
|
|
- **多图拼图(合成)模块**:✅ 支持 2x2 和 3x3 网格布局,图片自动缩放裁剪,支持图片替换、删除、添加和质量控制
|
|
|
|
|
|
- **文字编辑模块**:✅ 在合成图片的顶部(标题)和底部(内容)添加带矩形背景的文字说明,支持智能换行
|
|
|
|
|
|
- **图片管理**:✅ 本地存储、预览、导出/分享(通过 MediaStore 保存至系统相册)<br>❌ 分类管理(待开发)
|
|
|
|
|
|
- **设置与通用配置**:✅ 水印设置、合成设置、通用设置、关于等配置项均可通过设置界面调整
|
|
|
|
|
|
- **测试与自动化**:✅ 集成 AirTest 测试用例,覆盖拼图等场景(待完善其他场景测试)
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 安装步骤
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
1. **克隆项目**:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone http://124.223.26.33:3000/xiaji/anroid-CheckShot.git
|
|
|
|
|
|
cd anroid-CheckShot
|
|
|
|
|
|
```
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
2. **构建调试 APK**:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./gradlew assembleDebug
|
|
|
|
|
|
```
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
3. **安装到设备**:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
adb install -r app/build/outputs/apk/debug/app-debug.apk
|
|
|
|
|
|
```
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
4. **安装 AirTest 依赖(用于测试)**:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pip install airtest pocoui
|
|
|
|
|
|
```
|
2026-03-15 23:28:56 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 使用示例
|
2026-03-01 00:15:18 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
### 基本使用
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-17 23:07:06 +08:00
|
|
|
|
1. **启动应用**:在 Android 设备/模拟器上安装并打开巡检相机
|
2026-03-15 23:32:46 +08:00
|
|
|
|
2. **拍照**:点击相机按钮拍照,自动添加水印
|
|
|
|
|
|
3. **拼图**:选择多张图片进行拼图合成
|
|
|
|
|
|
4. **查看相册**:浏览和管理拍摄的照片
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
### 构建发布 APK
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 构建签名 APK(需配置好 keystore)
|
|
|
|
|
|
./gradlew assembleRelease
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
# 构建产物位置
|
|
|
|
|
|
app/build/outputs/apk/release/app-release.apk
|
2026-03-03 22:11:03 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
### 运行测试
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 确保设备已连接
|
|
|
|
|
|
adb devices
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
# 运行 AirTest 拼图测试
|
|
|
|
|
|
airtest run test/airtest/test_puzzle_merge.py --device Android:///
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
# 运行手动测试脚本
|
|
|
|
|
|
python test_android.py # 基础功能测试
|
|
|
|
|
|
python test_camera.py # 相机功能测试
|
|
|
|
|
|
python test_gallery.py # 相册功能测试
|
|
|
|
|
|
```
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 目录结构
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
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 # 项目说明
|
|
|
|
|
|
```
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 贡献指南
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
1. Fork 项目仓库
|
|
|
|
|
|
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
|
|
|
5. 提交 Pull Request
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 常见问题 (FAQ)
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
**Q: 如何配置签名?**
|
|
|
|
|
|
A: 项目已配置自动签名,签名密钥文件 `my-release.jks` 在 `app/` 目录下,密码在 `gradle.properties` 中配置。
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
**Q: 如何修改水印样式?**
|
|
|
|
|
|
A: 在设置界面中选择水印样式(默认/简约/醒目),可实时预览效果。
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
**Q: AirTest 测试失败怎么办?**
|
|
|
|
|
|
A: 确保设备已连接且已安装 AirTest 依赖,检查设备是否开启开发者选项和 USB 调试。
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
**Q: 拼图功能支持哪些布局?**
|
|
|
|
|
|
A: 支持 2x2 和 3x3 网格布局,图片会自动缩放裁剪以适配网格。
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
## 联系方式/反馈渠道
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
- 项目仓库:http://124.223.26.33:3000/xiaji/anroid-CheckShot.git
|
|
|
|
|
|
- 问题反馈:请在仓库中提交 Issue
|
|
|
|
|
|
- 代码贡献:欢迎提交 Pull Request
|
2026-03-03 22:11:03 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-15 23:32:46 +08:00
|
|
|
|
**注意**:请妥善保管签名密钥文件 (`my-release.jks`) 和密码,这些文件已添加到 `.gitignore` 中,不会被提交到版本控制。
|