그림으로쉽게설명하는안드로이드프로그래밍 초판발행 2012 년 8 월 20 일 제 3 판 1 쇄 2015 년 7 월 27 일 지은이천인국펴낸이김승기펴낸곳 ( 주 ) 생능출판사 / 주소경기도파주시광인사길 143 출판사등록일 2005년 1월 21일 / 신고번호제

Size: px
Start display at page:

Download "그림으로쉽게설명하는안드로이드프로그래밍 초판발행 2012 년 8 월 20 일 제 3 판 1 쇄 2015 년 7 월 27 일 지은이천인국펴낸이김승기펴낸곳 ( 주 ) 생능출판사 / 주소경기도파주시광인사길 143 출판사등록일 2005년 1월 21일 / 신고번호제"

Transcription

1

2 그림으로쉽게설명하는안드로이드프로그래밍 초판발행 2012 년 8 월 20 일 제 3 판 1 쇄 2015 년 7 월 27 일 지은이천인국펴낸이김승기펴낸곳 ( 주 ) 생능출판사 / 주소경기도파주시광인사길 143 출판사등록일 2005년 1월 21일 / 신고번호제 호대표전화 (031) / 팩스 (031) 홈페이지 책임편집손정희 / 편집최일연, 신성민, 김민보 / 디자인유준범마케팅백승욱, 최복락, 김민수, 심수경, 최권혁, 백수정, 이재원, 최태웅, 김민정인쇄 제본 ( 주 ) 상지사P&B ISBN 정가 44,000원 이도서의국립중앙도서관출판예정도서목록 (CIP) 은서지정보유통지원시스템홈페이지 ( 와국가자료공동목록시스템 ( 에서이용하실수있습니다. (CIP 제어번호 : CIP ) 이책의저작권은 ( 주 ) 생능출판사와지은이에게있습니다. 무단복제및전재를금합니다. 잘못된책은구입한서점에서교환해드립니다.

3 개정 3 판 머리말 안드로이드는현재전세계사람들이가장많이사용하는모바일운영체제이다. 안드로이드는스마트폰을넘어서스마트카나스마트워치와같은웨어러블컴퓨터에서도많이사용되고있다. 안드로이드는컴퓨터공학도라면반드시알고지나가야하는중요한주제가되었다. 특히안드로이드 5.0 버전 ( 롤리팝 ) 부터는개발도구가 안드로이드스튜디오 로전격적으로변경되었다. 그동안이클립스로개발해오던개발자들에게는상당한충격이었을것이다. 하지만사용하다보면안드로이드스튜디오도이클립스만큼상당히편리한도구라는것을느낄수있다. 이책의개정3판에서는다음과같은점에역점을두고개정하였다. P R E F A C E 안드로이드 5.0 버전부터공식개발도구가된 안드로이드스튜디오 의설치, 사용법을자세하게설명하였다. 현재최신버전인 5.1 기반에서모든예제를다시작성하고테스트하였다. 최 신버전에맞지않는코드는삭제하였고최신예제들을보강하였다. 독자들이조금큰규모의앱을개발할때사용할수있는 Lab을제공한다. Lab 에서는여러가지분야의대표적인앱의기초버전을제공한다. 독자들은이기초버전에서출발하여서더큰규모의앱을작성할수있을것이다. 예를들어서초보적인 만보계 나 초보영상처리프로그램 앱을 Lab으로제공한다. 독자들은여기에살을붙여서본격적인앱을제작할수있을것이다. 기존의내용중에서지나치게자세하거나혼동을줄수있는부분은삭제하였으며, 설명을보다쉽게이해할수있도록보강하였다. 인텐트, 리스트뷰, NFC, 방송수신자등의많은분야를다시작성하였다. 개정판을준비하면서도항상초판의목표는잊지않았다. 이책은안드로이드입문자들을위한책이다. 초판의가장큰목표는컴퓨터공학에대한기본적인지식을가진개발자들이쉽게이해할수있는안드로이드책을만들어보자는것이었다. 안드로이드에서도기본적인개념을이해하는것이무척중요하다. 3

4 4P R E F A C E 예를들어서 인텐트, 이벤트처리, 액티비티 등의개념을정확하게이해하여야한다. 이책은기본적인개념을독자들에게친절하고자세히설명하고자노력하였다. 개 정 3판에서도적절한그림을가능한많이사용하여보다친숙하고, 지루하지않은책을만들려고노력하였다. 개정3판을만들면서많은도움이있었다. 항상적극적으로지원해주시는 ( 주 ) 생능출판사여러분께깊은감사를표한다. 그리고책이출간될때마다격려해주시고오류를지적해주시는모든독자여러분께깊이감사드린다. 2015년 7월저자천인국

5 머리말 안드로이드는최근에각광받는모바일운영체제이다. 안드로이드는지속적으로마켓쉐어를늘려가고있으며, 버전이올라갈때마다각종첨단기술들이추가되고있다. 하지만안드로이드는상당히배우기힘든점이있다. 첫번째로자바, 데이터베이스, 멀티태스킹, 네트워크, 센서등의광범위한분야에대한지식이있어야한다. 두번째로현존하는가장앞선이론과기술들을채택하다보니입문자들이이해하는데상당한어려움을느낀다. 시중에나와있는안드로이드에관한좋은책들도상당히어렵게기술되어있다. 저자가이책을저술하게된가장큰이유가바로이때문으로컴퓨터공학에대한기본적인지식을가진개발자들이쉽게이해할수있는안드로이드책을만들어보자는것이었다. 먼저적절한그림을가능한많이사용하여안드로이드개념을쉽게이해하도록노력하였다. 또한컬러를사용하여지루하지않고친숙한책이되도록노력하였다. P R E F A C E 이책은안드로이드입문자들을위한책이다. 이책으로안드로이드에대한기초를확실히하고, 실제애플리케이션개발에는구글의전문적인문서들과전문적인책들을참조하면될것이다. 안드로이드에대한가장큰정보원천은역시구글의안드로이드개발자웹페이지라할수있다. 이책을저술하면서도구글의웹페이지와샘플프로그램을많이참조하였다. 안드로이드는너무자주버전이업그레이드되는데, 책을저술하는입장에서는상당히어려운문제였다. 이책을저술하는중에도버전이두번이나업그레이드되었다. 이책에는가능한한최선을다해서최신의내용을담으려고노력하였다. 한가지다행스러운점은안드로이드에서는이전버전도최신버전에서계속지원된다는점이다. 책에들어있는소스는생능출판사홈페이지 ( 에서제공될것이다. 이책이만들어지기까지많은도움이있었다. 특히까다로운요구들을묵묵히들어주고적극적으로지원해주신생능출판사여러분께깊은감사를표한다. 그리고항 5

6 6P R E F A C E 상격려해주시고오류를지적해주시는모든교수님들과독자여러분께깊이감사드린다. 책을저술하는동안안드로이드에포함된첨단기술들이필자를즐겁게했듯이, 독자여러분들이이책에서즐거움을발견할수있다면필자에게는큰보람이될것이다. 2012년 7월저자천인국

7 차례 CHAPTER 01 기초사항 1. 스마트폰 안드로이드란? 안드로이드의특징 안드로이드의구조 애플리케이션의기초개념 인텐트 매니페스트파일 안드로이드개발준비사항 43 C O N T E N T S CHAPTER 02 안드로이드개발도구설치 1. 개발과정의개요 안드로이드개발도구 JDK 안드로이드스튜디오설치하기 SDK 추가로설치하기 첫번째프로젝트만들기 에뮬레이터생성하기 앱실행하기 예제코드를가져와서실행하여보자. 78 CHAPTER 03 첫번째애플리케이션 1. 애플리케이션의구성 마음껏변경하여보자 XML 을이용하여앱의화면작성하기 96 7

8 8C O N T E N T S CHAPTER CHAPTER 리소스 매니페스트파일 자동으로생성되는파일의분석 에뮬레이터로그캣 안드로이드폰을연결한개발환경구축 여러가지형식의앱 정리 116 사용자인터페이스기초 1. 사용자인터페이스개요 사용자인터페이스작성방법 비주얼도구를이용하여사용자인터페이스만들기 뷰 기초적인뷰들 138 Lab 계산기앱작성 146 레이아웃 1. 레이아웃 선형레이아웃 프레임레이아웃 (FrameLayout) 테이블레이아웃 (TableLayout) 상대적레이아웃 (RelativeLayout) 절대적레이아웃 (AbsoluteLayout) 코드로레이아웃변경하기 165 Lab 계산기앱작성 171

9 CHAPTER 06 입력위젯과이벤트처리 1. 입력위젯 버튼 이벤트를처리하는방법 이벤트처리객체를이용하여이벤트처리하기 텍스트필드 체크박스 라디오버튼 토글버튼 레이팅바 커스텀컴포넌트 터치이벤트 멀티터치이벤트 221 C O N T E N T S Lab 여론조사앱작성 229 Lab 온도변환기앱작성 233 CHAPTER 07 메뉴와대화상자 1. 사용자인터페이스개요 메뉴 XML 로메뉴정의하기 옵션메뉴생성하기 컨텍스트메뉴 팝업메뉴 액션바 액션바추가사항 대화상자 274 9

10 C O N T E N T S CHAPTER AlertDialog DatePickerDialog 커스텀대화상자 알림기능 (notification) 291 Lab 예약앱작성 295 그래픽 1. 그래픽 커스텀뷰를사용하여그리기 그리기속성 패스그리기 이미지표시하기 도형객체이용하기 애니메이션 프로퍼티애니메이션 뷰애니메이션 드로워블애니메이션 서피스뷰 (SurfaceView) 340 Lab 랜덤그래픽작성 350 Lab 그림판예제작성 354 Lab My Photoshop 작성 360 Lab MyImagePro 작성 364 CHAPTER 09 고급위젯과프래그먼트 1. 어댑터뷰클래스

11 2. 리스트뷰 그리드뷰 갤러리 스피너 프로그레스바 레이팅바 데이트픽커와타임픽커 프래그먼트 프래그먼트의생애주기 프래그먼트생성하기 태블릿과스마트폰에서화면다르게하기 유연한 UI 만들기 다른프래그먼트와의통신 머티어리얼디자인 431 C O N T E N T S Lab 주소록을 ListView 로표시하기 437 CHAPTER 10 액티비티와인텐트 1. 애플리케이션, 액티비티, 액티비티스택, 태스크 인텐트 명시적인텐트 여러페이지로구성된애플리케이션작성 액티비티로부터결과받기 암시적인텐트 멀티태스킹 태스크관리하기 인텐트필터 액티비티생애주기 액티비티상태저장

12 C O N T E N T S CHAPTER CHAPTER 리소스와보안 1. 리소스 기본리소스와대체리소스 리소스참조 다양한화면지원하기 지역화 보안 권한요청하기 530 서비스와방송수신자 1. 서비스 서비스기초 IntentService 클래스 연결타입서비스 방송수신자란? 애플리케이션이방송하기 중요한방송 572 Lab 센서값을읽는앱작성 578 CHAPTER 13 프로세스와스레드 1. 프로세스와스레드 프로세스 스레드 스레드에서 UI 를조작하는방법

13 CHAPTER 스레드를이용한이미지다운로드 게임예제 609 데이터베이스와환경설정 1. 데이터를저장하는방법 공유프레퍼런스 애플리케이션환경설정 내부공간에파일만들기 외부저장공간 데이터베이스 데이터베이스사용하기 데이터베이스와어댑터 651 C O N T E N T S Lab 영화데이터베이스만들기 655 CHAPTER 15 콘텐트제공자 1. 콘텐트제공자 콘텐트제공자의기본 콘텐트제공자로부터데이터읽기 주소록 콘텐트제공자를이용하여데이터변경하기 Calendar Provider 696 CHAPTER 16 네트워크 1. 네트워킹상태조회

14 C O N T E N T S 2. 웹에서파일다운로드 웹앱 XML 처리 722 CHAPTER 17 구글지도 2.0 CHAPTER 위치기반애플리케이션 사용자위치파악하기 지오코딩 구글지도 v 구글플레이서비스 지도 API 키얻기 지도애플리케이션작성 구글지도기초사항 지도위에마커그리기 지도위에그림그리기 지도와상호작용하기 780 멀티미디어 1. 안드로이드의멀티미디어지원 오디오재생 오디오녹음 인텐트를이용한이미지캡처 Camera 클래스를이용한영상캡처 내장사진선택하기 비디오재생 비디오녹화

15 CHAPTER CHAPTER 전화, SMS, 데이터공유 1. 인텐트를사용한전화걸기와문자메시지보내기 전화상태얻기 이메일보내기 다른앱에데이터보내고받기 843 블루투스 C O N T E N T S 1. 블루투스 블루투스설정절차 블루투스로채팅하기 저전력블루투스 ( 블루투스스마트 ) 877 CHAPTER 21 센서 1. 센서하드웨어 방향센서 가속도센서 905 Lab 만보계제작 910 Lab 주사위게임앱작성 914 CHAPTER 22 NFC 와앱위젯 1. NFC NFC 의기초 안드로이드는어떻게 NFC 를처리하는가?

16 C O N T E N T S CHAPTER 앱위젯 942 애플리케이션배포하기 1. 애플리케이션배포과정 애플리케이션서명하기 애플리케이션버전 애플리케이션마켓 968 찾아보기

17 A n d r o i d 01CHAPTER 기초사항 1. 스마트폰 2. 안드로이드란? 3. 안드로이드의특징 4. 안드로이드의구조 5. 애플리케이션의기초개념 6. 인텐트 7. 매니페스트파일 8. 안드로이드개발준비사항

18 01 기초사항 Android 안드로이드! 이보다더쉬울수는없을거야. 그렇다고너무안심하면앙 ~ 돼요! 기초가튼튼해야한다는거아시죠? 1. 스마트폰 애플이아이폰을발표한이후로스마트폰은우리의일상생활을바꾸어놓았다. 우리는스마트폰을이용하여서언제어디서나인터넷에접속하여정보를얻을수있으며각종애플리케이션을실행하여서필요한작업을수행할수있고필요한데이터와영상을가지고다닐수있다. 일반적으로스마트폰은일반적인휴대폰보다훨씬강력한기능을제공하는휴대폰이다. 실제로스마트폰은완전한운영체제가탑재되어있는조그마한컴퓨터라고할수있다. 따라서스마트폰에서는데스크톱컴퓨터처럼사용자가애플리케이션을설치하고실행할수있다. 18

19 기초사항 01 CHAPTER 언제어디서나인터넷을할수있다니! 그림 1.1 스마트폰은우리의일상을변화시키고있다. 모바일운영체제 스마트폰에탑재되는애플리케이션을개발하는개발자의입장에서는가장중요한것이운영체제이다. 왜냐하면운영체제에따라서애플리케이션의구조가완전히달라지기때문이다. 반대로하드웨어가다르더라도운영체제가같으면동일한애플리케이션을실행할수있다. 현재스마트폰운영체제로사용되는것은구글의안드로이드, 애플의 ios, 마이크로소프트의윈도폰 8 등이있다. 2014년도의세계시장분포를보면다음과같다 Market Share Others 1% BlackBerry 0% Windows Phone 3% ios 15% 그림 스마트폰운영체제의점유율 ( 출처 : International Data Corporation(IDC)): 전세계적으로안드로이드운영체제가약 80% 로높아졌음을알수있다. Android 81% 모바일운영체제의비교 최근에많이사용되는안드로이드, ios, 윈도폰운영체제를 [ 표 1.1] 로비교하였다. 19

20 안드로이드프로그래밍 표 1.1 모바일운영체제비교 안드로이드 ios 윈도폰 Open Handset Alliance 제조사 Google Apple Microsoft 개발언어 Java, C, C++ Objective-C, C, C++,.NET C#, VB.NET, Swift native C/C++ Windows Phone 8.1 최신버전 5.1(Lollipop) ios 8.2 (Apollo) 시장점유율 84.6% 11.9% 2.7% 최신버전배포일 플랫폼 ARM, MIPS, x86 ARM ARM 커널 리눅스 Darwin Windows NT 8+ 라이선스 Apache 2.0 Proprietary Proprietary 웹사이트 android.com apple.com/ios windowsphone.com 사용자인터페이스그래픽사용자인터페이스 Cocoa Touch (Multi-touch, GUI) 라이브타일사용자인터페이스 안드로이드 (android) 는구글에의하여개발되고배포되는운영체제이다. 안드로이드는리눅스커널을사용한다. 리눅스커널위에는자바코드를해석해주는가상머신이탑재되어있다. 이가상머신위에서거의모든자바라이브러리들이지원된다. 이자바라이브러리들을이용하여서개발자들은애플리케이션을작성하게된다. 당연히개발자들이사용하는언어는자바가된다. 자바언어의간결성과풍부한라이브러리로인하여안드로이드는다양한애플리케이션을작성할수있는강력한플랫폼이되었다. 안드로이드는자원이매우제한되어있는모바일장치를위한운영체제이지만개발자들은마치데스크톱에서처럼데이터베이스나 3차원그래픽등의많은기능들을유사하게사용할수있다. ios는애플의스마트폰인아이폰과아이팟터치, 아이패드에내장되어있는운영체제이다. 내부적으로는 Mac OS X 10.5 를기반으로만들어져있다. 멀티터치를지원하는코코아라고불리는사용자인터페이스를지원하고있다. 윈도폰은마이크로소프트의스마트폰을위한운영체제이다. 음악과동영상서비스를위하여 June을탑재하였으며, 검색엔진으로 Bing을사용하고엑스박스라이브가내장되어있다. 응용소프트웨어를나열하는기존의사용자인터페이스환경이아닌허브 (Hub) 를통해응용프로그램들이연결되어서라이브타일형식으로제공된다. 20

21 기초사항 01 CHAPTER 그림 1.3 모바일운영체제비교 (a) 안드로이드 (b) 윈도폰 (c) 아이폰 애플리케이션마켓 스마트폰이기존의휴대폰과다른점은사용자가무선으로애플리케이션을마켓에서다운로드하여서자신의스마트폰안에설치할수있다는점이다. 마켓을사용하게되면애플리케이션의업그레이드도매우쉽게이루어진다. 기존의데스크톱에서도인터넷에서애플리케이션을구입하여서다운로드하여설치할수있었지만개발자와사용자들이직접만나서거래하는장터 ( 마켓 ) 개념은아니었다. 애플에서처음으로개발자들과사용자들이만나서거래를할수있는애플리케이션마켓이라는새로운개념을창안하였다. 안드로이드도애플리케이션을거래할수있는마켓을지원한다. 안드로이드마켓은 구글플레이스토어 라는이름으로 그림 1.4 안드로이드마켓의개념 개발자 마켓 소비자 21

22 안드로이드프로그래밍 사용자들은 구글플레이스토어 를통하여많은애플리케이션들을다운로드할수있다. 이애플리케이션들은스마트폰의기능을확장하는역할을한다. 현재까지약 200,000개이상의안드로이드용애플리케이션이개발되었다. 물론애플리케이션들은안드로이드마켓이아닌써드파티사이트를통해서도다운로드가가능하다. 2. 안드로이드란? 안드로이드의역사 안드로이드의역사를간단하게살펴보자. 안드로이드가등장하기전까지는윈도우모바일이나심비안등의휴대폰운영체제가있었으나애플리케이션개발에는빈약한라이브러리, 잦은오류, 저성능등의많은문제점들이있었다. 구글은데스크톱에서의검색엔진이라는기존의한계를벗어나기위하여모바일시장으로의진입을엿본다. 구글의목표는오픈소스로작성되고개방된고성능의개발프레임워크였다. 2005년에구글은안드로이드주식회사를인수하게된다. 안드로이드주식회사는캘리포니아에있는작은벤처기업이었다. 안드로이드주식회사의설립자중의한명이었던앤디루빈등은인수된후에구글에서일하게된다. 구글에서앤드루빈이이끄는팀은리눅스커널에기반을둔모바일장치플랫폼을개발한다. 2007년 11월 5일에구글은삼성전자, 텍사스인스트루먼트, 모토로라등으로구성된 OHA(Open Handset Alliance) 라는컨소시엄을구성한다. 이컨소시엄은모바일장치를위한오픈표준을개발하려는목적을가지고있었다. OHA는설립과동시에첫번째작품인안드로이드 SDK 1.0 버전을발표하는데이것은리눅스커널버전 2.6 위에구축된모바일장치플랫폼이었다. 안드로이드플랫폼을탑재한최초의스마트폰은대만의 HTC가만들어서이동통신사 T_Mobile에납품한 G1이었다. 이어서우리가알다시피삼성전자의갤럭시 s를비롯하여수많은안드로이드폰들이출시되었다. 22

23 기초사항 01 CHAPTER 안드로이드라이선스 구글은안드로이드소스를아파치라이선스로공표한다. 아파치라이선스 (Apache License) 는 ASF(Apache Software Foundation) 에의하여기술된무료소프트웨어라이선스로저작권표시는요구하지만해당소스코드를가지고무료또는상업적인소프트웨어를개발할수있는라이선스를의미한다. 즉이것은스마트폰제조사들이안드로이드를탑재하는데라이선스비용을지불할필요가없음을의미한다. 또한개발자들은안드로이드를기반으로비공개파생물을만들수있으며이것을통하여이득을얻을수있다. 안드로이드버전 안드로이드는 1.0 버전이후에많은업데이트를거쳤다. 사실은너무많은업데이트가있어서제조업체의불만이기도하다. 이것은또한구글이최신의기술들을안드로이드로빠르게도입하고있음을의미한다. 안드로이드버전에붙여지는이름은알파벳문자로시작되는디저트의이름이다. 예를들어서버전 5.0 의롤리팝은막대사탕을의미한다. 간단하게최신버전의특징을 [ 표 1.2] 에서살펴보자. 이미지 버전 발표일 특징 SIP VoIP 전화기술지원 2.3 근거리 (Near Field Communication) 통신지원 (Gingerbread) 복사-붙여넣기기능지원 자이로스코프센서지원 태블릿지원 (Honeycomb) 4.0 (Icecream Sandwitch) (Jelly Bean) 멀티코어프로세서지원 구글 3D 지도서비스 태블릿최적화 UI 지원 2.3과 3.0의통합버전 얼굴인식언락 NFC를이용한데이터전송및공유 사진향상도구 오프라인이메일탐색 애플리케이션폴더 프로젝터버터로전체적인속도증가 지식그래프를이용한음성검색기능 구글나우 : 사용자에게맞춤형정보제공 알림기능강화 표 1.2 안드로이드버전 23

24 안드로이드프로그래밍 4.4 (KitKat) 5.1 (Lollipop) Ok Google 이라고말하면구글나우서비스가실행됨 몰입모드지원 메모리사용최적화 터치스크린의반응속도와정밀도향상 크롬캐스트지원 운영체제최적화구현 머티어리얼디자인도입 ART 가상머신도입 64비트 CPU 지원 노티피케이션기능향상 안드로이드 TV 지원 3. 안드로이드의특징 안드로이드는어떤특징을가지는모바일운영체제일까? 여기서는일단간단하게살펴보고추후에자세히하나씩살펴보도록하자. 애플리케이션프레임워크 (Application framework) 컴포넌트의재사용과대체가가능하다. 달빅가상머신 (Dalvik virtual machine) 모바일장치에최적화되어있다. 내장된웹브라우저 (Integrated browser) 오프소스인 WebKit 엔진에토대를두고있다. 최적화된그래픽 (Optimized graphics) 2D 그래픽은자체 2D 라이브러리에의하여제공되고 3D 그래픽은 OpenGL ES 1.0, 규격에기반을두고있다. SQLite 데이터베이스지원 각종오디오, 비디오규격지원 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 블루투스, EDGE, 3G, WiFi 지원 카메라, GPS, 나침판, 가속도계지원 풍부한개발환경제공에뮬레이터, 메모리와성능프로파일링, 안드로이드스튜디오제공 24

25 기초사항 01 CHAPTER 그림 1.5 안드로이드가제공하는기능들 ( 출처 : 안드로이드개발자페이지 ) 컴포넌트의재사용 애플리케이션은여러개의컴포넌트 (component) 로이루어진다. 안드로이드는컴포넌트의재사용을가능케하는애플리케이션프레임워크를가진다. 하나의애플리케이션은다른애플리케이션의컴포넌트를사용할수있다. 모바일장치에서컴포넌트의재사용이중요한이유는프로세서의처리속도가적절하거나메모리용량이충분하지않기때문이다. 애플리케이션 1 애플리케이션 2 Intent 방송수신자 액티비티 A Intent Intent 액티비티 C 액티비티 B Intent 콘텐츠제공자 SQLite 자바언어지원 안드로이드애플리케이션은자바로작성된다. 안드로이드개발자들은자바의 SE 버 25

26 안드로이드프로그래밍 전중에서 AWT와스윙 (swing) 을제외한거의모든패키지를사용할수있다. 안드로이드에서는자바를지원하기위하여자체적인가상머신을구현하였다. 자바의표준 JVM을사용하지않는이유는스마트폰이데스크톱에비하여처리속도와메모리측면에서한참뒤쳐지기때문이다. 모바일장치에서는모든것을최적화시키는것이중요하다. 이전버전의안드로이드에서는달빅 (Dalvik) 가상머신을사용하였으나 5.0 버전부터는새로운가상머신인 ART를사용한다. ART는 ahead-of-time(aot), justin-time(jit), 향상된가비지콜렉션, 향상된디버깅을지원한다. ART는 ARM, x86, MIPS 구조에서지원되며 64비트구조이다. 여기서한가지주의할점은안드로이드에서는자체가상머신을사용하므로일반적인자바의클래스파일에들어있는바이트코드는직접실행이불가능하다는점이다. 반드시바이트코드를 ART 실행파일형식으로변환하여야실행이가능하다. 선언적사용자인터페이스사용 안드로이드는사용자인터페이스를 XML을사용하여정의한다. 함수를호출하는기존의절차적인방법을사용하지않고 XML을이용하여서선언적으로정의하는것이다. 이방법은보다진 절차적 선언적 Swing이나 AWT와비슷하게 웹페이지의 HTML과비슷하게 자바코드를작성한다. XML 코드를작성한다. 보된방법으로여겨지고있으며마이크로소프트의실버라이트나 Sun의 JavaFX와유사하다. 컴퓨팅의역사에서사용자인터페이스작성기법은꾸준히발전되어왔다. 제일원시적인방법이 C언어로윈도우 API 함수들을호출하는방법이다. 이후로 C++ 언어로 MFC(Microsoft Foundation Classes) 라이브러리를사용하는방법이등장하였고자바언어의 Swing과같은라이브러리는이보다도진보된방법이라고한다. 안드로이드에서사용하는선언적인사용자인터페이스방법은 Swing보다도발전된것으로여겨진다. 안드로이드에서사용자인터페이스를작성하려면먼저 XML 파일을생성한다. 이 XML 파일안에화면을구성하는버튼이나텍스트와같은 GUI 요소들을엘리먼트로적어준다. 이방법은앞으로질리도록많이등장할것이다. 26

27 기초사항 01 CHAPTER 첨단기능제공 카메라, GPS, 나침판, 가속도계와같은각종첨단센서들을지원한다. 이러한센서들을이용하여서실감나는게임을제작할수있다. 라이브폴더, 위젯, 미디어녹음기능, 텍스트음성변환, 멀티터치, 제스처, 음성인식과같은첨단소프트웨어기술들을지원한다. 안드로이드폰에서음성검색을사용해본사용자라면상당한수준의음성인식이가능하다는것을느꼈을것이다. 멀티미디어에대한지원도상당하다. 2D 그래픽은자체제작한라이브러리를통하여최적화된그래픽을제공한다. 3D 그래픽은 OpenGL을간략화한 OpenGL ES 규격에토대를두고있다. 멀티미디어재생을위하여 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF 등의대부분의정지영상, 동영상, 오디오형식을지원한다. 여러가지방식의통신도지원하는데블루투스 (Bluetooth), 3G 통신망, WiFi 통신기능을지원한다. 웹브라우징을위하여오픈소스웹킷 (WebKit) 엔진에기반을둔통합브라우저를내장하고있다. 개방적이고풍부한개발환경을제공한다. 안드로이드의가장큰특징은개방성이다. 누구나가져다가사용할수있고무료로제공되지만기존의폐쇄적이고독점적인모바일플랫폼과비교해도손색없는성능과완벽함을제공한다. 안드로이드는오픈소스만을조립하여서만들었지만리눅스와같이시장에서오랜기간동안에검증된소프트웨어만을사용하였다. SQLite나 OpenGL ES와같은라이브러리도이미검증되어많이사용되고있는개방적인오픈 27

28 안드로이드프로그래밍 소스이다. java.net과같은자바언어의풍부한라이브러리도이미검증된오픈소스라간주할수있다. 따라서개발자들은견고한프레임워크위에서안전하게자신의애플리케이션을개발할수있다. 안드로이드는 SDK를통하여단말기에뮬레이터, 디버깅도구, 메모리및성능프로파일링도구들을기본으로제공한다. 특히안드로이드 SDK에포함된안드로이드스튜디오 (Android Studio) 를사용하여서보다쉽게애플리케이션개발이가능하다. 안드로이드는윈도우 XP 또는비스타, 윈도우 7, Mac OS X, 리눅스와같은다양한운영체제에서개발이가능하다. 강력한에뮬레이터가제공되기때문에개발자들은실제장치없이도상당한수준으로애플리케이션을개발하고테스트할수있다. 안드로이드에뮬레이터로테스트할수없는것은카메라, 비디오, 블루투스, USB 연결, 배터리와같은기능들뿐이다. 안드로이드에뮬레이터는 CPU 명령어수준에서에뮬레이션이가능하다. 스마트폰은보통 ARM 계열의 CPU를사용하므로에뮬레이터는 ARM 프로세서를시뮬레이션한후에이위에서안드로이드리눅스커널을실행시킨다. 따라서굉장히정확한에뮬레이션이가능하다. 클라우드컴퓨팅 안드로이드는클라우드컴퓨팅 (cloud computing) 을지원한다. 클라우드컴퓨팅은인터넷상의서버에여러가지자원 ( 프로그램, 데이터 ) 을저장하고, 필요할때마다자신의모바일장치를통하여사용하는컴퓨팅기법이다. 예를들면 MS 오피스와같 28

29 기초사항 01 CHAPTER 은프로그램을서버에설치해놓고웹브라우저를통하여원격으로사용하는것이클라우드컴퓨팅이다. 안드로이드에서도음성인식과같은기능은클라우드컴퓨팅을통하여지원된다. 또사진이나앱, 게임이메일, 연락처등을서버에저장하고필요하면언제든지불러서사용할수있다. 4. 안드로이드의구조 애플리케이션을개발하기전에미리알아두어야하는사항들을여기서학습하여본다. 안드로이드는단순히운영체제만을제공하는것은아니다. 안드로이드는운영체제, 미들웨어, 핵심애플리케이션을모두포함하는모바일플랫폼이라고할수있다. 구글에서는안드로이드를소프트웨어스택 (software stack) 이라고부른다. 즉소프트웨어를스택처럼쌓아두었다는의미이다. 다음그림은안드로이드운영체제의주요한요소들을나타낸다. 애플리케이션 그림 1.6 안드로이드의소프트웨어구조 애플리케이션프레임워크 라이브러리 안드로이드런타임 리눅스커널 29

30 안드로이드프로그래밍 리눅스커널 (linux kernel) 안드로이드는리눅스버전 2.6 을사용하여서보안, 메모리관리, 프로세스관리, 네트워크, 장치드라이버와같은시스템서비스를제공한다. 커널은하드웨어와나머지소프트웨어스택사이의추상화계층으로동작한다. 즉모바일장치의하드웨어가다르더라도상위계층에균일한환경을제공한다. 안드로이드런타임 (Android Runtime) 안드로이드런타임은애플리케이션을실행시키기위한최소한의환경을제공한다. 안드로이드런타임은자바의코어라이브러리와가상머신으로구성된다. 모든안드로이드애플리케이션은리눅스의하나의프로세스로실행되며, 각프로세스마다자신만의가상머신을가진다. 따라서여러개의가상머신이동시에실행될수있으므로가상머신은이를감안하여서효율적으로실행할수있도록설계되었다. 가상머신은레지스터기반이며, 자바컴파일러에의하여컴파일된클래스들을.dex 형식으로변환한후에실행한다. 라이브러리 (libraries) 안드로이드는다양한 C/C++ 라이브러리를포함하고있다. 개발자들은애플리케이션프레임워크를통하여이들라이브러리들을사용할수있다. 시스템 C 라이브러리 - BSD 기반의표준 C 시스템라이브러리 (libc) 를제공한다. 미디어라이브러리 - PacketVideo의 OpenCORE에기초한다. 인기있는오디오및 비디오형식의재생및녹음을지원한다. 구체적으로 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 등을지원한다. Surface manager - 디스플레이서브시스템을관리하고여러애플리케이션에서 나오는 2 차원과 3 차원그래픽레이어들을끊어짐없이합성한다. LibWebCore 웹브라우저를구현하는첨단의웹브라우저엔진 SGL - 기본 2D 그래픽엔진 3D 라이브러리 - OpenGL ES API 기반의라이브러리, 하드웨어 3D 가속을사용하 거나최적화된내장 3 차원소프트웨어래스터라이저를사용한다. FreeType - 비트맵과벡터글꼴렌더링을제공한다. SQLite - 강력하고가벼운관계형데이터베이스엔진 30

31 기초사항 01 CHAPTER 애플리케이션프레임워크 (application framework) 애플리케이션프레임워크에서는개발자들을위한 API(Application Programming Interface) 를제공한다. 즉개발자들은이프레임워크가제공하는기능을이용하여서자신들의애플리케이션을개발하게된다. 개발자는프레임워크를통하여하드웨어장치, 위치정보접근, 병렬처리기능, 알람설정기능, 상태표시줄알림등의기능을사용할수있다. 애플리케이션 (application) 안드로이드는전화, 메시지, 달력, 지도, 이메일, 브라우저, 전화번호부와같은핵심애플리케이션들을기본으로탑재하고있다. 모든애플리케이션은자바프로그래밍언어를사용하여개발된다. 안드로이드에서모든애플리케이션은동일한라이브러리를사용한다. 즉써드파티애플리케이션이라고해서차별받는것은아니다. 사용자한테실제로중요한것은바로애플리케이션이다. 아무리하드웨어적으로훌륭한스마트폰을만들었다고해도사용자를끌어들일수있는킬러애플리케이션이없으면스마트폰을대중들한테어필할수없다. 안드로이드는마켓을통하여많은애플리케이션들이유통될수있는환경을구축하고있다. 5. 애플리케이션의기초개념 애플리케이션을작성하는데필수적인개념들은여기서살펴보고지나가자. 만약이해가안된다고해도크게걱정할것은없다. 앞으로반복적으로등장하게된다. 안드로이드애플리케이션은자바언어로작성된다. 안드로이드 SDK 도구를이용하면자바코드를컴파일하고리소스와결합하여서안드로이드패키지 (Android package,.apk 확장자 ) 로만들수있다. 하나의.apk 파일안에있는모든코드는하나의애플리케이션으로간주된다..apk 파일은모바일장치로다운로드되어서애플리케이션으로설치된다. 애플리케이션은어떻게작성할까요? 31

32 안드로이드프로그래밍 일단장치에설치되면, 각안드로이드애플리케이션은다음과같은기법을사용하 여서자신의보안샌드박스 (sand box, 꼬마들이노는모래상자를말한다.) 안에서만 동작된다. 각애플리케이션은리눅스운영체제상에서서로다른사용자가된다. 운영체제는각애플리케이션에사용자아이디를부여하고애플리케이션에속하는파일은다른애플리케이션이접근할수없다. 각애플리케이션은자신의가상머신 (virtual machine) 위에서실행된다. 따라 서다른애플리케이션과는완벽하게분리되어서실행된다. 기본적으로, 각애플리케이션은자신의리눅스프로세스 (process) 안에서실행 된다. 안드로이드는애플리케이션의컴포넌트가실행되어야할때프로세스를실행한다. 그리고더이상필요하지않을때나시스템이메모리를확보해야할때는프로세스를종료한다. App1 가상머신 프로세스 (UID 10000) App2 가상머신 프로세스 (UID 10001) /data/.../...app1 /data/.../...app2 리눅스거널 위와같은방식으로안드로이드는 최소권한의원칙 (principle of least privilege) 을구현한다. 즉각애플리케이션은필요한작업을할수있을만큼의 32

33 기초사항 01 CHAPTER 권한만가진다는것이다. 이것은매우안전한환경을만든다. 각애플리케이션은권한이없는시스템기능에접근할수없다. 하지만하나의애플리케이션이다른애플리케이션들과데이터를공유해야하거나시스템서비스를사용해야한다면다음과같은방법이있다. 2개의애플리케이션이동일한리눅스사용자아이디를공유할수있다. 이경우에는다른애플리케이션의파일들에접근할수있다. 시스템자원을절약하기위하여같은아이디를가진애플리케이션들은동일한리눅스프로세스안에서실행되도록설정할수있다. 그리고가상머신도공유한다. 애플리케이션은장치데이터에접근할수있는권한을요청할수있다. 예를들면연락처, 문자메시지, SD 카드, 카메라, 블루투스등이다. 이들권한은사용자에의하여설치시에승인된다. 이번절에서는다음과같은안드로이드의핵심개념에대하여살펴본다. 애플리케이션을구성하는컴포넌트 애플리케이션에대한정보를표시하는매니페스트파일 애플리케이션과분리되어서리소스를정의하는방법 애플리케이션컴포넌트 먼저가장중요한개념은안드로이드애플리케이션은컴포넌트 (component) 들로구성된다는점이다. 컴포넌트는애플리케이션을만드는빌딩블록이며, 각컴포넌트들은하나의독립된엔티티로존재하고, 정해진역할을수행한다. 각컴포넌트는애플리케이션을시작하는진입점을가질수있다. 안드로이드에는다음과같은 4 가지의타입의컴포넌트가있다. 액티비티 서비스 방송수신자 콘텐트제공자 33

34 안드로이드프로그래밍 액티비티 액티비티 (activity) 는사용자인터페이스화면을가지며특정한작업을담당하는 컴포넌트이다. 액티비티 화면을통하여사용자를상대합니다. 액티비티 하나의애플리케이션은여러개의액티비티를가질수있다. 이메일애플리케이션을예로들어보자. 이메일애플리케이션은수신된이메일들의리스트를화면에표시하는액티비티를가질수있다. 또이메일을작성하는화면이또하나의액티비티가될수있다. 또다른액티비티에서는수신된이메일의내용을화면에표시할수있다. 이들액티비티를모두결합하면하나의이메일애플리케이션이된다. 액티비티는 Activity라는클래스를상속받아서작성된다. 그림 1.7 이메일애플리케이션은 3 개의액티비티로이루어진다. 액티비티 #1 수신된이메일리스트표시 액티비티 #2 이메일작성 액티비티 #3 수신된이메일내용표시 이메일애플리케이션 서비스 서비스 (service) 는백그라운드에서실행되는컴포넌트로오랫동안실행되는작업이나원격프로세스를위한작업을할때사용된다. 서비스는사용자인터페이스화면을가지지않는다. 예를들어서서비스는사용자가다른애플리케이션을실행하는 34

35 기초사항 01 CHAPTER 동안에배경음악을연주하는데사용된다. 또는사용자상호작용을방해하지않으면서네트워크를통하여데이터를꺼내올수도있다. 서비스는액티비티와같은다른컴포넌트에의하여시작된다. 모든서비스는 Service 클래스를상속받아서작성된다. 서비스를사용하는전형적인예를살펴보자. 음악을재생하는애플리케이션은사용자가곡을선택하는화면을가지고있다. 이화면은액티비티로구현된다. 그러나실제로음악을재생하는작업은액티비티에의하여처리되지않는다. 왜냐하면사용자가이화면을떠 서비스 나서다른작업을하더라도음악이계속재생되어야하기때문이다. 따라서음악재생액티비티는서비스를실행하고음악재생을서비스에위임한다. 배경에서장시간에걸친작업을수행합니다. 액티비티 #1 음악재생화면 서비스 #1 음악재생서비스 그림 1.8 미디어플레이어애플리케이션은 1 개의액티비티와 1 개의서비스로이루어진다. 미디어플레이어애플리케이션 방송수신자 방송수신자 (broadcast receiver) 도방송을받고반응하는컴포넌트이다. 많은방송들은시스템에서발생한다. 즉화면이꺼졌다거나배터리사용가능량의상태라든지, 사진이촬영되었다는것을알리기위하여방송을사용한다. 또애플리케이션도자기나름의방송을송출할수도있다. 예를들어서어떤데이터가다운로드되어서사용가능하게되었다는것을다른애플리케이션에알릴목적으로방송을사용할수있다. 방송수신자는 BroadcastReceiver 클래스를상속받아서작성된다. 방송수신자는일반적으로사용자인터페이스를가지지않는다. 방송수신자가수신된정보에반응하여서새로운액티비티를시작할수도있 다. 또사용자에게경고하기위하여통지매니저 (Notification Manager) 방송수신자 방송이나공지를수신합니다. 35

36 안드로이드프로그래밍 를사용할수도있다. 즉백라이트를점멸한다든지, 장치를진동시키거나, 사운드를재생할수있다. 또상태바에아이콘을통하여이벤트가발생하였다는것을알릴수있다. 콘텐트제공자 콘텐트제공자 (content provider) 는데이터를관리하고다른애플리케이션데이터를제공하는컴포넌트이다. 데이터는파일시스템이나 SQLite 데이터베이스, 웹상에저장될수도있다. 콘텐트제공자를통하여다른애플리케이션은데이터를쿼리하거나변경할수있다. 일반적인앱 데이터앱 액티비티 insert( ) update( ) delete( ) query( ) 콘텐트제공자 DB 예를들어서전화번호부애플리케이션에는많은사람들의이름과전화번호가데이 터베이스의형태로저장되어있고이데이터는콘텐트제공자를통하여다른애플리케이션에제공될수있다. 즉데이터를다른애플리케이션과공유할수있는것이다. 36

37 기초사항 01 CHAPTER 그림 1.9 전화번호부애플리케이션은 1 개의액티비티와 1 개의콘텐트제공자로이루어진다. 콘텐트제공자는 ContentProvider 클래스를상속받아서작성된다. 또다른애플 리케이션이데이터를받고저장할수있는메소드들을재정의하여서제공한다. 다른애플리케이션의컴포넌트를실행할수있다! 안드로이드애플리케이션은 PC에서실행되는프로그램과는상당히다르다. PC의프로그램은코드와데이터가합쳐져서하나의실행파일로되어있으며이실행파일이메모리에적재되어서실행된다. 그리고일반적으로 PC에서하나의프로그램은다른프로그램안에들어있는코드를사용할수없다. 즉각프로그램은서로독립적으로실행된다. 다른애플리케이션의코드를사용할수없다! 그림 1.10 PC 에서는다른애플리케이션이가지고있는코드를사용할수없다. 애플리케이션 A 애플리케이션 B 그러나안드로이드의애플리케이션은상당히다르다. 안드로이드에서는하나의애플리케이션이다른애플리케이션의컴포넌트들을이용할수있다는점이다. 물론다른애플리케이션의컴포넌트를이용하려면그애플리케이션의허가를받아야한다. 허가만얻을수있다면여러개의애플리케이션들이특정한컴포넌트를공유하여서사용하는것이가능하다. 이것은 CORBA나 COM처럼, 분산된소프트웨어컴포넌트들이동시에실행되면서하나의작업을함께하는개념과유사하다. 다만 CORBA나 37

38 안드로이드프로그래밍 COM 은분산환경이지만안드로이드는하나의모바일장치안에서작업이이루어진 다는점이다르다. 그림 1.11 안드로이드에서는다른애플리케이션이가지고있는컴포넌트를사용할수있다. 다른애플리케이션의컴포넌트사용가능 애플리케이션 A 애플리케이션 B 이것을예를들어서설명하여보자. 애플리케이션에서사용자가사진을촬영하도록하고싶다. 하지만이러한기능을제공하려면상당한코딩이필요하다. 이런경우에생각해보면분명히안드로이드안에는사진촬영기능을제공하는카메라애플리케이션이존재한다. 이런경우에는카메라애플리케이션에포함된사진촬영기능을사용하면된다. 물론이러한기능은컴포넌트형태로카메라애플리케이션에포함되어있지만이컴포넌트를우리의코드에포함할필요도없고링크할필요도없다. 단순히필요할때마다카메라애플리케이션의액티비티를시작하기만하면된다. 영상이캡처되면영상은우리의애플리케이션으로반환된다. 따라서이영상을우리의애플리케이션에서사용할수있다. 이것은상당히혁신적인개념으로스마트폰처럼자원이부족한환경에서는아주바람직하다. 이것이가능하려면어떤애플리케이션의컴포넌트를실행해달라고요청이들어왔을때그애플리케이션프로세스를시작할수있어야한다. 예를들어서우리의애플 38

39 기초사항 01 CHAPTER 리케이션이카메라애플리케이션에포함된액티비티를시작하였다면이액티비티는우리의애플리케이션프로세스안에서실행되는것이아니라카메라애플리케이션프로세스안에서실행되어야하기때문이다. 이런이유때문에 PC의애플리케이션과는다르게, 안드로이드애플리케이션은유일한실행진입점 (single entry point) 을갖지않는다 ( 즉 main( ) 함수가없다 ). 반면에안드로이드애플리케이션은내부에포함된컴포넌트들을통하여여러갈래로실행될수있다. 하지만우리가직접적으로다른애플리케이션의컴포넌트를실행할수있는것은아니다. 반드시안드로이드시스템에우리의의도가포함된메시지를보내서요청하여야한다. 요청이승인되면, 안드로이드시스템이우리가요청한컴포넌트를실행한다. 6. 인텐트 그러면애플리케이션은어떻게자신이원하는컴포넌트를안드로이드안에서찾아서실행할수있을까? 바로여기에사용되는것이인텐트 (intent) 라고불리는비동기적인메시지이다. 인텐트를번역한다면 의도 라고할수있다. 즉애플리케이션의의도를적어서안드로이드에전달하면안드로이드가가장적절한컴포넌트를찾아서활성화하고실행한다. 애플리케이션은어떻게자신이원하는컴포넌트를안드로이드안에서찾아서실행할까? 인텐트객체 ACTION:. DATA:. 그림 1.12 인텐트를통하여다른애플리케이션의컴포넌트를활성화시킬수있다. 애플리케이션 A 애플리케이션 B 39

40 안드로이드프로그래밍 인텐트는 Intent 클래스의객체로서컴포넌트가필요로하는요청내용을가지고있다. 액티비티와서비스의경우에는인텐트객체안에필요한액션의이름 ( view 또는 send ) 과사용할데이터의 URI를가지고있다. 예를들어서이미지를화면에표시하거나웹페이지를오픈하는요청을인텐트에기술할수있다. 어떤경우에는인텐트를통하여결과를반환받기도한다. 그림 1.13 인텐트를통하여다른애플리케이션의컴포넌트를활성화시킬수있다. 방송수신자의경우에는인텐트가방송되는공지사항을가지고있다. 예를들어서배터리사용가능량이얼마없으면 battery is low 라는문자열이인텐트안에액션으로저장된다. 4가지의컴포넌트종류중에서콘텐트제공자는약간다른접근방식을가지는데인텐트에의하여실행되지않고, 별도의객체인 ContentResolver를사용하여서실행된다. 콘텐트리졸버가콘텐트제공자와의모든트랜잭션을처리하기때문에우리는단순히콘텐트리졸버객체의메소드를호출하면된다. 이것은보안을위하여, 정보를제공하는콘텐트제공자와정보를요청하는컴포넌트사이에추상계층을하나더둔것이다. 각컴포넌트를활성화하는메소드들을나열하여보면다음과같다. 액티비티를시작하려면 startactivity( ) 나 startactivityforresult( ) 를호출 한다. 서비스를시작하려면 startservice( ) 나 bindservice( ) 를호출한다. 방송을시작하려면 sendbroadcast( ), sendorderedbroadcast( ), sendsticky Broadcast( ) 를호출한다. 콘텐트제공자에쿼리를보낼려면콘텐트리졸버의 query( ) 를호출한다. 40

41 기초사항 01 CHAPTER 7. 매니페스트파일 안드로이드가어떤컴포넌트를시작하려면먼저애플리케이션안에그컴포넌트가존재하는지를알아야한다. 애플리케이션안의모든컴포넌트들은매니페스트파일 (manifest file) 안에선언되어야한다. 매니페스트는 적재목록 이라고해석하면될것이다. 매니페스트파일은 XML로작성되어있으며모든애플리케이션에대하여 AndroidManifest.xml이란이름으로존재한다. 이패키지에포함된컴포넌트 액티비티 #1 콘텐트제공자. 그림 1.14 매니페스트파일은포함된컴포넌트들을나열한다. 매니페스트파일 매니페스트파일은컴포넌트를선언하는것이외에도다음과같은여러가지일을 한다. 인터넷접근과같이애플리케이션이요청하는권한을지정한다. 애플리케이션이필요한최소한의 API 레벨을선언한다. 애플리케이션이필요로하는하드웨어사양을선언한다 ( 예를들어서카메라, 블루투스, 멀티터치스크린 ). 그러나가장중요한작업은안드로이드에애플리케이션의컴포넌트에대하여알리는것이다. 예를들면매니페스트파일에서액티비티는다음과같이선언될수있다. 41

42 안드로이드프로그래밍 <?xml version="1.0" encoding="utf-8"?> <manifest... > <application > <activity android:name="kr.co.company.mainactivity" > </activity>... </application> </manifest> 액티비티정보기술 <application> 요소에서 icon 속성은애플리케이션의아이콘이저장된리소스파일을가리킨다. <activity> 요소의 name 속성은 Activity에서상속된클래스의이름이다. label 속성은액티비티가실행될때, 사용자에게표시되는텍스트이다. 다른컴포넌트들도유사한방식으로선언된다. <activity> 요소 : 액티비티선언 <service> 요소 : 서비스선언 <receiver> 요소 : 방송수신자 <provider> 요소 : 콘텐트제공자 매니페스트파일에선언되지않은액티비티, 서비스, 콘텐트제공자는시스템에서전혀알수가없다. 결과적으로실행할수없다. 참고사항 XML XML(Extensible Markup Language) 은 SGML의부분집합으로웹상에서구조화된텍스트형식의문서를전송하고수신하며처리가가능하도록만든마크업언어이다. 1996년 W3C에서제안되었으며, 기존의 HTML의한계를극복하는새로운방안으로각광을받고있다. HTML은문서의외관만정의할수있으며문서의내용에대해서는정의가불가능하다. 하지만 XML에는 HTML과는다르게사용자가용도에맞는새로운태그를정의하여서문서의내용에태그를붙일수있다. 최근 XML은어떤플랫폼에서나읽을수있는포맷을제공하기때문에인터넷상에서뿐만아니라많은영역에서개방된데이터베이스파일의역할을하고있다. 42

43 기초사항 01 CHAPTER XML 의용어 참고사항 xml 의용어를간단히살펴보자. 시작태그 요소 : 논리적인문서의요소 <?xml version="1.0" encoding="utf-8"?> <manifest... > <application android:icon="@drawable/ic_launcher"... > <activity android:name="kr.co.company.mainactivity" android:label="@string/app_name"... > </activity> 종료태그... </application> </manifest> 속성 : 이름과값의쌍이다. 8. 안드로이드개발준비사항 선수학습 안드로이드애플리케이션을개발하려면어떤선수학습이필요할까? 다음과같이정리할수있다. 프로그래밍기초지식과경험 ( 필수 ) 자바 (Java) 언어에대한상당한지식과경험 ( 필수 ) XML의이해경험이있으면좋지만없어도무방하다. 안드로이드스튜디오의사용법 안드로이드기능에대한이해 -개발하려면먼저사용해보아야한다. 파워유저 가되자. 필자가특히강조하고싶은것은자바언어를상당한수준으로알아야한다는점이다. 자바언어의클래스, 인터페이스, 객체생성등을이해하지못한다면코드를읽을수없고응용할수도없다. 예를들어서안드로이드에서의이벤트처리방법과자바에서의이벤트처리방법은아주유사하다. 따라서자바에서 GUI 프로그램을개발해보았다면안드로이드의 GUI 코드를쉽게이해할수있다. 하지만뭐든지너무 43

44 안드로이드프로그래밍 겁낼필요는전혀없다. 이책에서는난해한자바문법이나코드가등장하였을때, 최선을다하여추가적인설명을붙일것이다. XML과안드로이드스튜디오에대한지식은있으면좋지만없다해도예제를따라가다보면저절로체득할것이다. 그리고당연한말이지만안드로이드스마트폰을가능하면많이사용해보아야한다. NFC 기능을한번도사용해보지않은사람이이기능을이용해서애플리케이션을개발할수있을까? 첨단기능을억지로라도사용해보자. 개발하드웨어 안드로이드애플리케이션을개발하는데는어떤하드웨어가필요한가? 다음과같이정리할수있다. 데스크톱컴퓨터 성능이높으면좋다. 최신버전의안드로이드가설치된스마트폰 최신버전의안드로이드가설치된태블릿 ( 없어도무방하다 ) 안드로이드애플리케이션은 PC에서이클립스와같은도구를이용하여서개발되고컴파일되며 USB 케이블을통해실제장치에다운로드되어실행된다. 이렇게컴파일되는장치와실행되는장치가다른개발환경을이종개발환경 (cross development environment) 이라고한다. 애플리케이션이스마트폰에서직접개발되지못하는이유는무엇일까? 그이유는스마트폰의처리속도나메모리, 화면크기가예전에비해좋아졌다고는하지만아직도데스크톱에는미치치못하기때문이다. 따라서애플리케이션개발은그래픽이나마우스등을자유롭게사용할수있는데스크톱에서하고컴파일된코드를 USB 케이블을통하여실제장치로다운로드하여실행하고디버깅하는것은예전부터많이사용하고있는방법이다. 프린터나카메라, 휴대폰과같은임베디드시스템에내장되는코드를개발할때는이방법을사용해왔다. 44

45 기초사항 01 CHAPTER 애플리케이션이개발된다. 애플리케이션이실행된다. 그림 1.15 이종개발환경 USB 케이블 스마트폰 개발용 PC 에뮬레이터 실제장치가없어도에뮬레이터를이용하면애플리케이션의개발및실행이가능하다. 하지만 GPS와같이특수한하드웨어가필요한애플리케이션을실행할때는반드시실제장치가필요하다. 이책에서실제장치가필요할때는버전 4.4 가탑재된 LG G Pro를사용하였다. 참고사이트 안드로이드애플리케이션을개발하다보면책에는설명되지않은많은자료들이필요하다. 당연히제일중요한사이트는구글이만든안드로이드개발자사이트이다. Training이나 API Guides와같은자료들은반드시참고하여야하는중요한것들이다. 또한안드로이드는업그레이드가자주되고있으므로수시로여기에들러서어떤점이변경되었는지를확인하여야한다. 45

46 안드로이드 프로그래밍 또한 책에 설명되지 않은 API의 상세한 메소드도 여기서 확인할 수 있다. 패키지 와 클래스를 선택하면 클래스 안에 있는 각종 메소드에 대한 상세한 정보를 확인할 수 있다. 책의 부록 여러분들은 생능출판사의 홈페이지를 통하여 다음과 같은 것들을 다운로드받을 수 있다. 46

47 기초사항 01 CHAPTER 수정사항.pdf 파일 ( 버전업그레이드에따른변경사항수록 ) - 버전이업그레이 드되면이파일을다운로드받으면된다. 실습예제.pdf 파일 ( 추가실습예제와연습문제수록 ) sources.zip( 예제소스파일 ) 특히실습예제 pdf 파일에는크기문제로책에넣지못했던다양한실습예제들 이포함되어있다. 실습예제마다자세한작성절차가기술되어있다. 따라서꼭다운로드하여서실행해보기바란다. 실습문제들중의일부는다음과같다. 로그인화면작성하기 계산기앱만들기 #1 계산기앱만들기 #2 일정예약앱만들기 난수로배경색바꾸는앱만들기 액션바작성하기 랜덤한원그리기앱만들기 간단한그림판앱만들기 이미지뷰어작성하기 간단한포토삽앱만들기 스크롤이가능한리스트표시하기 게임시작화면작성하기 상품구매화면작성하기 간단한웹브라우저앱만들기 인터넷에서데이터다운로드앱만들기 인터넷에서이미지다운로드앱만들기 간단한다이어리앱만들기 게임점수데이터베이스에저장하는앱만들기 일정정보화면에표시하는앱만들기 웹페이지에서키워드찾아주는앱만들기 현재위치를중심으로지도표시하는앱만들기 간단한 MP3 플레이어앱만들기 배터리상태표시하는앱만들기 47

48

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

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx) w w w. g b t e c. c o. k r 6 안드로이드 App 적용하기 115 1. 안드로이드개요 모바일 OS 의종류 - 스마트폰 : 스마트폰운영체제탑재 애플의 IOS(iPhone OS) - 아이폰, 아이패드, 아이팟터치 구글의안드로이드 - Nexus, 갤럭시 A, S, 모토로이, 시리우스,... MS 의윈도우모바일 ( 윈도우폰 7) - 옴니아 2,

More information

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

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android

More information

Microsoft PowerPoint App Fundamentals[Part1].pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 2 HangulKeyboard.apkapk 파일을다운로드 안드로이드 SDK 의 tools 경로아래에복사한후, 도스상에서다음과같이 adb 명령어수행 adb install HangulKeyboard.apk 이클립스에서에뮬레이터를구동 에뮬레이터메인화면에서다음과같이이동 메뉴버튼 설정 언어및키보드

More information

<BED5BACEBCD32E696E6464>

<BED5BACEBCD32E696E6464> www booksr co kr 3 4 2012 7 01 1. 스마트폰 16 2. 안드로이드란? 20 3. 안드로이드의특징 22 4. 안드로이드의구조 26 5. 애플리케이션의기초개념 28 6. 인텐트 35 7. 매니페스트파일 37 8. 안드로이드의미래 39 02 1. 개발과정의개요 42 2. 안드로이드개발도구 43 3. JDK 44 4. 이클립스 46 5. 안드로이드

More information

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 안드로이드정의및아키텍처 안드로이드커널접근 애플리케이션기초및컴포넌트 2 안드로이드는운영체제 (operating system), 미들웨어 (middleware), 핵심애플리케이션들 (key applications) 을포함하고있는모바일디바이스를위한소프트웨어스택 (software stack)

More information

PowerPoint Template

PowerPoint Template 01. 안드로이드개요와 개발환경구축 01 안드로이드의개요 02 안드로이드의개발환경 03 안드로이드의개발환경구축 1. 안드로이드개요 스마트폰개요 스마트폰 통화기능 + 컴퓨터 + 다양한기능내장 (MP3, 카메라, DMB, GPS 등 ) 스마트폰역사 1992년 IBM사의사이먼 ( 최초 ) 1996년노키아 9000 2002년마이크로소프트포켓PC 2007년아이폰 2008년안드로이드폰

More information

THE TITLE

THE TITLE Android System & Launcher Team 8 목차 Android 1) Android Feature 2) Android Architecture 3) Android 개발방법 4) Android Booting Process Dalvik 1) Dalvik VM 2) Dalvik VM Instance Application 1) Application Package

