223 lines
5.4 KiB
Markdown
223 lines
5.4 KiB
Markdown
# 车管家 Android 客户端 - 快速开始指南
|
||
|
||
## 项目概述
|
||
|
||
这是一个现代化的 Android 应用,为车管家 4S店车辆维保管理系统提供移动端支持。
|
||
|
||
## 开发前准备
|
||
|
||
### 1. 安装 Android Studio
|
||
|
||
下载并安装最新版本的 Android Studio:
|
||
https://developer.android.com/studio
|
||
|
||
### 2. 配置 JDK
|
||
|
||
确保安装了 JDK 17 或更高版本:
|
||
```bash
|
||
java -version # 应该显示 17.x.x 或更高
|
||
```
|
||
|
||
### 3. 启动后端服务
|
||
|
||
在运行 Android 应用之前,确保后端服务正在运行:
|
||
|
||
```bash
|
||
# 进入后端项目目录
|
||
cd car-maintenance-system/backend
|
||
|
||
# 使用 Maven 启动服务
|
||
mvn spring-boot:run
|
||
|
||
# 或者在 IDEA 中运行 SpringBootAppApplication.java
|
||
```
|
||
|
||
后端默认运行在 `http://localhost:8080`
|
||
|
||
### 4. 配置 API 地址
|
||
|
||
根据你的测试环境,修改 `app/build.gradle.kts`:
|
||
|
||
**使用 Android 模拟器:**
|
||
```kotlin
|
||
buildConfigField("String", "API_BASE_URL", "\"http://10.0.2.2:8080/api/\"")
|
||
```
|
||
|
||
**使用真机:**
|
||
```kotlin
|
||
buildConfigField("String", "API_BASE_URL", "\"http://YOUR_PC_IP:8080/api/\"")
|
||
// 例如: "http://192.168.1.100:8080/api/"
|
||
```
|
||
|
||
## 运行应用
|
||
|
||
### 方式一:使用 Android Studio
|
||
|
||
1. 打开 Android Studio
|
||
2. 选择 **File > Open**
|
||
3. 选择 `car-maintenance-system/android` 目录
|
||
4. 等待 Gradle 同步完成
|
||
5. 点击工具栏的 Run 按钮 (绿色三角形)
|
||
|
||
### 方式二:使用命令行
|
||
|
||
```bash
|
||
cd android
|
||
|
||
# 查看连接的设备
|
||
adb devices
|
||
|
||
# 安装并运行
|
||
./gradlew installDebug
|
||
```
|
||
|
||
## 测试账号
|
||
|
||
| 角色 | 用户名 | 密码 | 功能 |
|
||
|------|--------|------|------|
|
||
| 管理员 | admin | 123456 | 系统管理、数据统计 |
|
||
| 工作人员 | staff001 | 123456 | 工单处理、预约确认 |
|
||
| 客户 | customer001 | 123456 | 查看车辆、预约服务 |
|
||
|
||
## 项目结构说明
|
||
|
||
```
|
||
android/
|
||
├── app/ # 应用模块
|
||
│ ├── src/main/
|
||
│ │ ├── java/com/carmaintenance/
|
||
│ │ │ ├── data/ # 数据层
|
||
│ │ │ │ ├── local/ # 本地存储
|
||
│ │ │ │ ├── model/ # 数据模型
|
||
│ │ │ │ ├── remote/ # API接口
|
||
│ │ │ │ ├── repository/ # 数据仓库
|
||
│ │ │ │ └── manager/ # Token管理
|
||
│ │ │ ├── di/ # 依赖注入
|
||
│ │ │ ├── ui/ # UI层
|
||
│ │ │ │ ├── navigation/ # 导航
|
||
│ │ │ │ ├── screen/ # 页面
|
||
│ │ │ │ ├── theme/ # 主题
|
||
│ │ │ │ └── viewmodel/ # 视图模型
|
||
│ │ │ ├── CarMaintenanceApplication.kt
|
||
│ │ │ └── MainActivity.kt
|
||
│ │ └── res/ # 资源文件
|
||
│ ├── build.gradle.kts # 应用级构建配置
|
||
│ └── proguard-rules.pro # 混淆规则
|
||
├── build.gradle.kts # 项目级构建配置
|
||
├── settings.gradle.kts # Gradle设置
|
||
└── gradle.properties # Gradle属性
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### 1. Gradle 同步失败
|
||
|
||
**问题**: Gradle 同步时出现错误
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 清理项目
|
||
./gradlew clean
|
||
|
||
# 重新构建
|
||
./gradlew build
|
||
|
||
# 如果还是失败,删除 .gradle 目录后重试
|
||
rm -rf .gradle
|
||
```
|
||
|
||
### 2. 网络请求失败
|
||
|
||
**问题**: 应用无法连接到服务器
|
||
|
||
**解决方案**:
|
||
- 确认后端服务正在运行
|
||
- 检查 API_BASE_URL 配置
|
||
- 确保设备和电脑在同一网络(真机测试)
|
||
- 检查防火墙设置
|
||
|
||
### 3. 登录失败
|
||
|
||
**问题**: 登录时提示错误
|
||
|
||
**解决方案**:
|
||
- 确认后端数据库中有测试用户
|
||
- 检查用户名和密码是否正确
|
||
- 查看后端日志确认请求是否到达
|
||
|
||
### 4. 模拟器无法访问宿主机
|
||
|
||
**问题**: 模拟器中的 App 无法访问电脑上的后端服务
|
||
|
||
**解决方案**:
|
||
使用 `10.0.2.2` 代替 `localhost`:
|
||
```kotlin
|
||
// 错误
|
||
buildConfigField("String", "API_BASE_URL", "\"http://localhost:8080/api/\"")
|
||
|
||
// 正确(模拟器)
|
||
buildConfigField("String", "API_BASE_URL", "\"http://10.0.2.2:8080/api/\"")
|
||
```
|
||
|
||
### 5. 数据显示为空
|
||
|
||
**问题**: 登录后车辆、工单等数据显示为空
|
||
|
||
**解决方案**:
|
||
- 确认后端数据库有相关数据
|
||
- 使用 Admin 账号登录后台添加测试数据
|
||
- 检查客户ID是否正确关联
|
||
|
||
## 调试技巧
|
||
|
||
### 查看 API 请求
|
||
|
||
在 `NetworkModule.kt` 中,日志级别已设置为 `BODY`:
|
||
```kotlin
|
||
if (BuildConfig.DEBUG) {
|
||
HttpLoggingInterceptor.Level.BODY
|
||
}
|
||
```
|
||
|
||
在 Logcat 中过滤 `OkHttp` 即可看到所有网络请求。
|
||
|
||
### 查看 Token 存储
|
||
|
||
在 Logcat 中过滤 `TokenManager` 可以看到 Token 相关的日志。
|
||
|
||
## 下一步开发
|
||
|
||
### 功能优先级
|
||
|
||
1. **高优先级**
|
||
- 在线预约表单
|
||
- 车辆详情查看
|
||
- 工单详情查看
|
||
|
||
2. **中优先级**
|
||
- 管理员完整功能
|
||
- 工作人员功能
|
||
- 推送通知
|
||
|
||
3. **低优先级**
|
||
- 数据刷新机制
|
||
- 离线缓存
|
||
- 图片上传
|
||
|
||
### 扩展功能建议
|
||
|
||
- [ ] 车辆照片上传
|
||
- [ ] 电子签名
|
||
- [ ] 扫码查看车辆
|
||
- [ ] 消息推送(Firebase)
|
||
- [ ] 支付集成
|
||
- [ ] 数据导出
|
||
- [ ] 多语言支持
|
||
|
||
## 技术支持
|
||
|
||
如有问题,请查看:
|
||
- [Jetpack Compose 官方文档](https://developer.android.com/jetpack/compose)
|
||
- [Hilt 官方文档](https://dagger.dev/hilt/)
|
||
- [Retrofit 官方文档](https://square.github.io/retrofit/)
|