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

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

文章目录

一、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.6 5.65.6 ,

Java 版本最低 8.0 8.08.0 ,

开启 Maven Central 仓库 mavenCentral() ,

最新版本是 0.8.16 0.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-java
  implementation 'com.google.protobuf:protobuf-lite:3.0.0'
}
protobuf {
  protoc {
    // You still need protoc like in the non-Android case
    artifact = 'com.google.protobuf:protoc:3.7.0'
  }
  plugins {
    javalite {
      // The codegen for lite comes as a separate artifact
      artifact = '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-java
  implementation '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 " 编译整个工程 ,

image.png



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


image.png


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开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
2889 160
|
12月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
2331 36
|
12月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
1007 19
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
479 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
Web App开发 API Android开发
|
7月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1307 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
7月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
965 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
7月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1065 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
836 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
7月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
348 0

热门文章

最新文章

推荐镜像

更多