2015 년 3 학년 1 학기 A.I Lab.  안드로이드 ◦ 휴대전화와 모바일 디바이스를 위한 운영체제, 미들웨어 그리고 핵심 애플리케이 션을 포함한 소프트웨어 스택  안드로이드 역사 ◦ 2005.07 : 안드로이드 사를 구글에서 인수 ◦ 2007.11.05 

Slides:



Advertisements
Similar presentations
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Advertisements

CHAP. 2 안드로이드 개발 도구 설치. © 2012 생능출판사 All rights reserved 개발 과정의 개요.
Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 01. 안드로이드 개요와 개발환경 구축.
임직원 APP 설치 가이드 경영전략처 정보기획 TF 팀. 임직원 App- 운영체제 구분  안드로이드 갤럭시, 갤럭시노트, 갤럭시 S4 [ 삼성전자 ] 옵티머스 [LG 전자 ] 베가 [ 팬텍 모토로이 [ 모토롤라 ]  ios 아이폰 [ 애플.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
2014 년 3 학년 1 학기 월요일 분반 (001,005) 인공지능연구실.  안드로이드 ◦ 휴대전화와 모바일 디바이스를 위한 운영체제, 미들웨어 그리고 핵심 애플리케이 션을 포함한 소프트웨어 스택  안드로이드 역사 ◦ : 안드로이드 사를 구글에서 인수.
멀티미디어 신기술 세미나 프로젝트 제안서 김현철 김경률.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
앱인벤터 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
난이도 : 초급 제1장 앱 인벤터 소개 및 준비.
2016 유성환 Hybrid MOBILE.
안드로이드 소개 및 개발환경 설정 인공지능연구실.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
A n d r o i d Android 2010년 5월 19일 동서대학교 백선재
“ 안드로이드 ” 개발 환경 설정 [ 컨버전스팀 ] ㈜한 싹 2011 년 01 월 03 일.
Android 개발환경 설정 및 Android View 소개
안드로이드 철학, Open Access.
그림으로 쉽게 설명하는 안드로이드 프로그래밍
2. 앱 개발환경 구축 Step by Step 안드로이드 프로그래밍 쉽게 시작하는 안드로이드 4.4 앱 개발.
Linux/UNIX Programming
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
안드로이드 개요.
Power Java 제3장 이클립스 사용하기.
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Power Java 제2장 자바 개발 도구.
갤럭시 S를 이용한 자동차 원격 제어 시스템 담당교수 : 진현욱 교수님
운영체제 박상민.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Visual Basic .NET 처음 사용하기.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
UNIT 02 JDK & Tools 설치 로봇 SW 컨텐츠 교육원 조용수.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
Wireless Java Programming
2장. JSP 프로그래밍을 위한 환경구성 제2장.
모바일 운영 체제 구글의 안드로이드 애플의 iOS 마이크로소프트의 윈도폰 8 RIM의 블랙베리 OS
제목소개 1. 안드로이드소개 2. 패킷캡쳐를 위한 환경 소개 3. ndk 소개 4. lipcap 5. 6.도식화 그림
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
Nessus 4 설치 정보보호응용 조용준.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
[그림 1-1] 안드로이드 전용 어플리케이션 설치 방법
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
13차시_스마트 애플리케이션 기획 스마트 미디어의 사용환경과 사용자의 특성.
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
OpenCV 설정 2.21 만든이 딩딩.
Linux/UNIX Programming
DK-128 개발환경 설정 아이티즌 기술연구소
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
Presentation transcript:

2015 년 3 학년 1 학기 A.I Lab

 안드로이드 ◦ 휴대전화와 모바일 디바이스를 위한 운영체제, 미들웨어 그리고 핵심 애플리케이 션을 포함한 소프트웨어 스택  안드로이드 역사 ◦ : 안드로이드 사를 구글에서 인수 ◦  하드웨어, 소프트웨어, 통신 회사가 모여 만든 OHA(Open Handset Alliance) 결성  OHA 에서 모바일 기기용 공개 표준 개발 ◦ : 휴대전화용 안드로이드 플랫폼 발표 ( 무료로 공개 )  안드로이드 SDK, 동작 샘플, 안드로이드 시스템 구조, 안드로이드 내장 SW 개발 구 조 공개 ◦ : Android SDK 1.0 발표 ◦ : 안드로이드를 오픈소스 ( 아파치 라이선스 ) 로 공개 ◦ : 미국 T-Mobile 에서 최초의 Android 폰인 G1 출시 ◦ : Android Market 정식 오픈

안드로이드 역사

안드로이드 디바이스, 에뮬레이터 (AVD : Android Virtual Device)

 OHA – Open Handset Alliance / 개방형 휴대전화 연합 ◦ OHA : 휴대전화 제조, 서비스, 칩 제조 등 전세계 65 개 업체가 가입 (2009 년 말 )  휴대폰 제조 업체 : 삼성전자, LG 전자, 모토롤라, HTC  이동통신 업체 : 스프린트, T- 모바일, NTT 도코모, KDDI  칩 제조 업체 : 퀄컴, 브로드컴, 인텔, 텍사스인스트루먼트 ◦ 가입 업체들

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

구성 및 특징 내용 핸드셋 레이아웃 플랫폼은 VGA, 2D 그래픽스 라이브러리, OpenGL ES 1.0 에 기반을 둔 3D 그래픽스 라이브러리를 확장하기에 적응적이다.VGA2D 그래픽스OpenGL ES3D 그래픽스 저장소 데이터 저장 목적의 SQLite 데이터베이스 소프트웨어가 사용됨.SQLite 통신 안드로이드는 GSM/EDGE, CDMA, EV-DO, UMTS, 블루투스, 와이파 이를 포함하는 커넥션 기술을 지원한다.GSMEDGECDMAEV-DOUMTS 블루투스 와이파 이 메시징 SMS SMS 와 MMS 가 가능.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.H.263H.2643GPMP4 컨테이너MPEG-4 SPAMRAMR-WBAACHE-AACMP3 미디OGG VorbisWAVJPEGPNGGIFBMP 추가 하드웨어 지원 안드로이드는 카메라, 터치스크린, GPS, 가속도 센서, 나침반 센 서, 트랙볼 2D 그래픽 가속, 3D 그래픽 가속을 활용할 수 있다. 터치스크린GPS 가속도 센서 나침반 센 서 트랙볼

개발 환경 기기 에뮬레이터, 디버깅 도구, 메모리와 성능 프로파일링을 포함하는 이클립 스 IDE 플러그인인 ADT, 플랫폼 개발 키트인 PDK 디버깅 이클립 스 IDE 플러그인 마켓 iOS iOS 의 앱 스토어와 유사한 구글 플레이는 PC 사용 없이 무선으로 대상 하드웨 어로 다운로드 와 설치가 가능한 응용 프로그램 목록을 제공 년 2 월 허 니컴 발표와 함께 웹을 통한 마켓 이용이 가능해졌다. 웹마켓에서는 여러대의 안드로이드 기기를 등록하여 사용할 수 있도록 확장되어 있다. 원래 프리웨어만 지원 되었으나 2009 년 2 월 19 일 부터 유료 애플리케이션도 제공되었다. 별도 의 라이선싱, 애플리케이션 내에서의 유료 구매를 위한 SDK 가 함께 발표되었 다. 앱 스토어 구글 플레이 웹 멀티 터치 안드로이드는 멀티 터치를 네이티브로 지원한다. 한때 미국에서 출시되는 모델 에 한해서, 애플의 터치스크린 기술 특허 침해를 피하기 위해, 멀티터치 기능이 커널 수준에서 비활성화되었다. [3] 이후에 구글은 넥서스 원, 드로이드를 위해 멀티터치를 네이티브에서 지원하는 업데이트를 발표하였다. [4] 멀티 터치 [3] 넥서스 원 드로이드 [4] 블루투스 핸즈프리 통화 (HFP), 음악 재생 (A2DP,AVRCP) 기능이 있으며 블루투스를 통한 파일 전송이 버전 2.0 에 추가되었다. 이외 ICS 이후로 Bluetooth 4.0 기술인 BluetoothHealth 기능도 추가되었다. 영상통화 안드로이드는 영상통화를 지원하지 않는다. 하지만, 전화기에 UI 및 프로그램 을 추가하여 사용할 수 있기는 하다. HTC Evo4G 에서는 HTC 자체의 센스 (Sense) UI 를 사용하여 영상통화를 지원한다. HTC 가 아니라도 제조사가 영상 통화를 지원하게 한다면 가능하다. 허니컴부터 GTalk 를 통한 영상 통화를 지원 하기 시작했다.

 특징 ◦ 미디어 지원  일반적인 오디오, 비디오, 그리고 정지 (still) 이미지 포맷들을 지원  MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF ◦ GSM Telephony ( 하드웨어 자원 이용 ) -> CDMA Telephony 추가 ◦ 블루투스, 3G, 4G, WiFi ( 하드웨어 자원 이용 ) ◦ 카메라, GPS, 나침반, 그리고 가속도계 ( 하드웨어 자원 이용 ) ◦ 풍부한 개발 환경  디바이스 에뮬레이터, 디버깅 도구, 메모리 및 성능 프로파일링 그리고 Eclipse IDE 를 위한 Plug-in 포함함

 구조도

 애플리케이션 프레임워크 (Framework) ◦ 안드로이드 애플리케이션 프레임워크는 Java 기반의 Framework 이며, 대부분이 JNI(Java Native Interface) 를 통해 native C/C++ 코드로 작성 되어 있다. 더불어, 아래와 같이 핵심 시스템 서비스를 담당하는 Core 시 스템 서비스들과 하드웨어와의 인터페이스를 담당하는 하드웨어 서비스 들로 구성된다.

 안드로이드 런타임 (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 등이 포함되어 있다.

 Dalvik 가상 머신 (Virtual Machine) ◦ 다음과 같은 환경을 고려한 Bytecode Interpreter  Slow CPU ( 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 Dalvik 이란 이름은, Dalvik 의 창시자인 본스타인이 자신의 조상이 살던 아이슬란드의 한 어촌의 이름을 따서 만든 것임 Dalvik 이란 이름은, Dalvik 의 창시자인 본스타인이 자신의 조상이 살던 아이슬란드의 한 어촌의 이름을 따서 만든 것임

 라이브러리 (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++ 라이브러리 계층으로써, 안드로이드에 서 요구되는 하드웨어 드라이버의 구현에 대한 인터페이스를 정의한다. 더불어 하드웨어 인터페이 스로부터 안드로이드 플랫폼의 로직을 분리하는데 사용된다.

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

 Android 개발 도구 ◦ JDK(Java Development Kit) ◦ Android SDK(Standard Development Kit), NDK(Native Development Kit) ◦ Eclipse ◦ Cygwin  Android 개발환경 설치 순서 ◦ JDK, Android SDK, Eclipse 다운로드  Java 개발환경 설치하기  Android SDK, Eclipse, ADT 플러그인 설치하기

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

 해당 링크 에서 SDK (Software Development Kit) 다운로드 ◦ ◦ 또는 borame.cs.pusan.ac.kr 에서 다운 받으셔도 됩니다.

 초기 시작 창에서 Start a new Android Studio project 선택

 원하는 프로젝트 명을 입력

 생성하는 프로젝트가 최소 어느 버전부터 지원할 것 인지 설정

 프로젝트의 초기화면으로 Blank Activity 선택 이 외에도 자신이 원하는 초기화면에 따라서 Activity 를 다르게 선택 가능

 자신이 원하는 명을 입력하거나 입력 없이 finish 버튼 클릭

 프로젝트 생성 완료

 AVD Manager 선택

 Create Virtual Device… 버튼 클릭

 AVD 에서 사용될 Android OS 버전을 선택 자신이 원하는 버전이 설치가 안되어있다면 Download 링크를 선택하여 설치

 다른 설정 없이 Show Advanced Settings 버튼을 클릭

 RAM 사용량과 Keyboard 사용 여부를 선택 후 finish 버튼 클릭 사용량이 너무 적거나 많아도 studio 가 작동 안 할 수 있기 때문에 적절하게 설정 (700) 에뮬레이터 실행 시에 실재 스마트 폰과 같이 터치 위주로 동작하게 하기 위해서 키보드 사용을 막음

 다음과 같은 AVD 가 생성이 완료 후 오른쪽 실행 버튼 클릭

 실행을 하면 AVD 가 실행 (AVD 가 실행 되기까지 컴퓨터 사양에 따라서 첫 번째 그림과 같은 화면에서 길게는 30 분 정도 소요 )

 현재 실행 된 프로젝트에는 기본적으로 Hello World! 가 나오도록 되어 있으므로 아래 그림과 같이 실행 버튼을 클릭 ( 실행 시에 구동 될 스마트 폰 또는 AVD 를 연결 및 구동시켜 놔야 함 )

 현재 실행할 플랫폼을 선택 (AVD 이외에 일반 스마트 폰이 연결 되어 있다면 목록에 같이 정렬되어 선택이 가능 )

 Hello World! 가 출력

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

 위젯 ◦ 직접적으로 보이며 사용자 인터페이스를 구성한다. 버튼, 텍스트 뷰, 에디트, 라디오 버튼 등을 말하며 흔히 컨트롤이라고도 부르며 View 라고도 한다. Object View AnalogClock TextView EditText Button Chronometer DigitalClock ImageButton GlSurfaceView VideoView AbsSeekBar ImageView SurfaceView ProgressBar AutoCompleteTextView CompoundButton CheckBox RadioButton ToggleButton SeekBar RatingBar

 뷰 그룹  직접적으로 보이지 않으며 다른 뷰를 담는 컨테이너 역할을 한다. 이름 그대로 여러 개의 뷰를 유기적으로 모아 놓은 것이다. 쉽게 말해 이 부류를 레이아웃이라 칭한다. Object View ViewGroup FrameLayout AbsoluteLayout RelativeLayout LinearLayout WebView ScrollView. HorizontalScrollView TabHost. TimePicker. DatePicker ViewAminator ViewFlipperTextSwitcher ViewSwitcher ImageSwitcher RadioGroup. ZoomControls TableLayout. TableRow TabWidget AbsListView ListView GridView AbsSpinner Spinner Gallery AdapterView

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

 res -> layout -> activity_main.xml 에서 다음을 작성