모바일 안드로이드 아키텍처

Similar documents
Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

PCServerMgmt7

1부

THE TITLE

안드로이드 서비스

Microsoft PowerPoint - 01.Android-개요 done.pptx

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

서현수

Microsoft PowerPoint - 13-em14-안드로이드.ppt [호환 모드]

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

¨ìÃÊÁ¡2

( )부록

1217 WebTrafMon II

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

PowerPoint Template

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

Assign an IP Address and Access the Video Stream - Installation Guide

04_오픈지엘API.key

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

PowerPoint 프레젠테이션

보안공학연구회

PowerPoint 프레젠테이션

슬라이드 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

슬라이드 1



HWP Document

PowerPoint 프레젠테이션

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

untitled

ESP1ºÎ-04

08SW

Microsoft PowerPoint App Fundamentals[Part1].pptx

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

<4D F736F F D20C1A4BAB8C5EBBDC5C1F8C8EFC7F9C8B8BFF8B0ED5FBDBAB8B6C6AEBDC3B4EBBAF22E727466>

[Brochure] KOR_TunA

Microsoft Word - 김완석.doc

PowerPoint 프레젠테이션

1

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

vm-웨어-01장

Chap7.PDF

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

앞부속

슬라이드 1

<BDBAB8B6C6AEC6BCBAF12DC3D6C3D6C1BE5B315D2E687770>

JVM 메모리구조

분산처리 프레임워크를 활용한대용량 영상 고속분석 시스템

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

Secure Programming Lecture1 : Introduction

ESET Mobile Security for Android

휴대폰부품 아모텍, 자화전자 투자 지표 요약 아모텍: 투자의견 BUY, 목표 22,원 (단위: 억원) 자화전자: 투자의견 BUY, 목표 32,원(상향) P 213E 214E P 213E 214E 매출액


될때까지안드로이드 1 부 _ 천리길도한걸음부터 2 부 _ 인내는쓰고열매는달다 3 부 _ 공든탑이무너지랴? 4 부 _ 구슬이서말이어도꿰어야보배 " 천리길 " 은약 400km로서서울에서부산까지의거리와비슷합니다. 꽤먼거리이지요. 안드로이드프로그래밍을배우는과정도어쩌면멀고도험한

KDTÁ¾ÇÕ-2-07/03

PowerPoint 프레젠테이션

歯이시홍).PDF

J2EE & Web Services iSeminar

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Service-Oriented Architecture Copyright Tmax Soft 2005

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

이제는 쓸모없는 질문들 1. 스마트폰 열기가 과연 계속될까? 2. 언제 스마트폰이 일반 휴대폰을 앞지를까? (2010년 10%, 2012년 33% 예상) 3. 삼성의 스마트폰 OS 바다는 과연 성공할 수 있을까? 지금부터 기업들이 관심 가져야 할 질문들 1. 스마트폰은

No Slide Title

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

KAA2005.9/10 Ãâ·Â

歯J PDF

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

vm-웨어-앞부속

Intro to Servlet, EJB, JSP, WS

슬라이드 1


Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

untitled

DocsPin_Korean.pages

기술 이력서 2.0

Microsoft PowerPoint - chap01-C언어개요.pptx

KDTÁ¾ÇÕ-1-07/03

PowerPoint Presentation

Ä¡¿ì³»ÁöÃÖÁ¾

김기남_ATDC2016_160620_[키노트].key

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

TTA Journal No.157_서체변경.indd

KEY 디바이스 드라이버

thesis

45호_N스크린 추진과정과 주체별 서비스 전략 분석.hwp

PowerPoint Presentation

슬라이드 1

제 출 문 환경부장관 귀하 본 보고서를 습마트기기 활용 환경지킴이 및 교육 통합 서비스 개 발 과제의 최종보고서로 제출합니다. 주관연구기관 : 주관연구기관장 : 2015년 10월 주식회사 덕키즈 김 형 준 (주관)연구책임자 : 문종욱 (주관)참여연구원 : 김형준, 문병

