# Android 智能图书管理系统 ## 概述 这是智能图书管理系统(SLMS)的Android客户端实现,提供完整的图书管理功能和AI智能助手。 ## 主要功能 ### 📚 核心功能 - **图书管理**:浏览、搜索图书 - **借阅管理**:借阅、归还、续借图书 - **用户管理**:用户信息管理 - **数据持久化**:本地数据存储和同步 ### 🤖 AI智能功能 - **AI智能助手**:自然语言对话,解答使用问题 - **AI智能搜索**:智能理解搜索意图,提供精准建议 - **AI个性化推荐**:基于用户偏好推荐图书 ### 📊 系统功能 - **UML图查看**:查看系统架构和流程图 - **离线运行**:所有AI功能完全离线,无需网络 - **Mock数据**:自动生成演示数据 ## 架构设计 ### 模块结构 ``` android/ ├── src/main/java/com/smartlibrary/android/ │ ├── ai/ # AI服务 │ │ └── SimpleAIService.java │ ├── data/ # 数据管理 │ │ └── DataManager.java │ ├── factory/ # 对象工厂 │ │ └── LibraryObjectFactory.java │ ├── mock/ # Mock数据生成 │ │ └── MockDataGenerator.java │ ├── model/ # 数据模型 │ │ ├── Book.java │ │ ├── Loan.java │ │ └── User.java │ ├── network/ # 网络服务 │ │ └── ApiService.java │ ├── ui/ # UI组件 │ │ ├── AIAssistantFragment.java │ │ ├── AISearchFragment.java │ │ ├── AIRecommendFragment.java │ │ └── UMLViewerActivity.java │ └── MainActivity.java # 主Activity ``` ### 设计模式 1. **单例模式** - `SimpleAIService`:AI服务单例 - `DataManager`:数据管理器单例 2. **工厂模式** - `LibraryObjectFactory`:统一对象创建 3. **观察者模式** - `DataManager`:数据变化通知 ## 快速开始 ### 环境要求 - Android Studio 4.0+ - Android SDK 21+ - Gradle 7.0+ ### 构建步骤 1. 克隆项目 ```bash git clone cd smart-library-management-system ``` 2. 打开Android Studio ``` File -> Open -> 选择项目根目录 ``` 3. 构建项目 ```bash ./gradlew :android:build ``` 4. 运行应用 ```bash ./gradlew :android:installDebug ``` 或在Android Studio中点击运行按钮。 ## 使用说明 ### 首次启动 应用首次启动时会自动: 1. 初始化DataManager 2. 生成Mock数据(50本图书、20个用户、100条借阅记录) 3. 保存数据到本地存储 ### AI功能使用 #### AI智能助手 1. 点击主界面的"AI智能助手"按钮 2. 在输入框中输入问题 3. 点击"发送"按钮 4. AI会分析意图并提供相关回答 支持的问题类型: - 借阅相关:"如何借书?" - 归还相关:"怎么还书?" - 搜索相关:"如何搜索图书?" - 推荐相关:"有什么好书推荐?" - 帮助相关:"帮助" #### AI智能搜索 1. 点击"AI智能搜索"按钮 2. 输入搜索关键词(支持自然语言) 3. 点击"智能搜索" 4. 查看搜索建议和结果 #### AI个性化推荐 1. 点击"AI个性化推荐"按钮 2. 自动加载推荐列表 3. 点击"刷新推荐"获取新推荐 ### UML图查看 1. 点击"查看系统UML图"按钮 2. 选择要查看的UML图类型 3. 查看图表信息 4. 如有网络,可点击"打开Web端查看" ## 核心组件说明 ### SimpleAIService AI服务提供者,负责处理所有AI相关功能。 **主要方法**: - `chat(String message)`:AI对话 - `smartSearch(String query)`:智能搜索 - `getRecommendation(String userId)`:个性化推荐 **特点**: - 完全离线运行 - 基于规则的意图识别 - 上下文相关的响应生成 ### DataManager 数据管理器,负责所有数据的CRUD操作和持久化。 **主要方法**: - `getBooks()`:获取所有图书 - `addBook(Book book)`:添加图书 - `initializeMockData()`:初始化Mock数据 - `hasMockData()`:检查是否有数据 **特点**: - 单例模式 - 观察者模式支持 - SharedPreferences持久化 - 自动Mock数据生成 ### MockDataGenerator Mock数据生成器,生成演示数据。 **主要方法**: - `generateBooks(int count)`:生成图书 - `generateUsers(int count)`:生成用户 - `generateLoans(int count, List, List)`:生成借阅记录 **特点**: - 多样化的数据模板 - 真实的数据格式 - 可配置的生成数量 ### LibraryObjectFactory 对象工厂,统一创建各种对象。 **主要方法**: - `createBook(...)`:创建图书对象 - `createUser(...)`:创建用户对象 - `createLoan(...)`:创建借阅记录对象 **特点**: - 参数验证 - 自动生成ID - 设置默认值 ## 数据模型 ### Book(图书) - `id`:图书ID - `title`:标题 - `author`:作者 - `isbn`:ISBN号 - `category`:分类 - `status`:状态(available/borrowed/reserved) ### User(用户) - `id`:用户ID - `name`:姓名 - `email`:邮箱 - `phone`:电话 ### Loan(借阅记录) - `id`:借阅ID - `bookId`:图书ID - `userId`:用户ID - `loanDate`:借阅日期 - `dueDate`:归还日期 - `returnDate`:实际归还日期 - `status`:状态(active/returned/overdue) ## 离线功能 所有AI功能都是完全离线的: - ✅ 无需网络连接 - ✅ 无需后端服务 - ✅ 数据本地存储 - ✅ 即时响应 这使得应用可以在任何环境下运行,非常适合演示和测试。 ## 错误处理 应用实现了全面的错误处理: 1. **数据层**:捕获存储异常,提供降级方案 2. **AI服务**:验证输入,提供友好错误消息 3. **UI层**:处理生命周期问题,防止崩溃 4. **网络层**:检查连接状态,优雅降级 ## 性能优化 1. **懒加载**:单例模式延迟初始化 2. **异步处理**:使用Handler避免阻塞UI 3. **数据缓存**:内存缓存减少IO操作 4. **限制数据量**:Mock数据数量适中 ## 测试 ### 单元测试 运行单元测试: ```bash ./gradlew :android:test ``` ### UI测试 运行UI测试: ```bash ./gradlew :android:connectedAndroidTest ``` ## 已知限制 1. **图片展示**:UML图暂不支持直接在移动端展示 2. **网络同步**:需要后端服务支持(可选) 3. **真实AI**:当前使用规则引擎,未集成真实AI模型 ## 未来增强 1. **真实AI集成**:接入GPT等AI服务 2. **图片查看**:支持UML图直接展示 3. **数据同步**:完整的后端同步功能 4. **推送通知**:到期提醒等 5. **语音输入**:支持语音与AI对话 ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建Pull Request ## 许可证 [项目许可证信息] ## 联系方式 如有问题或建议,请联系: - 项目主页:[项目URL] - 问题追踪:[Issues URL] --- **注意**:本应用使用Mock数据进行演示,所有AI功能均为模拟实现。