easy代理android,一套快速高效的开发框架EasyAndroid

原标题:一套快速高效的开发框架EasyAndroid

类库介绍 EasyAndroid

现在Android的框架很多,第三方库也很多,当做一个项目的时候,会考虑怎么整合那么多的资源,以达到复用快速开发。

今天要说的这个框架就是整合了主流Retrofit2网络层封装、Fresco图片加载、都使用OKHTTP3进行网络处理、使用MVP架构,来快速灵活开发复用我们的项目。

框架说明

Retrofit2

为什么要使用它呢?我们来想想如果不使用它的话,我们直接操作OKHTTP3的网络请求,还需要做哪些操作?当发送请求的时候,来封装要以get或者post方式发送,然后回来了GJSON解析成我们需要的实体对象,还要看返回的数据相应码等等,来正确解析我们的数据,那么Retrofit2就是为了高效解决这些事情的,当然Retrofit2不止这些功能,具体大家可看API。

Fresco

比较了一些主流的图片加载以及各种对比,Fresco算是综合比较好的,支持较多,更新及时。

OKHTTP3

不解释了 大家都在用

Other类库

都是一些用的比较多的,Cookie自动管理、View注入Butterknife、以及RecycleView下拉刷新BaseRecyclerViewAdapterHelper、Utilcode工具库、Logger日志库 大家以前没用过的可以关注下 都很好用 灵活

MVP 架构思想

下面重点说一下MVP的Clean模式,现在MVP很火,大行其道,不搞一套MVP架构都感觉缺少点啥,哈哈,为什么呢?MVP难道就是简单的加了一个Presenter层吗?显然不是,它是一种思想,如果简单的一个应用每个Activity类中500行搞定,还需要MVP吗?我觉得就不适合了。越大型的APP、越复杂的APP才会让你觉得MVP的好。怎么做到让代码各司其职。

MVP Clean模式

03d5882d855e21954ecfb36ad545f51a.png

上面这张图就是Clean的架构,为什么需要Clean架构呢,我们来想想,我们把业务逻辑部分都放到了Presenter层,如果这个页面做的逻辑很多,十来个业务操作(请求数据,数据库操作等),这样Presenter也会非常庞大,既然臃肿,我们继续抽象,在Presenter层下面在加一层Use Cases Domain层,专门处理增删改查等任务岂不业务更清晰明了,Presenter只需要执行相关UseCases任务,操作完回调处理就OK了。

MVP Dagger2模式

d57ff62718426e2e720e604d95733af9.png

Dagger2又是个什么东东?我想说你写了Activity或者Fragment依赖Prensenter,然后呢Clean模式又让Presenter依赖UseCases,每次new一个实例进去,然后传递啊等等,想想都累,那么Dagger2可以帮你生成这些实例,你依赖啥,我注入啥,这就是它的精髓依赖注入,不止这些,第三方库,以及其它的提供者都可以进行注入,只要你需要,还有我们的Presenter对象的实例生命周期你怎么管理,UseCases层的对象呢,这一切Dagger2可以帮你做到,可以自定义Scopes,java自动帮你处理

还有一点差点忘了为什么叫Dagger2,版本号2呢,因为它2,哈哈,因为Dagger1使用的是运行时反射机制,这样会影响性能,Dagger2使用编译时自动生成对应代码,直接运行性能不会受到影响。

怎么使用这个库DEMO代码结构图

com.wjj.easy.easyandroidHelper

login

LoginActivity

LoginContract

LoginPresenter

base

di

net

BaseActivity

BaseFragment

BasePresenter

BaseView

SimpleActivity

SimpleFragment

ActivityCommonComponent

AppCommonComponent

AppCommonModule

FragmentCommonComponent

ApiService

AppHttp

common

model

module

utils

AppApplication在app module里面common包里面包含了业务逻辑层需要实现的代码演示,大家拷贝到自己项目中就行了,里面的base包包含基本的Activity、Fragment封装,我们用的时候只要在继承的时候指定需要的Presenter,会自动帮我们生成这个Presenter实例。

dbbd710db40d7821b35bfd0f8dd62a52.png

di包,就是我们的dagger2使用包了,在这里面提供我们的实例,生成我们通用的注入器,不懂不要紧,不要关心,拿过去用就行了,只用来做一些presenter、task、全局实例的注入、其它大可不必用这个,本来是为了增加代码健壮性、提高效率的不能本末倒置了。要你做的就是在ActivityCommonComponent或者FragmentCommonComponent中注入我们要添加的Activity或者Fragment就行了。

85944b93aa627a231386810684ddd530.png

net就是Retrofit2封装 ApiService包含全部的接口请求,包括请求参数、请求方式、地址、文件上传、下载,请求格式,都可以注解操作。

ae4663b3b5fdadc102514b635d0a6e73.png

AppHttp就是对我们的接口进行调用处理

c95403bf8b786e9f81cbf96f2c89faa9.png

module里面拿login来举例吧 LoginActivity对LoginPresenter的依赖,以及LoginPresenter对LoginContract.View的依赖,都在类继承的时候指定就好了,会自动帮你生成,不需要传递。

a16405888015fada7d9b09b9ca8214fb.png

Presenter也是一样,关注于Task的执行

645065cee0611fd76ab9223c07e0f93e.png

domain层只关注于怎么完成这个任务 请求验证码或者登陆操作

69d2bc13cdf2326b17d2a87d015e10f6.png

结语EasyAndroid框架的主要部分都一一介绍了一下,以及它的思想,关于MVP这些我也参考了很多,简单DEMO的很多,真正能够使用的很少,写这个也想大家少走弯路,希望把这个框架能够不断完善,至少DEMO中内容很少,感兴趣的可以Fork修改,有什么好的建议可以私聊我。 GitHub地址

https://github.com/wu928320442/EasyAndroid

特性

整合主流HTTP网络、图片加载、MVP(Clean+Dagger2)架构的一套快速高效的开发框架

包含app library 两个Module 组件化开发用到的第三方框架

SDK自带扩展依赖包

Retrofit2网络层处理 使用OKHTTP3处理

Fresco图片加载处理 使用OKHTTP3处理

OKHTTP3 HTTP基础库,提供给网络层处理和图片加载

PersistentCookieJar快速Cookie持久化与缓存库

Dagger2 依赖注入库,整合Activity,Fragment,Presenter,Task之间的依赖关系

Butterknife View的注入库

BaseRecyclerViewAdapterHelper Recycler下拉加载库

Utilcode实用工具库

Logger 一个简洁漂亮的日志打印库类库导入 compile 'com.wjj.easy:easyandroid:1.0.0' 参考资料

https://github.com/googlesamples/android-architecture

https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html

https://google.github.io/dagger/

https://github.com/Blankj/AndroidUtilCode

https://github.com/franmontiel/PersistentCookieJar

https://github.com/codeestX/GeekNews

https://github.com/JakeWharton/butterknife

https://github.com/square/retrofit

https://github.com/CymChad/BaseRecyclerViewAdapterHelper

https://github.com/android10/Android-CleanArchitecture

http://www.jianshu.com/p/cd2c1c9f68d4返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值