슬라이드 1

Similar documents
슬라이드 1

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

슬라이드 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - chap01-C언어개요.pptx

4S 1차년도 평가 발표자료

슬라이드 1

PowerPoint 프레젠테이션

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

JDK이클립스

Microsoft Word - 안드로이드_개발_매뉴얼1.docx

슬라이드 1

Microsoft Word - src.doc

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

서현수

PowerPoint Template

untitled

슬라이드 1

Secure Programming Lecture1 : Introduction

PowerPoint 프레젠테이션

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

1부

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

슬라이드 1

Microsoft PowerPoint App Fundamentals[Part1].pptx

슬라이드 1

슬라이드 1

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

vi 사용법

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Microsoft Word ARM_ver2_0a.docx

PowerPoint 프레젠테이션

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

PowerPoint 프레젠테이션

슬라이드 1

Facebook API

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

The Pocket Guide to TCP/IP Sockets: C Version

스마트월드캠퍼스 교육교제

PowerPoint Template

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PA for SWE2007

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

슬라이드 1

Microsoft PowerPoint - chap-02.pptx

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

PowerPoint 프레젠테이션

KEY 디바이스 드라이버

DE1-SoC Board

ISP and CodeVisionAVR C Compiler.hwp

슬라이드 1

Chapter 1

( )부록

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

Microsoft Word - Modelsim_QuartusII타이밍시뮬레이션.doc

문서의 제목 나눔고딕B, 54pt

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

정보

Microsoft PowerPoint - 1C언어소개0.PPT

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint Presentation

PowerPoint Template

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

tiawPlot ac 사용방법

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

*2008년1월호진짜

PowerPoint Presentation

gcloud storage 사용자가이드 1 / 17

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

SBR-100S User Manual

쉽게 풀어쓴 C 프로그래밍

JVM 메모리구조

Keil Flexlm 라이선스 설명서

NTD36HD Manual

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

PowerPoint 프레젠테이션

tut_modelsim(student).hwp

Solaris /Linux ArcGIS Engine 설치미디어의 Install_UNIX.htm 을참조하시기바랍니다. 1) ArcObjects SDK 10 for the.net Framework 설치 설치메뉴중 ArcObjects SDK for the.net Framew

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

모바일 안드로이드 아키텍처

Mango220 Android How to compile and Transfer image to Target

Transcription:

14 장타깃장치로고급포팅하기

시작하면서 2 목차 14.1 안드로이드에서 C 프로그램실행시키기 14.2 안드로이드 NDK 설치 14.3 NDK 기초실습 14.4 NDK 고급실습

14.1 C 프로그램실행시키기 3 안드로이드플랫폼에서애플리케이션 자바 C/C++ 자바애플리케이션과 C/C++ 프로그램과의상호연동 에뮬레이터에서 apk 패키지아닌 C/C++ 프로그램실행

14.1 C 프로그램실행시키기 4 [ 실습 14-1] C 로 helloworld.c 빌드, 실행 (1) vi helloworld.c 01 #include <stdio.h> 02 int main(int argc, char **argv) 03 { 04 printf("hello World! \n"); 05 return 0; 06 } (2) arm-none-linux-gnueabi-gcc -static helloworld.c -o helloworld 다음은실행파일을만들기위하여컴파일과정을짂행한다. gcc 를사용하여애플리케이션컴파일과빌드를한다. 정적 (static) 옵션을사용하여빌드를한다.

14.1 C 프로그램실행시키기 5 [ 실습 14-1] C 로 helloworld.c 빌드, 실행 (3) adb push helloworld data/helloworld 리눅스에서새로작성한애플리케이션실행파일 helloworld 을윈도우의에뮬레이터에서실행해볼수있도록에뮬레이터로복사한다. adb 를사용하여 에뮬레이터파일시스템의 data/helloworld 디렉토리로업로드한다. (4) adb shell 에뮬레이터쉘모드로갂다. (5) chmod 777 data/helloworld helloworld 프로그램에대한소유권한을실행가능상태로설정한다. (6)./helloworld 파일을실행시키기위하여./helloworld 를입력한다. 리눅스는실행파일에대한경로정보를현재디렉토리가포함하고있지않아서, 현재디렉토리를나타내는접두사./ 을붙여준다. 갂단하지만안드로이드에뮬레이터에서리눅스 C 프로그램이동작되는것을확인할수있다. (7) Hello World! 실행결과 Hello World! 가화면에나타나는것을확인한다.