More information

1부

1부 PART 1 2 PART 01 _ SECTION 01 API NOTE SECTION 02 3 SECTION 02 GPL Apache2 NOTE 4 PART 01 _ SECTION 03 (Proyo) 2 2 2 1 2 2 : 2 2 Dalvik JIT(Just In Time) CPU 2~5 2~3 : (Adobe Flash) (Air) : SD : : : SECTION

More information

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

고객 카드 1588-7278

고객 카드 1588-7278 고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송

More information

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

모바일 안드로이드 아키텍처 2017( 제 10 회 ) 한국소프트웨어아키텍트대회 2017. 7. 20. 티온소프트김수현 shkim.hi@gmail.com 목차 1 Android OS Layer Architecture 2 Android Technical Architecture 3 Android Multimedia Architecture 2 Android OS Layer Architecture

More information

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

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

정보

정보 정보 Sangwook Lee Deogi High School III 문제해결과프로그래밍 1 추상화 2 알고리즘 3 프로그래밍 모바일프로그래밍 1. 모바일환경과기술 2. 앱인벤터 (App Inventor) 3. 앱만들기 3 1. 모바일환경과기술 학습목표 모바일환경과기술에대해설명할수있다 4 모바일디바이스 모바일디바이스란 손에들고이동하면서사용할수있는장치 다양한프로그램의설치및실행이가능한장치

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

