Android2011. 4. 22. 14:59

android SDK에서 제공하는 android tool은 3가지 타입의 프로젝트를 생성하는 방법을 제공한다.

1. 일반적인 안드로이드 애플리케이션 프로젝트를 생성
2. 안드로이드 라이브러리를 생성하는 프로젝트를 생성
3. JUnit test를 확장하는 테스트 프로젝트를 생성

안드로이드 프로젝트의 생성

 android tool을 사용해서 생성한다. 

android create project \
--target <target_ID> \
--name <your_project_name> \
--path path/to/your/project \
--activity <your_activity_name> \
--package <your_package_namespace>
target은 애플리케이션의 빌드타겟인데 이는 안드로이드 플랫폼 라이브러리에 대응된다. 유효한 타겟과 해당하는 ID를 알고 싶으면 android list targets를 수행하면 된다.

name은 프로젝트명이다. 옵션이며 apk파일명이된다.
path는 프로젝트의 폴더명이다. 폴더가 없다면 생성해준다.
activity는 디폴트액티비티명이다.
package는 애플리케이션의 패키지명이다.

아래는 예제이다.
android create project \
--target 1 \
--name MyAndroidApp \
--path ./MyAndroidAppProject \
--activity MyAndroidAppActivity \
--package com.example.myandroid
위 명령을 수행하면 MyAndroidAppProject폴더가 생성되며 그 아래 각종 안드로이드 소스와 리소스들이 자동으로 생성된다.

개발에 사용하는 Android SDK가 업데이트 된 경우 이전 프로젝트코드를 그대로 사용하려면 android update project명령을 수행하면 된다.  이 명령으로 빌드타겟을 바꾸거나 프로젝트명을 바꾸는 용도로 사용할 수 도 있다.

android update project --name <project_name> --target <target_ID>
--path <path_to_your_project>
아래는 예이다.
android update project --name MyApp --target 2 --path ./MyAppProject

라이브러리 프로젝트의 설정

라이브러리 프로젝트는 표준 안드로이드 프로젝트이다. 따라서 애플리케이션 프로젝트 생성법과 동일한 방법으로 생성할 수 있다. 

 android create lib-project --name <your_project_name> \
--target <target_ID> \ --path path/to/your/project \ --package <your_library_package_namespace>
lib-project명령으로 수행하면 표준 안드로이드 프로젝트와 동일한 프로젝트가 생성되고 default.properties파일에 아래 정보가 추가되어 library project가 되게 된다.

android.library=true
완성된 프로젝트에서 default.properties를 열어보면 위 정보가 추가된것을 볼 수 있다.


라이브러리 프로젝트 참조하기

애플리케이션을 개발하면서 라이브러리 프로젝트로부터 코드나 리소스를 사용하고자 한다면 애플리케이션의 build properties에 라이브러리 프로젝트의 참조를 추가하면 된다.

android update lib-project \
--target <target_ID> \
--path path/to/your/project
--library path/to/library_projectA
위 명령은 프로젝트의 build properties에 라이브러리 참조를 추가하게 된다. 
아래는 그 예이다.

android.library.reference.1=path/to/library_projectA
 
 
여러개의 라이브러리를 참조하고자 한다면 인덱싱을 해야 한다. 이 순서는 참조순서가 된다. 파일을 직접 수정함으로 순서를 조정할 수 있다.
android.library.reference.1=path/to/library_projectA
android.library.reference.2=path/to/library_projectB
android.library.reference.3=path/to/library_projectC

manifest file에서 라이브러리 콤포넌트의 선언

 애플리케이션의  manifest파일에는 애플리케이션이 사용하는 모든 콤포넌트들이 정의되어야 하며 참조하는 라이브러리의 콤포넌트들도 정의되어야 한다. 예를 들면 ,activity>, <service>, <receiver>, <provider>은 물론이고 <permission>, <uses-library>등도 필요하면 정의해야 한다.

아래는 예이다.

<manifest>
  ...
 
<application>
    ...
   
<activity android:name="com.example.android.tictactoe.library.GameActivity" />
    ...
 
</application>
</manifest>

Ant tool은 라이브러리 레퍼런스가 있는 경우 내부적으로 모든 라이브러리를 컴파일하고 머지하여 빌드를 진행한다.


 
Posted by 삼스