14.1 C 프로그램실행시키기 6 [ 실습 14-2] C 로 hellodynamic.c 빌드, 실행 (1) < 실습 14-1> 처럼 hellodynamic.c 를작성한다. (2) 에뮬레이터 /system/lib 파일을 D:\android\system\lib 으로추출

14.1 C 프로그램실행시키기 7 [ 실습 14-2] C 로 hellodynamic.c 빌드, 실행 (3) arm-none-linux-gnueabi-gcc -c hellodynamic.c -o hellodynamic.o hellodynamic.c 를컴파일한다. -c 옵션으로컴파일만수행한다. (4) arm-none-linux-gnueabi-ld -entry=main -dynamic-linker /system/bin/linker -nostdlib -rpath /system/lib -rpath-link /android/system/lib -L /android/system/lib -I android_runtime -I c -o hellodynamic hellodynamic.o hellodynamic.c 프로그램에대한라이브러리를동적으로연결하여빌드하기 위하여 arm-none-linux-gnueabi-ld 를사용한다. (5) SDK \tools\adb push hellodynamic /data/ 리눅스서버에서동적으로빌드한 hellodynamic 파일을윈도우기반의 SDK \tools 디렉터리로복사한다.

14.1 C 프로그램실행시키기 8 [ 실습 14-2] C 로 hellodynamic.c 빌드, 실행 (6) # adb shell; # cd data; # ls -l 윈도우에서 adb 셸모드로들어갂후, 에뮬레이터 /data 디렉터리로이동한다. 파일목록을 ls -l 로검사한다. 2504 hellodynamic 568231 helloworld (7)./helloworld 실행결과로 Hello World! 를갖는다. (8)./hellodynamic 실행결과로 Hello World! [1] Killed./hellodynamic

14.2 안드로이드 NDK 설치 9 Java : JNI (Java Native Interface) 안드로이드 : NDK (Native Development Kit) Native method? 안드로이드에서사용할수있도록 C/C++ 로만들어짂라이브러리 안드로이드에서는 NDK 는 C/C++ 로작성된코드를공유라이브러리형태로만들어안드로이드애플리케이션이사용할수있도록하는역할 [ 그림 14-1] NDK 역할

14.2 안드로이드 NDK 설치 10 NDK 는 C/C++ 로개발된코드를네이티브라이브러리형태로만들어 Java 에서사용할수있도록해주는도구와빌드파일을포함 네이티브 API 를위하여다음과같은헤더파일을제공한다. libc(c 라이브러리 ) 헤더 libm(math 라이브러리 ) 헤더 libz(zlib 압축 ) 헤더 liblog( 안드로이드로깅 ) 헤더 JNI 인터페이스헤더 C++ 지원을위한헤더

14.2 안드로이드 NDK 설치 11 안드로이드애플리케이션패키지 (apk) 에네이티브라이브러리삽입가능 안드로이드 NDK 버전 r1- r4 NDK 에는효율적프로그램위한빌드시스템제공 NDKK 를사용하여 C/C++ 프로그램을안드로이드플랫폼에서자바애플리케이션과연동하여사용하게하는과정그림 [14-2] [ 그림 14-2] NDK 개발절차

14.2 안드로이드 NDK 설치 12 [ 실습 14-3] NDK 설치하기 (1) http://developer.android.com/sdk/ndk/index.html NDK 소스를다운로드받기위하여 NDK 사이트 http://developer.android. com/sdk/ndk/index.html을방문한다. 그리고 [ 그림 14-3] 처럼 androidndkr3-linux-x86.zip 파일을다운로드받는다. [ 그림 14-3] NDK 다운로드하기

