首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 使用文档 | 创建 Protobuf 源文件 | Protobuf 语法 )

文章目录 一、Protobuf 使用文档 二、创建 Protobuf 源文件 三、Protobuf 语法 四、参考资料 一、Protobuf 使用文档 ---- Protobuf Java 语言对应用法...: https://developers.google.com/protocol-buffers/docs/javatutorial 使用时 , 参考上述页面的文档说明 , 进行开发 ; 二、创建...Protobuf 源文件 ---- 首先 , 编写 Protobuf 源文件 , 使用官方提供的源文件 , 进行开发 ; syntax = "proto2"; package tutorial; option...PhoneNumber phones = 4; } message AddressBook { repeated Person people = 1; } 在 Android Studio 工程的...设置枚举与 Java 相同 , 定义和使用的用法如下 ; // 枚举 enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2;

98030
您找到你想要的搜索结果了吗?
是的
没有找到

Protobuf在Cmake的正确使用

例如,在深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。...一般来说,protobuf经常搭配Cmake使用,Cmake有官方的modules,可以通过简单的几个命令protobuf_generate_cpp来生成对应的.pb.cc和.pb.h。...mediapipe中使用了大量的ProtoBuf技术来表示图结构,而且mediapipe原生并不是采用cmake来构建项目,而是使用google自家研发的bazel,这个项目构建系统我就不评价了,而现在我需要使用...如果直接对上述所有的.proto文件直接使用protobuf_generate_cpp命令,会直接报错,因为这些文件不在一个目录,而且import的相对目录也无法分析。...CLionCmake来编译proto生成的.pb.cc和.pb.h不在原始目录,而是集中在cmake-build-debug(release),我们额外需要将其中生成的.pb.cc和.pb.h文件移动到原始地址

72120

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )

序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 配置插件 | AS 编译源文件 ) , 使用了 Gradle 插件..., 自动将 Android Studio 工程Protobuf 编译成了 Java 源码 , 现在开始使用生成的 Java 源码进行开发 ; 在 Protobuf 源码 addressbook.proto... , 有一个 AddressBook 类 , 其中有一个 Person 集合 , Person 类还包含 PhoneNumber 集合 ; 二、创建 Protobuf 对象 ---- 创建 Protobuf...Person 对象 , 每个 Person 对象包含 若干 PhoneNumber 枚举值 , 如果对象的某字段在 Protobuf 源码中被 required 修饰 , 则该字段必须被赋值 ; 首先要创建...addPhones(phoneNumber1Builder) 之后创建 AddressBook 构造器 : 创建时可以将多个 Person 构造器拼装进来 , // 使用 newBuilder 方法创建

69850

golang使用protobuf

为什么要使用protobuf 最近的项目中,一直使用Json做数据传输。Json用起来的确很方便。但相对于protobuf数据量更大些。做一个移动端应用,为用户省点流量还是很有必要的。...正好也可以学习一下protobuf使用 跟Json相比protobuf性能更高,更加规范 编解码速度快,数据体积小 使用统一的规范,不用再担心大小写不同导致解析失败等蛋疼的问题了 但也失去了一些便利性...数据没有可读性 安装 在go中使用protobuf,有两个可选用的包goprotobuf(go官方出品)和gogoprotobuf。...编解码库,下面两个库是相互兼容的,可以使用其中任意一个 "github.com/golang/protobuf/proto" //"github.com/gogo/protobuf/proto...,可以使用其中任意一个 "github.com/golang/protobuf/proto" //"github.com/gogo/protobuf/proto" ) func main

5.5K50

【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 配置插件 | AS 编译源文件 )

文章目录 一、protobuf-gradle-plugin 插件简介 二、Android Studio 配置 protobuf-gradle-plugin 插件 三、Android Studio 编译...编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 ) , 在命令行中使用 protoc 编译器 , 将 .proto 源文件编译成了 Java...' // or 'com.android.library' apply plugin: 'com.google.protobuf' 如果使用 Protobuf 3.0 ~ 3.7 之间的版本 , 使用的是...protobuf-lite 版本 , 该版本相对于普通的 Protobuf , 生成的源文件更精简 , 这是为了适配在 Android 设备上使用而定制的 , 更适合移动端使用 ; dependencies...类引入到当前项目的 Classpath , 并打包到 APK , 在开发时 , 可以引用这些类 ; 四、参考资料 ---- Protobuf 参考资料 : Protobuf 官网主页 : https

1.5K30

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 序列化 | Protobuf 反序列化 )

文章目录 一、Protobuf 序列化 二、Protobuf 反序列化 三、完整代码 四、参考资料 一、Protobuf 序列化 ---- 在上一篇博客 【Android Protobuf 序列化】Protobuf...使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 ) , 创建了 Protobuf 对象 , 本博客中将其序列化 , 保存到本地文件 ; 序列化操作 : 调用 Protobuf...I/MainActivity: 序列化耗时 4 ms , 序列化大小 34 字节 二、Protobuf 反序列化 ---- 反序列化操作 : 调用 Protobuf 对象的 parseFrom 方法...addPhones(phoneNumber2Builder) // 使用 newBuilder 方法创建 AddressBook.Builder 对象 var addressBookBuilder.../protocol-buffers/docs/downloads Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf Protobuf

67340

python 如何使用 protobuf

一、protobuf是什么 protocol buffer(简称protobuf)是google 的一种数据交换的格式,它独立于语言,独立于平台。...由于它是一种二进制的格式,比使用xml行数据交换快许多。...二、windows7下载安装protobuf 由于下的Python是3.6.2版本,所以protobuf要下3.0版本的,不然后面运行那个setup.py 有问题,不能安装。...-3.0.0.zip 包含了protobuf与语言(python)之间的protobuf运行时库,这个在转换的时候需要用到,相当与protobuf与各语言之间的协定格式。...,--python_out=编译生成的文件的路径 ,people.proto是要编译的协议文件  编译好之后你就会在目标目录里面看到输出的结果文件,如下:people_pb2.py 然后我们就可以使用生成的

5.3K20

protobuf使用(一)

一、protobuf简介 protobuf (protocol buffer)是google公司实现的一种数据交换的格式,由于其是一种二进制的格式,相对于xml,json进行数据交换要快很多,且占用存储空间更小...二、protobuf的基础语法及编译命令 由于protobuf独立于平台语言,Google为其提供了多种语言的实现,包括Java,C++,Go,Python等,并且为每一种实现都包含了相应语言的编译器和库文件...,方便不同语言开发者的使用。...类型 enum Sex { //枚举类型 MAN = 0; WOMAN = 1; } Sex sex = 3; bool flag = 4; // bool类型 } (2)编译 使用...文件,编译生成C++的源文件和头文件,如对test1.proto进行编译: protoc test1.proto --cpp_out=./ 生成test1.pb.cc和test1.pb.h文件 三、使用

32710

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券