Special Theme _ 스마트폰 정보보호 스마트폰은 기존 PC에서 가지고 있던 위협과 모바일 기기의 위협을 모두 포함하고 있다. 다시 말하면, 다양 한 기능이 추가된 만큼 기존 PC에서 나타났던 많은 위 협들이 그대로 상속되며, 신규 서비스 부가로 인해 신 규 위

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

2.1+ Offline package installation. Web storage Persistent and session storage. Web SQL storage (no active) Persistent SQLite storage. Geolocation Geol

Interstage5 SOAP서비스 설정 가이드

금오공대 컴퓨터공학전공 강의자료

Transcription:

2017( 제 10 회 ) 한국소프트웨어아키텍트대회 2017. 7. 20. 티온소프트김수현 shkim.hi@gmail.com

목차 1 Android OS Layer Architecture 2 Android Technical Architecture 3 Android Multimedia Architecture 2

Android OS Layer Architecture 안드로이드 OS 버전 버전이름 API 레벨리눅스커널 버전이름 API 레벨리눅스커널 1.5 컵케이크 (Cupcake) 3 2.6.27 1.6 도넛(Donut) 4 2.6.29 4.0 아이스크림샌드위치 (Icecream Sandwitch) 4.1 젤리빈(Jellybean) 14, 15(4.0.4) 3.0.1 16, 17, 3.0.31 18(4.3.1) 3.4 2.0 에클레어 (Éclair) 5, 6, 7(2.1) 2.6.29 4.4 킷캣 (Kitkat) 19 3.4 2.2 프로요 (Froyo) 8 2.6.32 5.0 롤리팝 (Lollipop) 21, 22(5.1.1) 3.4 2.3 진저브레드 (Gingerbread) 9, 10(2.3.7) 2.6.35 6.0 마시멜로 (Marshmallow) 23 3.10.83 3.0 허니콤 (Honeycomb) 11,12,13(3.2.6) 2.6.36 7.0 누가 (Nougat) 24, 25 4.7.2 3

Android OS Layer Architecture 안드로이드 OS 버전과시장점유율 (2017.5.2 수집 ) 출처 : developer.android.com 4

Android OS Layer Architecture 출처 : developer.android.com 5

Android OS Layer Architecture ART(Dalvik) VM 출처 : developer.android.com 6

Android OS Layer Architecture Real Target OS = AOSP+ Linux Kernel + HAL+ GMS(Compatibility Program) 출처 : www.kandroid.org 7

목차 1 Android OS Layer Architecture 2 Android Technical Architecture 3 Android Multimedia Architecture 8

Android Technical Architecture Native 출처 : developer.android.com 9

Android Technical Architecture Android App. (JAVA) Binder App. Framework (JAVA) Java System Services Native Framework (C/C++) HAL Binder Android (Linux) Kernel Ashmem Logger ART Virtual Machine JNI Native System Services Native Libraries 10

Android Technical Architecture Android Application Framework - API 기반인터페이스제공 Activity Manager View System Window Manager Package Manager Power Manager Telephony Manager -Android 애플리케이션의Life Cycle 을관리 - 표준 widget 담당 - 모든응용프로그램과관련된화면담당 - 시스템에서동작중인응용프로그램들의정보담당 -Android 애플리케이션과프레임웍단의저전력제어 -Telephony 관련Android 애플리케이션들에게모뎀서비스제공및모뎀제어. 11

Android Technical Architecture Android Application Framework Application 핵심 Components 제공 Android Application Architecture 출처 : http://androidhuman.com/244 출처 : debveloper.android.com 12

Android Technical Architecture Android Application Framework Binder 기반시스템서비스제공 출처 : www.kandroid.org 13

Android Technical Architecture Android Application Framework Binder 기반시스템서비스제공 getservice() addservice() Use Services ServiceManager (ContextManager) ServiceProvider (System Services) ServiceUsers (Applications) Binder (/dev/binder) 14

Android Technical Architecture Android Application Framework Proxy/Stub 패턴의 Binder IPC 구조 23 출처 : Douglas C. Schmidt 15