안전을 위한 주의사항 2 경고 상세내용 4 SMP 이용자 7대 안전수칙 6 불법조작금지 6 Dolby, DTS, SRS, DivX 7 사용자 설명서 가이드 10 구성품 확인 12 각 부분의 명칭과 기능 13 SMP의 올바른 사용법 14 구성품 사용안내 14 SMP 전원 켜기/끄기 16 터치스크린 사용안내 17 통신환경 설정 20 SMP 시작하기 22 홈 스크린

More information

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

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

Microsoft PowerPoint App Fundamentals[Part2].pptx

Microsoft PowerPoint App Fundamentals[Part2].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 태스크는명시적으로정의 / 선언하는것이아니라, 주어진목적을위해 현재수행되고있는액티비티들의스택이다. 예를들어, 어떤액티비티가특정위치상의시가지지도를보여주고자한다하자. 해당액티비티는안드로이드에이미존재하는맵뷰어액티비티를실행

More information

PowerPoint Presentation

PowerPoint Presentation 오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,

More information

디지털 공학

디지털 공학 캡스톤디자인 App Inventor 디지털전자정보계열 앱 인벤터란? MIT 대학 미디어 랩 연구실에서 만든 안드로 이드용 스마트폰 앱 제작하는 블록 프로그래 밍 기법의 비주얼 프로그래밍 도구이다. 스마트폰의 화면을 디자인하고 블록들을 조 립하면 우리가 원하는 앱을 만들 수 있다. 인터넷이 연결된 곳에서는 어디서라도 접속 하여 앱 화면을 직접 디자인하고 프로그래밍

