안드로이드 코딩시 도움이 되는 대표적 오픈소스 프레임워크/라이브러리인 RoboGuice와 AndroidAnnotations에 대한 비교 메모입니다.


1. RoboGuice (RG)

- Injection 대상 : View, Resource, 시스템서비스, POJO 등

- 향상된 유틸리티 클래스 제공 : RoboAsyncTask, Ln 등

- 액티비티 생명주기 Event 전달을 통한 모듈화 메커니즘 제공 : 액티비티에 대한 강한 커플링을 제거.

- Activity는 RoboActivity를 상속받아야 함

- Activity가 아닌 클래스에서도 안드로이드 컴포넌트 inject 가능

- 구글 Guice에 의존 : 강력하고 충실한 inject 기능 제공

- 런타임시에 inject 및 어노테이션을 처리하므로 성능하락 존재

- 용량 큼 : 590KB



2. AndroidAnnotations (AA)

- Injection 대상 : View, Resource, 시스템서비스, POJO(제한적) 등

- 다양한 유틸리티성 어노테이션 제공. inject외에 다양한 작업을 어노테이션을 통해 처리

 : 쓰레드작업(UiThread, Background,..), 이벤트처리(Click, ItemClick,...), REST통신 등

- 컴파일 타임에 inject 및 어노테이션 처리한 자식클래스를 생성 : 런타임 성능하락 없음

- 특정 Activity 상속 필요없음

- java annotation processing 설정 필요

- 새 액티비티 클래스 작성후 Android Manifest.xml 수정이 필요 => 액티비티 클래스명 끝에 언더바를 추가해줘야함

 : 예를들어 ".xxx.MyActivity" -> ".xxx.MyActivity_" 

- 명시적으로 액티비티 사용시에 언더바 붙은 액티비티를 사용해야 함

- 용량 작음 : 53KB



* 참고자료

http://blog.springsource.org/2011/08/26/clean-code-with-android/

http://blog.softwaregeeks.org/archives/647

Posted by 에코지오
,