[Andorid] Export activity – 1. 안드로이드 라이브러리 프로젝트

내가 만든 activity를 다른 앱에 넣어야 할 경우가 있다.

가장 좋은 방법은 코드를 그냥 통째로 넘기면 된다.  

그런데 문제는 코드를 순수하게 내준다는게 영 꺼림직하다.

코드를 감추기 위해서는 jar로 묶어 라이브러리처럼 쓰게끔 하는게 가장 좋을듯 싶었다.

 

Android는 일반 자바 프로젝트하고 좀 다르다.

무작정 export를 했더니 xml, res 가 중복됬다고 어쩌고 난리다.

그래서 우선은 일단 라이브러리 시킬 수 있는지를 먼저 찾아봤다.


그래서 찾아보다가 발견한

Library project 

내가만든 프로젝트를 라이브러리화 시켜 jar로 만든뒤

다른 프로젝트에서 사용할 수 있게끔 해주는 프로젝트

안드로이드 개발 홈페이지에 라이브러리 프로젝트 사용방법과 소개가 나와있다.

http://developer.android.com/guide/developing/projects/index.html

 

라이브 프로젝트 생성

생성하는 법은 비교적 간단하다.

그냥 일반 안드로이드 프로젝트 생성한뒤에

프로젝트의 properties -> android -> is Library 선택.

끝.

참고로

is Library가 선택되면 이 프로젝트는 apk를 만들 수가 없게 되어 일시적으로 실행이 되지 않는다.

실행을 하려면 is Library의 선택을 풀어주면 된다.

 

라이브러리 프로젝트 추가하기

위에서 만든 라이브러리프로젝트를 새 프로젝트에서 추가 시키려면

위와 같은데로 들어가서   properties -> android 

Add를 누르면

라이브러리 선택하는 팝업이 나오고 밑에 GameLibrary가 선택되게끔 되어있다.

가볍게 선택해주고 ok 누르면

android Dependencies 밑에 GameLibrary.jar가 들어가 있음을 볼 수 있다.

마지막으로 androidmanifest.xml에서 액티비티 추가할때처럼

Gamelibrary의 activity를 추가로 선언 해주어야 한다.

 

라이브러리 프로젝트에 대한 몇가지 특징.

추가로 라이브러리 프로젝트의 특징 몇가지다.

Resource conflicts :  resource id의 이름이 동일한 경우 메인 프로젝트의 resource를 취함. 사전에 적당히 충돌 안나게 조심

you cannot export a library project to a jar file :   library project는 jar파일로 export될 수 없음. 추후 제공할 예정

include a jar library :  다른 jar파일 사용 가능

depend on an external jar library :  외부 라이브러리의 경우 <uses-library> 태그사용

library projects cannot include raw assets : 라이브러리 프로젝트는 assets 폴더를 사용하지 않음.

platform version must be lower than or equal to to android project : 라이브러리 프로젝트가 기본 프로젝트보다 플랫폼 버전이 높으면 안됨

each library project creats its own R class :  뭐 각자 따로 R class 가 생긴 다는 말.

결론

 – 어쨋든 라이브러리 프로젝트는 스스로 jar로 만들수 없기 때문에 본인의 소스를 공개해야 사용할 수 있다.

– 만약 소스를 감추고 싶다면 최소의 코드만 오픈하고

– 나머지 기능들은 적절하게 쪼개서  jar로 만들어

– 라이브러리 프로젝트 내에서 각종 jar파일들을 활용하면 될 것 같다.

Advertisements
이 글은 app 카테고리에 분류되었고 , , , 태그가 있습니다. 고유주소 북마크.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중