- 소프트웨어 프레임워크 제공 : http://developer.android.com/index.html
- 안드로이드 소스 : https://github.com/android
![]() |
안드로이드 구조 - 한글 |
![]() |
android structure |
- 프레임 워크를 이해하면 좋은점
- 구조와 동작원리 파악 -> 안드로이드 프레임워크에 최적화된 S/W설계 가능
<안드로이드 주요 소스코드 구성>
- Kernel
- 안드로이드 리눅스 커널
- Bionic
- 인드로이드 표준 C 라이브러리
- Bootloader
- 참고용 안드로이드 부트로더
- Build
- 안드로이드 빌드 시스템
- Cts
- 안드로이드 호환성 테스트 관련 소스
- Dalvik
- 달빅 가상머신
- External
- 안드로이드에서 사용하는 오픈 소스
- Framework
- 안드로이드 프레임워크
- Hardware
- 안드로이드 HAL(Hardware Abstraction Layer) 소스
- Packages
- 안드로이드 기본 어플리케이션, 컨텐트 프로바이더 등..
- System
- 안드로이드 init 프로세스, 블루트스 도구 모음 등..
<안드로이드 부팅 과정>
![]() |
Step으로 분류 |
![]() |
Linux(embedded system) VS Android VS Linux comparing |
- 리눅스 커널
- 안드로이드 - 리눅스 기반 플랫폼
- init
- init프로세스 - 각종디바이스 초기화, 안드로이드 프레임워크 동작에 필요한 각종 데몬, 컨텍스트 매니저, 미디어 서버, Zygote등을 실행하는 프로세스
- 컨텍스트 매니저
- 프로세스, 시스템 서비스 관리(안드로이드의 시스템 서비스)
- 모든 시스템 서비스는 부팅시 자신의 핸들정보를 컨텍스트 매니저에 등록해야 됨
- 프로세스간 통신 - IPC(Inter-Process Communication) 바인더
- 미디어 서버
- C/C++ 기반으로 작성돼 있는 네이티브 시스템 서비스를 실행하는 역할
- ex) Audio Flinger(오디오 출력담당), Camera
- Zygote
- 애플리케이션의 로딩시간을 단축시키기 위한 목적으로 사용됨
- 자바기반 앱은 Zygote를 통해 fork된 프로세스 상에서 동작
- 시스템 서버
- Zygote에서 최초로 fork된 애플리케이션 프로세스
- 자바시스템 서비스를 실행하는 역할
리눅스 부팅과정
http://www.linuxlab.co.kr/docs/5-2.htm
http://else102.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%A0%84%EC%B2%B4-%EB%B6%80%ED%8C%85%EA%B3%BC%EC%A0%95%EC%9D%98-%EC%9D%B4%ED%95%B4
댓글 없음:
댓글 쓰기