IT/Android

[Tips] 안드로이드 jar 만들기

데브렉스 2013. 2. 21. 18:24
반응형

안드로이드 이클립스 외부 자바 라이브러리 사용하기  http://www.androidpub.com/4543



[간단1]

1. 프로젝트 우클릭->export->Java->JAR file->src-> 원하는 소스(java)파일 제외하고 모두 체크해제->finish 하면  xxx.jar 파일이 만들어집니다.( 압축 파일 풀어보면 xxx.class로 되어 있더군요.. 옵션에서 선택할수도 있지만.. ) ==> 라이브러리 만들기 완료.
 - 참고적으로 라이브러리로 만드실경우 해당 클래스및 외부에서 사용하는 함수는 꼭 public 로 해야지 저같이 에러가 안납니다.ㅠㅠ
2. 나만의 라이브러리 가져다 쓰기는 http://www.androidpub.com/4543 에 회색님께서 친절하게 캡쳐까지 해서 올려주신것 대로 하시면 깔끔하게 됩니다.
3. 이후에 내 소스에서 import xxx.xxx.xxx.*; 하시면 됩니다.(xxx => 첨에 라이브러리 만드실때 패키지 이름)


http://jhoony.tistory.com/


그림과 같이 jar file을 선택한다. 


프로젝트에서 jar 파일로 만들고자 하는 파일을 선택한다. 다음으로 jar 파일의 이름과 저장위치를 저장해줘야 한다. 

그림에서 Browse.. 버튼을 클릭해서 저장위치를 선택한다. jar 파일의 이름과 저장위치를 선택한 다음 next 버튼을 누른다.
 

그림과 같이 save the description 체크 박스를 선택하고 Browse 버튼을 선택한다. 이 파일을 만들어서 변경된 내용을 기존의 jar 파일에 바로 적용할 수 있다.

jardesc 파일의 저장위치와 이름을 설정한다.


jardesc 저장위치와 이름을 저장하게 되면 아래와 같이 된다.


마지막으로 finish버튼을 누르게 되면 jar 파일과 jardesc 파일이 만들어지게 된다.

jar 파일이 만들고 변경된 내용을 적용시키고 싶으면 그림과 같이 jardesc 파일을 선택한 다음 마우스 오른쪽 버튼을 선택하게 되면

아래와 같은 그림을 볼 수가 있다.

메뉴에서 create jar 파일을 선택하면 변경된 내용이 적용된 jar 파일이 만들어지게 된다.

jar 파일을 수정하고 싶은 경우 예를 들어 jar 파일에서 파일을 빼고싶거나 또는 추가 시키고 싶은 경우 Open JAR Package 버튼을 누

르게 되면 jar 파일에 대한 옵션과 jar 파일을 수정할 수가 있다.






자세히

출처 : http://ch7895.wordpress.com/2012/05/04/andorid-library-project/

내가 만든 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파일들을 활용하면 될 것 같다.



[보충]

출처 : http://ralf79.tistory.com/152


하지만 안드로이드는 일반적인 jar로 만들었을때 xml이나 res밑의 파일들을 사용하지 못합니다.

그렇다고 UI를 전부 자바로 코딩해서 jar로 만들수 있는것도 아니고 말이죠...ㅜㅜ


해결 방법은 다음과 같습니다. 

다음의 그림고 같이 프로젝트의 프로퍼티에서 Android 항목의 Is Library를 선택하고 저장합니다.



그 다음에는 개발 프로젝트(jar를 임포트 하려고 한 프로젝트)에서 프로젝트의 프로퍼티를 열어서 라이브러리 부분의 [Add...]버튼을 클릭하면 아래와 같이 저희가 일전에 IS Library체크를 해놓은 프로젝트가 나타납니다.

선택하고 저장하면 끝!!!

jar를 임포트 하듯이 완료 한것입니다.

이제 그냥 사용하면 됩니다 참 쉽죠잉~~~~~~~~~


반응형