📜  在 android studio 项目中结合 .proto (1)

📅  最后修改于: 2023-12-03 15:07:36.924000             🧑  作者: Mango

在 Android Studio 项目中结合 .proto

简介

Protocol Buffers(简称 protobuf)是一种轻量级的、高效的数据序列化格式,用于结构化数据的序列化,是理解微服务架构的必备工具。

Google提供的Protocol Buffers语言是一种基于IDL的数据格式化工具。通过编写.proto文件定义数据结构,然后通过特定的编译器将数据结题膨胀进行序列化或反序列化处理。Python、Java、C++等语言都提供了对应的代码库和编译器。

Android Studio通过使用Android Gradle插件,可以进行.proto文件的自动编译并将其转化为Java类,这样就可以更方便地在Android应用程序中使用Protocol Buffers。

安装
配置 Gradle 插件

在根目录的 build.gradle 文件中,添加如下代码:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.protobuf:protobuf-gradle-plugin:<version>'
    }
}
apply plugin: 'com.google.protobuf'

上述代码中,<version>应该替换成你所需的版本号。

添加库依赖

在应用程序的 build.gradle 文件中添加如下代码:

dependencies {
    implementation 'com.google.protobuf:protobuf-java:<version>'
    implementation 'io.grpc:grpc-okhttp:<version>'
    implementation 'io.grpc:grpc-protobuf-lite:<version>'
    implementation 'io.grpc:grpc-stub:<version>'
}

上述代码中,<version>应该替换成你所需的版本号。

使用
写 .proto 文件

在 app 目录下新建一个 protobuf 目录,在其中新建一个名为 test.proto 的文件。

syntax = "proto3";
package com.example.protobuf;

message Person {
    string name = 1;
    int32 age = 2;
}

上述代码定义了一个名为 Person 的消息结构体,包含两个字段:name 和 age。

编译 .proto 文件

在命令行中运行以下命令来编译 .proto 文件:

$ ./gradlew generateProto --quiet

执行完成后,将会在 app/build/generated/source/proto 目录下生成 Java 代码文件。

使用代码文件

在应用程序中直接使用生成的 Java 文件:

Person person = Person.newBuilder().setName("Tom").setAge(18).build();
byte[] data = person.toByteArray();

上述代码创建了一个名为 person 的实例,并将其序列化为字节数组。

总结

通过使用 Protocol Buffers 和 Android Studio 的 protobuf 插件,可以更方便地将结构化的数据传递和存储在 Android 应用程序中。