Android Technical Architecture Client obj_aa = getsystemservice(aa); obj_aa.a(); interface IAA { int a(); float b (); obj_aa.b(); Application.java } IAA.aidl IAA.Stub.Proxy a() {mremote.transact (code, data, reply)} Bider IPC 메시지 RPC code Service class AA { int aa(); float bb(); int cc(); int dd(); } AA.java IAA.Stub ontransact() {****} Service Layer RPC Layer 안드로이드바인더계층구조native tranasct(); BinderProxy.java transact() { + handle, transact() } BpBinder.cpp IPCThreadState.cpp RPC data Binder Handle Binder Protocol Binder.java exectransact() { ontransact() } JavaBBinder.cpp ontransact() { exectransact() } BBinder.cpp transact() { ontransact() } IPC Layer transact(+protiocol); talkwithdriver(){ ioctl() } Binder Driver (/dev/binder) IPCThreadState.cpp talkwithdriver(){ ioctl() }; execcommand() { transact() } 16

Android Technical Architecture Android Runtime ART(Dalvik) Virtual Machine - 임베디드환경에최적화된독자적인가상머신 - 애플리케이션의호환성과실행일관성을제공 - 최적화된포맷 (.dex) 과Dalvik 바이트코드실행 - 다양한가상머신프로세스들을지원 - 최적화된바이트코드인터프리터기반 - 실행시메모리를효율적으로사용 Core Libraries - 단순하고익숙한개발플랫폼을제공하는Java 언어를위한Core API들을포함 -Data Structure, Utility, File Access, Network Access, Graphics 등이포함 -Apache Harmony Open Source Java SE 17

Android Technical Architecture ART Runtime & JNI(Java Native Interface) 안드로이드애플리케이션패키지 (.apk) (JNI) 출처 : Distributedand Cloud Computing Lab., Sogang University 18

Android Technical Architecture Android Native Libraries Bionic Libc - 임베디드에서사용을위해최적화된libc -BSD 라이선스를따름 Native Services - AudioFlinger - SurfaceFlinger - MediaPlayer -Camera -Radio OpenGL/ES EGL - 모든응용프로그램과관련된화면담당 SQLite -Android 내장데이터베이스엔진 - 오픈소스엔진 WebKit/ Chrome -Android 웹브라우저엔진 - 오픈소스엔진 External Native Libraries - bison,clang -Media Fw -libgsm -libdrm -smali. 19

Android Technical Architecture HAL (Hardware Abstraction Layer) HAL Libraries -Android 가요구하는H/W 에대한driver 추상화layer -Android 가정의한API 에맞게구현하여야동작함 -Low level 커널드라이버와안드로이드interface 간중간단에위치 - 개발자가구현하기쉽게통일된APIs 로구성 - 모든제조사가자신의component 를안드로이드플랫폼에넣을수있게구성됨 20

Android Technical Architecture Android Kernel (Linux Kernel) Kernel Key Functions - 프로세스관리 - 메모리관리 - 파일시스템관리 - 디바이스관리 - 네트웍관리 Binder IPC -Android 애플리케이션프로세스간통신제어와응용들에게시스템서비스제공을위한기능 Ashmen IPC -Android 애플리케이션의공유메모리제어를위한기능 WakeLock -Android 애플리케이션저전력제어를위한기능 Low Memory Killer - 시스템메모리부족시 Android 애플레케이션제어기능 Logger -Android 애플리케이션및시스템로그제어를위한기능. 21

목차 1 Android OS Layer Architecture 2 Android Technical Architecture 3 Android Multimedia Architecture 22

Android Multimedia Architecture 출처 : Chin-Feng Lai, Assistant Professor, institute of CSIE, National Ilan University, MMN Lab. 23

Android Multimedia Architecture 출처 : Chin-Feng Lai, Assistant Professor, institute of CSIE, National Ilan University, MMN Lab. 24

Android Multimedia Architecture Main Linux Audio Driver 출처 : Chin-Feng Lai, Assistant Professor, institute of CSIE, National Ilan University, MMN Lab. 25

안드로이드가그리는방식방식Android Multimedia Architecture 출처 : www.kandroid.org 26 그리는안드로이드가

2017( 제 10 회 ) 한국소프트웨어아키텍트대회 2017. 7. 20. 티온소프트김수현 shkim.hi@gmail.com