안 드 로 이 드 소스 작업 환경 실 용적 인 기술
환경 설정 가 져 오기
환경 설정 을 가 져 오 는 방법 은 원본 트 리 의 루트 에서 다음 명령 을 실행 하 는 것 입 니 다.
$ source build/envsetup.sh
혹은
$ . build/envsetup.sh
이후 실행
hmm
명령 은 도움말 정 보 를 얻 고 사용 가능 한 매크로 와 함 수 를 표시 합 니 다. 이 매크로 와 함 수 는 셸 의 명령 으로 사용 할 수 있 습 니 다.$ hmm
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- lunch: lunch <product_name>-<build_variant>
- tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5] [eng|userdebug|user]
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory, but not their dependencies.
- mmm: Builds all of the modules in the supplied directories, but not their dependencies.
- mma: Builds all of the modules in the current directory, and their dependencies.
- mmma: Builds all of the modules in the supplied directories, and their dependencies.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
Look at the source to view more functions. The complete list is:
addcompletions add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype
choosevariant cproj croot findmakefile gdbclient gdbwrapper get_abs_build_var getbugreports get_build_var
getlastscreenshot getprebuilt getscreenshotpath getsdcardpath gettargetarch gettop godir hmm isviewserverstarted
jgrep key_back key_home key_menu lunch _lunch m mangrep mm mma mmm mmma pez pid printconfig print_lunch_menu qpid
resgrep runhat runtest sepgrep set_java_home setpaths set_sequence_number set_stuff_for_environment settitle
smoketest stacks startviewserver stopviewserver systemstack tapas tracedmdump
기본 구축 설정
기본 적 인 구축 파 라 메 터 를 설정 하고
choosecombo
또는 lunch
명령 을 사용 합 니 다.이 기본 설정 항목 들 은:예 를 들 면:
$ choosecombo
Build for the simulator or the device?
1. Device
2. Simulator
Which would you like? [1]
Build type choices are:
1. release
2. debug
Which would you like? [1] 2
Which product would you like? [generic]
Variant choices are:
1. user
2. userdebug
3. eng
Which would you like? [eng]
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=1.6
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=debug
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=Donut
============================================
또는 미리 설정 한 설정 을 직접 선택 하 십시오:
$ lunch generic-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=1.6
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=debug
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=Donut
============================================
주: 괄호 ([]) 는 현재 옵션 의 기본 값 입 니 다. 입력 하지 않 고 Enter 를 누 르 면 기본 값 을 사용 합 니 다.
가속 컴 파일
컴 파일 캐 시 사용 하기
ccache 사용 하기
$ export USE_CCACHE=1
또는 위 명령 을
.bashrc
파일 에 직접 기록 합 니 다.$ echo export USE_CCACHE=1 >> ~/.bashrc
$ source ~/.bashrc
병렬 컴 파일
호스트 CPU 를 다 핵 으로 컴 파일 하면 여러 개의 CPU 핵 을 동시에 컴 파일 에 참여 시 킬 수 있 습 니 다.예 를 들 어 8 핵 CPU:
$ make -j8
다음 명령 은 CPU 의 핵심 수 를 표시 합 니 다:
$ sed -n "/processor/p" /proc/cpuinfo | wc -l
스 크 립 트 에서 사용 하면 다음 과 같이 쓰 는 것 이 편리 합 니 다.
make -j`sed -n "/processor/p" /proc/cpuinfo | wc -l`
특정 목표 컴 파일
다음 에 지정 한 대상 의 컴 파일 명령 은 특정한 코드 를 컴 파일 하 는 데 사용 할 수 있 습 니 다.
실 용적 인 명령 들
가 져 올 때
build/envsetup.sh
유용 한 셸 매크로 와 함수 가 도입 되 었 습 니 다. 우 리 는 그것들 을 일반적인 명령 으로 사용 할 수 있 고 매우 편리 합 니 다.실행 hmm
명령 을 실행 하면 이 명령 정 보 를 볼 수 있 습 니 다. 다음은 일부 자주 사용 하 는 명령 입 니 다.croot
예 를 들 어 소스 코드 의 루트 디 렉 터 리 는
~/mydroid
입 니 다. 현재 ~/mydroid/frameworks/base/core/java/android/os
경로 에서 소스 코드 루트 디 렉 터 리 로 돌아 가 려 면 많은 cd ../..
명령 을 입력 하지 않 아 도 됩 니 다. croot
명령 이 필요 하 다 는 뜻 입 니 다.~/mydroid/frameworks/base/core/java/android/os $ croot
~/mydroid $
godir
이 명령 은 기본적으로
croot
의 반작용 입 니 다. 현재 경로 에서 특정한 파일 이 있 는 디 렉 터 리 로 직접 이동 합 니 다. 같은 이름 의 파일 이 여러 개 있 으 면 목록 을 추가 로 선택 합 니 다.~/mydroid/packages/apps/Music $ godir SystemClock.java
~/mydroid/frameworks/base/core/java/android/os $
m
현재 하위 디 렉 터 리 에 있 든 원본 디 렉 터 리 에서
make
명령 을 실행 하려 면 원본 디 렉 터 리 로 돌아 가서 실행 할 필요 가 없습니다 make
. 현재 디 렉 터 리 에서 하나의 m
명령 만 실행 하면 됩 니 다.mm
어떤 하위 모듈 디 렉 터 리 에서 이 하위 모듈 을 컴 파일 합 니 다.예 를 들 어 컴 파일
Music
~/mydroid/packages/apps/Music $ mm
mmm
원본 루트 디 렉 터 리 에서 지정 한 하위 모듈 을 컴 파일 합 니 다.예 를 들 어 컴 파일
Music
~/mydroid $ mm packages/apps/Music
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.