文章目录

  • 一、protobuf-gradle-plugin 插件简介
  • 二、Android Studio 中配置 protobuf-gradle-plugin 插件
  • 三、Android Studio 中编译 Protobuf 源文件
  • 四、参考资料

一、protobuf-gradle-plugin 插件简介


上一篇博客 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 ) 中 , 在命令行中使用 protoc 编译器 , 将 .proto 源文件编译成了 Java 源文件 ;

Google 提供了专门用于编译 .proto 源文件的 Gradle 插件 protobuf-gradle-plugin ;

protobuf-gradle-plugin 项目地址 : https://github.com/google/protobuf-gradle-plugin

在 Android Studio 中 , 借助该 protobuf-gradle-plugin Gradle 插件 , 可以自动完成 Protobuf 源文件的编译工作 ;

protobuf-gradle-plugin 插件配置方法 , 参考 https://github.com/google/protobuf-gradle-plugin 项目主页的 MarkDown 文档 ;

二、Android Studio 中配置 protobuf-gradle-plugin 插件


protobuf-gradle-plugin 插件配置 :

  • Gradle 版本最低 5.65.65.6 ,
  • Java 版本最低 8.08.08.0 ,
  • 开启 Maven Central 仓库 mavenCentral() ,
  • 最新版本是 0.8.160.8.160.8.16 ;

在 Project 的 build.gradle 中进行如下配置 :

