(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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

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