Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang
Page 2 Table of Contents Android of Overview Android Application 개발환경 구축 프로그래밍 시작, 프로젝트 생성 Application 실습
Page 3 Android of Overview What is Android? Google 이 휴대폰 제조, 서비스, 솔루션, 칩셋, … 등의 업체들과 OHA(Open Handset Alliance) 을 맺고 만든 Mobile Platform Linux kernel 기반의 OS JAVA 기반의 Application Open Source 로 개발
Page 4 Android of Overview Features Application Framework : 컴포넌트의 재사용 / 대체 가능 Dalvik Virtual Machine : Mobile Device 최적화 Integrated Browser : Open Source Webkit SQLite : 구조화된 데이터 저장 Media Support : MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF GSM, Bluetooth, EDGE, 3G, WiFi : 하드웨어 의존적 최적화된 그래픽 : 2D, 3D(OpenGL ES1.0 지원 ) 풍부한 개발환경 : 디버깅, 메모리, 성능 프로파일링, Eclipse IDE Plugin 을 위한 에뮬레이터, 툴 제공
Page 5 Android of Overview Open Source 기반 JNI(Java native Interface) 이용해 native C/C++ 로 작성 Framework API 사용하여 재사용 / 교체 가능 Open Source 기반 JNI(Java native Interface) 이용해 native C/C++ 로 작성 Framework API 사용하여 재사용 / 교체 가능 Linux kernel 영역 Google 에서 Java 로 개발 Runtime 으로 Target 에서 구동 Runtime 으로 Target 에서 구동 Google 에서 Java 로 개발 Architecture
Page 6 Android Application 개발환경 구축 시스템 요구 사항
Page 7 Android Application 개발환경 구축 Java JDK Download
Page 8 Android Application 개발환경 구축 개발 환경 구축 Java JDK Download
Page 9 Android Application 개발환경 구축 개발 환경 구축 Java JDK Download
Page 10 Android Application 개발환경 구축 개발 환경 구축 Java JDK Download
Page 11 Android Application 개발환경 구축 개발 환경 구축 Java JDK Install
Page 12 Android Application 개발환경 구축 개발 환경 구축 Java JDK Install
Page 13 Android Application 개발환경 구축 개발 환경 구축 Java JDK Install
Page 14 Android Application 개발환경 구축 개발 환경 구축 Java JDK Install
Page 15 Android Application 개발환경 구축 개발 환경 구축 JDK 환경설정
Page 16 Android Application 개발환경 구축 개발 환경 구축 JDK 환경설정 시스템 환경변수에 Path 설정 Path 추가
Page 17 Android Application 개발환경 구축 개발 환경 구축 JDK 환경설정 도스 명령 창 (cmd) 에서 “java –version” 실행
Page 18 Android Application 개발환경 구축 개발 환경 구축 Android SDK Download
Page 19 Android Application 개발환경 구축 개발 환경 구축 Android SDK Download
Page 20 Android Application 개발환경 구축 개발 환경 구축 개발 환경 구축 (Windows 의 경우 ) Android SDK Download 설치할 폴더에 저장후 압축 푼다. 예 ) c:\android\android
Page 21 Android Application 개발환경 구축 개발 환경 구축 개발 환경 구축 (Windows 의 경우 ) SDK Setup.exe 실행 바로 실행하면 에러가 발생한다.
Page 22 Android Application 개발환경 구축 개발 환경 구축 개발 환경 구축 (Windows 의 경우 ) 에러 처리 Settings 의 Misc 에서 Force Sources to be fetched using 체크
Page 23 Android Application 개발환경 구축 개발 환경 구축 개발 환경 구축 (Windows 의 경우 ) 항목 Accept 또는 Accept All 선택, Install Accepted 실행
Page 24 Android Application 개발환경 구축 개발 환경 구축 개발 환경 구축 (Windows 의 경우 ) 설치되는 항목 (Accepted All) Usb Driver package, revision 1 SDK Platform Android 1.5, API 3, revision 3 Google APIs by Google Inc., Android API 3, revision 3 SDK Platform Android 1.6, API 4, revision 1 Google APIs by Google Inc., Android API 4, revision 1 SDK Platform Android 1.1, API 2, revision 1 Google APIs by Google Inc., Android API 5, revision 1 Documentation for Android SDK, API 5, revision 1 Downloading -> Installing -> Installed 화면 출력
Page 25 Android Application 개발환경 구축 개발 환경 구축 Android SDK 환경설정 시스템 환경 변수에 Path 설정
Page 26 Android Application 개발환경 구축 개발 환경 구축 AVD(Android Virtual Device) 설정 현재 생성되어 있는 AVD 종류 알아보기 android list avd (command 창에서 수행, 이후 동일 ) 설치된 항목이 없는 경우
Page 27 Android Application 개발환경 구축 개발 환경 구축 AVD(Android Virtual Device) 설정 AVD 종류를 보고 버젼에 맞는 번호 찾기 android list target
Page 28 Android Application 개발환경 구축 개발 환경 구축 AVD(Android Virtual Device) 설정 번호에 맞는 AVD 설치 android create avd –t [ 번호 ] –c [sd 카드 ] –p [ 설치폴더 ] –n [ 이름 ] –s [ 스킨 ] –f ( 강제로 생성, 기존 Overwrite) 예 ) android create avd -t 4 -c 32M -p c:\android\avd\avd_20 -n avd_20 -s HVGA AVD Manager 에서도 설치 가능
Page 29 Android Application 개발환경 구축 개발 환경 구축 Eclipse Download
Page 30 Android Application 개발환경 구축 개발 환경 구축 Eclipse Download
Page 31 Android Application 개발환경 구축 개발 환경 구축 Eclipse Download
Page 32 Android Application 개발환경 구축 개발 환경 구축 Eclipse 환경설정 eclipse-jee-galileo-win32.zip 파일 압축 풀기 ex) C:\Android\eclipse
Page 33 Android Application 개발환경 구축 개발 환경 구축 Eclipse 환경 설정 작업 폴더 (workspace) 생성 ex) c:\Android \workspace
Page 34 Android Application 개발환경 구축 개발 환경 구축 Eclipse 환경설정 eclipse.exe 실행 후 작업 폴더 설정
Page 35 Android Application 개발환경 구축 개발 환경 구축 Eclipse Download eclipse 작업 폴더 설정
Page 36 Android Application 개발환경 구축 개발 환경 구축 Eclipse Download eclipse 실행 후 모습
Page 37 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT Add-ons ADT (Android Developer Tools) 메뉴 Help -> Install New Software… 선택
Page 38 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT Add-ons
Page 39 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT Add-ons
Page 40 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT Add-ons
Page 41 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT Add-ons
Page 42 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT 환경설정 메뉴 Window -> Preferences 선택
Page 43 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT 환경설정
Page 44 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT 환경설정
Page 45 Android Application 개발환경 구축 개발 환경 구축 Eclipse ADT 환경설정 메뉴 Window -> Android AVD Manager 선택
Page 46 Android Application 개발환경 구축 ( 구 ) 개발 환경 구축 Eclipse ADT 환경 설정
Page 47 Android Project 생성 Project 생성 메뉴 New->Project or Other->Android–Android Project
Page 48 Android Project 생성 Project 생성 Project Name : HelloAndroid Android 2.0 선택 Application Name : HelloAndroid Package Name : com.zang.helloandroid Create Activity 체크 : HelloAndroid
Page 49 Android Project 생성 Project 생성 ※ 처음 생성시 다음과 같은 에러 화면이 나올 수 있음.
Page 50 Android Application 개발환경 구축 Project 구성
Page 51 [ 참고 1] OHA(Open Handset Alliance) Mobile Operators Handset Manufacturers Semiconductor Companies Software Companies Commercialization Companies
Page 52 [ 참고 2] [ 참고 2] Dalvik VM is not Java VM Android 는 JVM 이 아닌 Dalvik VM 사용 이유는 SUN 의 라이센스를 피하기 위함 Java 는 GPLv2 하에서 배포된 Open Source Java VM 탑재시 SUN 에 라이선스 비용 지불 (Java ME) Android 에서는 Java SE 를 사용 Dalvik VM 의 특징 레지스터 기반 thread 와 low-level 메모리 관리 기능 Linux kernel 의존.java.java.class.class.dex.dex.apk.apk
Page 53 Android of Overview Process of the Memory Structure Embed Linux 와 논리 메모리 공간의 구성 비교 프로그램 본체 공유 라이브러리, 공유 파일 (uClibc 등의 so 파일, font)스택 공유 라이브러리, 공유 파일 (uClibc 등의 so 파일, font)스택 ARM Embed Linux 2.2 0x x Android 프로그램 본체 공유 파일 (font, Dalvik VM 의 Dalvik VM 의 실행 Application) 공유 라이브러리 (libandroid_runtime 등의.so 파일 ) 공유 파일 (font, Dalvik VM 의 Dalvik VM 의 실행 Application) 공유 라이브러리 (libandroid_runtime 등의.so 파일 ) 스택스택 0x x xB
Page 54 Android of Overview 안드로이드 구동 ARM Based Target Board Android Bootloader Load Linux Start Kernel - /init/main.c Initialization Process /etc/init.rc Start Android Services Console, adbd, Service Manager, mountd, debuggerd, ril-daemon, zygote, mediaserver, installd, flash_recovery
Page 55 Android of Overview File System Emulator 환경에서의 File System 제어 (Linux 환경 ) PC 에서 동작하는 Android Debug Bridge(adb) 툴을 사용하여 Linux 의 Shell 을 조작할수 있다. emulator 상에서 동작하는 adbd 프로세서와 통신 // varvartmptmpsystemsystemsyssyssbinsbinetcetcprocprocdatadatarootroot binbinappappframeworkframeworkliblib……systemsystemdalvik-cachedalvik-cache……logslogs Linux Shell Command Application Program Java Library Native Code Library 저작권 관리정보, 로그, 다운로드, App Data