ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] SDK Build 후 Window 용 Binary 적용
    기술 관련/Android 2009. 12. 8. 15:36
    기본적으로 Android에서는 Target Build 환경은 Linux나 MacOS+MacPort 만 지원된다.

    간혹 Source Tree를 수정하여 Build하는 경우도 있으나 엄청난 수고를 해야하므로 window 환경에서는 거의 불가능하다고 볼 수 있지만 분명한 것은 Android SDK는 win32용이 나오는다는 것이다. 궂이 window를 지원하지 않는 것은 아마도 compiler에 대한 이슈일 수도 있다.

    암튼, 각설하고 Platform 개발이야 linux에서도 할 수도 있다지만 수정된 Platform에서 실행되는 application을 개발하는 입장에서보면 window용으로 개발 후 이를 linux용 emulator나 target에 직접 올려 테스트해야 하니 여간 불편한 일이 아닐 수 없다.

    그래서 아이디어를 낸 것이 linux에서 build된 system image를 window용 SDK로 복사하여 사용하는 것이다. 물론 문제가 발생 할 수 있지만 어쩌겠는가? 그나마 Android Platform 변경 내용을 적용하여 테스트 해 볼 수 있는 방법인걸?


    1. Linux 환경에서 Image 생성
    기본적인 Android Build 환경은 linux 이므로 다음과 같은 명령으로 SDK를 Build를 해야 한다.
    mydroid$ make sdk


    2. SDK System Image 추출
    Build가 완료되면 해당 Package가 다음과 같이 생성된다.
    out/host/linux-x86/sdk/android-sdk_eng.user_id_linux-x86.zip

    해당 파일의 압축을 풀면 다음 파일이 있는 것을 볼 수 있다.
    android-sdk_eng.user_id_linux-x86/platforms/android-1.5/images/system.img

    이를 window 환경으로 복사할 수 있도록 외장 메모리나 적당한 방법을 이용한다.


    3. Win32 SDK를 설치 및 AVD 생성

    Linux용 Build version이 1.5이므로 이를 맞춰서 설치를 해야 한다. 참고로 사용한 파일은 android-sdk-windows-1.5_r2.zip 이다.

    android-sdk-windows-1.5_r2\platform\android-1.5\images\system.img


    5. AVD 생성

    > cd  android-sdk-windows-1.5_r2\tools
    > android create avd -t 2 -n mydroid -s HVGA


    6. SDCard 생성

    > cd android-sdk-windows-1.5_r2\tools
    > mksdcard -l SDCARD 256M extdisk256img


    7. system.img 복사

    SDK를 설치후 Linux SDK에서 생성한 system.img 파일을 win32용 SDK에 복사한다.
    이 때 파일이 겹쳐지는데 원본파일을 덮어 쓰게 되므로 기존 파일은 백업해 두는 것이 좋다.

    > copy system.img android-sdk-windows-1.5_r2\platform\android-1.5\images\system.img


    8. Emulator 실행

    > cd android-sdk-windows-1.5_r2\tools
    > emulator -sdcard extdisk256.img -avd mydroid


    ※ 주의
    SDK를 직접 build하는 경우 간혹 SDCard를 인식못하는 경우가 발생한다. 이럴 때는 Emulator에서 SDCard를 이용할 수 있는 configuration인 vold.conf를 추가해야 한다. 이에 대한 내용은 다음 글[안드로이드 Build 시 SDCard 인식 오류 문제]를 참고 하기 바란다.

    댓글

Designed by Tistory.