190 likes | 353 Views
석철환. What is Android? . Android 인간을 닮은 인공적으로 만들어진 존재 Google Android 운영체제 , 미들웨어 , 중요 소프트웨어를 포함한 모바일 기기를 위한 소프트웨어 스택. Features. Application framework 컴포넌트의 재사용 , 이동이 가능 Dalvik virtual machine 모바일 기기에 최적화 Integrated browser 오픈소스인 WebKit 엔진 기반 Optimized graphics
E N D
What is Android? • Android • 인간을 닮은 인공적으로 만들어진 존재 • Google Android • 운영체제, 미들웨어, 중요 소프트웨어를 포함한 모바일 기기를 위한 소프트웨어 스택
Features • Application framework • 컴포넌트의 재사용, 이동이 가능 • Dalvik virtual machine • 모바일 기기에 최적화 • Integrated browser • 오픈소스인 WebKit엔진 기반 • Optimized graphics • 커스텀 2D 그래픽 라이브러리 이용, OpenGL ES 1.0 기반 3D • SQLite • 구조화된 데이터 저장소
Features • Media support • MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) • GSM Telephony • Bluetooth, EDGE, 3G, and WiFiCamera, GPS, compass, and accelerometer • Rich development environment • 에뮬레이터, 디버깅을 위한툴, 성능 분석기, Eclipse IDE 을 위한 플러그인을 포함
Android Architecture • Applications • Android는 email client, SMS program, calendar, maps, browser, contacts, 그 외 를 포함한 코어 어플리케이션. • 모든 프로그램은 자바로 작성됨. • Application Framework • 개발자는 모든 API를 코어 어플리케이션과 같은 사용방법으로 사용이 가능 • 간단한 재사용 컴포넌트, 어떤 어플리케이션과도 호환 가능한 호환성, 컴포넌트를 교환 가능한 매커니즘.
Android Architecture • Libraries • Android System의 다양한 컴포넌트를 사용하는 C/C++ 라이브러리 • Application Framework를 통해 개발자에게 노출됨 • Linux Kernel • Linux version 2.6 • security, memory management, process management, network stack, and driver model • 하드웨어와 소프트웨어와 소프트웨어 스택 사이의 추상화 층 제공
Android Architecture • Android Runtime • 코어 라이브러리는 자바 프로그래밍 언어의 코어 라이브러리의 대부분의 기능을 제공 • 안드로이드 어플리케이션은 자기의 프로세스와 그 자신의 Dalvik VM의 인스턴스를 가짐 • Dalvik VM 실행 파일은 최소한의 메모리에 최적화된 DEX(Dalvik EXecute) 포맷 • Java 언어로 개발된 클래스를 DX툴을 이용하여 DEX파일로 변환 가능
Dalvik VM • Register-Base VM : JVM과는 다른 방식 • JVM은 Stack Base • Linux Kernel의 기초적 함수에 의지 • Android는 개발환경 및 배포까지 JVM을 이용하지만 구동에는 Dalvik VM을 사용함으로써 Sun의 라이센스 문제를 피함 • 아직 Android 구성 요소 중 오픈 되지 않은 부분
Packages • android.util • android.os • android.graphics • android.text, android.text.method, android.text.style, and android.text.util • android.database • android.content • android.view • android.widget • android.app • android.provider • android.telephony • android.webkit
Development • Eclipse사용 • Eclipse Plug-in 제공 ADT(Android Devlopment Tools) • Debugger • Dalvik Debug Monitor Server (DDMS) tool
Development • package com.android.hello; • import android.app.Activity; • import android.os.Bundle; • import android.widget.TextView; • public class HelloAndroid extends Activity { • /** Called when the activity is first created. */ • @Override • public void onCreate(Bundle icicle) { • super.onCreate(icicle); • TextView tv = new TextView(this); • tv.setText("안녕!! 안드로이드!!"); • //setContentView(R.layout.main); • setContentView(tv); • } • }
Android Demo • http://www.youtube.com/watch?v=3SRirYrOviE
Don't be evil • "...It's called Android, and it's new Open Source operating system and software platform for mobile phones..." –세르게이 브린 • “안드로이드는 오픈 소스를 하겠지만 소스 자체는 첫 안드로이드 전화기가 판매될 2008년 말까지는 공개되지 않을 것입니다.” - 구글 모바일 팀의 관리자인 Dave Burke • 오픈 소스 플랫폼이라고 대외적으로 알리고 있으나, 앞으로 약 1년간 소스가 공개되지 않을 플랫폼을 오픈 소스 플랫폼으로 광고하는 것은 부정직한 것!!
Don't be evil • http://code.google.com/p/android/downloads/list - 안드로이드 소스 • 대부분의 소스는 공개 중이지만 핵심인 Dalvik VM에 관한 소스는 공개되지 않음 • Sun의 Java 오픈소스 화(GPLv2) • Android (아파치 라이센스 v2) • Sun과의 라이센스 분쟁(VM) • WIPI – Sun과 분쟁
End • 구글 700Mhz대역 주파수 경매 참가 중 • 경매에서 승자가 될 확률이 줄어들 듯 • ( 버라이즌 컨소시엄 유력 ) • 10만 달러 상금의 Android 개발 대회 진행 중 • 안드로이드가 탑재된 G폰 프로토타입 공개
Reference • http://code.google.com/android - 안드로이드 공식 홈페이지 • http://kldp.org–오픈소스 관점에서 안드로이드 • http://youtube.com/watch?v=1FJHYqE0RDg– Android 소개 • http://youtube.com/watch?v=1oZGbR71lDk– Android 폰 프로토타입 • http://nemustech.blogspot.com/ - PX270에 Android 포팅