변수이름 변수값 PATH ;C:\Program Files\Java\jdk1.8.0_45\bin CLASSPATH.;C:\Program Files\jdk1.8.0_45\lib\tools.jar JAVA_HOME C:\Program Files\Java\jdk1.8.0_45

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

( )부록

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

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

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

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

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

어댑터뷰

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

50_1953.pdf

PowerPoint 프레젠테이션

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

PowerPoint Template

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

Facebook API

JDK이클립스

Chapter 1

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

슬라이드 1

슬라이드 1

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

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

Install stm32cubemx and st-link utility

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

JAVA 플랫폼 개발 환경 구축 및 활용

슬라이드 1

슬라이드 1

JAVA PROGRAMMING 실습 08.다형성

Microsoft Word - src.doc

PowerPoint Template

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Chap 8 호스트시스템개발환경구성및 안드로이드개발환경구축

서현수

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint Presentation

슬라이드 1

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

1부

PowerPoint Presentation

JUNIT 실습및발표

슬라이드 1

PowerPoint Presentation

슬라이드 1

슬라이드 1

13ÀåÃß°¡ºÐ

Daum 카페

파워포인트

문서의 제목 나눔고딕B, 54pt

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Spring Boot

MaxstAR SDK 2.0 for Unity3D Manual Ver

Android Master Key Vulnerability

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint Template

슬라이드 1

슬라이드 1

리니어레이아웃 - 2 -

Google Maps Android API v2

DE1-SoC Board

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

슬라이드 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Secure Programming Lecture1 : Introduction

01장

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

Studuino소프트웨어 설치

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

03장

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Microsoft Word - 안드로이드_개발_매뉴얼1.docx

Microsoft PowerPoint App Fundamentals[Part1].pptx

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

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

01 [ 일기장 ] 애플리케이션프로젝트작성 - [MyDiary] 앱 Mobile Apps >> [MyDiary] 앱프로젝트구조설계 일기장애플리케이션인 [MyDiary] 앱은메인화면과일기장의내용을작성하는화면으로이루어져있다. 화면이 2개라는것은액티비티가 2개이고액티비티에대

Windows 8에서 BioStar 1 설치하기

슬라이드 1

Microsoft PowerPoint App Fundamentals[Part2].pptx

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

슬라이드 1

12 주차 인텐트

Spring Data JPA Many To Many 양방향 관계 예제

슬라이드 1

오핀 (OFIN) SDK Guide Fintech Mobile SDK Guide - Android V 1.0 OPPFLIB 1

Microsoft PowerPoint - Chapter_02-1_DevEnv.pptx

제11장 프로세스와 쓰레드

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

<C0CCC5ACB8B3BDBA5FBEC8B5E5B7CEC0CCB5E55FB0B3B9DFC8AFB0E6B1B8C3E0C7CFB1E25F E342E302E687770>

PowerPoint 프레젠테이션

Transcription:

안드로이드앱개발과정추가교재 - Android Studio 사용 [ 실습 01] 개발환경설치 ( 안드로이드스튜디오 & Eclipse IDE + Android SDK) I. 안드로이드스튜디오 1. JDK 다운로드및설치 (1) JDK 다운로드 1 JDK다운로드를위해웹브라우저에 http://www.oracle.com/technetwork/java/javase/downloads/index.html 또는 http://java.sun.com 을입력해서 [Java SE Downloads] 화면으로이동한다. 2 [JDK] 의 [Download] 버튼을클릭해서라이선스에동의후자신의운영체제에맞는버전을다운로드받는다. 자신의 PC의운영체제가 Windows 32bit(XP, Vista, Window7 32bit) 인경우 [Windows x86] 항목의 [jdk-8u업데이트버전-windows-i586.exe] 을클릭하고, Windows 64bit(Vista 64bit 또는 Window7 64bit) 인경우에는 [jdk-8u업데이트버전-windows-x64.exe] 을클릭해다운로드받는다. (2) JDK 설치 다운로드된 jdk-8u 업데이트버전 -windows-i586.exe 혹은 jdk-8u 업데이트버전 -windows-x64.exe 를더블클릭해서설치한다. (3) 자바환경변수세팅 - 자바명령어의위치를시스템에알려주는작업 - 1 -

