Files
peizhen/项目结构文档.txt

602 lines
24 KiB
Plaintext
Raw Permalink Normal View History

2025-12-19 23:45:38 +08:00
# 项目结构文档
## 一、项目基本信息
### 1.1 项目概述
- **项目名称**: peizhen配真
- **应用包名**: com.ruilaizi.service
- **命名空间**: com.ruilaizi.service
- **项目类型**: Android 原生应用
- **开发语言**: Java
- **构建工具**: Gradle
- **Android Gradle Plugin 版本**: 8.7.3
### 1.2 应用配置
- **应用ID**: com.ruilaizi.service
- **版本号**: 101
- **版本名称**: 1.0.1
- **最低SDK版本**: 26 (Android 8.0)
- **目标SDK版本**: 34 (Android 14)
- **编译SDK版本**: 34
- **构建工具版本**: 30.0.2
- **支持多Dex**: 是
### 1.3 签名配置
- **签名文件1**: july.jks
- **签名文件2**: ruilaizi.jks
## 二、项目模块结构
### 2.1 主模块 (app)
- **类型**: Android Application
- **功能**: 主应用模块包含所有业务逻辑和UI
### 2.2 基础库模块 (baselibs)
- **类型**: Android Library
- **命名空间**: com.ruilaizi.baselibs
- **状态**: 已配置但未在主模块中引用(已注释)
- **功能**: 基础工具库(目前为空)
### 2.3 城市选择器模块 (citypicker)
- **类型**: Android Library
- **命名空间**: com.zaaach.citypicker
- **状态**: 已移除在settings.gradle中已注释避免D8编译问题
- **功能**: 城市选择器组件
## 三、项目目录结构
```
peizhen/
├── app/ # 主应用模块
│ ├── build/ # 构建输出目录
│ ├── libs/ # 本地JAR库
│ ├── release/ # Release版本APK输出目录
│ ├── src/ # 源代码目录
│ │ ├── main/ # 主源代码
│ │ │ ├── assets/ # 资源文件JSON、HTML等
│ │ │ ├── java/ # Java源代码
│ │ │ ├── res/ # 资源文件(布局、图片、字符串等)
│ │ │ └── AndroidManifest.xml
│ │ └── test/ # 测试代码
│ ├── build.gradle # 应用构建配置
│ ├── proguard-rules.pro # ProGuard混淆规则
│ ├── july.jks # 签名文件1
│ └── ruilaizi.jks # 签名文件2
├── baselibs/ # 基础库模块
│ ├── src/
│ │ └── main/
│ │ ├── java/ # 基础库Java代码
│ │ ├── res/ # 基础库资源
│ │ └── AndroidManifest.xml
│ ├── build.gradle # 库构建配置
│ └── proguard-rules.pro # 混淆规则
├── citypicker/ # 城市选择器模块(已移除)
│ ├── src/
│ ├── build.gradle
│ └── proguard-rules.pro
├── gradle/ # Gradle配置
│ └── wrapper/ # Gradle Wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── build.gradle # 项目级构建配置
├── settings.gradle # 项目设置(模块配置)
├── gradle.properties # Gradle属性配置
├── gradlew # Gradle Wrapper脚本Unix
├── gradlew.bat # Gradle Wrapper脚本Windows
├── local.properties # 本地配置SDK路径等
└── peizhen.iml # IntelliJ IDEA项目文件
```
## 四、Java代码包结构
### 4.1 主包结构 (com.ruilaizi.service)
```
com.ruilaizi.service/
├── base/ # 基础类
│ ├── BaseActivity.java # Activity基类
│ ├── BaseFragment.java # Fragment基类
│ ├── BasetwoFragment.java # Fragment基类2
│ ├── BaseTreeActivity.java # 树形Activity基类
│ ├── BaseTreeFragment.java # 树形Fragment基类
│ ├── BaseTreeView.java # 树形视图基类
│ ├── BaseModel.java # Model基类
│ ├── BaseBean.java # Bean基类
│ ├── BaseRecycleAdapter.java # RecyclerView适配器基类
│ └── BaseViewHolder.java # ViewHolder基类
├── BaseApplication.java # Application入口类
├── common/ # 公共类
│ └── Constants.java # 常量定义
├── db/ # 数据库相关
│ ├── dao/ # 数据访问对象
│ │ ├── DataBaseHelper.java # 数据库帮助类
│ │ ├── addCustomerDao.java # 客户数据访问
│ │ └── DbRecordDao.java # 记录数据访问
│ ├── DbBean.java # 数据库Bean
│ └── DbRecordBeanData.java # 记录数据Bean
├── dialog/ # 对话框相关
│ ├── BaseDialog.java # 对话框基类
│ ├── BaseTipsDialog.java # 提示对话框
│ ├── LoadingDialog.java # 加载对话框
│ ├── MyDialog.java # 自定义对话框
│ ├── HomeShopDialog.java # 首页商店对话框
│ └── ...
├── main/ # 主要业务模块
│ ├── activity/ # Activity页面
│ │ ├── SplashActivity.java # 启动页(主入口)
│ │ ├── MainActivity.java # 主页面
│ │ ├── Main2Activity.java # 主页面2
│ │ ├── LoginPasswordActivity.java # 密码登录页
│ │ ├── NewCodeLoginActivity.java # 验证码登录页
│ │ ├── ForgetPasActivity.java # 忘记密码页
│ │ ├── ModifyPasActivity.java # 修改密码页
│ │ ├── OrderActivity.java # 订单页
│ │ ├── mingXiActivity.java # 明细页
│ │ ├── common/ # 公共组件
│ │ │ ├── databus/ # 数据总线
│ │ │ ├── http/ # HTTP请求
│ │ │ ├── storage/ # 存储工具
│ │ │ └── util/ # 工具类
│ │ ├── mine/ # 我的模块
│ │ │ ├── MessageNoticeActivity.java # 消息通知
│ │ │ └── InboundHistoryActivity.java # 入库历史
│ │ └── mvp/ # MVP架构
│ │ ├── contract/ # 契约接口
│ │ ├── model/ # 数据模型
│ │ └── presenterImpl/ # presenter实现
│ │
│ ├── kehu/ # 客户模块
│ │ ├── activity/ # 客户相关Activity16个
│ │ │ ├── AddCustomerActivity.java # 添加客户
│ │ │ ├── CustomerDetailActivity.java # 客户详情
│ │ │ ├── FpOrderInfoActivity.java # 订单信息
│ │ │ ├── AllocationActivity.java # 分配
│ │ │ ├── SearchActivity.java # 搜索
│ │ │ ├── DesignActivity.java # 设计
│ │ │ ├── StyleActivity.java # 风格
│ │ │ ├── BudgetActivity.java # 预算
│ │ │ └── ...
│ │ ├── adapter/ # 适配器11个
│ │ ├── Bean/ # 数据Bean26个
│ │ ├── Dialog/ # 对话框5个
│ │ ├── fragment/ # Fragment11个
│ │ └── KehuinfoBean.java # 客户信息Bean
│ │
│ ├── my/ # 我的模块
│ │ ├── activity/ # 我的相关Activity15个
│ │ │ ├── MyInfoActivity.java # 我的信息
│ │ │ ├── SettingActivity.java # 设置
│ │ │ ├── PersonalProfileActivity.java # 个人资料
│ │ │ ├── ShimingActivity.java # 实名
│ │ │ ├── HongBaoActivity.java # 红包
│ │ │ ├── ConfirmOrderActivity.java # 确认订单
│ │ │ ├── TwoWayActivity.java # 双向
│ │ │ ├── ListActivity.java # 列表
│ │ │ ├── refuseActivity.java # 拒绝
│ │ │ └── ...
│ │ ├── adapter/ # 适配器8个
│ │ ├── entity/ # 实体类22个
│ │ ├── fragment/ # Fragment6个
│ │ ├── mvp/ # MVP架构3个文件
│ │ └── MyFragment.java # 我的Fragment
│ │
│ ├── find/ # 发现模块
│ │ ├── adapter/ # 适配器16个
│ │ ├── entity/ # 实体类13个
│ │ ├── mvp/ # MVP架构
│ │ │ ├── contract/ # 契约接口2个
│ │ │ ├── model/ # 数据模型1个
│ │ │ └── presenter/ # presenter1个
│ │ ├── ui/ # UI组件3个
│ │ ├── CommentActivity.java # 评论页
│ │ ├── ConversationActivity.java # 会话页
│ │ ├── PriLetFragment.java # 私信Fragment
│ │ ├── QuestionsFragment.java # 问题Fragment
│ │ └── OnSatisfactionListener.java
│ │
│ └── task/ # 任务模块
│ ├── HomeFragment.java # 首页Fragment
│ ├── ViewHolderOne.java # ViewHolder 1
│ ├── ViewHolderTwo.java # ViewHolder 2
│ ├── ViewHolderThree.java # ViewHolder 3
│ ├── ViewHolderFour.java # ViewHolder 4
│ ├── ViewHolderFive.java # ViewHolder 5
│ └── ViewHolderSix.java # ViewHolder 6
├── network/ # 网络请求
│ ├── ApiCallBack.java # API回调
│ ├── ApiUtils.java # API工具
│ ├── http/ # HTTP相关
│ │ ├── ApiUtils.java
│ │ ├── MyApi.java
│ │ ├── ResponseBean.java
│ │ ├── ResponseBeanx.java
│ │ ├── LifeTreeAPIException.java
│ │ └── LifeTreeConverterFactory.java
│ ├── LifeTreeAPIException.java
│ ├── LifeTreeConverterFactory.java
│ └── WeChatApi.java # 微信API
├── okgonet/ # OkGo网络库封装
│ ├── Func1.java
│ ├── HttpConstants.java # HTTP常量
│ ├── NetApi.java # 网络API
│ ├── Observable.java
│ └── Observer.java
├── utils/ # 工具类
│ ├── AbImageUtil.java # 图片工具
│ ├── AbStrUtil.java # 字符串工具
│ ├── BaseAdapter.java # 适配器基类
│ ├── CloseUtils.java # 关闭工具
│ ├── DensityUtil.java # 密度工具
│ ├── FileIOUtils.java # 文件IO工具
│ ├── FileUtils.java # 文件工具
│ ├── GetJsonDataUtil.java # JSON数据获取工具
│ ├── GlideTools.java # Glide图片加载工具
│ ├── ImageUtils.java # 图片工具
│ ├── JsonUtils.java # JSON工具
│ ├── JumpUtils.java # 跳转工具
│ ├── LocatData.java # 定位数据
│ ├── NetUtils.java # 网络工具
│ ├── PhonenNumUtil.java # 电话号码工具
│ ├── SharedTools.java # SharedPreferences工具
│ ├── SPUtils.java # SharedPreferences工具
│ ├── SpaceItemDecoration.java # RecyclerView间距装饰
│ ├── StatusBarUtil.java # 状态栏工具
│ ├── StringUtils.java # 字符串工具
│ ├── ToastUtils.java # Toast工具
│ ├── ToolsText.java # 文本工具
│ ├── ToolsUtils.java # 工具类
│ ├── UiUtils.java # UI工具
│ ├── Utils.java # 通用工具
│ ├── VerificationUtils.java # 验证工具
│ ├── WebViewJavaScriptFunction.java # WebView JS交互
│ ├── WidgetTools.java # 控件工具
│ ├── X5WebView.java # X5 WebView
│ └── checkVersionsUtils/ # 版本检查工具
│ └── ProfileSpUtils.java # 用户资料存储工具
├── view/ # 自定义视图
│ ├── DynamicWave.java # 动态波浪
│ ├── HeadZoomScrollView.java # 头部缩放滚动视图
│ ├── MyScrollView.java # 自定义滚动视图
│ ├── StatusBarView.java # 状态栏视图
│ └── webview/ # WebView相关
│ └── XfiveWebActivity.java # X5 WebView Activity
├── widget/ # 自定义控件
│ ├── CircleImageView.java # 圆形图片视图
│ ├── ItemProView.java # 项目视图
│ ├── ItemView.java # 项目视图
│ ├── ListViewForScrollView.java # 可滚动ListView
│ ├── PastEditText.java # 自定义EditText
│ ├── TagView.java # 标签视图
│ └── TitleBar.java # 标题栏
└── wxapi/ # 微信API
├── WXEntryActivity.java # 微信入口Activity
└── WXPayEntryActivity.java # 微信支付入口Activity
```
### 4.2 代码统计
- **Java文件总数**: 296个
- **主要业务模块**:
- 客户模块 (kehu): 约70+个文件
- 我的模块 (my): 约60+个文件
- 发现模块 (find): 约35+个文件
- 任务模块 (task): 7个文件
## 五、资源文件结构
### 5.1 资源目录 (app/src/main/res/)
```
res/
├── anim/ # 动画资源10个XML文件
│ ├── dialog_dismiss.xml
│ ├── dialog_in_anim.xml
│ ├── dialog_out_anim.xml
│ ├── dialog_show.xml
│ ├── push_bottom_in2.xml
│ ├── push_bottom_out2.xml
│ ├── scale_in.xml
│ ├── scale_out.xml
│ ├── slide_in_bottom.xml
│ └── slide_out_bottom.xml
├── color/ # 颜色资源3个XML文件
│ ├── color_selector_text_goods_classify.xml
│ ├── color_selector_text_send_code.xml
│ └── selector_tag_text.xml
├── drawable/ # 可绘制资源约60个XML/PNG文件
│ ├── 各种背景、形状、选择器XML文件
│ └── 图标PNG文件
├── drawable-hdpi/ # 高密度图标
├── drawable-mdpi/ # 中等密度图标
├── drawable-xhdpi/ # 超高密度图标和资源
├── drawable-xxhdpi/ # 超超高密度图标
├── drawable-xxxhdpi/ # 超超超高密度图标
├── layout/ # 布局文件133个XML文件
├── mipmap-*/ # 应用图标(多密度)
│ ├── mipmap-hdpi/ # 66个文件65 PNG + 1 JPG
│ ├── mipmap-mdpi/ # 67个文件66 PNG + 1 JPG
│ ├── mipmap-xhdpi/ # 89个文件87 PNG + 2 JPG
│ ├── mipmap-xxhdpi/ # 132个文件126 PNG + 5 JPG + 1 GIF
│ └── mipmap-xxxhdpi/ # 77个文件74 PNG + 3 JPG
├── values/ # 值资源5个XML文件
│ ├── strings.xml # 字符串资源
│ ├── styles.xml # 样式资源
│ ├── colors.xml # 颜色值
│ ├── dimens.xml # 尺寸值
│ └── themes.xml # 主题
├── values-en/ # 英文值资源1个XML文件
├── values-v15/ # API 15+值资源
├── values-w820dp/ # 平板值资源
└── xml/ # XML配置文件2个文件
├── network_security_config.xml # 网络安全配置
└── file_paths_public.xml # FileProvider路径配置
```
### 5.2 资源统计
- **布局文件**: 133个
- **图片资源**: 434个PNG + 12个JPG + 1个GIF
- **动画资源**: 10个
- **颜色资源**: 3个
- **可绘制资源**: 约60个
### 5.3 Assets资源 (app/src/main/assets/)
```
assets/
├── city.json # 城市数据
├── customerList.json # 客户列表数据
├── dede.json # 数据文件
├── edsf.json # 数据文件
├── fpList.json # 列表数据
├── fpOrderInfo.json # 订单信息数据
├── jiazaidonghua.json # 加载动画数据
├── logingpwd.json # 登录密码数据
├── orderList.json # 订单列表数据
├── privacy.html # 隐私政策HTML
├── privateList.json # 私有列表数据
├── province.json # 省份数据
├── ssssd.json # 数据文件
└── yunweixin.json # 运维微信数据
```
## 六、第三方依赖库
### 6.1 网络请求库
- **Retrofit**: 2.4.0HTTP客户端
- **OkHttp**: 3.5.0通过Retrofit
- **OkGo**: 3.0.4(网络请求框架)
- **OkRx2**: 2.0.2RxJava2适配
- **OkServer**: 2.0.5(下载管理)
### 6.2 响应式编程
- **RxJava**: 1.0.14(旧版本)
- **RxJava2**: 2.2.6(新版本)
- **RxAndroid**: 1.1.0(旧版本)
- **RxAndroid2**: 2.1.1(新版本)
- **RxBinding**: 2.1.1响应式UI绑定
- **RxPermissions**: 0.10.2(权限处理)
### 6.3 UI组件库
- **AndroidX AppCompat**: 1.0.0
- **AndroidX Material**: 1.0.0
- **AndroidX ConstraintLayout**: 1.1.3
- **AndroidX RecyclerView**: 1.0.0
- **XRecyclerView**: 1.3.2(下拉刷新)
- **BaseRecyclerViewAdapterHelper**: 2.9.30RecyclerView适配器
- **ImmersionBar**: 3.0.0(沉浸式状态栏)
- **Lottie**: 3.4.0(动画库)
- **BannerView**: 1.0(轮播图)
- **AutoVerticalTextview**: 0.1(垂直滚动文本)
### 6.4 图片处理
- **Glide**: 4.9.0(图片加载)
- **Picasso**: 2.5.2(图片加载)
- **Luban**: 1.1.8(图片压缩)
- **Matisse**: 0.5.3-beta3图片选择器
### 6.5 数据解析
- **Gson**: 2.7JSON解析
- **Fastjson**: 1.1.43.android本地JAR
- **Jsoup**: 1.10.1HTML解析
### 6.6 数据库
- **OrmLite**: 5.1ORM数据库框架
### 6.7 其他功能库
- **ZXing**: 3.3.0(二维码扫描)
- **SystemBarTint**: 1.0.4(状态栏颜色)
- **EventBus**: 2.4.0本地JAR事件总线
- **Android-PickerView**: 4.1.9(三级联动选择器)
- **VerificationCodeInput**: 1.5(验证码输入)
- **EasyPermissions**: 1.2.0(权限处理)
- **Lifecycle Extensions**: 2.0.0(生命周期扩展)
- **MVP**: 3.0.0-alpha4Hannesdorfmann MVP框架
### 6.8 微信SDK本地JAR
- **wechat-sdk-android-without-mta**: 1.0.2
- **ShareSDK-Wechat-Core**: 2.8.3
- **tbs_sdk_thirdapp**: 3.2.0.1104(腾讯浏览服务)
### 6.9 地图定位
- **高德地图定位SDK**: latest.integration
## 七、项目架构
### 7.1 架构模式
- **MVP模式**: 部分模块使用MVP架构main/activity/mvp、main/find/mvp、main/my/mvp
- **MVC模式**: 部分模块使用传统MVC模式
- **DataBinding**: 启用数据绑定enabled=true
### 7.2 主要设计模式
- **基类模式**: BaseActivity、BaseFragment等基类
- **适配器模式**: BaseRecycleAdapter等
- **观察者模式**: RxJava响应式编程
- **单例模式**: BaseApplication等
### 7.3 数据存储
- **SharedPreferences**: ProfileSpUtils、SPUtils、SharedTools
- **数据库**: OrmLiteDataBaseHelper
- **文件存储**: FileUtils、FileIOUtils
### 7.4 网络架构
- **Retrofit + RxJava**: 主要网络请求方式
- **OkGo**: 辅助网络请求框架
- **统一异常处理**: LifeTreeAPIException、LifeTreeConverterFactory
## 八、应用入口和主要流程
### 8.1 应用入口
- **Application**: BaseApplication
- **启动Activity**: SplashActivity启动页
- **主Activity**: MainActivity主页面
### 8.2 主要功能模块
1. **登录模块**
- SplashActivity启动页
- NewCodeLoginActivity验证码登录
- LoginPasswordActivity密码登录
- ForgetPasActivity忘记密码
2. **主功能模块**
- MainActivity主页面包含多个Fragment
- HomeFragment首页
- MyFragment我的
- TraceFragment追踪
3. **客户管理模块** (kehu)
- 客户列表、添加客户、客户详情
- 订单管理、分配、搜索等
4. **我的模块** (my)
- 个人信息、设置、订单管理
- 实名认证、红包等
5. **发现模块** (find)
- 会话、评论、私信等社交功能
## 九、构建配置
### 9.1 Gradle配置
- **Gradle版本**: 通过gradle-wrapper.properties配置
- **Android Gradle Plugin**: 8.7.3
- **Java版本**: 1.8sourceCompatibility、targetCompatibility
- **构建工具版本**: 30.0.2
### 9.2 构建类型
- **Debug**: 开发调试版本
- **Release**: 发布版本代码混淆minifyEnabled false
### 9.3 代码混淆
- **ProGuard规则文件**: app/proguard-rules.pro
- **当前状态**: Release版本未启用混淆minifyEnabled false
### 9.4 仓库配置
- **阿里云Maven镜像**: 主要使用阿里云镜像加速
- **JitPack**: 用于GitHub项目依赖
- **Google Maven**: Google官方仓库
- **JCenter**: 备用仓库
## 十、特殊配置
### 10.1 权限配置
应用申请了以下主要权限:
- 网络权限INTERNET、ACCESS_NETWORK_STATE
- 存储权限READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE
- 定位权限ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION
- 相机权限CAMERA
- 录音权限RECORD_AUDIO
- 电话权限CALL_PHONE、READ_PHONE_STATE
- 联系人权限READ_CONTACTS
- 悬浮窗权限SYSTEM_ALERT_WINDOW
- 安装权限REQUEST_INSTALL_PACKAGES
### 10.2 功能特性
- **多Dex支持**: 启用突破65535方法数限制
- **DataBinding**: 启用
- **网络安全配置**: network_security_config.xml
- **FileProvider**: 文件共享提供者
- **微信集成**: 微信登录、支付、分享
### 10.3 已知问题
- **citypicker模块**: 已移除避免D8编译问题
- **baselibs模块**: 已配置但未使用
- **签名配置重复**: build.gradle中存在两个signingConfigs配置
## 十一、项目特点
### 11.1 技术特点
- 使用AndroidX库
- 支持DataBinding数据绑定
- 响应式编程RxJava
- MVP架构模式
- 多模块化设计(虽然部分模块未使用)
### 11.2 业务特点
- 客户管理系统
- 订单管理系统
- 社交功能(发现模块)
- 个人中心
- 微信集成(登录、支付、分享)
### 11.3 开发特点
- 代码量较大296个Java文件
- 资源文件丰富679个资源文件
- 使用多种第三方库
- 本地JAR库较多4个
## 十二、文件统计
### 12.1 代码文件
- **Java文件**: 296个
- **XML布局文件**: 133个
- **资源XML文件**: 约100+个
### 12.2 资源文件
- **PNG图片**: 434个
- **JPG图片**: 12个
- **GIF图片**: 1个
- **JSON数据文件**: 13个
- **HTML文件**: 1个
### 12.3 配置文件
- **Gradle文件**: 4个build.gradle × 3 + settings.gradle
- **ProGuard规则**: 3个
- **签名文件**: 2个.jks
---
## 文档说明
**生成时间**: 2025年1月
**项目路径**: D:\androidPj\peizhen
**文档版本**: 1.0
**注意事项**:
1. 本文档基于当前项目结构生成
2. 部分模块可能已移除或未使用如citypicker、baselibs
3. 文件数量为统计值,实际可能略有差异
4. 建议定期更新本文档以保持准确性