Android

[Android] - 라이브러리를 만들고 테스트해보기

BEOKS 2021. 2. 12. 22:45

들어가며

파이썬, 자바등의 많은 프로젝트에서는 이식성을 위한 코드의 집합인 패키지, 모듈이 있다. 당연히 안드로이드에도 이를 지원하는 AAR(Android Archive)가 존재한다. 공식 사이트에도 설명이 되어있지만 갱신되지 않거나 모호한 부분이 있어 차근차근 모듈을 만들고 테스트하는 방법에 대해서 알아보도록 하자.

안드로이드의 모듈은 코드뿐만 아니라 이미지, 텍스트 등의 데이터를 포함해서 부르기 때문에 여기선 라이브러리와 동일한 의미로 언급한다.

 

1. 새로운 모듈 만들기

우선 기존의 프로젝트에서 아래의 경로를 통해 새로운 모듈을 만든다.

New Module을 클릭하면 여러가지 타입이 나오는데 간단한 AAR을 만들기 위해서 Android Library를 선택하고 next를 클릭한다.

다음에는 모듈이름과 패키지명, Minimum SDK를 설정할 수 있다. 패키지명은 지금은 중요하지 않지만 추후에 배포를 할 시에는 중요하다. 지금은 기본설정으로 진행해보자.

새로 생성을 하면 Project 패널에 모듈명으로 폴더가 생성되어 있으며 내부에는 기존 app과 같은 구조로 표현되어있다.

ToastID와 관련된  build.gradle 파일을 살펴보면 기존의 app build.gradle과 매우 유사하다, 하지만 plugins에 'com.android.application'대신 'com.android.library'라고 되어 있는데 이는 ToastID디렉토리를 라이브러리로 사용하겠다는 뜻이다. 그리고 라이브러리에는 applicationID가 없지만 app에는 있다. 이는 라이브러리에서는 applicationID를 사용할 수 없기 때문이다.

Android 공식 사이트에는 새로운 모듈을 만들었을 때 gradle.build설정을 따로 해야한다고 하지만 현재는 자동으로 라이브러리를위한 gradle.build를 만들기 때문에 신경쓰지 않아도 된다. (패치했으면 document는 업데이트 해줬으면 좋겠다...)

https://developer.android.com/studio/projects/android-library
 

Android 라이브러리 만들기  |  Android 개발자  |  Android Developers

Android 라이브러리를 생성하는 방법을 알아보세요.

developer.android.com

build.gradle(ToastID)
build.gradle(app)

간단한 테스트를 하기 위해서 ToastID클래스와 아이디를 토스트하는 메서드를  작성해보았다.

자 그럼 모듈을 기존의 app에 연결하여 어플리케이션을 빌드해보자

 

2. 로컬 모듈 연결하기

build.gradle(app)에 들어가서 모듈과의 연결을 설정할 수 있다. 아는 사람도 많겠지만 dependencies에서 외부 저장소 라이브러리를 가져오거나 지금 할 것처럼 프로젝트 내부의 모듈을 연결 할 수 있다. 프로젝트 내부 연결을 위해선 implementation project(':모듈명')를 dependencies에 추가하면된다.

추가후 Sync Now를 클릭해서 동기화 해주면 기존의 app 내부의 MainActivity에서 ToastID모듈 내부의 toast 메서드를 참조할 수 있는것을 볼 수 있다. 이제 모듈을 마음껏 테스트해보고 필요시 배포를 할 수 있다.

 

마치며

자바에 대해서 어느정도 지식이 있는 사람은 "그냥 JAR을 디렉토리에 옮겨서 import하면 쉬운데 build.gradle을 어렵게 설정하면서까지 해야하는거지?"라고 생각할 수도 있다. 물론 이 방법도 가능하다. 그러나 눈치챈 사람도 있겠지만 AAR은 코드 뿐만 아니라 drawable,layout 등의 안드로이드에 특화된 데이터까지 모듈화가 가능한게 큰 장점이다. 이를 잘 사용해서 프로젝트 협업을 잘 하거나 안드로이드 개발자들을 위한 오픈소스를 쉽게 사용하도록 제공해보도록 하자.