Android Mobile Application Development Part 1
Agenda Part 1 About Android Build Develop Environment Create new Project Composition of Project Simulate Application Part 2 User Interface Activity Toast Preference Log
About Android
Background: Trends (1/2) 스마트폰 OS 점유율 Gatner 2011.4 OS Distribution Andriod 25.5 ios 16.7 RIM 14.8 Symbian 36.6 Windows Mobile 2.8 Linux 2.4 etc. 1.2
Background: Trends (2/2) 안드로이드마켓신규 App. 등록현황 androlib.com 2011.5
About Android from android.com Android 는 OS 와 Middelware 그리고 Core Application 을포함하고있는 Mobile Device 를위한 Software Stack 이다. Android SDK 는 Java Programming Language 를사용하여 Android Platform 상의 Application 을개발하기위해필요한 Tool 들과 API 를제공한다.
Technical Feature 애플리케이션프레임워크컴포넌트에대한재사용및치환 replacement를가능하게함 달빅 (Dalvik) 가상머신모바일디바이스를위해최적화됨 통합브라우저오픈소스웹킷 WebKit 엔진기반 최적화된그래픽자체제작된 2D 그래픽라이브러리와 OpenGL ES 1.0스펙 ( 하드웨어가속은선택사항임 ) 에기반의 3D 그래픽에의해강화됨 SQLite 정형화된데이터저장공간을위한것. 미디어지원일반적인오디오, 비디오그리고정지still 이미지포맷들을지원 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) GSM 테크놀로지 ( 하드웨어의존적 ) 블루투스, EDGE, 3G와 WiFi ( 하드웨어의존적 ) 카메라, GPS, 나침반과가속도계 ( 하드웨어의존적 ) 풍부한개발환경디바이스에뮬레이터, 디버깅툴, 메모리및성능프로파일링그리고이클립스통합개발환경IDE을위한프러그인포함.
Release History Version Date Code Name 1.0 2008 September 23 Android 1.5 2009 April 30 Cupcake 1.6 2009 September 15 Donut 2.1 2009 December 3 Eclair 2.2 2010 May 20 Froyo 2.3 2010 December 6 Gingerbread 3.0 2011 May 10 Honeycomb 4.0 2011 October 19 Ice Cream Sandwich
Recent Release 2011 May 10 2011 October 19
Current Distribution From android.com
Historical Distribution From android.com
Android 3.0 Honeycomb
Android 4.0 Ice Cream Sandwich From engadget.com
Open Handset Alliance(OHA) 안드로이드이용자모임 안드로이드소스및 SDK 공개 OHA 회원사 http://www.openhandsetalliance.com/ Mobile Operators Vodafone, Sprint, Hanset Manufacturers Motorola, 삼성전자, LG 전자, Semiconductor Companies Intel, TI, Software Companies ebay, SkyPop Commercialization Companies Aplix, WindRiver,
Android Platform Architecture
Build Development Environment JDK/JRE Eclipse Android SDK
Build Development Environment 1. JDK/JRE Java Development Kit / 개발도구 Java Runtime Environment / 동작환경 2. Eclipse 프로젝트관리도구 프로젝트생성 / 편집 / 디버깅 / 시뮬레이션 3. Android SDK Software Development Kit(SDK) Android Library, Simulator, 지원하는운영체제 Windows XP, Vista, 7 Mac OS X 10.4.8 이후 (x86만) Linux (Ubuntu 6.06 LTS, Dapper Drake)
1. JDK/JRE (1/7) Java SE(Standard Edition) Java Development Kit Java Runtime Environment Download http://www.oracle.com/technetwork/java/javase/downloads/index.html
1. JDK/JRE (2/7)
1. JDK/JRE (3/7) Java 환경변수설정 ( 중요 ) JDK 설치시 Java VM(Virtual Machine) 의실행을위해시스템환경변수를설정해야한다. 설정할환경변수및값 변수 CLASSPATH JAVA_HOME PATH 값.;%classpath%; C:\Program Files\Java\jdk1.6.0_31 %JAVA_HOME%\bin;
1. JDK/JRE (4/7) Java 환경변수설정 (Window 7 기준 ) 1) 컴퓨터 -> 속성 -> 고급시스템설정
1. JDK/JRE (5/7) Java 환경변수설정 (Window 7 기준 ) 2) 환경변수
1. JDK/JRE (6/7) Java 환경변수설정 (Window 7 기준 ) 3-1) 시스템변수에서해당변수가없을때 -> 새로만들기 3-2) 시스템변수에서해당변수가있을때 -> 편집
1. JDK/JRE (7/7) Java 환경변수설정 (Window 7 기준 ) 주의 : 편집시다른값들이있을경우 ;(semi-colon) 을구분기호로현재값뒤에이어붙인다. Ex.) 현재값 ;%JAVA_HOME%\bin; 아래세변수에대해서환경변수를설정한다. 변수 CLASSPATH JAVA_HOME PATH 값.;%classpath%; C:\Program Files\Java\jdk1.6.0_31 %JAVA_HOME%\bin;
2. Eclipse (1/2) Eclipse IDE for Java Java 개발환경 Download http://eclipse.org/downloads/ 3.4(Ganymede) 이후버전사용추천배포판배포일플랫폼버전 Juno 2012년 6월 ( 예정 ) 3.8 Indigo 2011년 06월 22일 3.7 Helios 2010년 06월 23일 3.6 Galileo 2009년 06월 24일 3.5 Ganymede 2008년 06월 25일 3.4 Europa 2007년 06월 29일 3.3 Callisto 2006년 06월 30일 3.2 Eclipse 3.1 2005년 06월 28일 3.1 Eclipse 3.0 2004년 06월 28일 3
2. Eclipse (2/2)
3. Android SDK (1/24) Android Software Development Kit Eclipse Plugin Eclipse 3.6(Helios) 이하버전에선 http://developer.android.com 에서다운 받은후설치해야한다.
3. Android SDK (2/24)
3. Android SDK (3/24)
3. Android SDK (4/24)
3. Android SDK (5/24)
3. Android SDK (6/24)
3. Android SDK (7/24)
3. Android SDK (8/24)
3. Android SDK (9/24)
3. Android SDK (10/24)
3. Android SDK (11/24)
3. Android SDK (12/24)
3. Android SDK (13/24)
3. Android SDK (14/24)
3. Android SDK (15/24)
3. Android SDK (16/24)
3. Android SDK (17/24)
3. Android SDK (18/24)
3. Android SDK (19/24)
3. Android SDK (20/24)
3. Android SDK (21/24)
3. Android SDK (22/24)
3. Android SDK (23/24)
3. Android SDK (24/24)
Create new Project 프로젝트생성방법학습
Create new Project (1/5)
Create new Project (2/5)
Create new Project (3/5)
Create new Project (4/5)
Create new Project (5/5)
Composition of Project 프로젝트의구성요소
Directory Composition src 프로그램에서동작하는 java 코드들, package가반드시존재해야한다. gen 자동으로생성되는파일들, R.java 파일은 Application이동작하는데필요한 Resource 들을자동으로관리한다.( 절대수정금지 ) res 실제 Resource들이저장되는공간으로 Layout, Media, Constant 값들을갖고있다. AndroidManifest.xml Application에대한 Description으로앱의버전과배포에대한각종정보가저장되어있다.
Features Package name 안드로이드마켓에서검색가능한키워드로동작하게한다. ex) more apps 기능 : 같은패키지명으로검색 일반적으로 domain.organization.category ex) com.android.sample R.java file res 디렉토리에이미지 / 영상이나 Layout(xml file), widget(in xml) 이추가되면자동으로그 id를부여하고이를저장한다. R.layout.main = res/layout/main.xml R.drawable.icon = res/drawable-hdpi/icon.png drawable-hdpi / drawable-mdpi / drawable-ldpi 는해상도에따라같은리소스이름을갖는파일을자동으로선택해준다. 해상도에상관없이같은이미지를사용하고싶다면 drawable 이라는디렉토리를생성해서저장하면된다.
AndroidManifest.xml Android 에서실행되는모든 Application 은 Manifest 를갖고있어야한다. Manifest 의기능 Application 에대한 Java Package 이름을명시하며그 Package Name 은 Unique 하게제공 Application 의구성요소 (Activity, Service, Broadcast Receiver, Content Provider) 를표현하고그러한구성요소들각각에대해구현한클래스들의이름을짓고해당구성요소들이처리 이러한선언들은 Android System 으로하여금어떤구성요소들이어떤조건하에서시작될수있는지를명시 어떤프로세스들이 Application 구성요소들을관리하는지를결정 API 의보호된부분에대한접근이나다른 Application 들과의상호작용을위해 Application 이가져야하는 Permission 선언 또한반대로다른 Application 들이자신의 Components 과상호작용을위해필요한 Permission 선언 Application 이요구하는 Android API 의최소레벨을설정 Application 에연결되어야하는라이브러리들을나열
Simulate Application 테스트하기
Simulate Application (1/3)
Simulate Application (2/3) E-2
Simulate Application (3/3) E-1
Summary Android는 OS와 Middelware 그리고 Core Application을포함하고있는 Mobile Device를위한 Software Stack이다. Android SDK는 Java Programming Language를사용하여 Android Platform 상의 Application을개발하기위해필요한 Tool들과 API를제공한다. Android는현재 3.0(Honeycomb) 버전의 Tablet 전용 OS와 NFC의지원을강화한 4.0(Ice Cream Sandwich) 버전이나와있다. Android Application은 Java Programming Language를사용하여 Eclipse 상의 Android SDK Plug-in으로개발할수있다. Android Application 에는배포, 버전등 App. 의중요한정보를담고 있는 Menifest 파일이존재한다. END