20
The Evolution of Mobile Platform The Evolution of Mobile Platform and Google Android NIPA 공개/지역SW 박성호 수석연구원

The Evolution of Mobile Platform The Evolution of Mobile

Embed Size (px)

Citation preview

Page 1: The Evolution of Mobile Platform The Evolution of Mobile

The Evolution of Mobile PlatformThe Evolution of Mobile Platform and Google Android

NIPA 공개/지역SW 팀박성호 수석연구원

Page 2: The Evolution of Mobile Platform The Evolution of Mobile

◈ Contents

• Overview• Mobile Platform Evolution• Mobile Platform Evolution

– Past Platform– Current Platform– Near Future Platform

• Android BasicA d id O i– Android Overview

– Android Architecture– Android Applicationpp

• Android Commercialization– Android Opportunity– Android Adoption Challenge

2 / 20

Page 3: The Evolution of Mobile Platform The Evolution of Mobile

◈ Overview (I)

• What is Mobile Platform ?– 단말의 하드웨어 기능을 상위 계층에서 사용할 수 있도록 하여주고, 상위

응용 계층의 프로그램을 실행하기 위한 환경을 제공함응용 계층의 프로그램을 실행하기 위한 환경을 제공함

• What is difference ?

Application

Application

Application

OS OS

Platform

OS

Platform

H/W

Vanilla Phone Feature Phone

H/W H/W

Smart Phone

3 / 20

Vanilla Phone Feature Phone Smart Phone

Page 4: The Evolution of Mobile Platform The Evolution of Mobile

◈ Overview (II)

Mobile Platform 필요성

• Fast application development

필 성

• Fast application development – Many sophisticated applications are needed– Easy to use application library interface– Application Development in PC environment

• One source multi use– Use same source for different model (Time to develop/market)Use same source for different model (Time to develop/market)

• S/W reliability – Depends on platform reliability

4 / 20

Page 5: The Evolution of Mobile Platform The Evolution of Mobile

◈ Mobile Platform Evolution (I)

• Past Platform– OS Wrapper (OS system call Platform API)– Runtime Environment (for only download application)

WIPI Architecture J2ME Architecture

5 / 20

Page 6: The Evolution of Mobile Platform The Evolution of Mobile

◈ Mobile Platform Evolution (II)

• Current Platform– The past + [Event Handling Memory Management File System DB ]The past + [Event Handling, Memory Management, File System, DB…]– UI Framework + Widget– Toolkit (Emulator, Debugging Tool, Air Message Tracer, Documentation….)

BREW Architecture LiMo Architecture

6 / 20

Page 7: The Evolution of Mobile Platform The Evolution of Mobile

◈ Mobile Platform Evolution (III)

• Near Future Platform– Current platform functionality + Multimedia Enhancement (OpenGL/ES)p y ( p / )– Openness (Open Platform, Open Application, Open Service…)– Web Service optimized in Mobile

iPhone Architecture Android Architecture

7 / 20

Page 8: The Evolution of Mobile Platform The Evolution of Mobile

◈ Mobile Platform Evolution (IV)

8 / 20

Page 9: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Overview (I)

• What is Android ? – Android is the first free, open source, and fully customizable mobile plat

form. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows third-party developers to develop great applications

