본문 바로가기

Programming200

안드로이드 기본 개념 보호되어 있는 글 입니다. 2014. 10. 15.
Android StartUp URL : http://samse.tistory.com/84 1. Bootloader : 기본적인 hw initialize2. Load linux3. Start kernel - /init/main.c4. Android initialization process - /etc/init.rc -> Start android services: Colsole, adbd, service manager, debuggerd, mountd, rild, zygote, mediaserver, installd, flash_recovery 아래는 init.rc의 process를 도식화한것이다. init : init.rc를 해석하여 수행하고 초기화한다. /dev노드 아래에 %hardware%.rc를 참조하여 디바이스노드를 생성해낸다.. 2014. 10. 14.
adb shell에서 특정 activity실행하기 URL : http://samse.tistory.com/151 .. 위와 같이 AndroidManifest.xml에 activity가 정의되어 있을 때아래와 같이 adb shell에서 명령을 내리면 Activity가 실행됨. /> am start -a android.intent.action.MAIN -n com.iftitah.android.contact/com.iftitah.android.contact.Contact ==> am start a -n / 2014. 10. 14.
Loading & Resolving classes by ClassLoader for APK. 보호되어 있는 글 입니다. 2014. 10. 14.
APP 시작 여행 (I) 보호되어 있는 글 입니다. 2014. 10. 13.
Binder Source Analysis (바인더 소스 분석) URL : http://victor8481.tistory.com/239 ..... Binder는 service_manager와 함께 시작된다.service_manager의 main함수를 살펴보자.binder_open()함수를 통해서 "/dev/binder"를 open하고 binder_loop()함수를 실행하는데,[ bs->fd = open("/dev/binder", O_RDWR); ]이 때 인자로 binder_state 포인터 변수와 BINDER_SERVICE_MANAGER를 넘긴다.이것은 필요에 따라 실행되는 프로세스가 아닌, 안드로이드 부팅과 함께 실행되어 종료될때까지 동작한다. BINDER_SERVICE_MANAGER는 다음과 같이 정의되어있다. binder_loop()함수에서는 무한루프에서 ioc.. 2014. 10. 13.