android 개발환경 설정 및 android view 소개

43
Android 개개개개 개개 개 Android View 개개 2014 년 3 년년 1 년년 년년년 년년 (001,005) 년년년년년년년

Upload: erek

Post on 24-Feb-2016

120 views

Category:

Documents


0 download

DESCRIPTION

Android 개발환경 설정 및 Android View 소개. 2014 년 3 학년 1 학기 월요일 분반 (001,005) 인공지능연구실 . 안드로이드 개요. 안드로이드 휴대전화와 모바일 디바이스를 위한 운영체제 , 미들웨어 그리고 핵심 애플리케이션을 포함한 소프트웨어 스택 안드로이드 역사 2005.07 : 안드로이드 사를 구글에서 인수 2007.11.05 하드웨어 , 소프트웨어 , 통신 회사가 모여 만든 OHA(Open Handset Alliance) 결성 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Android  개발환경 설정 및 Android View  소개

Android 개발환경 설정 및Android View 소개

2014 년 3 학년 1 학기월요일 분반 (001,005)인공지능연구실

Page 2: Android  개발환경 설정 및 Android View  소개

안드로이드◦ 휴대전화와 모바일 디바이스를 위한 운영체제 , 미들웨어 그리고 핵심 애플리케이션을

포함한 소프트웨어 스택 안드로이드 역사

◦ 2005.07 : 안드로이드 사를 구글에서 인수◦ 2007.11.05

하드웨어 , 소프트웨어 , 통신 회사가 모여 만든 OHA(Open Handset Alliance) 결성 OHA 에서 모바일 기기용 공개 표준 개발

◦ 2007.11.12 : 휴대전화용 안드로이드 플랫폼 발표 ( 무료로 공개 ) 안드로이드 SDK, 동작 샘플 , 안드로이드 시스템 구조 , 안드로이드 내장 SW 개발 구조 공개

◦ 2008.09 : Android SDK 1.0 발표◦ 2008.10.21 : 안드로이드를 오픈소스 ( 아파치 라이선스 ) 로 공개◦ 2008.10.22 : 미국 T-Mobile 에서 최초의 Android 폰인 G1 출시◦ 2008.10.22 : Android Market 정식 오픈

안드로이드 개요

Page 3: Android  개발환경 설정 및 Android View  소개

안드로이드 개요 (cont.)• 안드로이드 역사

Android 1.0, 1.12009.02

Android 1.5(Cupcake)2009.04

( 한글 지원 )

Android 1.6(Donut)2009.09

(UI 지원 강화 )

Android 2.1(Eclair)2010.01

( 홈스크린 , 음성인식 , 멀티터

치 )

Android 2.2(Froyo)2010.05

( 성능향상 , 테더링 )

Android 2.3(Gingerbread)

2010.12(mVoIP, NFC)

Android 3.0(Honeycomb)

2011.02( 태블릿 정식 지원 )

Android 4.0(Ice cream Sand-

wich)2011.12

(Face Unlock, People,

안드로이드 빔 )

Android 4.2(Jellybean)2012. 11

( 포토스피어 , 무선디스플레이 ,제스쳐타이핑 )

Page 4: Android  개발환경 설정 및 Android View  소개

안드로이드 개요 (cont.)• 안드로이드 디바이스 , 에뮬레이터

Page 5: Android  개발환경 설정 및 Android View  소개

OHA – Open Handset Alliance◦ OHA : 개방형 휴대전화 연합◦ 휴대전화 제조 , 서비스 , 칩 제조 등 전세계 65 개 업체가 가입 (2009 년 말 )

휴대폰 제조 업체 : 삼성전자 , LG 전자 , 모토롤라 , HTC 이동통신 업체 : 스프린트 , T- 모바일 , NTT 도코모 , KDDI 칩 제조 업체 : 퀄컴 , 브로드컴 , 인텔 , 텍사스인스트루먼트

◦ 가입 업체들

안드로이드 개요 (cont.)

Page 6: Android  개발환경 설정 및 Android View  소개

구성 및 특징◦ 커널 : 리눅스◦ 그래픽 엔진 : OpenGL ES (Open GL 의 휴대기기용 버전 )◦ 폰트 : 프리타입◦ 웹 렌더링 : 웹키트 엔진◦ 보안 모듈 : SSL◦ 개발환경 : Eclipse 와 ADT(Android Development Toolkit,

eclipse 에 통합된 플러그인 ) 사용을 권장

