2016년 4월 11일 월요일

[인사이드 안드로이드] 1. 안드로이드 프레임워크 개요




안드로이드 구조 - 한글
android structure








  • 프레임 워크를 이해하면 좋은점 
    • 구조와 동작원리 파악 -> 안드로이드 프레임워크에 최적화된 S/W설계 가능


<안드로이드 주요 소스코드 구성>

  1. Kernel  
    • 안드로이드 리눅스 커널
  2. Bionic 
    • 인드로이드 표준 C 라이브러리
  3. Bootloader 
    • 참고용 안드로이드 부트로더
  4. Build 
    • 안드로이드 빌드 시스템
  5. Cts
    • 안드로이드 호환성 테스트 관련 소스
  6. Dalvik 
    • 달빅 가상머신
  7. External
    • 안드로이드에서 사용하는 오픈 소스
  8. Framework
    • 안드로이드 프레임워크
  9. Hardware
    • 안드로이드 HAL(Hardware Abstraction Layer) 소스
  10. Packages 
    • 안드로이드 기본 어플리케이션, 컨텐트 프로바이더 등..
  11. System 
    • 안드로이드 init 프로세스, 블루트스 도구 모음 등..


<안드로이드 부팅 과정>




Step으로 분류

Linux(embedded system) VS Android VS Linux comparing



  1. 리눅스 커널
    • 안드로이드 - 리눅스 기반 플랫폼
  2. init
    • init프로세스 - 각종디바이스 초기화, 안드로이드 프레임워크 동작에 필요한 각종 데몬, 컨텍스트 매니저, 미디어 서버, Zygote등을 실행하는 프로세스
  3. 컨텍스트 매니저
    • 프로세스, 시스템 서비스 관리(안드로이드의 시스템 서비스)
      • 모든 시스템 서비스는 부팅시 자신의 핸들정보를 컨텍스트 매니저에 등록해야 됨
    • 프로세스간 통신 - IPC(Inter-Process Communication) 바인더
  4. 미디어 서버
    • C/C++ 기반으로 작성돼 있는 네이티브 시스템 서비스를 실행하는 역할
      • ex) Audio Flinger(오디오 출력담당), Camera
  5. Zygote
    • 애플리케이션의 로딩시간을 단축시키기 위한 목적으로 사용됨
    • 자바기반 앱은 Zygote를 통해 fork된 프로세스 상에서 동작
  6. 시스템 서버
    • 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


댓글 없음:

댓글 쓰기