변수이름 변수값 PATH ;C:\Program Files\Java\jdk1.8.0_45\bin CLASSPATH.;C:\Program Files\jdk1.8.0_45\lib\tools.jar JAVA_HOME C:\Program Files\Java\jdk1.8.0_45 2. 안드로이드스튜디오다운로드및설치 : 개발플랫폼 (1) 안드로이드스튜디오다운로드 1 안드로이드스튜디오다운로드를위해웹브라우저에 http://developer.android.com/sdk/index.html를입력해서해당사이트로이동한다. 2 [Download Android Studio for Windows] 버튼을눌러라이센스에동의후 [Download Android Studio Windows] 버튼을누르면 android-studio-bundle- 버전 -windows.exe 가다 운로드된다. (2) 안드로이드스튜디오설치 android-studio-bundle- 버전 -windows.exe 을더블클릭해서설치한다. (3) 안드로이드스튜디오실행 1) 워크스페이스 : 프로젝트관리폴더 c:\project 2) 환경설정 에디터뷰에라인번호 1 [File]-[Settings] - 2 -

2 [Settings] 창에서 [Editor]-[Appearance] 3 [Show line numbers] 항목체크후 [Apply] 버튼또는 [OK] 버튼클릭 폰트조정 1 [File]-[Settings] 2 [Settings] 창에서 [Editor]-[Colors & Font] 에서 [Save As] 버튼을눌러 myfont입력후 [OK] 버튼클릭 3 [Editor]-[Colors & Font]-[Font] 에서 [Scheme name] 항목에서 myfont선택후글꼴조정후 [Apply] 버튼또는 [OK] 버튼클릭 3. AVD 작성및실행 : 가상디바이스 AVD(Android Virtual Device) 를작성한다. AVD 는안드로이드애플리케이션을실행 ( 테스트 ) 하기위한가상디바이스. (1) AVD 작성 애뮬레이터기동실패시 AVD의 RAM 용량을 256으로하향 1 안드로이드스튜디오에서 [Tools]-[Android]-[AVD Manager] 2 [Android Virtual Devices] 창에서 [Create Virtual Device...] 버튼클릭 3 기본값 [Nexus 5] 선택후 [Next] 버튼클릭 4 [System image] 에서에뮬레이터의안드로이드운영체제버전선택후 [Next] 버튼클릭 5 [Verify Configuration] 에서 [AVD Name] 항목의기본값확인후 [Show Advanced Setting] 버튼눌러설정사항확인후 [Finish] 버튼클릭 (2) AVD 실행 1 생성된 [Nexus 5 API 21] 에뮬레이터의 [Actions] 항목에서 [Launch this AVD in the Emulator] 버튼클릭. 2 에뮬레이터가기동되면, 일반스마트폰처럼사용. 주의 : 기동시시간이많이걸리므로, 에뮬레이터는닫지않고그냥실행시켜둔다. (4) Platform tools 추가설치 : 필요시 1 [Tools]-[Android]-[SDK Manager] 메뉴를선택해서원하는플랫폼을추가설치한다. II. Eclipse IDE + Android SDK 1. JDK 다운로드및설치 : 안드로이드스튜디오의자바설치와동일 2. 안드로이드 SDK다운로드및설치 : 안드로이드스튜디오를다운로드받는곳과동일안드로이드 SDK다운로드 안드로이드운영체제버전별공통환경 1 http://developer.android.com/sdk/index.html 2 [Other Download Options] 항목에서 [SDK Tools Only] 의 [Windows] 항목에서 [android-sdk_r버전-windows.zip] 다운로드받고압축풀어서설치. 3. 이클립스 IDE for Java EE Developers 다운로드및설치 - 3 -