안드로이드 구성 및 특징

Page 7: Android  개발환경 설정 및 Android View  소개

안드로이드 구성 및 특징구성 및 특징 내용

핸드셋 레이아웃 플랫폼은 VGA, 2D 그래픽스 라이브러리 , OpenGL ES 1.0 에 기반을 둔 3D 그래픽스 라이브러리를 확장하기에 적응적이다 .

저장소 데이터 저장 목적의 SQLite  데이터베이스 소프트웨어가 사용됨 .

통신 안드로이드는 GSM/EDGE, CDMA, EV-DO, UMTS,  블루투스, 와이파이를 포함하는 커넥션 기술을 지원한다 .

메시징 SMS와 MMS가 가능 .웹 브라우저 오픈 소스인 웹키트 응용 프로그램 프레임워크 기반의 브라우저 지원 .

자바 지원자바로 작성된 소프트웨어는 달빅 가상 머신에서 실행 가능한 코드로 컴파일된다 . 달빅 가상 머신은 표준 자바 가상 머신은 아니지만 모바일 기기를 위해 설계된 레지스터 기반의 가상 머신이다 .

미디어 지원안드로이드는 다음의 오디오 / 비디오 / 이미지 포맷을 지원한다 : H.263, H.264 (3GP  또는 MP4  컨테이너), MPEG-4 SP, AMR, AMR-WB (3GP 컨테이너 ), AAC, HE-AAC (MP4 또는 3GP 컨테이너 ), MP3,  미디, OGG Vorbis,WAV, JPEG, PNG, GIF, BMP.

추가 하드웨어 지원 안드로이드는 카메라 ,  터치스크린, GPS,  가속도 센서,  나침반 센서, 트랙볼 2D 그래픽 가속 , 3D 그래픽 가속을 활용할 수 있다 .

Page 8: Android  개발환경 설정 및 Android View  소개

개발 환경 기기 에뮬레이터 ,  디버깅 도구 , 메모리와 성능 프로파일링을 포함하는 이클립스 IDE  플러그인인 ADT, 플랫폼 개발 키트인 PDK

마켓

iOS의 앱 스토어와 유사한 구글 플레이는 PC 사용 없이 무선으로 대상 하드웨어로 다운로드 와 설치가 가능한 응용 프로그램 목록을 제공 . 2011 년 2 월 허니컴 발표와 함께 웹을 통한 마켓 이용이 가능해졌다 . 웹마켓에서는 여러대의 안드로이드 기기를 등록하여 사용할 수 있도록 확장되어 있다 . 원래 프리웨어만 지원 되었으나 2009 년 2 월 19 일 부터 유료 애플리케이션도 제공되었다 . 별도의 라이선싱 , 애플리케이션 내에서의 유료 구매를 위한 SDK 가 함께 발표되었다 .

멀티 터치안드로이드는 멀티 터치를 네이티브로 지원한다 . 한때 미국에서 출시되는 모델에 한해서 , 애플의 터치스크린 기술 특허 침해를 피하기 위해 , 멀티터치 기능이 커널 수준에서 비활성화되었다 .[3]  이후에 구글은 넥서스 원,  드로이드를 위해 멀티터치를 네이티브에서 지원하는 업데이트를 발표하였다 .[4]

블루투스핸즈프리 통화 (HFP), 음악 재생 (A2DP,AVRCP) 기능이 있으며 블루투스를 통한 파일 전송이 버전 2.0 에 추가되었다 . 이외 ICS 이후로 Bluetooth 4.0 기술인 BluetoothHealth 기능도 추가되었다 .

영상통화안드로이드는 영상통화를 지원하지 않는다 . 하지만 , 전화기에 UI 및 프로그램을 추가하여 사용할 수 있기는 하다 . HTC Evo4G 에서는 HTC 자체의 센스 (Sense) UI 를 사용하여 영상통화를 지원한다 . HTC 가 아니라도 제조사가 영상통화를 지원하게 한다면 가능하다 . 허니컴부터 GTalk 를 통한 영상 통화를 지원하기 시작했다 .

안드로이드 구성 및 특징

Page 9: Android  개발환경 설정 및 Android View  소개

특징◦ 미디어 지원

