开题篇

近期公司在使用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. Hibernate开发环境搭建

    一.下载Hibernate包的下载 官网地址:http://hibernate.org/orm/ 下载版本:hibernate-release-4.3.11.Final 二.Hibernate jar ...

  2. 改动Dialog窗口的类名

     VS2013 的MFC project(project名: MobileLink).想要改动窗口的类名时,发现不是像设置窗口名一样调用一个函数能够实现的. 实现的注意问题,请看凝视. (1) 改 ...

  3. apache相关配置

    PHP配置 php.ini-development:开发时的php.ini配置 php.ini-production:项目运行时的php.ini配置 复制php.ini-development文件到C ...

  4. Android蓝牙开发

    Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙 ...

  5. 【Linux】xshell连接中断后就无法连接虚拟机中的Linux

    具体情景是这样的: 在使用Linux的时候,本来一直好好的,突然就断了,我去百度了一番,网上的说法有千万种 有的说:是由于防火墙的问题 有的说:是由于Linux与其他ip冲突造成 ... 说法千万种, ...

  6. Spring Boot(二)Application events and listeners

    一.自定义监听器: 1.创建: META-INF/spring.factories 2.添加: org.springframework.context.ApplicationListener=com. ...

  7. java数据库编程:使用元数据分析数据库

    databaseMetaData 使用元数据可以分析数据库基本信息,包括版本,数据库名称,或者指定表的主键. 代码实例 package 类集; import java.sql.Connection ; ...

  8. Apache James 发送邮件到外网

    在config.xml文件中查找到<dnsserver>然后把默认的<server> 127.0.0.1</server> 改成如下形式:<dnsserver ...

  9. linux 重启网卡的方法

    http://blog.163.com/drzxqing@126/blog/static/59351445201052392516841/

  10. Python 使用 UTF-8 编码(转)

    Python 使用 UTF-8 编码(转) 原文出处:http://blog.chenlb.com/2010/01/python-use-utf-8.html 一般我喜欢用 utf-8 编码,在 py ...