1 http://www.eclipse.org/downloads/ 에서 [Eclipse IDE for Java EE Developers] 항목 에서운영체제에맞는버전을선택해서다운로드후압축풀어서설치. 4. ADT설치 1 이클립스를실행하고 [Help]-[Install New Software] 메뉴를선택 2 [Install] 창에서 [Add..] 버튼을클릭 3 [Add Site] 창이표시되면, [Name] 항목에 ADT plugin 을입력하고 [Location] 항목에 https://dl-ssl.google.com/android/eclipse/ 를입력한후 [OK] 버튼을클릭해서설치 5. 이클립스실행및 Platform tools 설치 Platform tools 안드로이드운영체제의버전별개발환경 1 이클립스가재기동되면서워크스페이스를선택하는창이표시되면 [OK] 버튼을클릭 2 안드로이드 SDK의 Platform Tools를설치하라는메시지상자가표시되면 [Open SDK Manager] 버튼을클릭 3 [Packages] 의모든항목을선택후 [Install 선택항목수 packages...] 버튼을클릭해설치 6. AVD작성및실행 1 [Windows] -[Android Virtual Device Manager] 메뉴선택 2 [Android Virtual Device Manager] 창의 [Android Virtual Devices] 탭에서 [New] 버튼클릭 3 [Create new Android Virtual Device(AVD)] 창에서 [AVD Name], [Device], [Target], [SD Card:] 항목의 [Size] 에값을입력또는선택후 [OK] 버튼을클릭해서생성 [ 실습02] TestApp프로젝트작성 1 [File]-[New Project] 메뉴선택 2 [Configure your new project] 에서 [Application name] 항목에 TestApp입력, [Company name] 항목에기관명URL( 경찰청예시 : test.police.go.kr) 입력, 나머지는기본값을그대로사용후 [Next] 버튼클릭 - 4 -

3 [Phone and Tablet] 항목에체크하고 [Minimum SDK] 항목의 [...] 을선택하고 [API 15:~] 항목을선택후 [Next] 버튼클릭 - 5 -

4 [Blank Activity] 항목을선택후 [Next] 버튼클릭 5 기본값을그대로선택후 [Finish] 버튼클릭 [ 실습 03] TestApp 프로젝트실행 1 [Run]-[Run app] 메뉴선택 2 [Choose Device] 창에서앱을실행할디바이스나에뮬레이터를선택후 [OK] 버튼클릭 - 6 -

[ 부연설명 01] 안드로이드프로젝트구조 ( 안드로이드스튜디오 & 이클립스 IDE+ 안드로이드 SDK) 화면설계화면뷰 ( 위젯 ) 구조 앱프로젝 트구조 뷰 ( 위젯 ) 의속성 l 프로젝트 : 기존의프로젝트 ( 모듈 ) 와라이브러리프로젝트 ( 모듈 ) 를하나의프로젝트로관리하는개념. 기존의프로젝트는모듈로관리 l app : 프로젝트모듈 java/ - 모듈의소스파일 : 로직파일 manifests/ - 모듈의매니페스트파일 : 앱설정파일 res/ - 모듈의리소스파일 : 문자열, 레이아웃, 이미지동영상등등 l Gradle Script : 빌드에필요한설정파일들. 그래들 (Gradle): 안드로이드에서빌드시사용. 스크립트를수정하면매빌드시마다디버그빌드와릴리즈빌드를함께생성하도록설정할수있음 안드로이드스튜디오에 [assets] 추가 탐색기에서직접 - 워크스페이스 \ 프로젝트 \app\src\main에 [assets] 폴더추가 - 프로그램코드에서 [assets] 에접근 files:///android_asset ex) wb.loadurl("files:///android_asset/index.html"); - 7 -

