특정 모듈만 build 하기

  • $ANDROID_HOME/build/envsetup.sh 스크립트를 사용하면 간편하게 특정 module만 build할 수 있다. (envsetup.sh에 대한 더 상세한 내용은 여기를 참고하자.)

  • 먼저 shell 상에서 위 스크립트를 현재 환경으로 load 해준다. ($ANDROID_HOME 환경 변수는 Android full source root 경로 값을 저장하고 있는 것으로 미리 정의되어 있어야 한다.)

      • $ . $ANDROID_HOME/build/envsetup.sh

  • 자주 사용한다면 그냥 .profile 이나 .bashrc 같은 파일에 추가해두는 것도 좋다.

  • 아무튼, 위 스크립트에서 제공하는 함수들 중 m, mm, mmm 세 가지를 사용하게 된다.

    • m - 현재 경로를 기준으로 소스 트리의 최상위 경로로 이동한 후 make를 실행해준다.

    • mm - 현재 경로를 기준으로 가장 가까운 단위 모듈을 찾아서 그 모듈만 build 해준다.

    • mmm - 파라미터로 주어진 경로들에 대해 단위 모듈 build를 해준다. 마지막에 snod를 추가할 경우 System image 파일까지 새로 생성해준다.

  • 예를 들어보자.

    • Email application package만 새로 build 하고 싶은 경우 다음과 같이 해줄 수 있다.

        • $ cd $ANDROID_HOME/packages/apps/Email

        • $ mm

    • 혹은 mmm을 사용해서 package build 후 System image까지 새로 생성하는 방법도 있다.

        • $ cd $ANDROID_HOME/packages/apps/Email

        • $ mmm . snod