More information

NX1000_Ver1.1

NX1000_Ver1.1 See the world in perfect detail 1 2 3 4 J J KL t P A S M i g s v B 5 6 t P A S M i E PASM Z g s v 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Chapter 1 25 12 11 10 9 1 2 3 4 5 6 7 8 1 t P A S M i g

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

그림으로 쉽게 설명하는 안드로이드 프로그래밍 초판발행 2012년 8월 20일 제3판2쇄 2016년 1월 15일 지은이 천인국 펴낸이 김승기 펴낸곳 (주)생능출판사 / 주소 경기도 파주시 광인사길 143 출판사 등록일 2005년 1월 21일 / 신고번호 제406-2005

그림으로 쉽게 설명하는 안드로이드 프로그래밍 초판발행 2012년 8월 20일 제3판2쇄 2016년 1월 15일 지은이 천인국 펴낸이 김승기 펴낸곳 (주)생능출판사 / 주소 경기도 파주시 광인사길 143 출판사 등록일 2005년 1월 21일 / 신고번호 제406-2005 그림으로 쉽게 설명하는 안드로이드 프로그래밍 초판발행 2012년 8월 20일 제3판2쇄 2016년 1월 15일 지은이 천인국 펴낸이 김승기 펴낸곳 (주)생능출판사 / 주소 경기도 파주시 광인사길 143 출판사 등록일 2005년 1월 21일 / 신고번호 제406-2005-000002호 대표전화 (031)955-0761 / 팩스 (031)955-0768 홈페이지

