android prorobuf3.3添加本地jar包

一、添加本地方式

1、libs添加jar包 在这里插入图片描述(3.3版本)
2、添加依赖

api files('libs/protobuf-java-util-3.3.0.jar')
api files('libs/protobuf-java-3.3.0.jar')

3、生成的protos放入对应的位置
①使用过程
**×××.Builder demo =×××.newBuilder();
demo.setX("");

××× demo =×××.build();
//生成流
byte[] byteArray1 =×××.toByteArray();

VeriFaceProtos.CVeriFace.Builder cVeriFace =VeriFaceProtos.CVeriFace.newBuilder();
        cVeriFace.setDeviceType(2);// 1:master,2:terminal,3:server
        cVeriFace.setMasterId("adsad112");//主机名称
        //cVeriFace.setMasterTag("");//主机所在的大巴车车牌号,后台返回
        cVeriFace.setTerminalId("0xsad1234");//终端
        cVeriFace.setImageName("1123455");//图片名字
        cVeriFace.setUploadUri("asdassfgg");//图片URI
        Log.i("fenxi", "66666");
        VeriFaceProtos.CVeriFace cVeriFaces = cVeriFace.build();
        byte[] byteArray1 =cVeriFaces.toByteArray();

②解析过程

//

 模拟接收Byte[],反序列化成Person类
    byte[] byteArray1 =cVeriFaces.toByteArray();
    try {
        VeriFaceProtos.CVeriFace cVeriFace1 = VeriFaceProtos.CVeriFace.parseFrom(byteArray1);
        System.out.println("after :" +cVeriFace1.getImageName());
        System.out.println("after :" +cVeriFace1.toString());
    }catch (Exception e){
        e.printStackTrace();
    }

二、添加依赖方式
1、//添加protobuf
implementation ‘com.google.protobuf:protobuf-lite:3.0.1’

三、本地生成protobuf方式
1、在这里插入图片描述

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

2、

 apply plugin: 'com.android.application'
    apply plugin: 'com.google.protobuf'//添加protobuf
    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.example.administrator.myapplication"
            minSdkVersion 19
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            repositories {//添加protobuf
                /*flatDir {
                    dirs 'libs'
                }*/
                sourceSets {
                    main {
                        proto {
                            //main目录新建proto目录
                            srcDir 'src/main/proto'
                            include '**/*.proto'
                        }
                        java {
                            srcDir 'src/main/java'
                        }
                    }
                }
            }
            //编写编译任务,调用plugin编译生成java文件 添加protobuf
            protobuf {
                protoc {
                    artifact = 'com.google.protobuf:protoc:3.6.1'
    
                }
                plugins {
                    javalite {
                        artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
                    }
                }
                generateProtoTasks {
                    all().each { task ->
                        task.builtins {
                            remove java
                        }
                        task.plugins {
                            javalite {}
                        }
                    }
                }
            }
            buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
            //添加butterknife
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_8
                targetCompatibility JavaVersion.VERSION_1_8
            }
        }
        dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.android.support:appcompat-v7:28.0.0'
            implementation 'com.android.support.constraint:constraint-layout:1.1.3'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.2'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
            //添加butterknife
            implementation 'com.jakewharton:butterknife:9.0.0-rc2'
            annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
            //添加protobuf
            implementation 'com.google.protobuf:protobuf-lite:3.0.1'
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值