# ModuleApp **Repository Path**: gzlpsdp/module-app ## Basic Information - **Project Name**: ModuleApp - **Description**: 组件化开发升级框架 - **Primary Language**: Android - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-04 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ModuleApp [![](https://jitpack.io/v/com.gitee.gzlpsdp/module-app.svg)](https://jitpack.io/#com.gitee.gzlpsdp/module-app) ## 介绍 ModuleApp 是一个基于组件化架构的 Android 应用框架,支持模块独立开发、调试和集成运行。项目通过 ARouter 实现模块间通信,采用 EventBus 进行事件传递,并实现了统一的异常处理机制和基础组件封装,便于扩展和维护。 ## 软件架构 项目采用组件化架构,主要模块如下: - **app**: 主模块,集成所有业务组件,包含主界面和登录界面。 - **common**: 公共模块,包含基础类、工具类、网络配置、事件总线封装等。 - **home/discovery/message/mine**: 各个业务模块,分别对应首页、发现、消息、我的等页面。 - **gradle**: Gradle 构建脚本相关文件。 - **settings.gradle**: Gradle 多模块配置文件。 模块间通过 ARouter 路由跳转,使用 `RouterPath` 类统一管理路径。事件通信使用 `EventBusUtil` 工具类进行封装,模块间服务调用通过 ARouter 提供的 `IProvider` 接口实现。 ## 安装教程 1. 确保已安装 Android Studio 并配置好 Android SDK。 2. 克隆仓库到本地:`git clone https://gitee.com/gzlpsdp/module-app.git` 3. 打开项目并同步 Gradle。 4. 连接设备或使用模拟器,点击运行按钮部署应用。 ## 使用说明 1. **主界面**:包含底部导航栏,可切换 Home、Discovery、Message、Mine 四个模块。 2. **登录功能**:点击 Mine 页面中的登录按钮,输入用户名和密码后可完成登录。 3. **模块切换**:在主界面通过底部导航栏切换不同模块。 4. **事件通信**:模块间通过 `EventBusUtil` 发送和接收事件,例如登录成功后发送 `LoginEvent`。 5. **模块间跳转**:通过 ARouter 实现模块间的页面跳转,例如从 Mine 模块跳转到 Login 页面。 ## 其中使用的网络请求示例 >引入包 ```gradle implementation 'com.zhy:okhttputils:2.6.2' ``` >引入依奈 ```java import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; ``` > get请求 ```java OkHttpUtils.get().url(Constants.searchWmsPacUrl + "?pac=" + Constants.pac) .build().execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { if (e instanceof java.net.SocketTimeoutException) { Toast.makeText(LoginActivity.this, "网络连接超时,请检查网络设置", Toast.LENGTH_SHORT).show(); } else if (e instanceof java.io.IOException) { Toast.makeText(LoginActivity.this, "网络请求失败,请检查网络连接", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(LoginActivity.this, "网络请求出现未知错误: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } } @Override public void onResponse(String response, int id) { } }); ``` >post请求 ```java OkHttpUtils.post() .url(url) .addParams("参数1", "参数1") .addParams("参数2", "参数2") .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { if (e instanceof java.net.SocketTimeoutException) { Toast.makeText(LoginActivity.this, "网络连接超时,请检查网络设置", Toast.LENGTH_SHORT).show(); } else if (e instanceof java.io.IOException) { Toast.makeText(LoginActivity.this, "网络请求失败,请检查网络连接", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(LoginActivity.this, "网络请求出现未知错误: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } } @Override public void onResponse(String s, int id) { Result result = null;//返回类型换算 try { result = JSONObject.parseObject(s, Result.class); } catch (Exception e) { } if (result == null) { result.setSuccess(false); result.setMessage("登录请求返回失败"); } if (result.getSuccess()) { JSONObject jsonObject = JSONObject.parseObject(result.getData().toString()); String token = jsonObject.getString("token"); String user = jsonObject.getString("user"); UserInfo userInfo = JSONObject.parseObject(user, UserInfo.class); //后续操作 } else { Toast.makeText(LoginActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); } } }); ``` ## 参与贡献 1. Fork 本仓库。 2. 新建 Feat_xxx 分支。 3. 提交代码。 4. 新建 Pull Request。 ## 特技 1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md。 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目。 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目。 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)