More information

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

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

More information

슬라이드 1

슬라이드 1 Android Mobile Application Development Part 1 Agenda Part 1 About Android Build Develop Environment Create new Project Composition of Project Simulate Application Part 2 User Interface Activity Toast Preference

More information

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사 IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

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

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java(  혹은   에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을 안드로이드설치및첫번째예제 안드로이드설치 안드로이드개발킷은안드로이드개발자사이트 (http://developer.android.com/) 에서다운로드받을수있으며현재 1.5 버전으로윈도우즈, 맥 OS X( 인텔 ), 리눅스플랫폼패키지가링크되어져있다. 안드로이드개발킷을설치하기위해서는다음과같은시스템환경이갖추어져있어야한다. 플랫폼 Windows Mac Linux 지원환경

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

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

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

사용하기 전에 2

사용하기 전에 2 SM-T255S 사용 설명서 www.samsung.com/sec 사용하기 전에 2 표기된 기호 설명 저작권 등록상표권 애플리케이션 호환 안내 3 4 시작하기 6 8 8 9 13 14 16 18 18 19 19 19 기본 기능 익히기 20 21 24 25 26 28 29 31 32 33 34 34 34 37 38 38 39 차례 보기 40 42 소통하기 43

More information

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

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

iOS5_1±³

iOS5_1±³ IDG Deep Dive ios 5 2 3 4 5 6 7 8 9 10 11 12 ios 5 토어 버튼이 상단 좌측에 추가되어 아이튠즈 스토 어의 적합한 영역으로 연결해 준다. 또한 블루투스의 원격제어 기능인 AVRCP(AV Remote Control Profile)가 1.3 버전으로 업데이 트되어 음악을 블루투스로 스트리밍할 때 트랙과 아티스트, 앨범 정보를

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

wtu05_ÃÖÁ¾

wtu05_ÃÖÁ¾ 한 눈에 보는 이달의 주요 글로벌 IT 트렌드 IDG World Tech Update May C o n t e n t s Cover Story 아이패드, 태블릿 컴퓨팅 시대를 열다 Monthly News Brief 이달의 주요 글로벌 IT 뉴스 IDG Insight 개발자 관점에서 본 윈도우 폰 7 vs. 아이폰 클라우드 컴퓨팅, 불만 검증 단계 돌입 기업의

More information

PowerPoint Presentation

PowerPoint Presentation Ubiquitous United Network http://www.ubiu.net 2010 년제 1 회유비유넷세미나 2010 년 4 월 10 일 윤훈주유비유넷대표운영자 firehj@hanmail.net http://www.yhj.pe.kr http://twitter.com/firehj 들어가며 맛있는먹거리가있고동물들이뛰어노는곳, 2010 년유비유넷세미나 (http://www.ubiu.net)

More information

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A ..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * Amazon Web Services, Inc.. ID Microsoft Office 365*

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information

1) 리눅스커널 메모리관리, 프로세스관리, 파일시스템관리, 네트워크스택등하드웨어지원 2) Native 라이브러리 (C, C++) 안드로이드프레임워크에서필요한 C 와 C++ 라이브러리 3) 안드로이드런타임 코어라이브러리지원, Dalvik Virtual Machine 으로

