(android端)GRPC的使用和MVC模式封装

       GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf来声明数据模型和RPC接口服务。

       想直接撸代码的直接通过传送门吧。(还有下面的都是图文混合,对于要配置项目,最快的方式,去github里面获取)

传送门:https://github.com/niyige/GRPCMvcApp  

先看看这张大图:

图1

现在来说说在Android这边的使用:

配置Gradle相关:

在moudle为app里面的Gradle 的android{}里面加上如下:

packagingOptions
protobuf

在 dependencies里面加上:

dependencies

在项目级别里面的gradle文件里面加上(最外层的gradle):

加上红线划了的这句。(注意:对比自己的gradle文件,少了什么,就加上什么,上面的都是截图,可以去github里面直接拿来用)。到此为止,gradle相关就配置完了,当然,上面的版本可能有更新,可自行用最新的。

对于proto文件的编写,就不在描述,编译proto,还需要一个插件,在Android Studio里面的插件里面install下就好,如下图:

安装划了红线的即可。

这个时候,对于运行使用了GRPC的项目来说,已经可以正常的运转了。

接下来,一步一步来描述,如何用MVC模式来封装下GRPC相关的网络调用。

     在这之前,我们先明白几个概念:

    Model :是应用程序中用于处理应用程序数据的部分(负责对数据的存取)

    View :V层根据M返回的数据来显示对应的页面

    Controller :主要是处理用户交互(根据用户操作的View层获取用户行为数据,并提供给M,M处理后,更新V)

     好了,封装开始:

     定义一个接口CallBack,里面有个方法callback(),如图:

回调接口

在Activity里面(view层),把callback初始化,并实现里面的方法,实现如下:

callbacl的初始化

接下来我们需要获取数据了,比如点击某个按钮发送一个请求,如图:

再来看看SayHello 的具体:

      对于CallBack这个接口的真正调用出,是在异步任务的onPostExecute()方法里面,关于异步任务的封装,我就不在多说,可以自行去看代码。必要代码:

   获取到数据后,判断无误后就开始调用接口里面的方法(该方法就是一开始我们写的一些更新UI的一些操作)。

本文demo地址:https://github.com/niyige/GRPCMvcApp

参考资料:

grpc-android:https://github.com/grpc/grpc-java/tree/master/examples/android

原理分析:http://shift-alt-ctrl.iteye.com/blog/2292862

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,569评论 2 45
  • 在高中,我的同学都看一些《可乐》《读者》之类的书刊,我也经常时不时拿来翻看翻看,看到有一篇文章说自己是一个...
    人专台水阅读 674评论 0 3
  • 今天我们8点半左右从学校出发,经过了一个半小时的车程,我们抵达了南海子麋鹿苑。进了园区,坐电瓶车先在麋鹿驯养区内转...
    茉蓆森皌儿阅读 189评论 0 0
  • 1116-2017-G174周检视 2017年度目标及关键点 * 目标1 雅思口语练习取得突破 * 目标2 找到自...
    熊超超阅读 498评论 1 1