You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

354 lines
8.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Android APK 功能演示指南
## 🎬 演示准备
### 环境检查
```bash
# 1. 检查模拟器状态
adb devices
# 2. 确认应用已安装
adb shell pm list packages | findstr "com.smartlibrary"
# 3. 启动应用
adb shell am start -n com.smartlibrary/.android.MainActivity
```
### 当前状态
✅ 模拟器已启动:`emulator-5554`
✅ APK已安装`com.smartlibrary`
✅ 应用已运行:`MainActivity`
## 📱 功能演示流程
### 1. 主界面展示 (已完成 ✅)
**展示内容**
- 应用标题:"智能图书管理系统 (SLMS)"
- 系统统计信息
- 图书列表前10本
- 当前借阅记录
- AI功能按钮区域
**演示要点**
- 数据自动加载
- Mock数据生成
- 界面布局清晰
### 2. AI智能助手本地
**操作步骤**
1. 点击"💬 AI智能助手本地"按钮
2. 等待界面加载
3. 输入测试问题
**测试用例**
```
输入:你好
预期:问候回复
输入:帮助
预期:功能列表
输入:如何借书
预期:借书指南
输入:推荐图书
预期:推荐信息
```
**演示要点**
- 实时响应(< 1秒)
- 意图识别准确
- 消息带时间戳
- 自动滚动到最新消息
### 3. AI智能搜索
**操作步骤**
1. 返回主界面(按返回键)
2. 点击"🔍 AI智能搜索"按钮
3. 输入搜索关键词
**测试用例**
```
搜索Python
预期显示Python相关图书
搜索Java
预期显示Java相关图书
搜索:数据结构
预期:显示相关图书
```
**演示要点**
- 关键词提取
- 搜索结果格式化
- 图书信息完整
### 4. AI个性化推荐
**操作步骤**
1. 返回主界面
2. 点击"💡 AI个性化推荐"按钮
3. 等待自动加载推荐
**演示要点**
- 自动加载推荐
- 至少3本图书
- 包含推荐理由
- 可以刷新
### 5. 查看系统UML图
**操作步骤**
1. 返回主界面
2. 点击"📊 查看系统UML图"按钮
3. 浏览UML图类型列表
4. 点击某个图表类型查看详情
**演示要点**
- 多种UML图类型
- 详细信息展示
- 清晰的说明文字
### 6. UML图生成器 ⭐ 新功能
**操作步骤**
1. 返回主界面
2. 点击"🎨 UML图生成器(在线)"按钮
3. 查看示例代码
4. 选择服务器(PlantUML官方)
5. 点击"生成图表"
**测试用例1:使用示例代码**
```plantuml
@startuml
title 智能图书馆系统类图
class Book {
-String id
-String title
-String author
-String isbn
+getTitle(): String
+getAuthor(): String
}
class User {
-String id
-String name
-String email
+borrowBook(Book): boolean
+returnBook(Book): boolean
}
class Loan {
-String id
-Date borrowDate
-Date returnDate
-String status
}
User "1" -- "*" Loan : borrows >
Book "1" -- "*" Loan : is borrowed in >
@enduml
```
**测试用例2:简单序列图**
```plantuml
@startuml
Alice -> Bob: Hello
Bob -> Alice: Hi there!
@enduml
```
**演示要点**
- 实时生成(< 10秒)
- 图片清晰显示
- 支持双服务器
- 自动故障转移
- 友好的错误提示
### 7. 增强AI助手需要网络
**注意**:此功能需要网络连接
**操作步骤**
1. 返回主界面
2. 点击"🚀 增强AI助手(真实AI+语音)"按钮
3. 选择AI提供商(DeepSeek或智谱AI
4. 输入问题测试
**测试用例**
```
输入:介绍一下智能图书馆系统
预期AI生成详细介绍
输入:推荐几本编程书籍
预期AI推荐书籍列表
```
**演示要点**
- 真实AI响应
- 响应质量高
- 支持多个AI平台
- 可切换提供商
**语音功能**(仅真实设备):
- 🎤 语音输入
- 🔊 语音播报
## 🎯 演示重点
### 核心亮点
1. **完整的离线功能**
- 本地AI助手
- Mock数据生成
- 智能搜索和推荐
2. **在线增强功能**
- 真实AI对话
- UML图生成
- 语音交互
3. **用户体验**
- 界面美观
- 响应迅速
- 错误提示友好
4. **技术架构**
- 分层架构设计
- 单例模式
- 异步处理
- 故障转移
### 技术特色
1. **双服务器保障**
- PlantUML官方服务器
- Kroki备用服务器
- 自动故障转移
2. **AI平台支持**
- DeepSeek
- 智谱AI
- 本地Mock
3. **完善的错误处理**
- 网络错误提示
- 输入验证
- 友好的用户反馈
## 📊 性能指标
### 响应时间
- 本地AI< 1
- 在线AI< 5
- UML生成:< 10
- 搜索:< 1
### 资源使用
- 应用大小:~15MB
- 运行内存:< 200MB
- 启动时间:< 3
## 🎤 演示话术
### 开场
"大家好,今天我要演示的是智能图书馆管理系统的Android版本。这个应用集成了多种AI功能,包括智能对话、搜索推荐,以及我们新增的UML图生成功能。"
### 主界面
"首先看到的是主界面,这里显示了系统的统计信息,包括图书总数、借阅记录等。所有数据都是自动生成的Mock数据,方便演示和测试。"
### AI功能
"应用提供了多种AI功能。本地AI助手可以完全离线运行,响应速度非常快。增强AI助手则集成了DeepSeek和智谱AI,可以提供更智能的对话体验。"
### UML生成器
"这是我们新增的UML图生成器功能。它支持在线实时生成PlantUML图表,并且采用了双服务器架构,当一个服务器失败时会自动切换到备用服务器,确保高可用性。"
### 技术架构
"从技术角度来看,应用采用了分层架构设计,包括表现层、业务层、服务层和数据层。网络服务使用了单例模式,所有请求都是异步处理,不会阻塞UI线程。"
### 结尾
"以上就是智能图书馆管理系统Android版的主要功能演示。这个应用不仅功能完整,而且在架构设计和用户体验方面都做了很多优化。谢谢大家!"
## 🐛 常见问题处理
### 问题1应用无响应
**处理**
```bash
# 重启应用
adb shell am force-stop com.smartlibrary
adb shell am start -n com.smartlibrary/.android.MainActivity
```
### 问题2网络功能失败
**说明**
"这个功能需要网络连接。在实际使用中,应用会自动检测网络状态并给出相应提示。"
### 问题3UML生成失败
**说明**
"如果一个服务器失败,系统会自动切换到备用服务器。如果两个服务器都失败,会显示友好的错误提示。"
### 问题4语音功能不可用
**说明**
"语音功能需要在真实的Android设备上测试,因为模拟器的麦克风实现不够可靠。在真实设备上,语音识别和播报功能都能正常工作。"
## 📝 演示检查清单
### 演示前
- [ ] 模拟器已启动
- [ ] APK已安装
- [ ] 应用可以正常启动
- [ ] 网络连接正常(用于在线功能)
### 演示中
- [ ] 主界面展示
- [ ] 本地AI助手
- [ ] AI搜索功能
- [ ] AI推荐功能
- [ ] UML查看器
- [ ] UML生成器
- [ ] 增强AI助手(可选)
### 演示后
- [ ] 回答问题
- [ ] 展示代码(如需要)
- [ ] 说明技术细节
## 🎓 技术问答准备
### Q1为什么使用分层架构
**A**:分层架构可以让代码更清晰、更易维护。每一层都有明确的职责,修改一层不会影响其他层。
### Q2如何实现故障转移
**A**:我们使用了递归重试机制。当第一个服务器失败时,自动切换到备用服务器。如果备用服务器也失败,才报告错误。
### Q3为什么语音功能在模拟器上不可用
**A**Android模拟器的麦克风实现不够可靠,经常无法正确录制声音。这是模拟器的限制,不是应用的问题。
### Q4如何保证网络请求不阻塞UI
**A**:所有网络请求都使用OkHttp的异步API,回调在后台线程执行。UI更新通过Handler切换到主线程。
### Q5Mock数据是如何生成的
**A**:使用MockDataGenerator类,在应用首次启动时自动生成。包括图书、用户和借阅记录,数据都是随机但合理的。
## 📚 参考资料
- **项目文档**
- [FEATURE_ENHANCEMENTS.md](FEATURE_ENHANCEMENTS.md)
- [QUICK_TEST_GUIDE.md](QUICK_TEST_GUIDE.md)
- [COMPLETION_SUMMARY.md](COMPLETION_SUMMARY.md)
- **技术参考**
- 分层架构HelloWorldAndroidAI问答系统
- Android Developer官方文档
- OkHttp文档
---
**演示准备完成!祝演示顺利!** 🎉