buildscript {repositories {mavenCentral()}dependencies {classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.16'}
}

在 Module 的 build.gradle 中进行如下配置 :

apply plugin: 'com.android.application'  // or 'com.android.library'
apply plugin: 'com.google.protobuf'

如果使用 Protobuf 3.0 ~ 3.7 之间的版本 , 使用的是 protobuf-lite 版本 , 该版本相对于普通的 Protobuf , 生成的源文件更精简 , 这是为了适配在 Android 设备上使用而定制的 , 更适合移动端使用 ;

dependencies {// You need to depend on the lite runtime library, not protobuf-javaimplementation 'com.google.protobuf:protobuf-lite:3.0.0'
}protobuf {protoc {// You still need protoc like in the non-Android caseartifact = 'com.google.protobuf:protoc:3.7.0'}plugins {javalite {// The codegen for lite comes as a separate artifactartifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'}}generateProtoTasks {all().each { task ->task.builtins {// In most cases you don't need the full Java output// if you use the lite output.remove java}task.plugins {javalite { }}}}
}

如果使用 Protobuf 3.8 之后的版本 , 使用如下设置 :

dependencies {// You need to depend on the lite runtime library, not protobuf-javaimplementation 'com.google.protobuf:protobuf-javalite:3.8.0'
}protobuf {protoc {artifact = 'com.google.protobuf:protoc:3.8.0'}generateProtoTasks {all().each { task ->task.builtins {java {option "lite"}}}}
}

三、Android Studio 中编译 Protobuf 源文件


配置完成后 , 选择 " 菜单栏 / Build / Make Project " 编译整个工程 ,

编译完成后 , 在 " app\build\generated\source\proto\debug\javalite " 目录下生成 Protobuf 源码对应的 Java 类 , AddressBook.java 源文件生成在 " app\build\generated\source\proto\debug\javalite\com\example\tutorial\protos " 目录中 ;

Android Studio 会将 Protobuf 生成的这些 Java 类引入到当前项目的 Classpath 中 , 并打包到 APK 中 , 在开发时 , 可以引用这些类 ;

四、参考资料


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

  • protobuf-gradle-plugin 项目地址 : https://github.com/google/protobuf-gradle-plugin

博客源码 :

  • GitHub 地址 : https://github.com/han1202012/Protocol_Buffers
  • CSDN 快照 : https://download.csdn.net/download/han1202012/18181938

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

  1. 干货分享:实用/高效/有逼格的Android Studio 常用配置/插件推荐

    注释模板 前言 Gradle Build Running 手动下载Gradle 正确导入他人项目 手动下载SDK 禁用HTTP代理 使用阿里maven仓库 JCenter/mavenCentral() ...

  2. Protobuf序列化的原理-protobuf的基本应用

    使用protobuf开发的一般步骤是 1. 配置开发环境,安装protocol compiler代码编译器 2. 编写.proto文件,定义序列化对象的数据结构 3. 基于编写的.proto文件,使用 ...

  3. android studio butterknife配置,!!!!在AndroidStudio中添加butterknife插件

    1.在整个工程的.gradle的dependencies中添加 classpath: classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8 ...

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

    文章目录 一.Protobuf 源码分析 二.创建 Protobuf 对象 三.完整代码示例 四.参考资料 一.Protobuf 源码分析 Protobuf 源文件如下 : addressbook.p ...

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

    文章目录 一.Protobuf 序列化 二.Protobuf 反序列化 三.完整代码 四.参考资料 一.Protobuf 序列化 在上一篇博客 [Android Protobuf 序列化]Protob ...

  6. Protobuf序列化原理

    一.Protobuf序列化原理简介 1.1序列化 序列化是将数据结构或对象转换成二进制字节流的过程. Protobuf对于不同的字段类型采用不同的编码方式和数据存储方式对消息字段进行序列化,以确保得到 ...

  7. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( plugins 闭包代码块中引入插件 | PluginAware#apply 方法引入插件 )

    文章目录 一.Module 目录下 build.gradle 配置文件 1.plugins 闭包代码块中引入插件 2.PluginAware#apply 方法引入插件 Android Plugin D ...

  8. gradle wrapper 版本与 android build tool 版本匹配要求

    android build tool 指的就是gradle plugin (gradle插件)两者对用关系 如图:

  9. 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离

    一.认识webpack 什么是webpack? 这个webpack还真不是一两句话可以说清楚的. 我们先看看官方的解释: At its core, webpack is a static module ...

最新文章

  1. ubuntu14.04上安装python3.6
  2. 路由网址这是mvc时代系列之三:网络路由与ASP.NET MVC生命周期(上)路由网址
  3. windows下ffmpeg使用dxva2加速硬件解码
  4. jsp中c:forEach的应用
  5. 【转载】word2vec 中的数学原理详解
  6. TensorRT学习笔记1 - 环境配置
  7. Linux的Nginx三:类型|特点
  8. mysql 1100_mysql数据库选择,有1100个用户,每个用户每月生成一张表,使用中该表内每秒上传一条数据,数据量很大...
  9. 判断只有符号数字 java_java编程 判断输入的字符,数字,及其他符号的个数
  10. 如何选择一个Linux发行版本
  11. HTTP响应头信息 Content-Disposition 文件的显示或下载
  12. emacs .emacs_使用Emacs进行社交并跟踪您的待办事项列表
  13. 链栈,用链表写成的栈,源代码如下
  14. 第一个Android项目HelloAndroid
  15. 电脑怎么卸载软件干净_极客卸载,还你干净电脑
  16. 超级易懂的非递归实现二叉树三种遍历(与网上都不一样)
  17. RabbitMQ安装及使用教程
  18. Java Excel 导出为 PDF
  19. android创建桌面快捷方式
  20. linux中的ul命令,Linux ngrep 命令用法详解-Linux命令大全(手册)

热门文章

  1. 【转】电驴提示“该内容尚未提供权利证明,无法提供下载”之解决办法详解...
  2. Bootstrap4 导航栏元素居右
  3. rewirte 规则
  4. Java程序员的日常—— Arrays工具类的使用
  5. Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
  6. Mysql数据库“Communications link failure due to underlying exception”问题
  7. [转载] 后台进程符的使用 [文摘]
  8. cmake用法及常用命令总结(全)
  9. luogu 5471 [NOI2019]弹跳 KDtree + Dijkstra
  10. Maven打包详细流程