14.2 안드로이드 NDK 설치 13 [ 실습 14-3] NDK 설치하기 (2) # wget http://d1.google.com/android/ndk/android-ndk-r3-linux-x86.zip (1) 방법대신에 wget 을사용하여 NDK 소스를다운로드받을수도있다. 리눅스서버에 /android/android-ndk-r3 디렉터리를생성하고리눅스용안드로이드 NDK 를다운로드한다. (3) unzip android-ndk-r3-linux-x86.zip NDK 파일을압축해제한다. (4) cd /android-ndk-r3 /android-ndk-r3 디렉터리에 /apps, /build, /docs, /out, GNUmakefile, README.txt 디렉터리와파일들이포함되어있는것을 [ 그림 14-4] 처럼확인한다. /apps 디렉터리에는안드로이드애플리케이션이들어갂다. NDK 예제를빌드할경우해당애플리케이션의 /libs 디렉터리에컴파일된라이브러리가저장된다. [ 그림 14-4] android-ndk-r3 디렉터리내용

14.2 안드로이드 NDK 설치 14 [ 실습 14-3] NDK 설치하기 (5) cd build (6) vi host-setup.sh; cd.. (7)./build/host-setup.sh host-setup.sh 를실행해서 [ 그림 14-5] 처럼결과가나타나면 NDK 설치가완성된것이다. 참고로 /build 에서실행하면안된다.

14.2 안드로이드 NDK 설치 15 [ 실습 14-3] NDK 설치하기 (7)./build/host-setup.sh host-setup.sh를실행해서 [ 그림 14-5] 처럼결과가나타나면 NDK 설치가완성된것이다. 참고로 /build에서실행하면안된다. [ 그림 14-5] /build/host-setup.sh 실행

14.3 NDK 기초실습 16 [ 실습 14-4] hellojni 애플리케이션 (1) vi hello-jni.c NDK 설치가정상적으로되었는지확인하기위해 NDK 에서제공하는샘플프로그램중에 hello-jni.c 를빌드하여실행해본다. hello-jni.c 파일은단순히 Hello world, hellojni! 라는텍스트를출력하는파 일이다.

14.3 NDK 기초실습 17 [ 실습 14-4] hellojni 애플리케이션 (2) make APP=hello-jni NDK 의루트위치에서 make APP=hello-jni 명령어를입력하면 [ 그림 14-6] 처럼된다. hello-jni.c 파일이 Android.mk 파일에의해 libhello-jni.so 라는라이브러리로생성되고 hellojni.java 애플리케이션에서는생성된라이브러리를참조해구동하게된다. [ 그림 14-6] 빌드하기

14.3 NDK 기초실습 18 [ 실습 14-4] hellojni 애플리케이션 (3) cd /armeabi; ls ls 명령으로 hello-jni 빌드결과 libhello-jni.so 동적라이브러리가생성된것을 [ 그림 14-7] 처럼확인한다. [ 그림 14-7] libhello-jni.so

14.3 NDK 기초실습 19 [ 실습 14-4] hellojni 애플리케이션 (4) HelloJni.java 파일을작성한다. NDK 에서빌드된라이브러리는안드로이드프로그램에서바로사용할수없다. (3) 에서확인한 libhello-jni.so 를사용하는안드로이드애플리케이션프로그램을작성해야한다. 리눅스서버 \android\android-ndk-r3\appshellojni\project \src\com\example\hellojni 경로에있는 HelloJni.java 파일을확인해본다. 다음 < 소스 14-3> 은 HelloJni.java 파일의내용이다.

14.3 NDK 기초실습 20 [ 실습 14-4] hellojni 애플리케이션 (5) 리눅스서버의 \android\android-ndk-r3\apps\hello-jni 내용을에뮬레이터가동작하는윈도우 PC D:\android\ndk\hello-jni 로젂송한다. [ 그림 14-8] 처럼짂행한다. [ 그림 14-8] \android\android-ndk-r3\apps\hello-jni 전송

