# 项目结构文档 ## 一、项目基本信息 ### 1.1 项目概述 - **项目名称**: peizhen(配真) - **应用包名**: com.ruilaizi.example - **命名空间**: com.ruilaizi.example - **项目类型**: Android 原生应用 - **开发语言**: Java - **构建工具**: Gradle - **Android Gradle Plugin 版本**: 8.7.3 ### 1.2 应用配置 - **应用ID**: com.ruilaizi.example - **版本号**: 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.example) ``` com.ruilaizi.example/ ├── 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/ # 客户相关Activity(16个) │ │ │ ├── AddCustomerActivity.java # 添加客户 │ │ │ ├── CustomerDetailActivity.java # 客户详情 │ │ │ ├── FpOrderInfoActivity.java # 订单信息 │ │ │ ├── AllocationActivity.java # 分配 │ │ │ ├── SearchActivity.java # 搜索 │ │ │ ├── DesignActivity.java # 设计 │ │ │ ├── StyleActivity.java # 风格 │ │ │ ├── BudgetActivity.java # 预算 │ │ │ └── ... │ │ ├── adapter/ # 适配器(11个) │ │ ├── Bean/ # 数据Bean(26个) │ │ ├── Dialog/ # 对话框(5个) │ │ ├── fragment/ # Fragment(11个) │ │ └── KehuinfoBean.java # 客户信息Bean │ │ │ ├── my/ # 我的模块 │ │ ├── activity/ # 我的相关Activity(15个) │ │ │ ├── MyInfoActivity.java # 我的信息 │ │ │ ├── SettingActivity.java # 设置 │ │ │ ├── PersonalProfileActivity.java # 个人资料 │ │ │ ├── ShimingActivity.java # 实名 │ │ │ ├── HongBaoActivity.java # 红包 │ │ │ ├── ConfirmOrderActivity.java # 确认订单 │ │ │ ├── TwoWayActivity.java # 双向 │ │ │ ├── ListActivity.java # 列表 │ │ │ ├── refuseActivity.java # 拒绝 │ │ │ └── ... │ │ ├── adapter/ # 适配器(8个) │ │ ├── entity/ # 实体类(22个) │ │ ├── fragment/ # Fragment(6个) │ │ ├── mvp/ # MVP架构(3个文件) │ │ └── MyFragment.java # 我的Fragment │ │ │ ├── find/ # 发现模块 │ │ ├── adapter/ # 适配器(16个) │ │ ├── entity/ # 实体类(13个) │ │ ├── mvp/ # MVP架构 │ │ │ ├── contract/ # 契约接口(2个) │ │ │ ├── model/ # 数据模型(1个) │ │ │ └── presenter/ # presenter(1个) │ │ ├── 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.0(HTTP客户端) - **OkHttp**: 3.5.0(通过Retrofit) - **OkGo**: 3.0.4(网络请求框架) - **OkRx2**: 2.0.2(RxJava2适配) - **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.30(RecyclerView适配器) - **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.7(JSON解析) - **Fastjson**: 1.1.43.android(本地JAR) - **Jsoup**: 1.10.1(HTML解析) ### 6.6 数据库 - **OrmLite**: 5.1(ORM数据库框架) ### 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-alpha4(Hannesdorfmann 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 - **数据库**: OrmLite(DataBaseHelper) - **文件存储**: 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.8(sourceCompatibility、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. 建议定期更新本文档以保持准确性