1) 리눅스커널 메모리관리, 프로세스관리, 파일시스템관리, 네트워크스택등하드웨어지원 2) Native 라이브러리 (C, C++) 안드로이드프레임워크에서필요한 C 와 C++ 라이브러리 3) 안드로이드런타임 코어라이브러리지원, Dalvik Virtual Machine 으로 1. 안드로이드란무엇인가? 안드로이드는구글을중심으로한 OHA(Open Handset Alliance) 컨소시엄에서만든최초의오픈소 스모바일애플리케이션플랫폼 리눅스커널을기반으로한운영체제, 풍부한 UI(user Interface), 다양한애플리케이션, 라이브러리, 애플리케이션프레임워크, 멀티미디어지원등의구성요소들을포함하며휴대전화기능도포함 되어있다. 운영체제와연관된컴포넌트들은

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

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

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

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

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

안드로이드 서비스

안드로이드 서비스 Android Service Team 4 20100031 강혜주 20100220 김소라 20100357 김진용 Contents Android Service 01 안드로이드서비스 02 사용이유 03 안드로이드서비스예 04 안드로이드서비스분류 Application Service 05 애플리케이션서비스 06 두가지방법 07 서비스생명주기 08 애플리케이션서비스분류

More information

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp A SQL Server 0 설치 A. 소개 Relational DataBase Management System SQL Server 0는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 express 버전 의무료에디션을제공하는데, 이책에서는실습을위해 SQL Server 0 익스프레스에디 션 SP