14.3 NDK 기초실습 21 [ 실습 14-4] hellojni 애플리케이션 (6) 윈도우 PC 에젂송된프로젝트를확인한다. 윈도우 PC 에젂송된프로젝트가 [ 그림 14-9] 처럼확인된다. [ 그림 14-9] 윈도우에 android\ndk\ 로전송된 project

14.3 NDK 기초실습 22 [ 실습 14-4] hellojni 애플리케이션 (7) 이클립스에서새로운프로젝트생성하기 이클립스에서새로운프로젝트를생성한다. 이클립스를구동하고, File New Project Next 를선택하면새로운안드로이드프로젝트생성입력창이나타난다. [ 그림 14-10] 안드로이드프로젝트생성

14.3 NDK 기초실습 23 [ 실습 14-4] hellojni 애플리케이션 (7) 이클립스에서새로운프로젝트생성하기 ( 계속 ) [ 그림 14-11] 처럼이클립스에 Hello-Jni 프로젝트가추가된것을확인할수있다. [ 그림 14-11] 이클립스에생성된프로젝트보기

14.3 NDK 기초실습 24 [ 실습 14-4] hellojni 애플리케이션 (8) JNI 라이브러리추가 다음은리눅스서버에서 NDK 로작성한 JNI 라이브러리 \libs\armeabi\libhellojni.so 를이클립스의프로젝트에포함시켜야한다. 라이브러리 \libs 디렉터리젂체를 [ 그림 14-12] 처럼 D:\android\ndk\project\libs 로이동시킨다. [ 그림 14-12] 라이브러리추가하기

14.3 NDK 기초실습 25 [ 실습 14-4] hellojni 애플리케이션 (9) 애플리케이션에서라이브러리실행하기이클립스화면에서 Hello-Jni 프로젝트를빌드하기위하여 RUN 한다. 에뮬레이터가구동되면서 Hello world, hellojni! 라는텍스트가 [ 그림 14-13] 처럼출력된다. [ 그림 14-13] Hello-Jni 프로젝트실행결과

14.4 NDK 고급실습 26 LED 하드웨어 ARM GPIO 포트에연결 3 개의 LED 물리주소에비트값출력으로제어 [ 그림 14-14] 타깃보드의 3 개의 LED 위치

14.4 NDK 고급실습 27 LED 디바이스드라이버 드라이버를안드로이드커널에모듈로서등록 Open, read, write, module_init 물리주소, 가상주소매핑

14.4 NDK 고급실습 28 [ 실습 14-5] JNI 라이브러리생성및다운로드 (1) vi led_test.c LED 드라이버를테스트할수있는프로그램 led_test.c를 JNI 라이브러리로인터페이스를만드는작업을짂행한다. 위와같이선언하면안드로이드애플리케이션의패키지이름은 com_hybus_ led 가된다.

14.4 NDK 고급실습 29 [ 실습 14-5] JNI 라이브러리생성및다운로드 (2) make clean APP=led_test 앞에서알아본 led_test.c 파일을컴파일해보도록한다. 컴파일을하기위해서는리눅스서버에 android-ndk 가설치되어있어야한다. LED 제어예제에대한 JNI app/led_test/project/jni/led_test.c 소스를컴파일하기젂에 make clean 명령어를통하여기존에있던 LED 제어라이브러리파일을삭제한다. (3) make APP=led_test 그리고다시 make 명령으로새롭게 [ 그림 14-15] 처럼컴파일한다. [ 그림 14-15] JNI 라이브러리컴파일

14.4 NDK 고급실습 30 [ 실습 14-5] JNI 라이브러리생성및다운로드 (4) cd app/led_test/project/armeabi; ls 컴파일된라이브러리파일은 app/led_test/project/libs/armeabi/ 로이동하여확인해보면앞에서컴파일한 LED 제어라이브러리파일이생성된것을 [ 그림 14-16] 처럼볼수있다. [ 그림 14-16] JNI 라이브러리생성

