모바일 프로그래밍 개론 UNIT 01 로봇 SW 컨텐츠 교육원 조용수
학습 목표 모바일 프로그래밍이란 ? Embedded System 특성 Mobile OS Hybrid and Native SDK and NDK 2
모바일 프로그래밍이란 ? PC 프로그래밍 : – 강력한 CPU 와 넉넉한 자원 – 강력한 OS 환경 Windows Linux (UNIX) OS X – 다양한 H/W 드라이버 지원 – 다양한 분야의 개발을 지원하며, 다양한 툴 및 프로그램 이 존재함 – 사용자 시스템간의 성능 차이가 심함 3
모바일 프로그래밍이란 ? 모바일 프로그래밍 – 특정 Device : Phone, Tablet, Wearable Device 기타 Embedded System –OS 별 특정 개발 툴 및 방법을 제공 – 제한된 Resource – 제한된 Battery : Power Saving Mode – 정해진 개발 방법 : Programming Language, Open Library 활용 제약 4
Embedded System 특성 CPU : Intel and ARM Memory Storage LCD (Display) – 해상도 –Image Resource & Size Sensor : 각 기기 별 센서 지원 여부 Device : 활용 가능한 Device Battery : 전원 관리 이슈 5
모바일 OS Android –Google iOS –Apple Windows Phone, Windows RT –Microsoft –Phone, Tablet 에 사용 Tizen –Open Source Mobile OS – 삼성 Phone, Gear 2 등에 사용 Firefox OS 6
모바일 OS Android –Google 에서 개발 관리 하는 Mobile Framework –2005 년 Google 이 Android Inc. 를 인수 –2008 년 T-mobile 에서 G1 을 출시 (Android 1.0) – 현재 버전 : Android 5 (Lollipop) –2014 년 2 분기 점유율 : 84% 7
모바일 OS Android –Linux OS 위에 Android Framework 가 동작하는 방식 –Customized Java Virtual Machine 사용 Dalvik : JVM 의 라이선스 문제로 인하여 구글에서 제작한 Java Virtual Machine ART : Android 4.4 (Kitkat) 이상 에서 사용, 5.0 에서부터 Dalvik 을 대체 – 개발 환경 Java Eclipse or Android Studio –PC OS 에 상관없이 개발 가능 –Emulator 및 각종 개발 Tools 제공 8
모바일 OS Android –Phone, Tablet, Wearable 기기 및 Embedded System 에서사용 –Google 에서 Android Framework 소스를 폰 제조사에 제 공하고, 각 제조사에서 Customizing 하여 적용함. – 다양한 H/W 지원에 따른 호환성 문제가 발생 – 제조사의 Customizing 에 따른 OS Upgrade 지원 및 사후 지원 문제가 발생 – 공식적인 SDK 를 사용해도 제조사에 따라 다른 동작하는 경우 발생 9
안드로이드 버전 10 버전 API 레벨버전 코드발표 시기 1.01APPLE PIE CUPCAKE DONUT / 2.15, 6, 7ECLAIR x8FROYO x9, 10GINGERBREAD x / 3.1 / 3.211, 12, 13HONEYCOMB x14, 15ICE_CREAM_SANDWICH ICE_CREAM_SANDWICH_MR / 4.2/ 4.316, 17, 18JELLY_BEAN x19Kitkat Lollipop
안드로이드 구조 11
모바일 OS iOS –iPhone 과 iPad OS 로 사용 – 현재 버전 : iOS 8 – 개발 환경 OS X System X-Code : Objective C – 개발자 등록 비용 : $99 12
모바일 OS iOS 장점 –Xcode 및 빠른 Emulator 지원으로 개발 환경이 편함 –Apple 에서 제공된 Library 와 SDK 를 이용 –OS Upgrade 를 Apple 에서 지원하여 OS 파편화가 심하 지 않음. –UI 지원이 강력하여, 특별한 효과 없이도 완성도 높은 App 생성 – 초기에는 지원 해상도와 기기가 한정되어 있어서 호환성 문제가 발생 하지 않음. 현재에는 다양한 화면을 지원하 는 문제가 발생 13
모바일 OS iOS 단점 –Apple 의 정책에 따른 개발 범위의 제한 –Send Box 타입의 App 으로 인한 App 간 공유 불가 –3 rd Party 개발 툴은 지원하지 않음. – 외부 H/W 및 Bluetooth 연결 을 위한 라이선스 제도 시행 14
모바일 OS OS Upgrade Issue – 기존 출시된 장비의 OS 를 Upgrade 하여 기능 향상 –iOS 기기의 경우 전체 기기가 동시 Upgrade 가능 H/W 제약 등으로 인하여 지원되지 않는 모델 발생 –Android 기기의 경우 제조사의 수정 과정이 필요하여, Google 발표 후 상당 기간 시간이 필요함 H/W 제약, 제조사 미지원 등으로 인하여 적용되지 않는 모델 발 생 따라서 iOS 에 비하여 OS Upgrade 속도가 느림. 15
모바일 OS Open Market 각 모바일 OS 에서 동작하는 App 이나 Music, 영화 등의 컨텐츠 제공을 위한 Market –Apple : App Store Apple 에서 강력하게 관리 App store 에서 다운로드를 해야 iOS 에 설치가 가능 App 등을 배포하기 전 Apple 에서 사전 검증 절차를 가지고 있음 2~3 주 의 검증 기간이 필요. Apple 의 기준 이나 정책에 따라서 App 배포가 중단되기도 함. 타 Open Market 에 비하여 App 수익률 좋음 16
모바일 OS Open Market 각 모바일 OS 에서 동작하는 App 이나 Music, 영화 등의 컨텐츠 제공을 위한 Market –Google : Play Store Google 에서 관리 하지만 사전 검증 절차가 없음. 검증 절차가 없으므로, App Update 가 신속하게 이루어짐. Android OS 는 APK 파일을 자유롭게 설치 가능 -> 3 rd party Market 발생 : T store, Amazon App Store 한국에서 App, Music, Book 컨텐츠 제공 –Microsoft : Microsoft Store -> Windows 8, 8.1 App 17
Hybrid and Native Native – 각 모바일 Os 에서 공식적으로 지원하는 툴 –Compile 과정을 통해서 Platform dependent Binary 생성 Hybrid –Web Base Application –HTML 5 / CSS –Java Script –Hybrid Platform : Sencha or jQuery 등등 호환성 문제 발생 ? –HTML5 표준 지원여부 –Web View 간 구현 차이 발생 18
SDK and NDK SDK – 제조사 공식 지원 Library –Platform 위에서 동작하는 Library 집합 19
SDK and NDK NDK –OS base library –H/W Dependents –JNI : H/W – JAVA 간의 Interface 정의 –Media 나 특정 H/w 지원을 위해서 많이 사용됨. – 게임 등에서 H/W 에 직접 접근하는 방법을 제공하기 위 해 사용 20