More information

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API WAC 2.0 & Hybrid Web App 권정혁 ( @xguru ) 1 HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API Mobile Web App needs Device APIs Camera Filesystem Acclerometer Web Browser Contacts Messaging

More information

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이 모바일웹 플랫폼과 Device API 표준 이강찬 TTA 유비쿼터스 웹 응용 실무반(WG6052)의장, ETRI 선임연구원 1. 머리말 현재 소개되어 이용되는 모바일 플랫폼은 아이폰, 윈 도 모바일, 안드로이드, 심비안, 모조, 리모, 팜 WebOS, 바다 등이 있으며, 플랫폼별로 버전을 고려하면 그 수 를 열거하기 힘들 정도로 다양하게 이용되고 있다. 이

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

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

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - 권장 사양 Autodesk 제품컴퓨터사양 PRONETSOFT.CO 박경현 1 AutoCAD 시스템사양 시스템요구사양 32 비트 AutoCAD 2009 를위한시스템요구사항 Intel Pentium 4 프로세서 2.2GHz 이상, 또는 Intel 또는 AMD 듀얼 코어프로세서 16GH 1.6GHz 이상 Microsoft Windows Vista, Windows XP Home

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

52 l /08

52 l /08 Special Theme_임베디드 소프트웨어 Special Report 모바일 웹 OS 기술 현황과 표준화 동향 윤 석 찬 다음커뮤니케이션 DNALab 팀장 1. 머리말 디바이스에 애플리케이션을 배포할 수 있다. 본 고에서는 모바일 웹 OS의 현황과 임베디드 환 오늘날 인터넷에서 웹 기반 콘텐츠가 차지하는 부 경에서 채용되고 있는 최적화 기술을 살펴보고, 웹