일반적인 오디오 , 비디오 , 그리고 정지 (still) 이미지 포맷들을 지원 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF

◦ GSM Telephony ( 하드웨어 의존적 ) -> CDMA Telephony 추가◦ 블루투스 , 3G, 4G, WiFi ( 하드웨어 의존적 )◦ 카메라 , GPS, 나침반 , 그리고 가속도계 ( 하드웨어 의존적 )◦ 풍부한 개발 환경

디바이스 에뮬레이터 , 디버깅 도구 , 메모리 및 성능 프로파일링 그리고 Eclipse IDE 를 위한 Plug-in 포함함

안드로이드 특징 (cont.)

Page 10: Android  개발환경 설정 및 Android View  소개

구조도안드로이드 구조

Page 11: Android  개발환경 설정 및 Android View  소개

애플리케이션 프레임워크 (Framework)◦ 안드로이드 애플리케이션 프레임워크는 Java 기반의 Framework 이며 ,

대부분이 JNI(Java Native Interface) 를 통해 native C/C++ 코드로 작성되어 있다 . 더불어 , 아래와 같이 핵심 시스템 서비스를 담당하는 Core 시스템 서비스들과 하드웨어와의 인터페이스를 담당하는 하드웨어 서비스들로 구성된다 .

안드로이드 구조 (cont.)

Page 12: Android  개발환경 설정 및 Android View  소개

안드로이드 런타임 (Runtime)◦ 안드로이드에서 사용되는 Dalvik 가상 머신과 Core 라이브러리들로 구성 .◦ Dalvik 가상머신은 안드로이드에서 자체적으로 만든 것으로 JVM(Java Virtual

Machine) 에 걸려있는 라이선스 제약을 피해 무료로 배포하기 위해서 만들었다 .◦ 애플리케이션의 호환성 (Portability)과 실행 일관성 (runtime consistency)

을 제공하며 , 최적화된 파일 포맷 (.dex)과 Dalvik 바이트 코드를 실행한다 . 더불어 빌드 시점에서 Java .class / .jar 파일들은 .dex 파일로 변환된다 .

◦ Dalvik 가상머신은 임베디드 환경을 위해 디자인되어 , 디바이스 별로 다양한 가상머신 프로세스들을 지원하며 , 높은 수준으로 CPU 에 최적화된 바이트코드 인터프리터에 기반하며 , 실행 시 메모리를 매우 효율적으로 사용한다 .

◦ Core 라이브러리들은 강력하지만 , 단순하고 익숙한 개발 플랫폼을 제공하는 Java 언어를 위한 Core API 들을 포함하고 있다 . 여기에는 Data structure, Utility, File Access, Network Access, Graphic 등이 포함되어 있다 .

안드로이드 구조 (cont.)

Page 13: Android  개발환경 설정 및 Android View  소개

Dalvik 가상 머신 (Virtual Machine)◦ 다음과 같은 환경을 고려한 Bytecode Interpreter

Slow CPU (250-500 MHz) RAM Usage : Low-level : 20M, High-level : 24M(system library : 10M) Little RAM (64MB) : Available RAM : 20M Bus speed : 100MHz Data Cache : 16~32K No swap space, Battery power

안드로이드 구조 (cont.)

Dalvik 이란 이름은 , Dalvik 의창시자인 본스타인이 자신의조상이 살던 아이슬란드의 한어촌의 이름을 따서 만든 것임

Page 14: Android  개발환경 설정 및 Android View  소개

라이브러리 (Libraries)◦ 안드로이드 내장 라이브러리는 , Bionic Libc, Function Library, Native Server, Hardware

Abstraction Library 로 구성된다 . Bionic 은 임베디드에서 사용을 위해 최적화하여 직접 구현된 libc 이다 . libc 를 직접 구현한 이유

다음과 같다 . user-space 에서 GPL 을 회피하기 위한 라이센스 이유 ( 소스공개 회피 ) 와 , 개별 프로세스마다 포함되어야 하는 영역이기 때문에 크기를 최소화하기 위한 이유와 제한적 CPU 파워 하에서도 빠를 필요가 있기 때문이었다 .

Function Library 에는 웹 브라우저를 위한 WebKit, PacketVideo 의 OpenCORE 플랫폼 기반의 미디어 프레임워크 , 가벼운 데이터베이스인 SQLite 가 있다 .

