Android组件化应用项目。将正常的项目分解为组件项目,具体过程可参考项目git历史记录
。项目放在了GitHub
去年还专心开发Android应用的时候,经常因为编写代码后运行的漫长过程所折磨,所以研究了一下Android组件化应用开发
的技术。研究结果:将模块内容繁重的项目分解为组件化项目之后,能够很大程度的缩减项目编译时间。但比较关键的问题是,在项目前期就需要时间分析项目功能,优化项目结构,将项目组件化。
github项目介绍
项目运行效果
修改项目中的gradle.properties
中的如下代码,将项目配置为组件化工程。
isModule=true
这时项目的module_home
、module_me
就会由library
变为application
,分别运行之后就可以看到两个独立的模块运行成APP。下面是运行效果图。
同理,修改项目中的gradle.properties
中的如下代码,将项目配置为组件化工程。
isModule=false
这时项目的module_home
、module_me
就会由application
变为library
,运行app
模块就会包含两个模块的内容。下面是运行效果图。
其他问题说明
因为项目中使用的接口服务停掉了,所以项目运行后接口不会返回数据。但是网络请求部分是没有问题的。
接口调用方法:
- 修改
lib_com
模块下的data/API
文件中的接口根路径。public static final String BASE_URL_TEST = "http://genius.enn.cn/";
- 在
lib_com
模块下的data/ApiService
文件中添加接口地址。/** * 更新昵称 */ @POST("member-v1/user/profile") Observable<BaseResponseV2<UserInfo>> getUserInfo();
- 在应用模块的
Presenter
中添加接口请求的方法。
例如:在module_me
模块的fragment/MinePresenter
文件中添加请求方法。public void getUserInfo() { addSubscribe(dataManager.getUserInfo() .compose(RxUtils.rxSchedulerHelper()) .compose(RxUtils.handleResultV2()) .subscribeWith(new BaseObserver<UserInfo>(mView, false) { @Override public void onNext(UserInfo userInfo) { mView.getUserInfoSuccess(userInfo); } })); }
- 在应用模块的
Activity
或者Fragment
界面中调用Presenter
的方法即可。mPresenter.getUserInfo();