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

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

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

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

先看看这张大图:

(android端)GRPC的使用和MVC模式封装_第1张图片
图1

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

配置Gradle相关:

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

(android端)GRPC的使用和MVC模式封装_第2张图片
packagingOptions
(android端)GRPC的使用和MVC模式封装_第3张图片
protobuf

在 dependencies里面加上:

(android端)GRPC的使用和MVC模式封装_第4张图片
dependencies

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

(android端)GRPC的使用和MVC模式封装_第5张图片

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

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

(android端)GRPC的使用和MVC模式封装_第6张图片

安装划了红线的即可。

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

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

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

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

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

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

     好了,封装开始:

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

(android端)GRPC的使用和MVC模式封装_第7张图片
回调接口

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

(android端)GRPC的使用和MVC模式封装_第8张图片
callbacl的初始化

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

(android端)GRPC的使用和MVC模式封装_第9张图片

再来看看SayHello 的具体:

(android端)GRPC的使用和MVC模式封装_第10张图片

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

(android端)GRPC的使用和MVC模式封装_第11张图片

   获取到数据后,判断无误后就开始调用接口里面的方法(该方法就是一开始我们写的一些更新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端)GRPC的使用和MVC模式封装)