Native Server 에는 Surface Flinger 와 Audio Flinger 가 있다 . Surface Flinger 는 2D 와 3D surface 의 조합 및 다양한 애플리케이션에서 사용된 Surface 들을 Frame buffer 디바이스로의 렌더링을 제어함으로써 , 시스템 전역에 걸쳐서 surface 의 구성을 가능하게 한다 . Audio Flinger 는 모든 오디오 출력 디바이스를 제어하는 것으로써 , 다양한 오디오 스트림을 PCM 오디오 출력 경로로 처리하며 , 다양한 출력으로 오디오를 제공하는 역할을 담당한다

Hardware Abstraction Library 는 User space 의 C/C++ 라이브러리 계층으로써 , 안드로이드에서 요구되는 하드웨어 드라이버의 구현에 대한 인터페이스를 정의한다 . 더불어 하드웨어 인터페이스로부터 안드로이드 플랫폼의 로직을 분리하는데 사용된다 .

안드로이드 구조 (cont.)

Page 15: Android  개발환경 설정 및 Android View  소개

리눅스 커널 (Kernel)◦ 리눅스 커널을 기반으로 하고 있으나 , 안드로이드는 리눅스는 아니다 .◦ X-Window 와 같은 내장 윈도우 시스템을 포함하지 않는다 .◦ glibc 를 지원하지 않는다 .◦ 표준 리눅스 유틸리티 전체를 포함하고 있지 않는다 .◦ 리눅스 커널 버전 2.6.23, 2.6.24, 2.6.25, 2.6.27, 2.6.29, 2.6.32 를 사용해 왔다 .◦ 안드로이드를 지원하기 위해 , 리눅스 커널 확장을 위한 패치를 포함하고 있다 .◦ 안드로이드에서 리눅스를 사용하는 이유는 메모리 및 프로세스 관리 , ‘Permission’ 기반의 보안 모델 , 검증된 드라이버 모델 , 공유 라이브러리 지원 , 오픈 소스 기반 등의 장점 때문이다 .◦ 안드로이드를 위해 확장된 리눅스 커널 영역은 Alarm, Ashmem, Binder, Power Manage-

ment, Low Memory Killer, Kernel Debugger, Logger 이다 .◦ 안드로이드 리눅스 커널 소스는 현재 아래의 URL 에서 배포되고 있다 .◦ http://git.android.com

안드로이드 구조 (cont.)

Page 16: Android  개발환경 설정 및 Android View  소개

Android 개발 도구◦ JDK(Java Development Kit)◦ Android SDK(Standard Development Kit), NDK(Native De-

velopment Kit)◦ Eclipse ◦ Cygwin

Android 개발환경 설치 순서◦ JDK, Android SDK, Eclipse 다운로드

Java 개발환경 설치하기 Android SDK , Eclipse, ADT 플러그인 설치하기

Android 개발환경 설치

Page 17: Android  개발환경 설정 및 Android View  소개

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java 설치하기

Page 18: Android  개발환경 설정 및 Android View  소개

본인의 OS 에 맞는 버전을 다운로드 Java 는 이미 설치되어 있으므로 , 이 과정은 생략하셔도 됩니다 .

Java 설치하기

Page 19: Android  개발환경 설정 및 Android View  소개

해당 링크 에서 SDK 다운로드◦ http://developer.android.com/sdk/index.html

◦ 또는 borame.cs.pusan.ac.kr 에서 다운 받으셔도 됩니다 .

Android SDK 설치

Page 20: Android  개발환경 설정 및 Android View  소개

Android ADT, SDK, eclipse 설치 완료 다음부턴 이클립스에서 개발 환경을 구축해 봅시다 .

Android SDK 설치

Page 21: Android  개발환경 설정 및 Android View  소개

안드로이드 가상 디바이스를 만들어 봅시다 !◦ Android SDK Manager 선택 !

Android 개발 환경 구축

Page 22: Android  개발환경 설정 및 Android View  소개

가상 디바이스 실행을 위해 그에 맞는 API 패키지를 설치합니다

Android 개발 환경 구축

Page 23: Android  개발환경 설정 및 Android View  소개

설치가 완료되었다면 , AVD Manager 클릭 !

Android 개발 환경 구축

Page 24: Android  개발환경 설정 및 Android View  소개

Virtual Device 를 생성해봅시다 !

Android 개발 환경 구축

