[android] Android Studio에서 manifest merger 사용하기

[android] Android Studio에서 manifest merger 사용하기

오늘 안드로이드 스튜디오 1.0이 나왔다.(http://www.androidcentral.com/google-releases-android-studio-10-developers)

그리고 ADT의 지원도 끊겼다. 이쯤되면 안드로이드 스튜디오로 넘어가야할 때가 온거다.

 

1. manifestmerger 소개

manifestmerger는 하나의 주요 프로젝트가 있고, 곁다리로 쓰는 다른 프로젝트에서는 약간의 정보만 바꿔서 쓰는 방식을 말한다.

곁다리 프로젝트에는 manifest 파일에 앱 버전 정도만 들어가면 된다.

나는 이걸 Tone&Talk 프로젝트를 할 때 썼다.

screenshot_2014-12-10_PM 3.36.04

저 파란 아이콘 앱들은 하나의 프로젝트에다가 이름과 각 언어별 글자들만 바꾸는 리소스만 추가해서 만든 것이다.(LG에서 만든 TTS엔진이 각 언어별로 되어있어서 어쩔 수가 없었다)

저 앱들은 manifestmerger를 사용해서 common이 되는 프로젝트 manifest에 모든 걸 넣어두고, 기타 프로젝트에는 앱의 버전, 언어별 리소스 정도만 추가되어있다.

 

 

2. 준비

안드로이드 스튜디오에서 기본 프로젝트를 생성한다.

screenshot_2014-12-10_PM 3.26.15

screenshot_2014-12-10_PM 3.27.21

screenshot_2014-12-10_PM 3.27.26

screenshot_2014-12-10_PM 3.27.31

screenshot_2014-12-10_PM 3.27.36

screenshot_2014-12-10_PM 3.29.03

 

이 글을 찾아들어올 사람이라면 이 정도는 굳이 설명 안해도 될테니 자세한 설명은 생략한다.

 

 

 

3. common 모듈 생성

이클립스에서는 라이브러리로 쓰던 단어가 안드로이드 스튜디오에서는 모듈로 쓰인다.

프로젝트에서 오른쪽 클릭을 하거나, File – New Module.. 메뉴를 선택해서 common 모듈을 생성한다.

screenshot_2014-12-10_PM 3.42.50

 

screenshot_2014-12-10_PM 3.43.34

screenshot_2014-12-10_PM 3.43.57

screenshot_2014-12-10_PM 3.44.04

screenshot_2014-12-10_PM 3.44.13

screenshot_2014-12-10_PM 3.44.37

뭐 굳이 설명이 필요할 것 같지 않다.

 

4. Module Setting

이제 모듈 설정을 해줘야 한다.

screenshot_2014-12-10_PM 3.49.18

 

 

app – Dependencies에 들어가면 이렇게 뜨는데,

screenshot_2014-12-10_PM 3.50.28

 

screenshot_2014-12-10_PM 3.51.01

– 를 눌러서 모두 삭제한다.

 

 

+를 눌러서

screenshot_2014-12-10_PM 3.51.36

Module dependencies를 선택하면

 

screenshot_2014-12-10_PM 3.51.46

이런 창이 뜨는데, 방금 만든 common 이 나온다.

 

 

screenshot_2014-12-10_PM 3.51.52

선택하면 이렇게 된다.

 

 

5. app Module에서 불필요한 파일들 지우기

먼저 해줘야 할 일이 있는데, 이유는 모르겠지만 라이브러리형 프로젝트에는 style.xml 이 생기지 않는다.

Move app/~~~/values/style.xml to common/~~~/values/style.xml

 

그리고 .java나 res의 어지간한 파일과 폴더는 모두 지운다. 테스트를 위해  strings.xml 만 남긴다.

screenshot_2014-12-10_PM 4.12.25

screenshot_2014-12-10_PM 4.14.26

테스트를 위해 common의 strings.xml은 이렇게 바꿔놓는다.

 

 

screenshot_2014-12-10_PM 4.04.49

실행하면 이렇게 나온다.

 

application의 어지간한 정보는 다 지우고, Main activity는 common 의 시작 activity로 지정한다.(안하면 앱이 실행이 안됨)

 

 

 

 

이제부터는 common 모듈에 작업을 하면 된다.

screenshot_2014-12-10_PM 4.22.34