14.4 NDK 고급실습 31 [ 실습 14-5] JNI 라이브러리생성및다운로드 (5) mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system 위에서생성한 libled-jni.so 라이브러리파일을사용하기위해서는라이브러리파일을 H-AndroSV210에옮겨서실행하여야한다. adb를사용하여 H-AndroSV210에연결하여생성된 libled-jni.so 파일을다운로드한다. [ 그림 14-17] libled-jni.so 라이브러리파일타깃으로이동하기

14.4 NDK 고급실습 32 [ 실습 14-5] JNI 라이브러리생성및다운로드 (6) 위의작업을짂행하였으면 adb 를사용하여위에서생성한 libled-jni.so 파일을 /system/lib 이하로 [ 그림 14-18] 처럼이동한다. [ 그림 14-18] libled-jni.so 파일저장

14.4 NDK 고급실습 33 [ 실습 14-6] LED 제어안드로이드애플리케이션생성 (1) cd /mnt/cdrom/sv210_android_100822/app LED를제어하기위한소스가 APP 폴더에 Source.tgz 파일로압축되어있다. (2) tar zxvf Source.tgz [ 그림 14-19] 처럼 /SV210_Test_app라는폴더이하에압축이해제된다. [ 그림 14-19] LED 제어애플리케이션파일 Source.tgz 압축해제

14.4 NDK 고급실습 34 [ 실습 14-6] LED 제어안드로이드애플리케이션생성 (3) cd SV210_Test_app; ls 해당폴더로이동하여폴더내용을확인한다. (4) Led 폴더를이클립스의프로젝트에추가한다. 이클립스메뉴에서 File New Project Android Project 화면에서 Contents 항목의 Create project from existing source 를선택하고, Location에서추가할프로젝트의경로를지정해준다. [ 그림 14-20] 처럼설정이되어있는지확인한후에 Finish 버튼을누른다. [ 그림 14-20] LED_Test 프로젝트추가

14.4 NDK 고급실습 35 [ 실습 14-6] LED 제어안드로이드애플리케이션생성 (5) 프로젝트가정상적으로추가되었으면좌측의 Workspace 화면에 Led 라는프로젝트가추가된것을볼수있다. (6) Led.java 를확인한다. 추가된 Led 라는프로젝트아래의 src/com.hybus.led/led.java 파일을오픈하면다음과같은내용을확인할수있다. 다음은 Led.java 의젂체소스의내용이다.

14.4 NDK 고급실습 36 [ 실습 14-6] LED 제어안드로이드애플리케이션생성 (7) 실행 애플리케이션은라이브러리파일에접근하여라이브러리내에있는내용을호출한다. NDK 로작성된애플리케이션은 C 언어자체가 VM 에서실행되는 Java 보다실행속도가빠르기때문에속도면에서유리하다. 하지만 NDK 를따로빌드해야하고프로그래밍이 Java 로만작성하는것보다까다로운단점이있다. 실행결과는 [ 그림 14-21] 과같다. [ 그림 14-21] Led.java 실행결과

14.4 NDK 고급실습 37

안드로이드 SDK 업데이트 38 SDK 파일을다운로드한후설치하는과정이다소오랜시갂 (20~40 분 ) 소요 ( 각종레벨의안드로이드 SDK 플랫폼, 문서, Google API 를다운로드및설치 )

안드로이드 SDK 업데이트 39 ADB(Android Debug Bridge) 재시작창이나타나면 [Yes] 클릭

안드로이드 SDK 업데이트 40 USB 장치를지원하기위한 ADB 를업데이트하면 Installing Archives 창을닫는다

안드로이드 SDK 업데이트 41 Android SDK and AVD Manager 창의좌측에있는 Installed Packages 를선택하면업데이트된 SDK 목록이나타남 (14 개 )

AVD 와 SD 카드생성

AVD 생성 43 AVD 란 Android Virtual Devices SDK 1.5 부터에뮬레이터를실행하기위하여최소 1 개의 AVD 필요 AVD 로인하여여러버젂의안드로이드디바이스를위한애플리케이션을각각의버젂과 SDK Add-On 에맞게테스트가능 예를들어카메라가있는경우, 쿼티자판이있는경우, 1.1 SDK 탑재한단말, 1.5 SDK 를탑재한디바이스등여러가지구성을가지고있는가상의디바이스를지원가능하게함 각 AVD 마다하나의안드로이드에뮬레이터를구동할수있음

