【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.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 中编译源文件 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android Protobuf 序列
- 下一篇: 【Android Protobuf 序列