참고 : 안드로이드애플리케이션에서리소스파일의종류각리소스폴더에위치시킬파일의종류는다음과같으며, 기본적으로제공되지않는파일 또는폴더는직접생성한다. [assets] 리소스폴더 [res]-[drawable] 설명동영상, 폰트 (ttf), html, js, css, xml, json 미리생성한 SQLite db(db를읽어들일때사용 ), 이미지파일 ( 이미지파일이지정되지않아리소스를할당받기어려운경우 ) 커스텀이미지파일, 앱에서필요한이미지, png 파일권장, 파일명은반드시소문자와숫자. _( 언더라인 ) 만가능 [res]-[mipmap]-[ic_launc her.png] 앱아이콘이미지파일 [res]-[layout] main.xml 과같은 XML 레이아웃리소스파일 [res]-[values] strings.xml colors.xml styles.xml arrays.xml dimens.xml 문자열색상스타일 / 테마목록크기정보 ( 치수 ) 1dp = 2px [res]-[anm] [res]-[raw] [res]-[xml] 애니메이션의방식을기술하는 XML 파일 음악파일 (.mp3), 동영상파일 (.mp4) 프로그램의실행중에사용되는 XML 파일 안드로이드애플리케이션의주요파일 - 8 -

주요파일리소스파일 ( 문자열, 이미지등 ) 레이아웃리소스파일액티비티클래스파일매니페스트파일 구체적인파일명 ([TestApp] 애플리케이션을예시로사용한경우 ) 문자열리소스 strings.xml 위치 : [app]-[res]-[values] activity_main.xml 위치 : [app]-[res]-[layout] MainActivity.java 위치 : [app]-[java]-[ 패키지명 ] AndroidManifest.xml 위치 : [app]-[manifests] 하는일사용할문자열을정의 ( 생성 ) 화면의구조및내용을설계화면을표시하고이벤트등을처리하는안드로이드애플리케이션의로직애플리케이션의기본설정및권한설정등을기술 안드로이드애플리케이션주요파일간의관계문자열및이미지등의리소스파일은레이아웃리소스파일, 액티비티클래스및매니페스트파일에서참조해서사용한다. 화면의내용을갖는레이아웃리소스는액티비티클래스에서참조해서화면에표시한다. 만일레이아웃리소스를자바의클래스로작성한경우해당자바클래스의객체를생성해서화면에표시한다. 매니페스트파일에는애플리케이션의액티비티를등록하고, 앱의권한을추가한다. < 안드로이드애플리케이션주요파일간의관계 > 안드로이드애플리케이션주요파일의작성순서안드로이드프로젝트가만들어지면 [res] 폴더에필요한리소스파일을생성및배치한후이것을참조해화면의내용을생성하는레이아웃리소스파일을작성한다. 레이아웃리소스를작성한후에는애플리케이션의로직인액티비티클래스를작성한다. 액티비티를작성한후에는애플리케이션의이름, 아이콘, 권한설정등을매니페스트파일에추가할수있다. 또한애플리케이션내에액티비티가여러개인경우이액티비티들을매니페스트파일에등록한다. 자동생성되는메인액티비티는애플리케이션생성시자동으로등록된다. 즉, 액티비티가 1개인경우에는등록할필요가없다. - 9 -

뷰 : 레이아웃리소스 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x m l n s : t o o l s = " h t t p : / / s c h e m a s. a n d r o i d. c o m / t o o l s " android:layout_width="match_parent" a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" a n d r o i d : p a d d i n g B o t t o m = " @ d i m e n / a c t i v i t y _ v e r t i c a l _ m a r g i n " tools:context=".mainactivity"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> 액티비티 package com.example.probemedia.testapp; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; public class MainActivity extends ActionBarActivity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); - 10 -

} @Override public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; } @Override public boolean onoptionsitemselected(menuitem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getitemid(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } } } return super.onoptionsitemselected(item); 액티비티인 TestAPP의소스구조설명은다음과같다. 1 package문과 import문 package문은 MainActivity클래스가위치한패키지명을기술한다. package com.example.probemedia.testapp; 여기서는물리적위치상 [app]-[java] 안에 [com]-[example]-[probemedia]-[testapp] 폴더에 MainActivity.java파일이위치된다. 또한실제실행시사용되는 MainActivity.class 파일은버전에따라이클립스의안드로이드프로젝트에서직접확인할수도있고, 그렇지않을수도있다..class파일은이클립스가자동으로컴파일을해주기때문에신경쓸필요가없다. import 문은 MainActivity 클래스를생성하기위해필요한외부의클래스 ( 다른패키지에있는 클래스 ) 를참조하기위한구문이다. - 11 -

