开题篇

近期公司在使用Protocol Buffer替代原先的json作为移动端的数据交互格式。虽然服务端和CTO把这项新技术吹的天花乱坠,说什么体积小,不易被破解乱七八糟的。可是作为Android端人员,我仅仅关心数据怎样解析的问题。折腾了两天,终于解析成功,我来分享下我的过程,有什么更好的建议大家都提提。

生成Java实体类篇

网上找了一大堆的攻略。都是讲protocol的下载与编译,给的链接大部分已经不能直接下载。我直接说我怎么做的。

下载最新的proctoc.exe 链接地址https://github.com/google/protobuf/releases“>https://github.com/google/protobuf/releases

里面有个protoc-3.0.0-alpha-3-win32.zip直接下载。能够在里面拿到protoc.exe

配置到环境变量,这个都是老手了。在系统中自己配置下方便于在不论什么地方使用黑窗体使用就能够。

拿到server端提供的他定义好的 .proto文件

编译.proto文件 protoc --java_out=D:/ test.proto Javaout后面的是编译输出的路劲地址,第二个參数是须要编译的proto文件。

编译成功后直接将生成的Javabean拷贝到Android项目中。

解析工具篇

曾经接项目当中网络訪问层使用的是xutils框架中的HttpUtils,这个有长处也有缺点,好像是国人自己封装的,在请求成功的方法中直接将结果强制转化成了字符串,我这此试验了非常久使用的是android-async-http 链接https://github.com/loopj/android-async-http 直接能够返回字节流,使用字节流解析。(PS不是懒得自己写框架,程序猿界那句话:不要反复造轮子。再说项目经理也不能给你时间自己写一个近乎完美的框架出来)。

这样解析工具就准备好了。

项目依赖库篇

依赖库,由于protocolbuffer是Google提供的,所以使用AndroidStudio非常easy引入最新的依赖库。直接选中项目 按下F4,选择Dependencies选项卡,从网络加入依赖库,输入keywordcom.google.protobuf就能够搜索到最新的protocolbuffer依赖库。(eclipse 的开发人员在studio引入后直接把studio下载好的jar拖进去就好)

解析篇

解析工具、依赖库和实体类所有导入到项目中后。就能够依据服务端提供的接口訪问成功后解析了

非常简单的解析,我的实体类叫做API。解析就一句话

API api = API.parseFrom(byte[] data)

语文不好。仅仅能说这么多,有须要我帮助的直接评论就好。

总结

protocolbuffer的长处我就明确体积小不易被破解,其它的感觉没什么,作为移动端开发人员,事实上关心的还是假设解析这玩意。

ProtocolBuffer在Android端的解析的更多相关文章

  1. Java服务器对外提供接口以及Android端向服务器请求数据

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...

  2. Android Service完全解析,关于服务你所需知道的一切(下)

    转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...

  3. Android OkHttp完全解析 --zz

    参考文章 https://github.com/square/okhttp http://square.github.io/okhttp/ 泡网OkHttp使用教程 Android OkHttp完全解 ...

  4. Android OkHttp完全解析 是时候来了解OkHttp了

    Android OkHttp完全解析 是时候来了解OkHttp了 标签: AndroidOkHttp 2015-08-24 15:36 316254人阅读 评论(306) 收藏 举报  分类: [an ...

  5. Android端上传图片到后台,存储到数据库中 详细代码

    首先点击头像弹出popwindow,点击相册,相机,调用手机自带的裁剪功能,然后异步任务类访问服务器,上传头像,保存到数据库中, 下面写出popwindow的代码 //设置popwindow publ ...

  6. 【转】Android Service完全解析,关于服务你所需知道的一切(下) ---- 不错

    原文网址:http://blog.csdn.net/guolin_blog/article/details/9797169 转载请注册出处:http://blog.csdn.net/guolin_bl ...

  7. Android ListView分页载入(服务端+android端)Demo

    Android ListView分页载入功能 在实际开发中经经常使用到,是每一个开发人员必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了測试. 服务端使用MyEcli ...

  8. Android端恶意锁屏勒索应用分析

    一.前言 5月12日,一场全球性互联网灾难悄然而至,一款名为WannaCRY的PC端恶意勒索软件利用NSA泄漏的危险漏洞“永恒之蓝”,给100多个国家和地区10万台电脑造成了巨大的损失.到2017年为 ...

  9. [转]Android Service完全解析,关于服务你所需知道的一切

      目录(?)[+] Android Service完全解析,关于服务你所需知道的一切(上) 分类: Android疑难解析2013-10-31 08:10 6451人阅读 评论(39) 收藏 举报 ...

随机推荐

  1. 转:java中数组与List相互转换的方法

    1.List转换成为数组.(这里的List是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...

  2. Python多线程问题的资料查找与汇总

    Python多线程问题的资料查找与汇总 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpea ...

  3. dubbo注冊zookepper奇妙IP_续

    原文章地址:http://blog.csdn.net/lele2426/article/details/39530409#4483369 后来server须要连接外网.配置DNS后又開始出现奇妙的IP ...

  4. JDBC:数据库操作:处理大对象CLOB数据

    目标: 了解大对象处理基本原理, 掌握CLOB数据的读,写操作. 可以使用CLOB类处理大文本数据. 大对象处理主要指CLOB和BLOB两种类型字段.可以大量存储文字. 要想在程序中处理这样的大数据操 ...

  5. JDBC操作,执行数据库更新操作

    目标: 使用Connection对象取得Statement实例 使用Statement进行数据增删改. Statement接口 要对数据库操作,要使用Statement完成.此接口可以使用Connec ...

  6. 对正在运行的mysql进行监控

    对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql &g ...

  7. (三)Lucene——Field域和索引的增删改

          1. Field域 1.1  Field的属性 是否分词(Tokenized) 是:对该field存储的内容进行分词,分词的目的,就是为了索引. 比如:商品名称.商品描述.商品价格 否:不 ...

  8. CSS3使用盒模型实现三栏布局

    本篇文章由:http://xinpure.com/css3-box-model-to-implement-a-three-column-layout/ 使用 Position 绝对定位也是可以实现三栏 ...

  9. file's owner以及outlet与连线的理解

    转自:http://www.cnblogs.com/martin1009/archive/2012/06/01/2531028.html xib文件本身可以看做是一个xml,app启动的时候会根据xm ...

  10. HTTP Basic auth认证

    Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP ...