검색결과 리스트
글
안드로이드 프레임워크 프로그래밍(27) [Fedora에서 AOSP 안드로이드 운영체제 컴파일하기]
일반적으로 안드로이드 운영체제를 Build 할 때 거의 대부분의 경우 Ubuntu 환경에서 수행됩니다. AOSP 공식 홈페이지에서도 Ubuntu를 권장하고 있는 바이기도 합니다.
그래도 혹여나 하는 마음에 Fedora 운영체제에서 안드로이드를 Build 해보는 과정에 대해 포스팅을 해보고자 합니다. 같은 RPM 패키지를 사용하는 Redhat이나 OpenSUSE에서도 이 포스팅의 내용을 적용할 수 있으리라 생각합니다.
Build Version : Android 6.0.1(Marshmellow)
OS : Fedora 23 (Twenty Three) 64-bit
JDK Version : OpenJDK 1.7.0
1. 빌드하고자 하는 AOSP 소스코드를 다운로드 받습니다. 관련 내용에 대해 자세히 알아보고자 하시는 분은 아래 포스팅을 참조해 주기길 바랍니다.
$ mkdir ~/bin
$ export PATH=$PATH:~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/reop
$ mkdir ~/aosp
$ cd ~/aosp
$ repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r1
$ repo sync -j4
위 과정까지 마치셨다면 아래와 같이 aosp 폴더에 소스코드 다운로드 된 것을 확인하실 수 있습니다.
2. 다운로드한 안드로이드 소스코드를 컴파일할 수 있는 환경을 설정합니다. Marshmellow(6.0) 버전의 경우 OpenJDK 1.7.0을 설치해야 합니다. Oracle JDK로 컴파일을 시도하려 해도 시작하기 전에 컴파일이 중단되어버립니다. Fedora의 경우 dnf를 통해서는 최신 버전의 자바만 지원해주기 때문에 사용자가 직접 OpenJDK를 설치해야 합니다. 설치 방법은 아래의 포스팅을 참조해 주시기 바랍니다.
Fedora에 이전 버전의 OpenJDK 설치하기(Install OpenJDK 7 in Fedora 23)
만약 설치한 이후에도 해당 버전이 적용되어 있지 않았을 경우 아래의 명령어를 통해 직접 설치해줍시다.
# alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.7.0-openjdk/bin/java 1
# alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-1.7.0-openjdk/bin/javac 1
# alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-1.7.0-openjdk/bin/javadoc 1
3. dnf를 통해 안드로이드를 빌드하기 위해 필요한 패키지를 설치합니다.
# dnf install bison gcc xorg-x11-fonts-Type1 libpng15
4. 이제 다운로드 받은 소스코드를 build 하기 위한 준비과정을 진행해 보도록 하겠습니다. 먼저 build 환경을 초기화합니다.
$ ~/aosp
$ source build/envsetup.sh
$ lunch
안드로이드 6.0.1 버전 기준으로 build 환경은 다음과 같이 나타납니다.
여기서 자신이 build 하고자 하는 환경을 선택합니다. 본 포스팅의 경우 Android Studio를 통한 에뮬레이터에서의 실행을 목표로 함으로 1번 혹은 14번을 선택합니다. 혹시 자신이 build 하고자 하는 환경에 대한 설정을 알고 싶으신 분은 아래의 포스팅을 참조해 주시기 바랍니다.
안드로이드 프레임워크 프로그래밍(3) [NEXUS5에 소스 빌드하기]
5. 이제 build를 해보도록 합니다.
$ make update-api && make -j4
아래와 같은 결과가 나왔다면 Fedora 운영체제 환경에서 안드로이드 이미지를 빌드하는 데에 성공한 겁니다!
'안드로이드 > 프레임워크' 카테고리의 다른 글
안드로이드 프레임워크 프로그래밍(28) [System Service의 proxy와 native의 Interface 상속 구조] (0) | 2016.03.03 |
---|---|
Windows 환경에서 fastboot를 통해 Android 이미지 포팅(Fastboot in Windows 7) (3) | 2015.11.22 |
안드로이드 프레임워크 프로그래밍(26) [System Service에서 Activity 함수 호출하기] (0) | 2015.10.27 |
Android에서 VSync 동작 원리 및 초기화 과정(5) (0) | 2015.09.20 |
안드로이드 프레임워크 프로그래밍(25) [Native 단계에서 Looper의 동작 원리] (0) | 2015.09.16 |