import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; android.support.v7.app.actionbaractivity클래스는 MainActivity클래스가 ActionBarActivity클래스를상속받아서생성되기때문에 import했다. android.os.bundle클래스는 oncreate() 메소드의파라미터가 Bundle클래스타입이기때문에, 이타입을사용할수있도록 import했다. android.view.menu 클래스는옵션메뉴 ([menu] 버튼을클릭하면표시되는메뉴 ) 를생성하는 oncreateoptionsmenu() 메소드의파라미터가 Menu 클래스타입이여서이것을사용하기위해 import했다. 2 클래스선언 MainActivity클래스의선언 ( 정의 ) 은다음과같다. public class MainActivity extends ActionBarActivity { // 클래스의내용기술 } MainActivity클래스는 ActionBarActivity클래스로부터상속받아 public 클래스로작성했다. 일반적으로클래스의접근제어자 (access modifier) 는 public으로선언한다. 특히웹기반이나모바일기반에서불특정다수의접근을허용할경우에는반드시 public으로선언한다. extends 는상속의키워드로이구문을중심으로왼쪽에있는클래스가상속받는클래스 ( 서브클래스, 자식클래스, 파생클래스로지칭 ), 오른쪽에있는클래스가상속을해주는클래스 ( 슈퍼클래스, 부모클래스, 베이스클래스로지칭 ) 이다. 3 메소드선언클래스에서실제로작업을처리하는것은메소드로안드로이드애플리케이션에서는 oncreate() 메소드가반드시정의되어있어야한다. oncreate(bundle savedinstancestate) 메소드는이액티비티가처음생성될때호출된다. 이때파라미터 savedinstancestate에는호출시넘겨받을데이터가저장된다. protected void oncreate(bundle savedinstancestate) { // 메소드의내용기술 } 이메소드에서하는작업은먼저, super.oncreate(savedinstancestate); 를실행해슈퍼클래스인 ActionBarActivity클래스의 oncreate() 메소드를호출하고, 사용자인터페이스를배치하는데사용되는 setcontentview(r.layout.activity_main); 메소드를호출한다. R.layout.activity_main이화면에표시될사용자의인터페이스를갖는 XML레이아웃리소스파일로 [res]-[layout] 폴더내에있는 activity_main.xml파일을지칭한다. setcontentview() 메소드의프로토타입은다음과같다. - 12 -

void setcontentview(view view) 기능 : 실제화면에표시할레이아웃 ( 뷰 ) 를지정 파라미터 : XML 레이아웃파일또는 View 클래스의객체 뷰를추가하고이벤트를등록할경우에는 setcontentview(r.layout.activity_main); 코드다 음줄부터차례로기술한다. 참고 ) 메소드를정의하는형식접근제어자리턴타입메소드명 ( 파라미터 1, 파라미터 2,..){ } // 처리할작업기술 return 리턴값 ; [ 접근제어자 ] : public, protected, default( 접근제어자를생략시 ), private 가있다. 뒤로 갈수록제어의강도가높아진다. 실무에서는메소드의접근제어자로주로 public 을많이 사용한다. [ 리턴타입 ] : 메소드의실행결과값을리턴 ( 반환 ) 하지않는 void 와 void 이외의타입이있 다. 리턴타입이 void 이면 return 문을기술하지않고, void 이외의타입이면반드시 return 문을기술해야한다. 그렇지않으면에러가발생한다. 참고 ) 주석 (comment) 과어노테이션 (annotation) oncreate() 메소드의내용을보면 /** 로시작해서 */ 로끝나는문장을볼수있다. 이것 은주석 ( 주석은프로그램의실행과는무관하게코드에설명을추가할경우사용 ) 으로자바 의주석에는한줄만주석으로처리하는 // 과여러줄에걸쳐주석을기술하는 /* */ 이 있다. 어노테이션도주석의일종으로일반적인주석보다는좀더발전한형태의주석으로, 경우에따라서는사용자뿐만아니라시스템을위한주석도기술할수있다. 어노테이션은 @Override과같이 @(at) 기호를사용한다. 여기에서 oncreate() 메소드위에있는 @Override는현재의클래스인 TestAndroid 클래스의부모클래스인 Activity의 oncreate() 메소드를오버라이드 ( 재정의 ) 했다는것으로, 여기서는이메소드를재정의하지않으면에러가발생한다. 따라서어노테이션은반드시해야할작업을경고함으로써실수를방지하는데주로사용된다. AndroidManifest.xml -애플리케이션실행에필요한정보 manifest( 매니페스트 ) 파일은애플리케이션을실행시키기위해필요한애플리케이션의정보를갖는파일이다. 홈화면에표시할아이콘이나애플리케이션의이름은매니페스트 (manifest) 라는이름이붙은 [AndroidManifest.xml] 파일에기술한다. - 13 -

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.probemedia.testapp" > <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name=".mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> [<manifest xmlns:android="http://schemas.android.com/apk/res/android"] 에서 [xmlns:android] 은네임스페이스를지정하는부분으로 "http://schemas.android.com/apk/res/android" 대신디폴트네임스페이스로 android라는별명을사용한다. <application> 엘리먼트는애플리케이션당 1 번만기술하는것으로애플리케이션의실행에필 요한정보를설정한다. <activity> 엘리먼트는액티비티당 1 개이다, 이애플리케이션에서는액티비티가하나여서이 엘리먼트도한번만나온다. 액티비티명, 인텐트필터등을기술한다. [ 추가실습 ] TestApp앱에 [ 닫기 ] 버튼추가 1. strings.xml에문자열추가 <string name="end_label"> 닫기 </string> 2. activity_main.xml에 [ 닫기 ] 버튼추가 - 14 -

