Files
yusheng-android/README.md

236 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 羽声语音项目文档
## 项目概述
羽声语音是一款基于Android平台的语音社交应用支持实时语音通信、多人语音聊天等功能。项目采用模块化架构设计便于功能扩展和维护。
## 项目结构
```
yusheng_new/
├── app/ # 主应用模块
├── BaseModule/ # 基础功能模块
├── MainModule/ # 主要功能模块
├── timcommon/ # 腾讯云IM通用组件
├── tuichat/ # 腾讯云IM聊天组件
├── tuiconversation/ # 腾讯云IM会话组件
├── tuicore/ # 腾讯云IM核心组件
├── animplayer/ # 动画播放组件
├── appupdate/ # 应用更新模块
├── locktableview/ # 锁定表格视图组件
├── moduletablayout/ # 自定义Tab布局组件
└── Loadinglibrary/ # 加载动画库
```
## MainModule 详细说明
MainModule 是项目的核心功能模块包含了应用的主要业务逻辑和界面实现。该模块采用MVP架构模式结合Kotlin和Java混合开发实现了丰富的社交和语音功能。
### 核心架构
- **基础类**:
- `BaseMvpActivity.java`: MVP架构的基础Activity类提供Presenter绑定和生命周期管理
- `Application.kt`: 全局应用程序类,负责初始化各种服务和全局配置
- **功能模块**:
- `activity/`: 包含所有主要活动的实现
- `adapter/`: 列表适配器实现
- `bean/`: 数据模型类
- `dialog/`: 对话框实现
- `manager/`: 各种管理器类
- `model/`: 数据模型层
- `service/`: 服务实现
- `utils/`: 工具类
- `view/`: 自定义视图组件
- `widget/`: 自定义UI控件
### 主要功能
#### 1. 房间系统 (activity/room/)
房间系统是应用的核心功能,提供语音聊天室功能:
- **RoomActivity.kt**: 房间主界面,实现语音聊天、麦序管理、礼物互动等功能
- **PopularRoomActivity.java**: 热门房间列表
- **RankingListActivity.java**: 排行榜页面
- **RedResultActivity.java**: 红包结果页面
- **SearchActivity.java**: 房间搜索功能
房间功能包括:
- 实时语音通信
- 麦序管理(上麦、下麦、抱麦等)
- 礼物系统(赠送、接收、礼物特效)
- PK对战功能
- 红包功能
- 点歌系统
- 聊天室互动
#### 2. 用户系统 (activity/user/)
用户系统管理用户信息和相关功能:
- 用户资料编辑
- 个人主页
- 钱包与充值
- 任务系统
- 贵族体系
#### 3. 消息系统 (activity/msg/)
消息系统处理应用内的各种通知和消息:
- 系统通知
- 官方公告
- 消息提醒设置
#### 4. 登录系统 (activity/login/)
处理用户登录、注册和认证:
- 登录界面
- 注册流程
- 实名认证
- 密码找回
#### 5. 主页系统 (activity/main/)
应用主页和相关功能:
- 主页界面
- 推荐内容
- 发现功能
#### 6. 广场系统 (activity/plaza/)
社交广场功能:
- 动态发布
- 动态浏览
- 互动评论
### 技术特点
1. **混合开发**: 结合Kotlin和Java开发充分利用两种语言的优势
2. **MVP架构**: 采用MVP设计模式分离视图、模型和展示逻辑
3. **模块化设计**: 功能模块清晰划分,便于维护和扩展
4. **路由管理**: 使用ARouter实现模块间导航和通信
5. **数据绑定**: 使用DataBinding和ViewBinding简化UI操作
6. **实时通信**: 集成腾讯云IM SDK实现即时通讯
7. **动画效果**: 丰富的动画和过渡效果提升用户体验
### 关键组件
1. **RoomManager**: 房间管理器,处理房间创建、加入、退出等操作
2. **TimerManager**: 计时器管理,处理各种倒计时和定时任务
3. **WheatLayoutSingManager**: 麦序管理器,处理语音房间的麦序逻辑
4. **自定义对话框**: 丰富的对话框组件,如礼物对话框、设置对话框等
### 资源文件
MainModule包含丰富的资源文件
- **布局文件**: 100+个XML布局文件涵盖所有界面
- **drawable资源**: 各种形状、选择器和图标资源
- **动画资源**: 各种动画效果定义
- **字体资源**: 自定义字体文件
### 依赖关系
MainModule依赖以下模块
- BaseModule: 基础功能支持
- timcommon: 腾讯云IM通用组件
- tuichat: 腾讯云IM聊天组件
- tuiconversation: 腾讯云IM会话组件
- appupdate: 应用更新功能
- locktableview: 自定义表格视图
### 配置信息
- **命名空间**: `com.xscm.modulemain`
- **最低SDK**: 24
- **目标SDK**: 35
- **编译SDK**: 35
- **Java版本**: 17
- **Kotlin JVM目标**: 11
- **启用功能**: DataBinding, ViewBinding
## 技术栈
- **开发语言**: Java、Kotlin
- **最低支持版本**: Android 7.0 (API 24)
- **目标版本**: Android 13 (API 33)
- **编译版本**: Android 14 (API 35)
- **架构**: 模块化架构使用ARouter进行路由管理
- **UI框架**: DataBinding、ViewBinding
- **依赖管理**: Gradle
## 主要功能模块
### 1. 语音通信
- 实时语音通话
- 多人语音聊天室
- 语音消息处理
### 2. 即时通讯
- 集成腾讯云IM SDK
- 单聊功能
- 群聊功能
- 会话管理
### 3. 用户认证
- 人脸识别认证集成腾讯云人脸识别SDK
- 账号注册与登录
- 用户信息管理
### 4. 应用更新
- 自动检测更新
- 版本管理
- 安装包下载与安装
## 构建配置
项目支持以下构建变体:
1. **正式版 (releas)**
- 应用名称: 羽声语音
- 包名: com.qxcm.qxlive
- 签名: 使用release签名配置
2. **测试版 (beta)**
- 应用名称: 羽声-测试版
- 包名: com.qxcm.qxlive.beta
- 签名: 使用debug签名配置
## 签名配置
- **调试签名**: my-release-key.jks
- 密码: 123456
- 别名: mykey
- 别名密码: 123456
- **发布签名**: midi.jks
- 密码: 未在配置文件中显示
## 依赖库
主要依赖包括:
- AndroidX基础库
- Material Design组件
- 腾讯云IM SDK
- 腾讯云人脸识别SDK
- ARouter路由框架
- 权限管理库(PermissionX)
## 构建说明
1. 克隆项目到本地
2. 确保Android Studio版本兼容
3. 使用Gradle同步项目
4. 选择构建变体(releas或beta)
5. 运行或构建应用
## 版本信息
版本号通过gradle.properties配置
- 版本代码: APP_VERSION_CODE
- 版本名称: APP_VERSION_NAME
## 注意事项
1. 项目使用了混淆,发布版本会进行代码混淆
2. 支持的CPU架构: arm64-v8a, armeabi-v7a
3. 使用了DataBinding和ViewBinding技术
4. 集成了ARouter进行模块间通信
## 许可证
本项目未指定许可证,请联系项目所有者获取更多信息。