Protobuf 在android的使用

作者: 薰舞空 | 来源:发表于2019-07-04 10:06 被阅读0次

    Protobuf

    一、配置

    1.项目build.gradle中添加插件:

    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.8'
    

    2.module build.gradle添加插件:

    apply plugin: 'com.google.protobuf'
    

    3.module build.gradle添加配置:

    android {
    
      protobuf {
    
            protoc {
    
                artifact = 'com.google.protobuf:protoc:3.0.0'
    
            }
    
            plugins {
    
                javalite {
    
                    artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
    
                }
    
            }
    
            generateProtoTasks {
    
                all().each { task ->
    
                    task.builtins {
    
                        remove java
    
                    }
    
                    task.builtins {
    
                        java { }
    
                        cpp { }
    
                    }
    
                }
    
            }
    
        }
    
    }
    

    4.module build.gradle添加依赖

    compile 'com.google.protobuf:protobuf-java:3.6.1'
    

    5.添加目录及配置:

    sourceSets {
            main {
                java {
                    srcDir 'src/main/java'
                }
                proto {
                    srcDir 'src/main/proto'
                }
            }
        }
    

    在java同级创建proto文件夹

    6.在studio中加入插件 ProtoBuf Support 并重启studio

    配置完成

    二、开发

    1在protobuf文件夹下新建test.proto文件

    syntax = "proto3";
    package com.xxx.xxx; //输出的包名
    option java_outer_classname = "XXXX";  //输出的类名
    
    message User{
            int64 id    = 1 ;
            string name = 2 ;
    }
    

    构建一下就ok了

    可以使用SObjectModel.User.newBuilder()建一个实例看看

    解析的话就是使用SObjectModel.User.parseFrom方法,传入一个InputStream

    序列话是user.build().toByteArray()方法

    报错:

     Directory '/<project_path>/build/extracted-include-protos/main' specified for property '$3' does not exist.
    

    更改protobuf-gradle-plugin的版本

    相关文章

      网友评论

        本文标题:Protobuf 在android的使用

        本文链接:https://www.haomeiwen.com/subject/fqnkhctx.html