1) Button 위젯드래그앤드롭 2) id 속성값 : end_btn 3) text 속성값 : @string/end_label 3. MainActivity.java에추가할내용 setcontentview(r.layout.activity_main); 다음줄에추가 Button endbtn = (Button)findViewById(R.id.end_btn); endbtn.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { finish(); } }); 4. [Run]-[Run 'app'] 메뉴클릭 [ 실습04] APK파일생성 ( 안드로이드스튜디오 ) 1. [keystore] 폴더생성 2. [Build]-[Generate Signed APK...] 3. [Generate Signed APK Wizard] 창에서 [Create new...] 버튼클릭. 4. [Key store path] 의 [...] 을눌러 [keystore] 폴더선택, [file name] 에 TestApp입력후 [OK] 버튼클릭 - 15 -

5. 나머지값입력후 [OK] 버튼클릭 6. [Next] 버튼클릭 - 16 -

7. [APK Destination Folder] 에 [keystore] 폴더선택, [Build Type] 에 [release] 선택후 [Finish] 버튼클릭 8. [keystore] 폴더에 app-release.apk 파일이생성됨. 이파일을 TestApp.apk 로변경해서 사용 - 17 -

[ 프로젝트 ] 여러사용자간의메시지주고받기 ( 채팅프로그램 ) 1. 개발기획안구성개발기획안은형태가잡히지않은생각을체계적이고구체적으로구성해작성한문서이다. 이런기획안은안건수립을수립하고정확한의도및달성할가치를염두에두고작성한다. 기획안에는과제파악, 과제분석, 목표설정, 해결방안모색그리고실행계획수립등이포함되며, 이단계가끝난후개발계획서를작성한다. (1) 개발기획안작성순서 1 과제파악 : 요구사항및필요성등을파악하는부분이다. 예 ) 여러사용자간의메시지주고받는프로그램을작성하고싶다. 2 과제분석 : 과제의현황, 환경및조건등을분석하는부분이다. 예 ) 스마트폰의주소록에속한사람들과는별도로회사의부서원들만사용하는것으로원함 3 목표설정 : 비전이나의도등을기술해목표를설정하는부분이다. 예 ) 외부업무가많은부서원들간의원활한의사소통에필요 4 해결방안모색 : 문제해결을위한창의적아이디어등을기술하는부분이다. 예 ) 부서원인증, 대화주고받기, 대화내용저장 (DB 사용 ) 5 실행계획수립 : 문제해결을구체화하고실현계획등을수립한다. 예 ) 안드로이드앱으로개발. 예시 ) 채팅앱개발기획안 채팅앱개발기획안 문서분류작성자작성일 기획 과제파악 과제분석 목표설정 - 18 -

