찾고 있는데 잘 보이지가 않는다. 예전에 L사에 파견갔을데 홈키사용을 제한시켰는데 어디였었는지 잊어버렸다 ㅠㅠ
어째든 다시 찾아보니
frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java
키와 관련된 내용이 들어있다 계속 찾아봐야지...
bionic |
- BSD의 libc를 개선 (bionic libc) |
bootable |
bootloader & disk installer |
build |
1. Android Build script & linker directive (core/prelink-linux-arm.map) - .so file을 어떻게 구성하는지 - android application이 동작할 때 사용되는 각종 library(.so)들이 로딩되는 번지를 미리 지정한 파일 - 이유: shared library를 static library처럼 쓰기 위한 것 로딩속도를 빠르게 하기 위함 참고) dll 은 start address가 없다 static으로 하면 빠르다. kissuu) android가 이유없이 죽을때가 있음. --> map file 상의 size를 넘어갔을경우
2. generic board에 대한 configuration (1) build/target/board/generic/AndroidBoard.mk - root filesystem 구성을 어떻게 해야하는가??에 대한 directive 파일 - android 최종 결과물 구성서 자동으로 포함하고 싶은 binary들에 대한 install등을 결정 - custom init.rc 혹은 init.%hardware%.rc 파일들의 install
(2) build/target/board/generic/BoardConfig.mk - Android의 Makefile에 기본적으로 포함되는 최상위 Makefile - 주로 HAL의 enable/disable과 관련이 깊음 - Android.mk 파일에 영향을 주고 Android.mk 파일에서 define을 제어할 수 있도록 설정하는 파일 (ex> ▪ BoardConfig.mk 의 BOARD_USES_GENERIC_AUDIO := true ▪ frameworks/base/libs/audioflinger/Android.mk ifeq ($(strip $(BOARD_USES_GENERIC_AUDIO)),true) LOCAL_CFLAGS += -DGENERIC_AUDIO endif ▪ frameworks/base/libs/audioflinger/AudioHardwareInterface.cpp #ifdef GENERIC_AUDIO hw = new AudioHardwareGeneric(); #else |
cts |
- Compatability Test Suite의 약자 Android platform development kit의 JAVA 호환성 테스트 |
dalvik |
- dalvik vm source |
development |
- 개발시 필요한 utility & app |
external |
- Android 고유 library가 아닌 linux혹은 기존에 작성된 라이브러리/binary들의 소스를 넣어놓은 디렉토리 - 여기서 작성된 library 중 shared library(.so)와 binary들은 모두 system/lib, system/bin 로 각각 install - framework test 시 app/lib를 여기에 작업 |
frameworks |
/policies - PhoneWindowManager 소스가 들어있음 - Android의 전체 시스템을 background에서 제어하는 최상위 application인 PhoneWindowManager - PhoneWindowManager는 KeyGuard관련 화면 전체 제어(ex> rotation) event관리 (ex> home key관련) /base - Android Framework source /libs: Android base library(C++서부터) /audioflinger : Android audio service & HAL source /surfaceflinger : Android video service & HAL /ui Application Framework에서 JNI를 통해서 호출되는 Android framework의 client part HAL(Input device의 경우) - EventHub.cpp /utils wrapping class, 압축관련 유틸리티등... /binder Android Binder & Anonymous shared memory /cmds binder관련인 service manager소스와 여러가지 command들 /media media관련 client & service library
|
hardware |
HAL source & include 일반적으로 android에서 사용하는 hardware관련 소스들을 포함 반드시 이 디렉토리에만 위치하는 것은 아니다 (vendor 디렉토리에 존재하는 경우도 많음)
- libhardware board hardware dependcy가 높은 하드웨어 모듈 들 일반적으로 안드로이드 폰에 탑재가 되지 않고, cpu 혹은 제조사의 모듈에 dependent 한 부분들 안드로이드 소스를 이용해서 컴파일 하지 않는 경우가 많고 모듈단위로 직접 컴파일 해서 안드로이드 root fs에 install하는 경우가 많다.
- libhardware_legacy 일반적으로 안드로이드 폰에 거의 반드시 있어야 하는 hardware 모듈, 안드로이드 컴파일시 같이 컴파일 된다. - wifi/wifi.c
|
out |
android compile 결과물 디렉토리 |
packages |
android 기본 application source 주의해야할 점은 모든 app가 컴파일 되지는 않는다. 모든 app가 컴파일 되기 위해서는 board관련 디렉토리의 Android의 기본 board mk 파일을 수정해야한다. ex> build/target/product/generic.mk generic_with_google.mk
vi ntc100.mk ========================================================= $(call inherit-product, build/target/product/generic.mk) PRODUCT_MANUFACTURER := aesop PRODUCT_NAME := ntc100 PRODUCT_DEVICE := ntc100 PRODUCT_BOARD := ntc100 ========================================================= |
prebuilt |
toolchain & 필요한 binary |
system (read-only) |
android의 기본 binary 소스(ex> init) /core/init : android init source /core/vold : external storage 제어 모듈 Android 2.1까지 vold.conf 파일 참조 /vold : vold2, android 2.2서부터 사용 vold.fstab |
vendor |
vendor specific code ex> HAL ex> product list관리 |
'프로그래밍 > 안드로이드' 카테고리의 다른 글
SD 카드를 다루기 위해 자바 표준 IO를 이용해보자 (0) | 2011.05.04 |
---|---|
[펌]파일 입출력. (0) | 2011.05.04 |
Conversion to Dalvik format failed with error 2 (0) | 2011.04.20 |
[펌]우분투에 안드로이드 개발환경 설정하기 (0) | 2011.03.28 |
[펌][00].Ubuntu android 환경구축 (0) | 2011.03.28 |