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

Slides:



Advertisements
Similar presentations
Android Application. 최신버전 안드로이드 SDK 설치 1. SDK 설치 접속.
Advertisements

모바일 프로그래밍 개론 UNIT 01 로봇 SW 컨텐츠 교육원 조용수. 학습 목표 모바일 프로그래밍이란 ? Embedded System 특성 Mobile OS Hybrid and Native SDK and NDK 2.
Android 소개.  스마트폰의 의미  손 안의 PC 혹은 스마트폰은 모바일 인터넷 단말기이다.  과거 일부 비즈니스 계층과 얼리 어댑터의 전유물에서 최근 일반 대중의 생활로 빠르게 확산 됨.  세계 최초의 스마트폰은 1992 년 COMDEX 에서 IBM 이.
Mobile Operating System 대림대학 김영실. 2 1 모바일 OS 란 ? 기존의 모바일 OS 시장 모바일 OS 비교 폐쇄형 모바일 OS 개방형 모바일 OS 스마트폰 OS 비교 모바일 OS 의 포지셔닝 변화 전망 시장점유율.
Page  1 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. [ 강의교안 이용 안내 ] 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다. 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136 조에 의거하여.
제 2 강 프로젝트 구성과 View 안드로이드 앱 개발 강좌. 목 차목 차목 차목 차 목 차목 차목 차목 차 안드로이드 프로젝트 구성 2 에뮬레이터 사용법 3 버전과 screen size 4 5 Hello World 앱 작성하기 1 View 와 ViewGroup.
삼성소프트웨어멤버십 20 th 박희근 ( A n d r o i d.
안드로이드 (Android) 발표자 : 이강민. 1. 안드로이드란 ? 구글에서 제작한 모바일 디바이스를 위한 플랫폼 ▫ 모바일 디바이스 플랫폼이란 ?  모바일 디바이스를 위한 소프트웨어 집합 ( 미들웨어, 키 어플리케이션, 운영체제 등 ) 2. 모바일 플랫폼 시장 점유율.
© 2012 생능출판사 All rights reserved 매니페스트 파일 적재목록 ( 적하목록 )
구글 TV 앱 개발 채원석. 발표순서 개요 ‘Panoramio’ - 구글 TV 앱 포팅 사례 기초 개발 사용자 인터페이스 요약.
2014 년 3 학년 1 학기 월요일 분반 (001,005) 인공지능연구실.  안드로이드 ◦ 휴대전화와 모바일 디바이스를 위한 운영체제, 미들웨어 그리고 핵심 애플리케이 션을 포함한 소프트웨어 스택  안드로이드 역사 ◦ : 안드로이드 사를 구글에서 인수.
Lecture 4: Mobile Internet Jaesun Han Founder and CEO of NexR Adjunct Professor of KAIST Business
컴퓨터공학과 CHAP.1 기초 사항. 컴퓨터공학과 1스마트폰 스마트폰 = 컴퓨터 + mp3 플레이어 + 휴 대용 게임기 다양한 앱 설치 가능.
2015 년 3 학년 1 학기 A.I Lab.  안드로이드 ◦ 휴대전화와 모바일 디바이스를 위한 운영체제, 미들웨어 그리고 핵심 애플리케이 션을 포함한 소프트웨어 스택  안드로이드 역사 ◦ : 안드로이드 사를 구글에서 인수 ◦ 
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
Android Activity & View & Layout
2013학년도 3-1 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
안드로이드 소개 및 개발환경 설정 인공지능연구실.
A n d r o i d Android 2010년 5월 19일 동서대학교 백선재
“ 안드로이드 ” 개발 환경 설정 [ 컨버전스팀 ] ㈜한 싹 2011 년 01 월 03 일.
안드로이드 철학, Open Access.
01. 안드로이드 개요와 개발환경 구축 제목.
임베디드 SW 시스템 소개 - 임베디드 운영체제 - 임베디드 리눅스 - 임베디드 인터넷
제2장 자바 개발 도구.
안드로이드 개요.
Android Activity & Layout & View
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
Chapter 02 JAVA 프로그래밍 시작하기 01 실무에서 사용하는 JAVA 개발 환경 02 JAVA 프로그램 작성
04. 기본 위젯 익히기 제목.
[INA470] Java Programming Youn-Hee Han
제 1 장. JAVA란 작성자 : NLIP.
제1강 안드로이드 특징과 개발환경 구축 안드로이드 앱 개발 강좌.
안드로이드 개요 2005년 휴대폰 소프트웨어 개발사인 Android를 구글이 인수 2007년 11월 오픈소스로 공개
13. 멀티미디어와 Google 지도 제목. 13. 멀티미디어와 Google 지도 제목.
3주차 Android Application ANDROID App..
가속도 감지센서를 이용한 안드로이드 게임 지도교수님 : 전진우 이동훈.
제3장 이클립스 사용하기.
가상플랫폼을 사용한 임베디드SW 개발 (CoWare CoWare Virtual Platform Designer 사용)
Power Java 제2장 자바 개발 도구.
Android를 이용한 Snake Game
PHP + Eclipse + Google Code를 이용한 개발환경
Java IT응용시스템공학과 김형진 교수 2장. 자바의 환경 public class SumTest {
Android 개발환경 설치 및 Hello World
DataScience Lab. 박사과정 김희찬 (월)
안드로이드 테트리스에 필요한 최소 기능.
02. 처음으로 만드는 안드로이드 애플리케이션 제목.
( Overview of the Course Kwangman Man ( SangJi University.
Android Studio 설치하기 PPD JSY.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
CHAP. 2 안드로이드 개발 도구 설치.
2강. 개발 환경 설정 JDK 설치 Path 설정 이클립스 다운로드 톰캣 설치 톰캣 환경 설정
정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
CHAPTER 2 자바의 환경 Section 1 자바 프로그램의 형태 Section 2 자바 프로그램의 실행환경.
객체 지향 프로그래밍.
DataScience Lab. 박사과정 김희찬 (월)
모바일 운영 체제 구글의 안드로이드 애플의 iOS 마이크로소프트의 윈도폰 8 RIM의 블랙베리 OS
안드로이드 사용자를 위한 고양이 가이드 어플 / 황수진-.
김 정 석 Web Programming 김 정 석
Achro-5250, IMX6 안드로이드 어플리케이션.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
Bingo 빙고 따라가기.
05. 레이아웃 익히기 제목.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
CHAP. 2 안드로이드 개발 도구 설치.
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
CHAP 11. 리소스와 보안.
운영체제보안 3번 과제 설명 팀 기반의 설계 프로젝트 박민재
컴퓨터 소프트웨어 설계 및 실험 2016년 1학기 실험계획.
안드로이드os 조사 박주혁.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
Presentation transcript:

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 정식 오픈

안드로이드 개요 (cont.) 안드로이드 역사 (한글 지원) (UI 지원 강화) (홈스크린, 음성인식, 멀티터치) Android 1.5 (Cupcake) 2009.04 (한글 지원) Android 1.6 (Donut) 2009.09 (UI 지원 강화) Android 2.1 (Eclair) 2010.01 (홈스크린, 음성인식, 멀티터치) Android 1.0, 1.1 2009.02 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 Sandwich) 2011.12 (Face Unlock, People, 안드로이드 빔)

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

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

안드로이드 특징 특징 애플리케이션 프레임워크 달빅(Dalvik) 가상머신 통합(Integrated) 브라우저 최적화된 그래픽 컴포넌트의 재사용과 대체(replacement)를 가능하게 함. 달빅(Dalvik) 가상머신 모바일 디바이스에 최적화됨. (JIT : Just In Time Compiler 추가) 통합(Integrated) 브라우저 오픈 소스 Webkit 엔진 기반임. (V8 Javascript Engine 추가) 최적화된 그래픽 구글이 만든 2D 그래픽 라이브러리를 사용함. (SGL : Skia Graphic Library) OpenGL ES 1.0 스펙에 기반한 3D 그래픽을 사용함 (하드웨어 가속은 선 택사항임) SQLite 정형화된 데이터 저장공간을 위한 것임.

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

안드로이드 구조 구조도

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

안드로이드 구조 (cont.) 안드로이드 런타임(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.) 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 Dalvik이란 이름은, Dalvik의 창시자인 본스타인이 자신의 조상이 살던 아이슬란드의 한 어촌의 이름을 따서 만든 것임

안드로이드 구조 (cont.) 라이브러리 (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.) 리눅스 커널 (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 Management, Low Memory Killer, Kernel Debugger, Logger 이다. 안드로이드 리눅스 커널 소스는 현재 아래의 URL에서 배포되고 있다. http://git.android.com

Android 개발환경 설치 Android 개발 도구 Android 개발환경 설치 순서 JDK(Java Development Kit) Android SDK(Standard Development Kit), NDK(Native Development Kit) Eclipse Classic 3.6 Cygwin Android 개발환경 설치 순서 JDK, Android SDK, Eclipse 3.6 다운로드 JDK, 이클립스 설치하기 http://plusblog.tistory.com/604 Android SDK 설치하기, ADT 플러그인 설치하기 http://plusblog.tistory.com/605

Android SDK 설치 해당 링크 에서 SDK 다운로드 http://developer.android.com/sdk/index.html 또는 borame.cs.pusan.ac.kr 에서 다운 받으셔도 됩니다.

Android SDK 설치 Next 를 눌러 진행하다 다음 그림과 같은 경로 설 정이 나오면 다음과 같이 수정합니다 Path - D:\android\android-sdk

Android SDK 설치 설치종료 후 다음과 같은 체크박스가 나오면 체크 후 Finish

Android SDK 설치 검은색 창이 떠있다가 다음과 같은 화면이 뜨게 됩니다. 아래 스크린샷에 체크된 것만 체크 후 Install 집에서는 Accept All을 선택하시고 Install하시면 간편합니다

Android SDK 설치 한참 후 다음과 같은 화면이 뜨면 Yes 를 눌러 진 행합니다. Close를 눌러 설치 종료

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

Android 개발 환경 구축 이클립스에 Android 개발 툴 플러그인인 ADT 를 설치합니다.

Android 개발 환경 구축 https://dl-ssl.google.com/android/eclipse/

Android 개발 환경 구축 경고문이 뜨게 되면 OK 로 진행합니다 다음 화면이 뜨면 Restart Now~!

Android 개발 환경 구축 설치가 끝났으니 경로 설정을 해줍시다

Android 개발 환경 구축 Android SDK 를 설치한 경로를 찾아 확인을 눌러 줍니다.

Android 개발 환경 구축 경로 설정이 끝났다면 가상 디바이스를 만듭니다 Android SDK and AVD Manager 선택!

Android 개발 환경 구축 Virtual devices 에서 New 를 선택합니다.

Android 개발 환경 구축 다음과 같이 이름과 버전을 선택 후 Create AVD 를 클릭하여 새 가 상 디바이스를 만들어 줍니다. Skin 의 경우 나중에 가지고 있는 스 마트폰에서 구동해보려면 스마트폰 의 해상도와 맞춰야 에뮬레이터에서 보이는 대로 나옵니다. 에뮬레이터에서만 구동할 경우 Default 로 해도 무방합니다.

Android 개발 환경 구축 이제 가상 디바이스 목록에 방금 만든 가상 디바이스가 있습니다. 그 가상 디바이스를 선택한 뒤, 오른쪽의 Start 버튼을 눌러 봅니다. 다음 화면이 뜨면 Launch!

Android 개발 환경 구축 가상 디바이스가 부팅되는 데에는 꽤 오랜 시간이 걸리므로 기다려 줍시다~! 가상 디바이스가 부팅되는 데에는 꽤 오랜 시간이 걸리므로 기다려 줍시다~! 여기까지 오셨으면 개발 환경 구축 완료~!

Android 간단한 프로젝트 생성 [File] 메뉴에서 [New] -> [Project] 를 들어갑니다. 

Android 간단한 프로젝트 생성 빨간박스! 선택 후 Next 

Android 간단한 프로젝트 생성 Project Name : 프로젝트 명으로 해당 프로 젝트에 관련된 파일이 들어갈 디렉토리 이름 Build Target : 어떤 버전을 대상으로 만들 것 인가를  선택하는 것. Application Name : 스마트폰에 설치되었을 때 나타날 어플명을 결정하는 부분  Package Name : package namespace를 지 정하는 부분 실습할 때는 ‘example.마음대로’로 하기로 합시다. 텀 때는 알아서 하세요~ Create Activity : main 함수가 들어갈 클래 스의 이름을 지정하는 것. Min SDK Version : Android 2.2의 API Level인 8을 입력해 줍니다. 

Android 간단한 프로젝트 생성 프로젝트 생성 완료~! Hello.java : 실제 프로그램이 되어 지는 소스 부 분입니다. gen : 빌드 시에 자동으로 생성되는 파일들이 저 장되어 있는 곳입니다. 사용자가 수정하면 안됩 니다.  Android 2.2 : 현재 개발하고 있는 플랫폼의 라 이브러리들이 들어 있습니다. assets : 오디오, 비디오 등 멀티미디어 자료들 이 저장되는 부분입니다.  res : 리소스의 약자로 이미지, 레이아웃, 문자열 등이 저장되는 부분입니다.  drawable : 이미지 파일들이 저장됩니다. layout : 개체들의 레이아웃을 정의하는 부분입니다. values : 프로젝트에서 사용될 여러가지 값을 정의합 니다. AndroidManifest.xml : 프로젝트의 버전이나 이름 등에 대한 정보를 가지고 있습니다.  default.properties : 프로젝트의 빌드 타겟이 명시되어 있습니다. ( 플랫폼의 버전 등.. )

Android 간단한 프로젝트 생성 실행하고 화면의 잠금을 해제하면 다음 화면이 뜨 게 됩니다. Default 가 Hello World, Hello! 이므로 당황하지 맙시다~!

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

AutoCompleteTextView Object View AnalogClock TextView EditText Button Chronometer DigitalClock ImageButton GlSurfaceView VideoView AbsSeekBar ImageView SurfaceView ProgressBar AutoCompleteTextView CompoundButton CheckBox RadioButton ToggleButton SeekBar RatingBar

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

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

View – TextView 예제

금주의 실습 간단하게 Text 로 학번과 이름을 출력해 봅시다. 제약 조건 TextView를 2개 사용하여 학번과 이름을 각각 출력함. 각각의 TextView 색깔과 형태를 다르게 표현하도록 함.