작업중에 Home Key와 종료 Key를 제한해야하는 일이 있어서
찾고 있는데 잘 보이지가 않는다. 예전에 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관리

 

출처 : http://kissuu.egloos.com/3859448

Posted by 컴투