1. 안드로이드 포팅: AOSP 빌드 시스템
안드로이드 빌드 시스템의 설정방식은 안드로이드 셸 환경에서 envsetup.sh와 lunch로 동적으로 생성하거나, Buildspec.mk 파일로 미리 정의해둔 변수들을 활용할 수 있다.
또한 빌드 시스템은 소스파일과 같은위치에 객체파일 등의 중간 출력을 생성하지 않고, 모든 생성물은 out/ 디렉터리에 저장한다.
1.1 Android Build System
Envsetup.sh와 lunch는 명령을 실행한 셀에서 빌드할 땐 두 명령을 수행해야한다.
위 그림에서 묘사한대로 빌드 시스템 입장에서 타당한 진입점을 /build/core/ 디렉터리의 main.mk 파일이다.
이 파일은 최상의 Makefile을 호출한다.
1.2 Build Target Setting (빌드 타겟 설정)
빌드할 타겟은 [BUILD]-[BUILDTYPE] 형식으로 생성된다.
Build Type
a. User
제한된 접근권한이 적용, 제품적용 타겟 빌드시 사용한다.
b. Userdebug
user타입과 비슷하나 root권한이 적용되고 디버깅이 가능하다.
c. Eng
추가적인 디버깅 툴이 설치되고, 빌드 시 최적화를 제거하여 디버깅을 용이하게 한다.
개발 타겟 빌드 시 사용한다.
출처
다른 빌드 시스템과의 차이점 AOSP는 대부분의 make 기반 빌드 시스템과는 다르게 안드로이드 빌드 시스템은 재귀적 makefile을 사용하지 않는다는 점이다. 대신 모든 디렉터리와 하위 디렉터리를 탐색해서 An..
gamdekong.tistory.com
'Android OS' 카테고리의 다른 글
AIDL HAL 인터페이스 (0) | 2024.11.12 |
---|---|
Ubuntu에서 NDK 설치, 설정, 실행해보기 (3) | 2024.11.07 |
Android Boot & Init (3) | 2024.11.01 |
Android Binder (1) | 2024.11.01 |
Android.mk (0) | 2024.10.31 |