Page 25: Android  개발환경 설정 및 Android View  소개

Android 개발 환경 구축

Page 26: Android  개발환경 설정 및 Android View  소개

Android 개발 환경 구축

Page 27: Android  개발환경 설정 및 Android View  소개

Emulator 구동 기본화면 입니다 .

Android 개발 환경 구축

Page 28: Android  개발환경 설정 및 Android View  소개

File -> New -> Android Application Project 클릭Android 프로젝트 생성

Page 29: Android  개발환경 설정 및 Android View  소개

Application Name◦ 프로젝트를 실행했을 때 설치될

Application 의 이름입니다 . Project name

◦ Eclipse 상에서 보여지는 프로젝트의 이름입니다 Package name

◦ 기본적으로 만들어지는 package 의 이름입니다 .

Android 프로젝트 생성

Page 30: Android  개발환경 설정 및 Android View  소개

Android 프로젝트 생성

Page 31: Android  개발환경 설정 및 Android View  소개

Android 프로젝트 생성

Page 32: Android  개발환경 설정 및 Android View  소개

Android 프로젝트 생성

Page 33: Android  개발환경 설정 및 Android View  소개

Finish 를 누르시면 프로젝트 생성이 완료됩니다 !

Android 프로젝트 생성

Page 34: Android  개발환경 설정 및 Android View  소개

프로젝트 생성 후 기본 출력 화면입니다 .

Android 프로젝트 생성

Page 35: Android  개발환경 설정 및 Android View  소개

이제 이 프로젝트를 실행시켜보겠습니다 .

Android 프로젝트 실행

Page 36: Android  개발환경 설정 및 Android View  소개

Android 프로젝트 실행

Page 37: Android  개발환경 설정 및 Android View  소개

아무것도 작성하지 않고 실행 시 , Hello world! 가 기본적으로 출력됩니다 ^^

Android 프로젝트 생성

Page 38: Android  개발환경 설정 및 Android View  소개

AVD 가 생성되지 않았거나 , API 버전이 맞지 않은 AVD 가 생성된 경우(AVD 의 API 버전 < 프로젝트의 API 버전 )

Android 프로젝트 생성

Page 39: Android  개발환경 설정 및 Android View  소개

View 는 안드로이드의 사용자 인터페이스 (UI) 를 구성하는 핵심 컴포넌트 화면상의 사각영역을 차지하며 자신의 모양을 그리고 사용자로부터 입력을 받아들임

View

Page 40: Android  개발환경 설정 및 Android View  소개

위젯 ◦ 직접적으로 보이며 사용자 인터페이스를 구성한다 . 버튼 , 텍스트 뷰 , 에디트 , 라디오 버튼 등을 말하며 흔히 컨트롤이라고도 부르며

View 라고도 한다 .

View - 위젯

Object

View

AnalogClock

TextView

EditText

Button

Chronometer

DigitalClock

ImageButton

GlSurfaceView

VideoView

AbsSeekBar

ImageView

SurfaceView

ProgressBar

AutoCompleteTextView

CompoundButton

CheckBox

RadioButton

ToggleButton

SeekBar

RatingBar

Page 41: Android  개발환경 설정 및 Android View  소개

뷰 그룹 직접적으로 보이지 않으며 다른 뷰를 담는 컨테이너 역할을 한다 . 이름 그대로 여러 개의 뷰를 유기적으로 모아 놓은 것이다 . 쉽게 말해 이 부류를 레이아웃이라 칭한다 .

View – 뷰 그룹

Object

View

ViewGroup

FrameLayout

AbsoluteLayoutRelativeLayoutLinearLayout

WebView

ScrollView. HorizontalScrollViewTabHost. TimePicker. DatePicker

ViewAminator ViewFlipper TextSwitcherViewSwitcher ImageSwitcher

RadioGroup. ZoomControlsTableLayout. TableRow

TabWidget

AbsListView ListViewGridView

AbsSpinner SpinnerGallery

AdapterView

Page 42: Android  개발환경 설정 및 Android View  소개

Text View ?◦ 이름 그대로 화면에 텍스트를 출력하는 위젯 .◦ 사용자의 입력을 받아들이지는 않는다 .

주 사용 속성

View - Text View

Page 43: Android  개발환경 설정 및 Android View  소개

View - Text View res -> layout -> activity_main.xml