Saturday, October 10, 2015

[Androidannotations 사용하기] 3. How It Works ?!

이번 포스팅에서는 더 많은 annotation들을 사용하기 전에, Android Annotations가 어떻게 동작하는지 가볍게 보고 가도록하자.

개요

AndroidAnnotations는 매우 간단하게 동작한다!
표준 Java Annotation Processing Tool을 사용하여, 소스 코드를 생성하는 여분의 컴파일 단계를 추가한다.

여기서 생성되는 소스 코드가 뭘까??
예를 들어 각각의 @EActivity annotated activity가 있다고 해보자. 이 Activity의 서브 클래스는 같은 이름 끝에 추가 접미어 '_'가 붙어서 생성된다.

* 지난 포스팅 참조 - [Androidannotations 사용하기] 1. Activity에 적용하기

예를 들어, 아래의 class는

package com.some.company;
@EActivity
public class MyActivity extends Activity {
  // ...
}

같은 패키지의 다른 소스 폴더에 다음과 같이 generate 된다.

package com.some.company;
public final class MyActivity_ extends MyActivity {
  // ...
}

이 서브 클래스는 super를 부르는 것을 위임하기 전에 몇 가지 메소드들(ex. onCreate(), ...)을 overrinding하여 사용자의 Activity에 동작을 추가한다.

이게 바로 AndroidManifest.xml파일에서 Activity 이름 뒤에 반드시 '_' 접미어를 붙여야 하는 이유이다~~! 바로 요로케~~^0^


그래서 지난 포스팅처럼 Activity를 시작할 때 generate된 클래스를 호출해야 하는 것이다~~!

참고 논문 및 사이트

1. androidannotations wiki 중 "HowItWorks" https://github.com/excilys/androidannotations/wiki/HowItWorks#starting-an-annotated-activity

No comments:

Post a Comment