Saturday, September 12, 2015

[AndroidAnnotations_Build] 2. Setting AndroidAnnotations Build (Use Gradle)

1번 포스팅에 이어서 AndroidAnntations를 빌드하는 방법에 대한 포스팅을 하도록 하겠습니다. 동일하게 AndroidStudio를 사용하고 Gradle을 이용하였습니다. 빌드를 하기 위해서는 몇가지 세팅 방법이 필요합니다. 이 부분은 AndroidAnnotations Wiki Page를 참고하였습니다. 해당 페이지의 Gradle 페이지를 참고하였습니다.

1. Annotations Processor 사용을 위한 Annotation processor 활성화 시키기

먼저 AndroidAnnotations를 사용하기 위해서는 Android Studio의 Compile 시점의 Annotation Processor를 활성화 시켜야 합니다. " File → Other Settings → Default Settings... "으로 들어갑니다.

다음 과정으로는 " Build, Execution, Deployment → Compiler → Annotation Processor "으로 들어갑니다. 들어가게되면 아래의 사진과 같이 Anntation Processor가 활성화 되지 않은것을 확인할 수 있습니다.

여기서 " Enable annotation proceesing " Check Box를 아래 사진과 같이 활성화 시켜주면 됩니다.

해당 작업을 "OK" 버튼을 눌러 활성화 시켜주면 Annotation Processor가 활성화 되게 됩니다.

2. Gradle 빌드에 android-apt 설정 추가하기

2.1 android-apt란?

Android-apt Bitbucket 홈페이지 Readme를 통하여 확인할 수 있습니다. Android-apt 는 gradle plugin으로 Android studio 에서 annotation processor를 사용할 수 있도록 도와주는것입니다. 이것은 마지막 apk 추출이나 library에는 적용이 안되며 오직 compile 시에만 작동할 수있도록 도와주는것이며, annotations process를 통해 생성되는 코드에 대한 소스 경로를 결정해줍니다.

2.2 Gradle 빌드에 android-apt 추가

먼저 상위 build.gradle 파일에 아래와 같이 dependency를 추가해줍니다. ('// *' 이 추가된 라인입니다.)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath "com.neenbedankt.gradle.plugins:android-apt:1.7" // ** 
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

다음은 Application의 depenecy의 gradle을 아래와 같이 depenecy와 정의를 추가해 줍니다.('// *' 이 추가된 라인입니다.)

def AAVersion = "3.3.2" // *

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt" // *

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "com.juranoaa.myapplication"
        minSdkVersion 23
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
}

apt { // *
    arguments { // *
        androidManifestFile variant.outputs[0].processResources.manifestFile // *
    } // *
} // *

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    apt "org.androidannotations:androidannotations:$AAVersion" // *
    compile "org.androidannotations:androidannotations-api:$AAVersion" // *
}

그리고 AndroidAnnotations를 사용한 Activity를 추가해줍니다.

package com.juranoaa.myapplication;

import android.app.Activity;

import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Fullscreen;

@Fullscreen
@EActivity(R.layout.activity_main)
public class AAMainActivity extends Activity{
}

"Build → Rebuild Project"을 선택하게 되면 AndroidAnnotations Build 가 수행되게 됩니다.

완료가 되면 다음과 같이 generated 폴더 하위에 다음과 같은 클래스 파일이 생성되게 됩니다.

다음 포스팅에서는 AndroidAnnotations build시 사용되는 내용에 대해서 포스팅하도록 하겠습니다.

참고 논문 및 사이트

1. AndroidAnnotations Wiki Configuration https://github.com/excilys/androidannotations/wiki/Configuration

No comments:

Post a Comment