protobuf 初探
来源:互联网 发布:xshell mysql中文乱码 编辑:程序博客网 时间:2024/06/05 18:07
准备工作:
1.protobuf jar包的下载.
我使用的是protobuf-java-2.5.0.jar
2.电脑安装protobuf:
我们需要它来预处理代码。
实际操作:
1.准备文件×××.proto,这里我的是test.proto
2.因为是基于java的使用。这里需要将proto文件转换为jave可使用的文件,最红输出test.java:
protoc --java_out=./ test.proto
--java_out:表示输出java文件
--cpp_out:表示输出C++文件
./ 表示生成的文件放于哪个目录,我的./ 表示当前目录(linux系统)
3.创建工程测试
1)这里写了一个小app;
2)将jar文件(protobuf-java-2.5.0.jar)添加到项目
3)将生成结构文件test.proto生成的test.java添加到项目
test.proto 结构文件:
message Person {
optional int32 id = 1;
optional string name = 2;
}
代码
package com.example.ts.proto;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import static android.support.v7.widget.AppCompatDrawableManager.get;public class MainActivity extends AppCompatActivity { ByteArrayOutputStream out; ByteArrayInputStream in; TextView textView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.protoTest); createAndSend(); } private void createAndSend(){ Test.Person.Builder builder = Test.Person.newBuilder(); builder.setId(11); builder.setName("HelloProto"); builder.setEmail("******"); Test.Person person = builder.build(); out = new ByteArrayOutputStream(); try{ person.writeTo(out); getInput(); } catch(Exception exception){ exception.printStackTrace(); } } private void getInput(){ byte[] input = out.toByteArray(); in = new ByteArrayInputStream(input); try{ Test.Person person = Test.Person.parseFrom(in); display(person.getName()); }catch (Exception e){ e.printStackTrace(); } } private void display(String string){ android.util.Log.d("liu","string:"+string); if(textView != null){ textView.setText(string); } }}
阅读全文
0 0
- protobuf初探
- ProtoBuf 初探
- protobuf 初探
- protobuf的使用初探
- Android Protobuf 初探笔记
- protobuf
- ProtoBuf
- protobuf
- protobuf
- protobuf
- Protobuf
- protobuf
- Protobuf
- protobuf
- protobuf
- protobuf
- protobuf
- protobuf
- 翻牌子
- 【人工智能】史上最完整的人工智能书单大全,学习AI的请收藏好
- 240. Search a 2D Matrix II(二分查找)
- 十七 iOS之 QQ提示标粘性效果
- python中OrderedDict的使用
- protobuf 初探
- Android中各种权限
- android传感器
- 根据页面滚动的距离确定导航栏是否置顶
- 什么是锚记
- 第十一周项目4 — 利用遍历思想求解图问题
- jquery的ajax全局配置
- 第十二周项目1-Prim算法的验证
- 自学与复习设计模式笔记(1)介绍