이글은 안드로이드 오픈소스 프로젝트의 코드 다운로드를 기록합니다.



OS Env.


  • Ubuntu 16.04 LTS
  •  Android 6.0 버전의 권장 요구사항은 Ubuntu 14.04 LTS버전 입니다.

  • Clean한 OS상태에서 Android P AOSP 코드를 다운로드 하는 과정을 기술합니다.

  • 반드시 디스크 용량을 확인해주세요 100G 정도 여유를 두시는게 좋습니다.



Java Version 확인

  • $ java -version

  • java 미설치 상태 입니다. 설치를 진행합니다.


Java 설치

$ sudo apt-get update

apt-get repo를 업데이트 해줍니다.

  • $ sudo apt-get install openjdk-8-jdk

  • jdk 를 설치해 줍니다. 


  • $ java -version

  • 설치 완료


다운로드에 필요한 패키지 설치



  • $ 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 libgl1-mesa-dev libxml2-utils xsltproc unzip



  • $ curl  curl https://storage.googleapis.com/git-repo-downloads/repo > ~/repo

  • $ chmod a+x ~/repo

  • $ sudo mv ~/repo /usr/local/bin/


Code 다운로드



  • 폴더 생성후 해당위치에서 코드 다운로드 요청

  • $ repo init -u https://android.googlesource.com/platform/manifest -b android-p-preview-2

  • $ repo sync
  • -b 옵션 이후 aosp 브랜치 명 작성 현재는 안드로이드 P 프리뷰 브랜치 입니다. 
  • 해당 커맨드 이후 시간이 오래 소요됩니다.



  • P완료된 모습. (부득이하게 다른 PC 로  받게 되었습니다. 사실 용량이 부족해서 다른 PC로 받았습니다....)
  • 용량이 많이 필요하니 꼭 용량 확인후에 싱크 진행 해야 합니다. 



다음 포스팅 :  AOSP 빌드


'공부 > Android Framework' 카테고리의 다른 글

[AOSP] 안드로이드 프레임워크  (0) 2018.05.10

안드로이드 시스템의 개요는 다음과같이 구성된다.


Linux Kernel


  • 안드로이드는 오픈소스인 리눅스 커널위에 가상머신을 띄우고 해당 가상머신에서 어플리케이션을 구동하는식으로 동작한다.

  • 눅스의 코드 중 필요한 부분만 이용하여 안드로이드 구동에 이용한다.



HAL

  

  • Hardware Abstraction Layer의 약자로 해석하면 하드웨어 추상화 계층이다. 

  • 리눅스 커널에 기본적인 드라이버가 있다면, 실제 제조사에선 해당부분에 드라이버의 기능을 구현한다. 



Native Libraries

  

  • Android 는 가상머신 위에서 돌아가지만 하위계층, 기본적인 베이스는 리눅스 커널위 에서 동작하게된다.

  • 리눅스 커널은 C언어로 제작되어있으며 핵심적인 프로그램들은 해당부분의 계층에서 제공되어진다.

  • 또한  GNU C 인 glibc가 아닌 안드로이드용 경량화 라이브러리 libc를 이용해서 필요한 부분만 이용한다. 



Android Runtime

  

  • 안드로이드용 가상머신. 달빅 방식과 ART 방식의 VM으로 앱을 구동할수있게한다.



Android Framework

  

  • 안드로이드에서 제공하는 기능들을 제공해주는 Layer

  • 흔하게 가져다쓰는 Notification, Sound, Camera, Message, 등등 모든 기능을 제공해주는 부분  

  • 어플리케이션 단에서 중복해서 기능을 구현할필요없이 제공해주게 된다.

+ Recent posts