-
[Ubuntu] 안드로이드 빌드 환경 구축하기 !CSE/Ubuntu 2016. 1. 11. 06:42
안드로이드 빌드 환경 구축하기
(Establishing a Build Environment)
우분투 환경에서 안드로이드 빌드 환경 구축해보겠습니다.
[출처: phonearena]
공식적으로 명시된 PC or 노트북의 제원 조건입니다.
- A Linux or Mac OS system. It is also possible to build Android in a virtual machine on unsupported systems such as Windows. If you are running Linux in a virtual machine, you need at least 16GB of RAM/swap and 100GB or more of disk space in order to build the Android tree. See disk size requirements below.
- A 64-bit environment is required for Gingerbread (2.3.x) and newer versions, including the master branch. You can compile older versions on 32-bit systems.
- At least 100GB of free disk space for a checkout, 150GB for a single build, and 200GB or more for multiple builds. If you employ ccache, you will need even more space.
요약하면, 리눅스(Linux) 혹은 Mac OS 에서 가능하지만, 윈도우에서 가상 머신(virtual machine)을 통해서 빌드도 가능하다고 합니다.
- 가상 머신 자체가 상당한 메모리를 잡아먹기에 별로 추천드리지 않습니다(제원이 캡으로 좋다면 얘기가 다르겠지만요.)
적어도 16 GB 의 램과 스왑 영역이 필요하다고 합니다. 그리고 100 GB 의 여유 공간이 필요하죠. 싱글 빌드에는 150 GB, 멀티 빌드에는 200 GB 필요합니다.
위 포스팅은 Ubuntu 14.04 LTS (64-bit) 버전 기준으로 작성되었습니다.
Installing the JDK
빌드를 위해서는 Java 7을 필요로 합니다. 아래 명령어를 터미널(Ctrl + Alt + T)에서 수행하여 설치합니다.
- sudo apt-get update
- sudo apt-get install openjdk-7-jdk
추가적으로 아래 명령어를 수행하여 업데이트를 진행합니다.
- sudo update-alternatives -config java
- sudo update-alternatives -config javac
올드한 버전의 안드로이드를 빌드하시겠다면, 하위 버전 Java를 또한 설치해주세요.
- Java 6: 진저 브레드에서 킷캣 버전
- Java 5: 컵케이크에서 프로요
Installing required packages
빌드를 위해 필요한 여러가지 패키지를 설치합니다.
- sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
오류없이 잘 설치되는지 확인하십니다.
Configuring USB Access
USB 드라이버를 설치하셔야 윈도우에서 처럼 접속하여 사용가능합니다. 이번 파트는 시류아 님의 강좌를 따와서 작성했습니다.
초기 gksu 설치를 해줍니다.
- sudo apt-get install gksu
설치가 완료되면 본격적으로 USB 드라이버를 설치합니다.
아래 명령어를 입력합니다.
- gksudo gedit /etc/udev/rules.d/51-android.rules
다음 열리는 에디터 창에 아래 텍스트를 입력합니다.123456789101112131415161718192021222324252627282930313233343536# adb protocol on passion (Nexus One)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"# fastboot protocol on passion (Nexus One)SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"# adb protocol on crespo/crespo4g (Nexus S)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"# fastboot protocol on crespo/crespo4g (Nexus S)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"# adb protocol on stingray/wingray (Xoom)SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"# fastboot protocol on stingray/wingray (Xoom)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"# adb protocol on maguro/toro (Galaxy Nexus)SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"# fastboot protocol on maguro/toro (Galaxy Nexus)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"# adb protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"# adb protocol on panda (PandaBoard ES)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"# fastboot protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"# usbboot protocol on panda (PandaBoard)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"# usbboot protocol on panda (PandaBoard ES)SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"# adb protocol on grouper/tilapia (Nexus 7)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"# fastboot protocol on grouper/tilapia (Nexus 7)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"# adb protocol on manta (Nexus 10)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"# fastboot protocol on manta (Nexus 10)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"# adb protocol on hammerhead (Nexus 5)SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0600", OWNER="<username>"cs 입력 후 저장한 뒤, 마지막으로 퍼미션을 준 뒤 USB 드라이버 설치를 끝냅니다.
- sudo chmod a+r /etc/udev/rules.d/51-android.rules
Installing ADB
아래 명령어를 입력하여 ADB 를 설치합니다.
- sudo apt-get install android-tools-adb
자 여기까지가 안드로이드 빌드 환경 구축하기 입니다.
다음 장은 소스 다운로드를 진행하도록 하겠습니다.
'CSE > Ubuntu' 카테고리의 다른 글
[Ubuntu] 윈도우 10에서 우분투 듀얼부팅 하기(멀티부팅) - 2 (4) 2016.01.09 [Ubuntu] 윈도우 10에서 우분투 듀얼부팅 하기(멀티부팅) - 1 (0) 2016.01.09 [Ubuntu] 윈도우에서 우분투 설치 USB 만들기 (0) 2016.01.09 [Ubuntu] 우분투에서 카톡 하기 ! - Kakaotalk (0) 2015.08.10 [Ubuntu] 우분투 맥 테마 적용하기! (Mac OS Theme) (0) 2015.06.21