More information

보안공학연구회

보안공학연구회 보안공학연구논문지 (Journal of Security Engineering), 제 9권 제 4호 2012년 8월 모바일 운영체제 동향 분석 배유미 1), 정성재 2), 소우영 3) Trend analysis of Mobile Operating Systems Yu-Mi Bae 1), Sung-Jae Jung 2), Wooyoung Soh 3) 요 약 최근 모바일

More information

슬라이드 1

슬라이드 1 강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS

More information

F120L(JB)_UG_V1.0_ indd

F120L(JB)_UG_V1.0_ indd 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 전화끊기, 통화중메뉴사용하기 전화통화를종료하려면 통화중 ➌ ( 끊기 ) 를누르세요. 전원버튼으로통화종료 ( 124쪽 ) 로설정한경우통화중전원

More information

Visual Studio online Limited preview 간략하게살펴보기

Visual Studio online Limited preview 간략하게살펴보기 11월의주제 Visual Studio 2013 제대로파헤쳐보기! Visual Studio online Limited preview 간략하게살펴보기 ALM, 언제어디서나 연결된 IDE Theme와 Visual Design 편집기의강화된생산성기능들성능최적화및디버깅개선 Microsoft 계정으로 IDE에서로그인가능다양한머신사이에서개발환경유지다양한디바이스에걸쳐설정을동기화개선된

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

미디어 및 엔터테인먼트 업계를 위한 Adobe Experience Manager Mobile

미디어 및 엔터테인먼트 업계를 위한 Adobe Experience Manager Mobile Adobe Experience Manager Mobile 앱 제작을 넘어 고객, 파트너 및 직원과의 유대 관계 형성 매년 모바일 디바이스에서 읽고 듣고 교류하는 사람들이 증가하고 있습니다. 미디어 및 엔터테인먼트 조직은 모바일 디바이스를 통해 고객, 직원, 파트너 및 광고주와 직접 교류할 수 있는 새로운 기회를 얻을 수 있는데, 이 기회를 민첩하게 활용하는

More information

슬라이드 1

슬라이드 1 유라이브 앱 사용자 매뉴얼 차례 주의사항 앱 특징 앱 설치하기 블랙박스와 연동하기 메뉴보기 1. 메인메뉴 2. 실시간 감시 3. 원격 검색 3_1. 원격 파일 검색 3_2. 원격 설정 3_3. 원격 SD카드 포맷 3_4. 원격 펌웨어 업그레이드 3_5. Emergency 설정 4. SD카드 5. 스크린 샷 6. 내 폰의 영상 7. 설정 8. 앱 정보 고장 진단하기

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;

More information

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx Mobile S/W Platform 및 Service 동향 서상범상무, Ph. D. System SW Lab. SW Platform Team SW Center Samsung Electronics 2011. 12.27 Contents 1. Smartphone Market 2. Mobile S/W Platform 3. Mobile Service 4. Conclusion

More information

Google Maps Android API v2

Google Maps Android API v2 Google Maps API 3 조 20080388 김현철 20080748 양태욱 20091493 김이현 Google Maps? 구글에서제공하는지도서비스 걷기, 차량두가지길찾기기능제공 최근, Open API 로현지대중교통과연동하여사용 Google Maps API? 개발자에게 Google Maps 를삽입할수있도록 Google 에서제공하는 Application

More information

슬라이드 1

슬라이드 1 10. 위치기반서비스 시작하면서 2 목차 위치정보출력 요구기준에의한위치정보조회 지오코딩 MapView와 MapActivity Maps API 키발급 위치정보출력 위치정보출력 4 위치정보제공 GPS 무선 LAN 이동통신망 위치기반서비스 android.location 패키지 휴대단말의위치를얻기위한클래스를포함 위치정보는지리적좌표 ( 위도와경도 ) 사용 위치정보와주소정보를변환하는

More information

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

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필

LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필 LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필요가 있다. 서지 관리 프로그램(Reference management software, citation

More information

스마트 서비스 퀵가이드 본 사용설명서는 제품사용에 필요한 기능을 설명한 가이드입니다. 목 차 1. 안전을 위한 주의사항...4 2. 스마트 서비스란?...5 리얼타임 3D... 5 스마트 퀵서비스... 5 스마트 파인드라이브 Wi-Fi 어플리케이션... 5 3. 스마트 서비스 사용 준비하기 - 휴대폰과 단말기 무선 연결...6 Wi-Fi 동글 연결하기...

More information

<4D6963726F736F667420576F7264202D20494354B1E2C8B9BDC3B8AEC1EE2DB9DAB5BFB1D4>

<4D6963726F736F667420576F7264202D20494354B1E2C8B9BDC3B8AEC1EE2DB9DAB5BFB1D4> 주간기술동향 2015. 3. 18. 애플리케이션 마켓플레이스 기반의 콘텐츠 유통 서비스 박동규 창원대학교 정보통신공학과 교수 dongupak@gmail.com 1. 서론 2. 콘텐츠 플랫폼 시장의 변화 3. 애플의 콘텐츠 전략 4. 구글 플레이 스토어 콘텐츠마켓 5. 마이크로스프트의 콘텐츠마켓 6. 결론 1. 서론 세계 스마트폰 시장은 2008 년 이후 연평균

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

슬라이드 1

슬라이드 1 Android App 개발기초 & Activity, Intent 세미나 2012. 03. 26 ING 팀여상권, 이용균, 최상욱, 권지해 목차 프로젝트생성과정설명 안드로이드동작, 구조설명 Activity 설명 Intent 설명 질문 1 프로젝트생성과정설명 1. Eclipse의메뉴바에서 File 선택 2. New선택후 Android Project 선택 3. Project

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

[Blank Page] i

[Blank Page] i 키토큰앱매뉴얼 KeyToken App Manual - 20131126 키페어 www.keypair.co.kr [Blank Page] i 목차 I. KeyToken App 소개...1 1. KeyToken App 의목적... 1 2. KeyToken App 의사용환경... 1 3. 주의사항... 2 II. 스마트폰의 NFC 모듈켜기...4 1. 안드로이드 v4.0.3(

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

CODESYS 런타임 설치과정

CODESYS 런타임 설치과정 CODESYS 런타임설치과정 CODESYS Control RTE / SoftMotion RTE Setup Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 목 차 CODESYS 런타임 - Control RTE, SoftMotion RTE... 2 다운로드및설치과정... 2 CODESYS EtherCAT

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

Microsoft PowerPoint - 15주차(최종).pptx

Microsoft PowerPoint - 15주차(최종).pptx 15주차 15주차. 통지, 통지 그리고 안드로이드 마켓 안 켓 학습 내용 1. 백그라운드 알림 2. 통지 출력 3. 커 커스텀 텀 통지 뷰 4. 안드로이드 마켓 백그라운드 알림 사용자와의 통신 - 프로그램의 상태나 특정 사건이 발생했음을 사용자에게 통지하고 다음 동작에 대한 질문을 하거나, 사용자에게 작업 지시를 받을 수 있는 기능이 필요함 - 활성화된 프로그램의

More information

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - ArrayAdapter ArrayAdapter adapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1,

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E > 6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev 글 : 김재형팀장, MDS테크놀로지 ES사업부 SE팀 www.mdstec.com 진보된기술과화려한사용자환경, 다양한응용프로그램들로무장한 스마트폰쓰나미 가몰려오고있다. 이쓰나미의영향은단지휴대용통신기기에만미치지않고, 주저하던임베디드시스템에도막대한영향을끼치고있다. 하지만임베디드시스템개발자와사용자라면누구나이 스마트폰쓰나미 의시초가임베디드시스템이었음을인정할것이다. 수많은미래지향적아이디어들을현실화하면서새로운

More information