해결방안모색 실행계획수립 앱의특징 앱이름 MyChat( 가칭 ) 앱특징 개발기간 개발비 개월 원 스토어등록 play 스토어, T 스토어, 올레마켓, OZ 존 앱가격원 / 무료 ( 광고수익 ) 2, 애플리케이션개발계획서작성 애플리케이션개발계획서는애플리케이션개발기획안으로구상한구체적인기획서를토대로 실질적으로프로그램을작성하기위한목표, 기술및개발방법등을기술한문서이다. (1) 개발기획서구성개발기획서는서론, 본론, 결론으로나누어서론에는개발목적, 목표등을작성한다. 본론에는적용기술, 개발할내용및개발방법등을기술하며, 결론에서는개발의평가및향후프로그램개선등을포함한내용이들어간다. - 19 -

(2) 개발계획서작성순서 1 개발목표 : 개발과제의필요성및목표등을작성한다. 예 ) 필요성 부서원들간의원활한의사소통을통한업무효율화증대목표 - 채팅모바일애플리케이션개발 2 적용기술 - 애플리케이션의개발시사용할서비스를선택하며, 애플리케이션개발에필요한기술등에대해작성한다. 예 ) 애플리케이션의개발시사용할서비스 - 모바일앱서비스환경방식에서네이티브앱방식을사용해안드로이드애플리케이션으로만든다. 애플리케이션개발에필요한기술 [ 메시지주고받기 ] 의경우화면의설계와애플리케이션구성요소의사용및네트워크지원여부등을기술한다. 3 개발내용및방법 - 구체적인화면설계와프로그래밍설계도등을작성한다. 예 ) 화면설계 - 전체화면구조도와각화면의레이아웃과위젯의구성방법그리고화면의이동방법등의 UI설계도를작성한다. 프로그래밍설계도 - UML다이어그램등을사용해프로그래밍구조도를작성한다. 4 향후계획 - 개발한애플리케이션을평가하고, 기능을개선하거나어떤기능언제어떻게추가할것인지등을기술한다. 예 ) [ 메시지주고받기 ] 부분만을구현했으며, [ 부서원인증 ] 과 [ 대화내용저장 ] 등은아직구현하지않았다. 따라서향후작업으로부서원인증 ] 과 [ 대화내용저장 ] 하는기능을 6개월안에추가해, 애플리케이션을개선할예정이다. 단, 대화내용을저장할때는보안을위해암호화기술을사용한다. 예시 ) 채팅앱개발계획서 채팅앱개발계획서 문서분류작성자작성일 개발 개발목표 필요성 목표 - 20 -

적용기술 서비스 모바일앱서비스환경방식에서네이티브앱방식을사용한안 드로이드앱화면의설계 필요한기술 애플리케이션구성요소의사용 액티비티 : 부서원인증, 내용 DB 에저장 - 향후지원 개발내용및방법 화면설계 - 21 -

프로그래밍설계도 문제점 : 향후계획 - 22 -

향후작업 : 3. 구현및테스트 (1) 서버작성 - 자바프로젝트 - 이클립스로 [ChatServer] 프로젝트가져오기 (2) 클라이언트작성 안드로이드애플리케이션 - 안드로이드스튜디오에서 [SocketTest] 앱작성 1) 레이아웃리소스 < 로그인화면 > < 채팅화면 - 사용자 1> < 채팅화면 - 사용자 2> 2) 액티비티 2 개 3) AndroidManifest.xml - 23 -

(3) 테스트 - 채팅상황 - 서버의중계상황 4. 문제점분석 - 24 -