Protobuffor Java使用说明(包含nano、micro版本)附件protobuf-java-2.3.0.jar

来源:互联网 发布:mysql 建表 索引 编辑:程序博客网 时间:2024/06/05 06:21

笔者在windows下做Android开发中遇到了一些需要用到Protobuf nano版本的地方,但是下载到的nano版本默认编译出来的是C版本的代码,因为被误导了,下错了版本。

下面就是这个错误的nano下载地址,这个是针对c的一个实现,不是我们需要的,别下成这个。

nano版本的protobuf下载地址为http://koti.kapsi.fi/~jpa/nanopb/download/

如果c下面用上面这个版本的nano也不赖,直接引用他给提供的库就行了,但是咱们的java版本还是放弃吧,太恶心了,翻译出来的java代码用我后面编的包还不能依赖匹配

转载请注明出处(http://blog.csdn.net/itdashuiniu/article/details/39294625)


然后干货来了,正确的下载方式是去拉源码,然后自己编包出来用。

1、环境

Linux系统(Ubuntu13.04)(其实我想在windows下模拟linux来做的,但发现太恶心,总是出问题,就直接换虚拟机里面的ubuntu来干了)

已安装好git、g++、libtool、autoconf(如果没有就apt-get install安装),然后还需要gcc(默认就有的);

确认有没有Maven(这个也可以apt-get install,我的是直接从http://maven.apache.org/上下载的,这个配置有点麻烦,直接get-install简单);

JDK(这个大家肯定有吧,java --version确认一下,没有就百度教程去安装)


上面这些大家千万确认已经都有了,没有的话会有一些意外情况。


2、取protobuf源码

这里我们取的源码是整个protobuf的项目,这个项目里面包含nano还有micro版本的。(ID:IT大水牛)

git clone https://github.com/android/platform_external_protobuf.git android-protobuf

上面取到的是项目主干的代码,放在了你当前目录下,新建了android-protobuf来存放整个主干代码。


3、编译protobuf的C源码

首先要把C的编译了,编了以后的protoc可以用了翻译proto格式文件为你需要的各个版本代码,包括nano还有micro版本的java代码等等。

具体编完后用protoc -h来查看如何翻译proto文件为你所需要的格式。第四步中再编译出来一个protobuf的jar包来作为lib添加到你的项目中。

现在先说编译c源码,首先

cd android-protobuf

进入到android-protobuf目录下,然后执行编译过程

  $ ./configure  $ make  $ make check  $ make install

如果出现异常就是你那些lib没添加全,回去下载lib。如果说你权限不够,就加sudo来做操作(首次sudo没有开通root权限的话会失败,去百度咋开root权限吧)

好像make install是必须加sudo的。

完事以后,执行以下protoc -h,看看出没出结果,有结果就是编译安装成功,用编译出来的protoc就可以来翻译proto文件了(如何编,用protoc -h看具体的提示信息)。


4、编译protobuf的Jar包来做lib添加到项目中

最困惑我们的地方来了,我们怎么拿到java所依赖的jar包作为库添加到项目中。(ID:IT大水牛)

这里我们要先进入到java目录下,这个java就在android-protobuf目录下,cd进去。

在java目录下就该用到Maven了(要提前安装好)

首先Run the tests,执行命令

$ mvn test

然后安装库

$ mvn install

最后,打出来jar包

$ mvn package

执行完上面这些,我们就可以去java目录下的target目录里取到我们需要的jar包了,然后把这个jar包作为添加的lib到项目中,我们恶心的问题就解决了。


大家记得千万前面proto文件用我们c编译出来的的protoc来编译,笔者就用最开始前面说的那个错误的nano版本编了个java的代码,结果跟我们的jar包不匹配。


附件中就是编译出来的protobuf-java-2.3.0.jar,这个里面就有我们java代码需要依赖的库函数。(ID:IT大水牛)

附件protobuf-java-2.3.0.jar下载地址:http://download.csdn.net/detail/itdashuiniu/7932895


有用的话,你就给个评论或者赞呗,求刷分!真诚的求!


0 0