• Where do we start ?Platform developers can get reference source code– Platform developers can get reference source code (http://source.android.com/download )

– Application developers can use the pre-built SDK pp cat o de e ope s ca use t e p e bu t S(http://developer.android.com )

– Device Manufacturers can benefit from the large pool of application (f & id) il bl f A d id M k t(free & paid) available from Android Market (http://www.android.com/market )

9 / 20

Page 10: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Overview (II)

• Android Feature• Android Feature– Open Platform

◦ 리눅스를 기반으로 하기때문에 다양한 H/W에 이식하거나 새로운 기능을 부여하기 쉽다

– Dalvik VM (Run-Time Layer)Dalvik VM (Run Time Layer)◦ 응용 프로그램 실행환경은 자바 가상머신 환경이며 자바언어로 개발된다

– WebKit Engine◦ 구글의 다양한 인터넷 서비스를 직접 이용할 수 있는 API 를 가지고 있다

10 / 20

Page 11: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Architecture (I)

JJava

CC++

A d id A hit t

C

Android Architecture

• Android Application은 Java 로 개발됨

– Install Java SE Development KitInstall Java SE Development Kit– Install Eclipse for PHP Developer

• Android SDK 다운로드 후 Eclipse 에 ADT (Android Development Tool) Plugin

11 / 20

Page 12: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Architecture (II)

• ApplicationsAndroid는 email client SMS program calendar maps browser– Android는 email client, SMS program, calendar, maps, browser, contacts, 그 외 를 포함한 코어 어플리케이션.

– 모든 프로그램은 자바로 작성됨.

• Application Framework– 개발자는 모든 API를 코어 어플리케이션과 같은 사용방법으로 사용

이 가능

– 간단한 재사용 컴포넌트, 어떤 어플리케이션과도 호환 가능한 호환간단한 재사용 컴포넌트, 어떤 어플리케이션과도 호환 가능한 호환성, 컴포넌트를 교환 가능한 매커니즘.

12 / 20

Page 13: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Architecture (III)

• Libraries– Android System의 다양한 컴포넌트를 사용하는 C/C++ 라이브러리

– Application Framework를 통해 개발자에게 노출됨

• Android Runtime– 코어 라이브러리는 자바 프로그래밍 언어의 코어 라이브러리의 대부분의 기능을 제공

– 안드로이드 어플리케이션은 자기의 프로세스와 그 자신의 Dalvik VM의 인스턴스를 가짐

Dalvik VM 실행 파일은 최소한의 메모리에 최적화된 DEX(Dalvik EXecute) 포맷– Dalvik VM 실행 파일은 최소한의 메모리에 최적화된 DEX(Dalvik EXecute) 포맷

– Java 언어로 개발된 클래스를 DX툴을 이용하여 DEX파일로 변환 가능

• Dalvik VM• Dalvik VM– 임베디드 환경에 최적화된 VM (Memory Management, Garbage Collection 등)– Linux Kernel의 기초적 함수에 의지

– Android는 개발환경 및 배포까지 JVM을 이용하지만 구동에는 Dalvik VM을 사용함으Android는 개발환경 및 배포까지 JVM을 이용하지만 구동에는 Dalvik VM을 사용함으로써 Sun의 라이센스 문제를 피함

13 / 20

Page 14: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Application (I)

• Kinds of Android Application– Managed Applicationg pp

◦ 가장 기본적이고 주요한 Dalvik VM 에서 동작하는 순수 자바로만 개발하는것을 말한다

– Native Applicationpp◦ Native 방식은 Dalvik Application으로 실행은 하고 VM 내에서 C/C++ 로 구성

된 동적라이브러리를 Load 하여 JNI (Java Native Interface) 형태로 함수를호출하는 방식을 말한다. 이러한 방식의 가장 큰 장점은 성능(속도) 개선이다 의 가 높은 계산 램등은 자바언어보다 언어가 유리하며다. CPU 의존도가 높은 계산프로그램등은 자바언어보다 C 언어가 유리하며, 반응속도가 중요한 입력창의 검색부분이나 하드웨어를 직접 다루는 경우에는 Native Application 으로 구현하는 것이 유리하다

Ajax Application– Ajax Application◦ Ajax 방식은 Android Application 이라기 보다는 웹서버에 JavaScript 와 Ajax

등으로 웹페이지를 구성하고 Android Browser를 통해서 수행하는 방식이다. 그러나 Dalvik Application 에 비해 굉장히 느리기 때문에 UI 속도가 중요하지그러나 Dalvik Application 에 비해 굉장히 느리기 때문에 UI 속도가 중요하지않고 보다 범용적인 간단하게 만들수 있는 Application 에 적합하다

14 / 20

Page 15: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Application (II)

• The Structure of Android ApplicationThe Structure of Android Application– Android Application 은 apk 라는 패키지 형태로 구성되어 있다

– apk 는 Dalvik이 실행할 수 있는 형태의 dex 파일과 각각의 리소스들을가진 WbXML 각 컴포넌트들에 대한 기술이 있는 Manifest로 구성되며가진 WbXML, 각 컴포넌트들에 대한 기술이 있는 Manifest로 구성되며zip 압축을 통해 apk 파일로 생성되는 형태이다

15 / 20

Page 16: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Application (III)

• The Role of JNI in Native Application– 미디어 플레이어를 실행할 경우 리눅스커널의 오디오/비디오 드라이버는 Native

Code (C언어 코드)인 라이브러리 Libmedia.so를 통해 접근하도록 설계된다.Code (C언어 코드)인 라이브러리 Libmedia.so를 통해 접근하도록 설계된다. Libmedia.so 같은 코드는 원래 오픈소스로 제공되기보다는 Android 의 JNI 라이브러리를 구성하기 위해 Java 인터페이스와 짝을 이루는 라이브러리로 설계된것이다. 이러한 라이브러리는 Libmedia_jni.so와 연결되어 모든 Native 코드가자바 함수들과 연결된다.

16 / 20

Page 17: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Commercialization (I)

• Android Opportunity – Android is Real– Sales of phones running the Android stack will grow at 900 percent rate (e

WEEK)WEEK)– Creative and quick adoption to multiple device types– Growing interest to use Android for other embedded devices - MIDs

17 / 20

Page 18: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Commercialization (II)

• Android Opportunity - OEMs with Android Framework– Product differentiation– Best use of organization resources– Integrated development platform– Reduced time to market– Reduced time to market

18 / 20

Page 19: The Evolution of Mobile Platform The Evolution of Mobile

◈ Android Commercialization (III)

Android Adoption Challenge !!!

• Open Source Software Development– Community Schedule vs Your Product Schedule

Community Best Effort Support vs Product Deadlines– Community Best Effort Support vs Product Deadlines– Limited testing or Test environment availability vs Product Quality needs

• Commercializing Android– Making a commercial product with Android is estimated to be between 100

to 150 man monthsto 150 man months– Need to actively follow the Android community– Strong Linux kernel and firmware skills needed

G d d t di f A d id f k i d– Good understanding of Android framework required– Well established development process and Test environment required to Va

lidate implementation

19 / 20

Page 20: The Evolution of Mobile Platform The Evolution of Mobile

THANK YOU

20 / 20