The Evolution of Mobile Platform The Evolution of Mobile ...

  • 4,787 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
4,787
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
69
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Evolution of Mobile Platform and Google Android NIPA 공개/지역SW 팀 박성호 수석연구원
  • 2. ◈ Contents • Overview • Mobile Platform Evolution – Past Platform – Current Platform – Near Future Platform • Android Basic – A d id Overview Android O i – Android Architecture – Android Application pp • Android Commercialization – Android Opportunity – Android Adoption Challenge 2 / 20
  • 3. ◈ Overview (I) • What is Mobile Platform ? – 단말의 하드웨어 기능을 상위 계층에서 사용할 수 있도록 하여주고, 상위 응용 계층의 프로그램을 실행하기 위한 환경을 제공함 • What is difference ? Application Application Application Platform Platform OS OS OS H/W H/W H/W Vanilla Phone Feature Phone Smart Phone 3 / 20
  • 4. ◈ Overview (II) Mobile Platform 필요성 필 성 • 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) • S/W reliability – Depends on platform reliability 4 / 20
  • 5. ◈ 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
  • 6. ◈ Mobile Platform Evolution (II) • Current Platform – The past + [Event Handling, Memory Management, File System DB ] Handling Management System, DB…] – UI Framework + Widget – Toolkit (Emulator, Debugging Tool, Air Message Tracer, Documentation….) BREW Architecture LiMo Architecture 6 / 20
  • 7. ◈ 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
  • 8. ◈ Mobile Platform Evolution (IV) 8 / 20
  • 9. ◈ 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 th ird-party developers to develop great applications • Where do we start ? – Platform developers can get reference source code (http://source.android.com/download ) – Application de e ope s ca use t e p e bu t SDK pp cat o developers can the pre-built S (http://developer.android.com ) – Device Manufacturers can benefit from the large pool of application (free & paid) available from Android Market (f id) il bl f A d id M k t (http://www.android.com/market ) 9 / 20
  • 10. ◈ Android Overview (II) • Android Feature – Open Platform ◦ 리눅스를 기반으로 하기때문에 다양한 H/W에 이식하거나 새로운 기능을 부여하기 쉽다 – Dalvik VM (Run Time Layer) (Run-Time ◦ 응용 프로그램 실행환경은 자바 가상머신 환경이며 자바언어로 개발된다 – WebKit Engine ◦ 구글의 다양한 인터넷 서비스를 직접 이용할 수 있는 API 를 가지고 있다 10 / 20
  • 11. ◈ Android Architecture (I) Java C C++ C Android Architecture A d id A hit t • Android Application은 Java 로 개발됨 – Install Java SE Development Kit – Install Eclipse for PHP Developer • Android SDK 다운로드 후 Eclipse 에 ADT (Android Development Tool) Plugin 11 / 20
  • 12. ◈ Android Architecture (II) • Applications – Android는 email client, SMS program, calendar, maps, browser, client program calendar maps browser contacts, 그 외 를 포함한 코어 어플리케이션. – 모든 프로그램은 자바로 작성됨. • Application Framework – 개발자는 모든 API를 코어 어플리케이션과 같은 사용방법으로 사용 이 가능 – 간단한 재사용 컴포넌트, 어떤 어플리케이션과도 호환 가능한 호환 성, 컴포넌트를 교환 가능한 매커니즘. 12 / 20
  • 13. ◈ Android Architecture (III) • Libraries – Android System의 다양한 컴포넌트를 사용하는 C/C++ 라이브러리 – Application Framework를 통해 개발자에게 노출됨 • Android Runtime – 코어 라이브러리는 자바 프로그래밍 언어의 코어 라이브러리의 대부분의 기능을 제공 – 안드로이드 어플리케이션은 자기의 프로세스와 그 자신의 Dalvik VM의 인스턴스를 가 짐 – Dalvik VM 실행 파일은 최소한의 메모리에 최적화된 DEX(Dalvik EXecute) 포맷 – Java 언어로 개발된 클래스를 DX툴을 이용하여 DEX파일로 변환 가능 • Dalvik VM – 임베디드 환경에 최적화된 VM (Memory Management, Garbage Collection 등) – Linux Kernel의 기초적 함수에 의지 – Android는 개발환경 및 배포까지 JVM을 이용하지만 구동에는 Dalvik VM을 사용함으 로써 Sun의 라이센스 문제를 피함 13 / 20
  • 14. ◈ Android Application (I) • Kinds of Android Application – Managed Application g pp ◦ 가장 기본적이고 주요한 Dalvik VM 에서 동작하는 순수 자바로만 개발하는 것을 말한다 – Native Application pp ◦ Native 방식은 Dalvik Application으로 실행은 하고 VM 내에서 C/C++ 로 구성 된 동적라이브러리를 Load 하여 JNI (Java Native Interface) 형태로 함수를 호출하는 방식을 말한다. 이러한 방식의 가장 큰 장점은 성능(속도) 개선이 다 CPU 의 다. 의존도가 높은 계산 가 계산프로그램등은 자바언어보다 C 언어가 유리하며 램등은 유리하며, 반응속도가 중요한 입력창의 검색부분이나 하드웨어를 직접 다루는 경우에 는 Native Application 으로 구현하는 것이 유리하다 – Ajax Application ◦ Ajax 방식은 Android Application 이라기 보다는 웹서버에 JavaScript 와 Ajax 등으로 웹페이지를 구성하고 Android Browser를 통해서 수행하는 방식이다. 그러나 Dalvik Application 에 비해 굉장히 느리기 때문에 UI 속도가 중요하지 않고 보다 범용적인 간단하게 만들수 있는 Application 에 적합하다 14 / 20
  • 15. ◈ Android Application (II) • The Structure of Android Application – Android Application 은 apk 라는 패키지 형태로 구성되어 있다 – apk 는 Dalvik이 실행할 수 있는 형태의 dex 파일과 각각의 리소스들을 가진 WbXML 각 컴포넌트들에 대한 기술이 있는 Manifest로 구성되며 WbXML, zip 압축을 통해 apk 파일로 생성되는 형태이다 15 / 20
  • 16. ◈ Android Application (III) • The Role of JNI in Native Application – 미디어 플레이어를 실행할 경우 리눅스커널의 오디오/비디오 드라이버는 Native Code (C언어 코드)인 라이브러리 Libmedia.so를 통해 접근하도록 설계된다. Libmedia.so 같은 코드는 원래 오픈소스로 제공되기보다는 Android 의 JNI 라 이브러리를 구성하기 위해 Java 인터페이스와 짝을 이루는 라이브러리로 설계된 것이다. 이러한 라이브러리는 Libmedia_jni.so와 연결되어 모든 Native 코드가 자바 함수들과 연결된다. 16 / 20
  • 17. ◈ Android Commercialization (I) • Android Opportunity – Android is Real – Sales of phones running the Android stack will grow at 900 percent rate (e WEEK) – Creative and quick adoption to multiple device types – Growing interest to use Android for other embedded devices - MIDs 17 / 20
  • 18. ◈ Android Commercialization (II) • Android Opportunity - OEMs with Android Framework – Product differentiation – Best use of organization resources – Integrated development platform – Reduced time to market 18 / 20
  • 19. ◈ Android Commercialization (III) Android Adoption Challenge !!! • Open Source Software Development – Community Schedule vs Your Product Schedule – 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 months – Need to actively follow the Android community – Strong Linux kernel and firmware skills needed – G d understanding of A d id framework required Good d t di f Android f k i d – Well established development process and Test environment required to Va lidate implementation 19 / 20
  • 20. THANK YOU 20 / 20