[Google Protobuf] For Java in Android Studio - Gen Java 파일 Android Studio 적용

Posted by [하늘이]
2020. 1. 30. 12:12 IT/C, C++
반응형

[Google Protobuf] For Java in Android Studio - Gen Java 파일 Android Studio 적용


※ 관련글

  • Google Protobuf
  1. [Google Protobuf] For Java in Android Studio - 설치 및 proto 파일 컴파일
  2. [Google Protobuf] For Java in Android Studio - Gen Java 파일 Android Studio 적용
  3. [Google Protobuf] For Java in Android Studio - Basic example code 기본 소스 코드 사용 샘플
  4. [Google Protobuf] For C++ in Linux - Settings C++ 빌드 환경 만들기
  5. [Google Protobuf] For C++ in Linux - Basic example code 기본 소스 코드 사용 샘플
  • Nanopb Basic type value example
  1. [Nanopb for Google protobuf] Basic type proto sample
  2. [Nanopb for Google protobuf] Basic type proto sample - Sample proto file
  3. [Nanopb for Google protobuf] Basic type proto sample - Encode sample code
  4. [Nanopb for Google protobuf] Basic type proto sample - Decode sample code
  • Nanopb String / bytes value example
  1. [Nanopb for Google protobuf] String/Bytes type proto
  2. [Nanopb for Google protobuf] String/Bytes type proto - Sample proto file 
  3. [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 1
  4. [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 2
  5. [Nanopb for Google protobuf] String/Bytes type proto - Decode example code
  • Nanopb basic submsg example
  1. [Nanopb for Google protobuf] Sub message - Example proto file
  2. [Nanopb for Google protobuf] Sub message - Encode example code
  3. [Nanopb for Google protobuf] Sub message - Decode example code
  • Nanopb array submsg value example

  1. [Nanopb for Google protobuf] Array Sub message - Example proto file
  2. [Nanopb for Google protobuf] Array Sub message - Encode example code
  3. [Nanopb for Google protobuf] Array Sub message - Decode example code

Android Studio 환경에서 proto file을 빌드하여 Gen Java 파일을 생성키고,

 해당 파일을 사용하여 빌드가 되게 되는 환경을 위함.

- 빌드 시 .\app\src\main\proto 폴더에 *.proto 파일을 위치 하고 빌드 시
  자동으로 Gen Java 파일이 생성된다.

 

* gredle[app] 파일 적용 필요 사항

buildscript {

    ext.protobufVersion = '0.8.6'

......

    dependencies {

        classpath 'com.android.tools.build:gradle:3.1.2'

        classpath "com.google.protobuf:protobuf-gradle-plugin:$protobufVersion"

    }

}

 

* gredle[모듈] 파일 적용 필요 사항

1. plugin 적용

apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'

 

2. dependencies 에 protobuf 적용

dependencies {

...

    implementation 'com.google.protobuf:protobuf-lite:3.0.0'

}

 

3. gradle 맨 아래 아래 스크립트 전체 추가

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.plugins {

                javalite {}

            }

        }

    }

}

 

* 결과확인

* 위 상태까지 적용이 된 경우 *.proto 파일을 proto 폴더에 넣고 모듈 빌드를 실행 시키면 
 아래 경로에 패키지 형태의 폴더와 Java 파일이 생성된다.

 .\app\build\generated\source\proto\debug\javalite\xxxxx

반응형