[인사이드 안드로이드]
Chapter2 - 안드로이드 개발 환경 구축
호스트 환경 구성
우분투 리눅스 상에서 안드로이드 플랫폼을 빌드하고 프레임워크를 디버깅하려면 우분투 개발활경을 구축해야한다.
우분투 버전이 책과 달라 환경구성은 아래 블로그를 참고했습니다.
http://bitly.kr/7YftX
설치과정
- Ubuntu 14.04.6 LTS를 VirtualBox를 이용하여 설치한다.
추후에 필요하면 가상머신이 아닌 멀티부팅을 이용해 재설치할 예정.


- 필요 패키지를 설치하고, Repo 설치 및 안드로이드 소스코드를 다운로드 한다. 책에 있는것과 마찬가지로 froyo버전을 받았다.

- 안드로이드 플랫폼 빌드 확인을 위해 안드로이드 플랫폼 소스의 최상위 폴더에서 make명령어를 실행했다. 하지만 다음과 같은 에러가 발생하였다.

해당 에러는 build system에서 “jar” command를 찾을 수 없어서 발생한다.
터미널에서 which jar을 입력하면 아무것도 뜨지않는데, 다음과 같이 해결하였다.
1
| sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.5.0_22/bin/jar 1 (자신의 jdk 경로)
|

이후로도 빌드 오류가 일어났는데, 발생한 오류 -> 해결방법 순이다.

1 2
| frameworks/base/tools/aapt/Android.mk 파일의 31번째 줄에 -fpermissive 추가 LOCAL_CFLAGS += -Wno-format-y2k -fpermissive
|

1 2
| frameworks/base/libs/utils/Android.mk 파일의 64번째 줄에 -fpermissive 추가 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
|
-fpermissive 옵션은 부적합한 코드를 컴파일할 수 있도록 해주는 옵션이다.

1 2 3 4
| cd external/srec wget "https://github.com/CyanogenMod/android_external_srec/commit/4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff" patch -p1 < 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff rm -f 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
|

1 2 3 4 5 6 7 8 9
| sudo apt-get install gcc-4.4 sudo apt-get install g++-4.4
sudo rm -f /usr/bin/gcc sudo rm -f /usr/bin/g++ sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
sudo apt-get install g++-4.4-multilib
|

1
| sudo apt-get install libswitch-perl
|
위의 오류들을 수정하고 빌드에 성공했다.

- SDK 개발 환경 구축
책에서는 이클립스를 설치했지만, 나는 안드로이드 스튜디오를 설치했는데… ‘.classpath’파일이 없다…
안드로이드 스튜디오는 프레임워크 디버깅이 안된다??