【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
一、protoc 编译器简介
在上一篇博客 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 使用文档 | 创建 Protobuf 源文件 | Protobuf 语法 ) 中 , 在 Android Studio 项目中添加了 Protobuf 源文件 addressbook.proto ;
使用 Protobuf 编译器 , 编译上述源文件 , 生成对应 Java 源码 ;
Protobuf 编译器是 protoc , 类似于 Java 语言的编译器是 javac , C 语言的编译器 gcc , Protobuf 语言的编译器是 protoc 编译器 , 编译上述源码 ;
protoc 编译器编译指令 :
protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
-I
参数设置编译的 .proto 源文件所在的目录 ;
--java_out=
参数指定的是输出目录 ;
最后的参数是设置的 .proto 源文件的相对目录 ;
使用 --java_out=
参数指定的是输出 Java 源文件 , Android 中使用 ;
使用 --objc_out=
参数指定的是输出 Objective-C 源文件 , iOS 中使用 ;
二、下载 protoc 编译器
在 https://developers.google.com/protocol-buffers/docs/downloads 页面可以下载 Protobuf , 点击 " Latest Version " 的 " release page " 下载最近的发布版本 ;
跳转到 https://github.com/protocolbuffers/protobuf/releases 界面下载对应的 Protobuf 版本 ;
下载 Windows 64 位对应的工具 ,
下载完成后, 解压该压缩包 :
三、使用 protoc 编译器编译 addressbook.proto 源文件
将 addressbook.proto 源文件拷贝到 " D:\develop\protobuf\protoc-3.15.8-win64\bin\ " 目录 ,
执行如下命令 :
protoc -ID:\develop\protobuf\protoc-3.15.8-win64\bin\ --java_out=. addressbook.proto
-I
参数设置编译的 .proto 源文件所在的目录 , 当前 Protobuf 源码路径是 " D:\develop\protobuf\protoc-3.15.8-win64\bin\
" , -I
与 路径中间没有空格 ;
--java_out=
参数指定的是输出目录 , .
表示当前目录 ;
最后的参数 addressbook.proto
是设置的 .proto 源文件的相对目录 ;
编译完成后 , 生成一个 com 目录 ,
这里根据 Java 的类名层级生成的目录 , 在 中配置的 Java 包名类名如下 :
option java_package = "com.example.tutorial.protos";
option java_outer_classname = "AddressBookProtos";
在该 D:\develop\protobuf\protoc-3.15.8-win64\bin\
目录下的 com\example\tutorial\protos\
目录中生成了如下 Java 源码 :
四、参考资料
Protobuf 参考资料 :
-
Protobuf 官网主页 : https://developers.google.com/protocol-buffers
-
Protobuf 语法指南 : https://developers.google.com/protocol-buffers/docs/proto
-
Protobuf Java 语言对应用法 : https://developers.google.com/protocol-buffers/docs/javatutorial
-
Protobuf 下载地址 : https://developers.google.com/protocol-buffers/docs/downloads
-
Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf
-
Protobuf 发布版本下载地址 : https://github.com/protocolbuffers/protobuf/releases
相关文章
- 【Android】Activity生命周期
- 一个Android项目多线程下载模块开源库:AndroidFileDownloader
- Android问题-打开DelphiXE8与DelphiXE10新建一个空工程提示"out of memory"
- android 获取Bitmap位图所占用的内存大小
- 解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
- Android服务器——使用TomCat实现软件的版本检测,升级,以及下载更新进度!
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- Android中的Chronometer
- Android文件Apk下载变ZIP压缩包解决方案
- Android插件化 热修复热门框架简析(转载)
- 解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
- Android之shape与selector实现圆角
- 【译】用Fragment创建动态的界面布局(附Android示例代码)
- Android性能优化:Github下载超10万次的360°全方面性能调优指南(含内存优化、布局优化、实战解析等)
- Android 断点续传进阶之多线程下载
- android 系统编译普通应用的签名方式
- Android 解决EditText和ScrollView的滚动冲突
- Android报错提示Attempt to invoke interface method ‘int java.util.List.size()‘ on a null object reference
- Android 自定义卫星菜单的实现
- android JVM运行机制
- 【Android 逆向】GDA 逆向工具安装 ( GDA 下载 | GDA 简介 | 运行 GDA 分析 APK 文件 )
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )
- 【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( hprof 文件转换 | MAT 工具下载 | MAT 工具使用 )
- Android 使用 DownloadManager 管理系统下载任务的方法,android管理系统
- android广播(内部类)使用
- android-sdk-windows版本号下载
- android studio源 换成 阿里云(解决gradle和插件下载同步问题)
- Android ADT 下载 ( ADT-23.0.7 )
- android 恶意文件下载 39款
- 鹅厂流出两份Android Framework技术宝典火了,完整版 PDF 限时开放下载
- Android的报错提示:Failed to resolve: io.reactivex.rxjava2:rxjava:2.2.6