본문 바로가기

Programming/Android Kernel,Native25

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.
안드로이드 바인더(Android Binder)가 탄생하기 까지 URL : http://victor8481.tistory.com/240 ..... 나 꽤 오래 전임에도 불구하고 시스템 API를 모두 C++로 제공하는 도전적이고 스타일 있는 시스템으로 기억되고 있다.이 시절을 잊지 못한 사람들이 하이쿠(Haiku) 라는 이름으로 BeOS를 되살려 놓으려고 하고 있다.그 시절의 추억을 되살리고 싶은 분들은 http://www.haiku-os.org/ 로 찾아가 보기 바란다. 그런데 회사가 인수되기 전에 시작한 내부 프로젝트가 있었다고 한다. 오픈 바인더(OpenBinder)라는 프로젝트인데, 차세대 BeOS의 핵심 기능들을 위해 준비되던 컴포넌트 시스템(Component System)이다 ..... 이 프로젝트를 이끌던 Dianne Hackborn 이라는 친구가 팜으로 .. 2014. 10. 13.