AVD 생성 44 이클립스툴바에서 [Android AVD and SDK Manager] 버튼을클릭

AVD 생성 45 Android AVD and SDK Manager 창의우측에있는 [New ] 버튼을클릭

AVD 생성 46 Create new AVD 창의 Name 항목에적절한디바이스이름선택

AVD 생성 47 Target 에사용할 SDK 플랫폼 API 버전혹은 Google API 버전을선택

AVD 생성 48 AVD 생성완료

AVD 생성 49 Google Map API 를사용하기위한 AVD 생성

가상 SD 카드생성 50 SD 카드의생성 SD 카드의크기를입력 혹은기존에생성한 SD 카드를사용하려면 File 을선택한후 [Browse ] 버튼을눌러가상 SD 카드파일을선택

AVD 와가상 SD 카드확인 51 이클립스툴바에서 [Android AVD and SDK Manager] 버튼을클릭 왼쪽의 Virtual Devices 선택

안드로이드 SDK 둘러보기

안드로이드 SDK 란? 53 안드로이드애플리케이션의개발, 테스트, 디버그하는데필요한모든 API 들과도구를포함 안드로이드 SDK 플러그인을사용하여 Eclipse IDE 에적용가능 안드로이드 SDK 폴더

안드로이드 SDK 란? 54 주요구성요소 안드로이드 API 구글이네이티브안드로이드애플리케이션을개발하기위하여사용한것과동일한라이브러리 개발도구 안드로이드응용프로그램개발, 즉애플리케이션의컴파일, 디버그, 테스트하는데필요한각종도구 이클립스상에서개발하는경우이도구들을직접다루지는않음 풍부한문서 안드로이드 SDK 의각종패키지, 클래스에대한설명 안드로이드개발을시작하는방법과원리를설명 Java 의경우 Java SDK Documentation 과유사 샘플코드 안드로이드 API 기능의사용법을나타낸예제프로그램코드 이클립스프로젝트에추가하여실행가능

주요안드로이드도구 55 emulator.exe Dalvik 가상머신의구현으로하드웨어중립적 안드로이드용응용프로그램이실제휴대단말에서동작하는모습을 PC 로확인 옵션을포함하여실행가능하지만대부분이클립스에서구동 구동하는것은리눅스시스템을부팅하는것이기때문에장시갂요구. 에뮬레이터를구동한후계속작업가능

주요안드로이드도구 56 adb.exe Android Debug Bridge 안드로이드에뮬레이터혹은안드로이드단말기에접속할수있도록하는클라이언트 / 서버애플리케이션 에뮬레이터혹은안드로이드단말기에명령을내리는역할 애플리케이션의설치 / 제거작업가능 안드로이드단말기에나에뮬레이터의상태를관리 mksdcard.exe 하드디스크의일부분을안드로이드에뮬레이터에서가상의 SD 카드로생성 dx.bat Dalvik VM 에구동할수있는응용프로그램으로만들어주는컴파일러 컴파일이완료되면 *.dex 의확장자를가짂파일을생성

주요안드로이드도구 57 aapt.exe Android Asset Packaging Tool 배포가능한안드로이드패키지파일 (*.apk) 을생성 aidl.exe Android Interface Description Language 안드로이드디바이스에서 2 개의프로세스가 IPC(Inter Process Communication) 를사용하여대화할수있는코드를작성하기위한언어 COM 혹은 CORBA 와유사한인터페이스기반이지만더가벼움 sqlite3.exe SQLite 데이터베이스파일을제어하는도구

주요안드로이드도구 58 ddms.bat Dalvik Debug Monitor Service 활성화된스레드를감시및중단하는도구 활성화된모든에뮬레이터의파일시스템을탐색하는도구 DDMS 사용

주요안드로이드도구 59 ddms.bat DDMS 화면