안드로이드 개요.

Slides:



Advertisements
Similar presentations
ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
Advertisements

프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
CHAP. 2 안드로이드 개발 도구 설치. © 2012 생능출판사 All rights reserved 개발 과정의 개요.
Copyright© 2015 Hanbit Academy, Inc. All rights reserved. 01. 안드로이드 개요와 개발환경 구축.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
ReadyNAS Surveillance for x86 platform (Version ) NETGEAR.
컴퓨터공학과 CHAP.1 기초 사항. 컴퓨터공학과 1스마트폰 스마트폰 = 컴퓨터 + mp3 플레이어 + 휴 대용 게임기 다양한 앱 설치 가능.
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 앱 개발.
01. 안드로이드 개요와 개발환경 구축 제목.
자바 언어의 이해 Understanding of Java Programming
Linux/UNIX Programming
Image & Video processing
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
A n d r o i d Android 2010 년 5월 19일 작성자 : 백 선 재.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Power Java 제2장 자바 개발 도구.
Linux/UNIX Programming
제1강 안드로이드 특징과 개발환경 구축 안드로이드 앱 개발 강좌.
안드로이드 개요 2005년 휴대폰 소프트웨어 개발사인 Android를 구글이 인수 2007년 11월 오픈소스로 공개
Ubiquitous Computing Practice - Part I (Installation) -
이클립스를 이용한 AVR 개발환경 구축 로보틱스랩 유승일.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Android 개발환경 설치 및 Hello World
Visual Basic .NET 처음 사용하기.
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
ARM Development Suite v1.2
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
제1강 안드로이드 특징과 개발환경 구축 안드로이드 앱 개발 강좌.
UNIT 02 JDK & Tools 설치 로봇 SW 컨텐츠 교육원 조용수.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
Android studio로 Application 만들기.
Method & library.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
모바일 운영 체제 구글의 안드로이드 애플의 iOS 마이크로소프트의 윈도폰 8 RIM의 블랙베리 OS
Java 2장. 자바의 환경 public class SumTest {
개발 환경 세팅.
영상처리 실습 인공지능연구실.
제목소개 1. 안드로이드소개 2. 패킷캡쳐를 위한 환경 소개 3. ndk 소개 4. lipcap 5. 6.도식화 그림
Xscale Educational Kit
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
자바 5.0 프로그래밍.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
Linux/UNIX Programming
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
Platform Builder 사용법.
J2SE 설치 부산대학교 인공지능 연구실.
Presentation transcript:

안드로이드 개요

주요 내용 안드로이드 소개 안드로이드 SDK Hello, world 예 안드로이드 아키텍처 응용 프로그램, 응용 프레임워크 안드로이드 런타임, 라이브러리 리눅스 커널 안드로이드 SDK 개발 환경 구축 컴파일 과정 Hello, world 예

안드로이드 소개

구글 안드로이드(Google Android) 모바일 장치를 위한 소프트웨어 스택 리눅스 운영체제, 미들웨어와 핵심 응용 프로그램들로 구성 안드로이드 SDK 제공 자바 언어로 안드로이드 응용 프로그램을 개발을 위한 API와 툴 제공 오픈소스 기존의 다양한 오픈소스를 기반으로 개발 기존의 오픈소스 라이선스 GPL, GPL2, LGPL Apache BSD MIT SGI OpenGL

안드로이드 주요 특징 컴포넌트들의 교체와 재사용이 가능한 응용 프레임워크 모바일 장치에 최적화된 Dalvik 가상머신 Apache Harmony 표준 자바 라이브러리, http://harmony.apache.org/ Webkit 기반 웹 브라우저, http://webkit.org/ OpenGL ES 기반 3D 그래픽스 , http://www.khronos.org/opengles/ SQLite에 기반한 데이터베이스, http://sqlite.org/ OpenSSL에 기반한 SSL/TSL 보안 라이브러리, http://openssl.org/ 다양한 미디어 코덱 지원 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF GSM, 3G, 블루투스, WiFi, GPS, 카메라, 가속도계(accelerometer) 지원 풍부한 개발 환경 이클립스 IDE 플러그인, http://www.eclipse.org/ 디바이스 에뮬레이터, 디버깅 툴, 메모리 성능 프로파일링

안드로이드 아키텍처

응용 프로그램 구글 또는 제3자가 Java로 작성한 응용 프로그램 기본 응용 프로그램 내장 안드로이드 런타임(Dalvik 가상머신, 코어 라이브러리) 상에서 수행 Java API는 Java SE 5 버전에 기반 기본 응용 프로그램 내장 Email, SMS, Calendar, Maps, Browser, Contacts

응용 프레임워크 안드로이드 응용 프로그램 작성 시 사용되는 클래스들을 제공 Activity Manager Views 응용들의 수명(life cycle)을 관리 Views 응용들의 사용자 인터페이스의 구성 Content Provider 응용들 간의 데이터 액세스와 공유 기능 제공 Notification Manager 사용자에게 알려주는 시그널링 메커니즘 제공 Resource Manager 문자열, 그래픽 등과 같은 코드가 아닌 리소스들을 액세스하는 기능

Dalvik 가상머신 (1) 안드로이드 아키텍처의 핵심 구성요소 Java ME(Mobile Edition) 등과 같은 기존 Java 가상머신을 사용하지 않고 고유의 가상머신 개발 SUN의 라이선스 문제 회피 Davlik은 레지스터-기반 가상머신 Java 가상머신은 스택-기반 가상머신 Dalvik은 Java bytecode 대신 dex라 불리우는 고유의 bytecode 사용 각 응용들은 Dalvik 가상머신의 인스턴스들로 실행 Dalvik의 각 인스턴스는 리눅스 커널의 프로세스 Dalvik은 다수의 인스턴스를 효율적으로 처리하도록 설계 모든 안드로이드 하드웨어와 시스템 서비스는 Dalvik 을 사용하여 관리 Dalvik 은개발자 본스타인의 조상 마을 아이슬란드 어촌 지역명

Dalvik 가상머신 (2)

라이브러리 (1) 라이브러리 Apache Harmony 표준 자바 라이브러리, http://harmony.apache.org/ Surface manager 디스플레이 서브시스템에 대한 접근을 관리 Media Framework PacketVideo의 OpenCORE 기반, http://www.packetvideo.com/ MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 등 지원 SQLite 경량 데이터베이스, http://sqlite.org/ OpenGL/ES 3D 그래픽스, http://www.khronos.org/opengles/ FreeType 비트맵 및 벡터 폰트 렌더링 지원, http://www.freetype.org/

라이브러리 (2) Webkit SGL SSL Bionic Libc 웹 브라우저, http://webkit.org/ 웹 브라우저, http://webkit.org/ SGL 2D 그래픽스 엔진 SSL OpenSSL 기반 SSL/TSL 보안 라이브러리, http://openssl.org/ Bionic Libc BSD 기반 개발된 고유의 표준 C 시스템 라이브러리 linker, libc 표준 glibc, uclibc 사용하지 않음 사용자 응용 프로그램의 GPL 라이선스 회피 Glibc의 절반 정도의 200k 크기 C++의 STL(standard Template Library) 지원하지 않음

리눅스 커널 (1) 리눅스 커널 2.6 을 기반으로 하드웨어와 소프트웨어 스택 간의 추상화 계층으로 동작 프로세스 관리 Zygote를 통한 프로세스 관리 응용 프로그램을 빠르게 구동하기 위해 미리 fork 되어 있는 프로세스 실행하기 전 까지는 특정 응용 프로그램과 접합하지 않은 중립적인 상태 유지 메모리 관리 네트워크 스택 드라이버 모델 보안

리눅스 커널 (2) ARM 아키텍처에 포팅되는 GNU utillity packages 사용 ARM EABI(Embedded Application Binary Interface)에서 동작 http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3105/4 OpenBinder IPC(Inter Process Communication) 사용 http://www.angryredplanet.com/~hackbod/openbinder/docs/html/index.html X86 머신 상에서는 QEMU 에뮬레이터 필요 Goldfish: QEMU 에뮬레이터 기반 가상 하드웨어 www.qemu.org

안드로이드 SDK 15

안드로이드 SDK 소프트웨어 개발 키트 (Software Development Kit) 응용 프로그램을 개발하기 위한 API와 툴 제공 API 라이브러리, 다큐먼트 문서, 샘플 코드로 구성 안드로이드 에뮬레이터 DDMS (Dalvik Debug Monitoring Service) Java IDE인 Eclipse 상에서 개발환경 구축 다양한 PC 플랫폼 에서 지원 Windows, Mac OS X, Linux

순천향대학교 컴퓨터학부 이 상 정 17

개발 환경 구축 SDK 개발 환경 안드로이드 SDK JDK (Java Development Kit), Eclipse Android SDK 1.5 (Windows 버전) 다운로드, http://developer.android.com/sdk/1.5_r1/index.html JDK (Java Development Kit), Java SE (SDK) 6, JDK 6 Upadte 13 다운로드, http://java.sun.com/javase/downloads/index.jsp Eclipse Eclipse 3.4 (Ganymade), Eclipse IDE for Java Developers 다운로드 , http://www.eclipse.org/downloads/

안드로이드 SDK 설치 SDK 설치 (Windows) 다운로드 후 SDK 설치 경로에 압축 해제 환경 변수 설정 시작 -> 내 컴퓨터 선택, 마우스 오른쪽 버튼 속성 -> 고급 -> 환경 변수, 시스템 변수 Path 선택 SDK 설치 경로 등록, <your_sdk_dir>/tools

JDK 설치 JDK 설치 다운 받은 파일 실행

Eclipse 설치 및 ADT 플러그-인 다운로드 후 설치 경로에 압축 해제 ADT(Android Developer Tool) 플러그-인(plug-in) Eclipse 실행 메뉴, Help -> Software Updates 선택 다이얼로그, Available Software -> Add Site 선택 http://dl-ssl.google.com/android/eclipse/ 입력 다이얼로그, Available Software -> Developer Tools 체크박스 표시-> Install 선택 Install 다이얼로그, Next -> Finish Android DDMS, Android Development Tool 표시 Eclipse 다시 실행

ADT 플러그-인 (1)

ADT 플러그-인 (2)

ADT 플러그-인 (3)

ADT 추가 Eclipse 재실행 후 Window -> Preferences -> Andorod, Click Apply, then OK

응용 프로그램 컴파일 과정

에뮬레이터

Hello, World 예 1, http://developer. android 29

AVD 생성 AVD (Android Virtual Device) 안드로이드 에뮬레이터 실행을 위해 AVD 생성 에뮬레이터에서 사용되는 시스템 이미지와 디바이스 세팅 등을 정의 안드로이드 에뮬레이터 실행을 위해 AVD 생성 명령 창에서 다음 실행 android create avd --target 2 --name my_avd

프로젝트 생성 Eclipse 실행하고, 프로젝트 생성 소스, Eclipse Package File > New > Android Project Project name: HelloAndroid 프로젝트 이름 Application name: Hello, Android 안드로이드 디바이스에 표시되는 응용 이름 Package name: com.example.helloandroid 패키지 이름영역(namespace)으로 소스코드 위치 Create Activity: HelloAndroid 생성되는 클래스 이름, Activity 클래스의 서브클래스 Min SDK Version: 2 응용의 실행에 필요한 최소 API 레벨 표시 2의 값은 Android 1.1 target을 선택 소스, Eclipse Package source -> com.example.helloandroid -> HelloAndroid.java

초기 소스파일

UI 구성 소스 추가

소스 설명 Activity 클래스 뷰(view) TextView 클래스 작업(action)을 실행하고 단일 사용자 인터페이스(UI) 를 생성 onCreate() 메서드 사용자 Activity 실행 시 호출 초기화 및 UI 셋업 setContentView() 메서드 Activity UI의 내용을 디스플레이 뷰(view) 사용자 인터페이스는 뷰라는 객체의 계층으로 구성 뷰는 버튼, 이미지, 텍스트 라벨 등과 같은 객체 이들 객체들은 View 클래스의 서브클래스 TextView 클래스 텍스트를 관리하는 View의 서브클래스 setText() 메서드는 텍스트의 내용을 정의

실행 Run -> Run Android Application 선택

실행결과

Hello, World 예 2, http://developer. android 38

예제 소개 앞의 예제는 프로그램으로 UI 배치 안드로이드는 XML 기반 배치 (XML-based layout) 파일 제공 Eclipse 실행하고, Hello2 프로젝트 생성 File -> New -> Android Project Project name: Hello2 Application name: Hello2 Package name: com.example.hello2 Create Activity: Hello2 Min SDK Version: 2

XML 소스 XML 소스 Eclipse Package, res > layout > main.xml

XML 소스 분석 XML 속성(attribute) xmlns:android android:layout_width 스크린 상에서 배치가 가능한 폭 android:layout_height android:text TextView가 디스플레이하는 텍스트 표시 문자열 직접 기술 대신 string 리소스 사용

string 리소스 수정 string 리소스 Eclipse Package, res -> values -> string.xml

소스 코드 생성된 코드 원본 사용 R 클래스는 프로젝트에서 생성된 리소스를 참조하는 클래스 gen/R.java에서 정의

참고 사이트 구글 사이트, http://www.android.com/ 한국 안드로이드 사이트 Open Source Project, http://source.android.com/ Git, Repo version control system Ubuntu linux, Ecllipse Android Developers, http://developer.android.com/ Android application Android SDK Android Market, http://www.android.com/market/ Google Group, Android Internals, http://groups.google.com/group/android-internals 한국 안드로이드 사이트 http://www.kandroid.org