달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

UML Diagram 14종류

시스템을 여러 관점(view)에서 표현할 있습니다.

1.  UseCase diagram (유스케이스 다이어그램)

2.  Sequence diagram (시퀀스 다이어그램)

3.  Class diagram (클래스 다이어그램)

4.  Activity diagram (액티비티 다이어그램)

5.  Object diagram (객체 다이어그램)

6.  StateChart diagram (상태 다이어그램)

7.  Collaboration diagram (협력 다이어그램)

8.  Component diagram (컴포넌트 다이어그램)

9.  Package diagram (패키지 다이어그램)

10.Deployment diagram (배치 다이어그램)

11.Composite structure diagram (복합 구조 다이어그램)

12.Profile diagram (프로필 다이어그램)

13.Timing diagram (타이밍 다이어그램)

14.Collaboration/Interaction/Communication  diagram (협업 다이어그램)

 

 

 

 

 

개발에서 주로 사용하는 다이어 그램

·         UseCase diagram

·         Sequence diagram

·         Class diagram

·         Activity diagram

·         StateChart diagram

 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

안드로이드 프로그램 구조

   

   

뷰(View)

뷰(View)는 사용자와 직접 상호작용을 하는 UI를 의미합니다.

   

 

액티비티 (Activity)

  • 하나의 화면을 컨트롤하는 객체로 (어플리케이션의 하나의 화면, 폰 화면)
  • 보통 액티비티와 UI화면은 일대일 대응 관계를 갖고 시스템 혹은 사용자로부터 시작된 이벤트에 반응(처리)합니다.
  • 레이아웃을 포함하며 UI오브젝트를 추가하여 사용할 레이아웃을 정의(화면을 구성)하게 됩니다.

   

   

위젯(Widget)

TexTView, Button, EditText등 사용자의 입력을 받거나 화면에 데이터를 표시해 주는 Object

   

   

레이아웃(Layout)

액티비티들을 어떠한 방식으로 화면에 배치해 줄지를 결정해 주는 하나의 컨테이너 역할

UI오브젝트를 담고 있는 그릇역할.

   

 

인텐트 (Intent)

액티비티간의 통신 수단이며 메시지에 대한 상세한 정보를 가집니다. 예를 들어 주소록 목록 액티비티에서 편집 액티비티를 호출할 때 누구의 주소를 어떤 식으로 편집하라는 지시가 인텐트에 실려 전달됩니다.

   

 

서비스 (Service)

서비스는 주로 백그라운드에서 돌아가는 실행코드로, 일단 실행되면 휴대폰이 꺼질 때까지 돌아갑니다. 서비스는 일반적으로 사용자 인터페이스가 없습니다.

예) MP3 플레이어, 저장기능

 

   

브로드캐스트 리시버(BroadcastReceiver)

만약 애플리케이션이 전화가 오거나 문자메시지 수신과 같은 이벤트 반응시 적절하게 반응하기를 원한다면 반드시 브로드캐스트 리시버로서 등록되어 있어야만 합니다. 신호만 대기할 뿐 UI를 따로 가지지는 않으므로 신호가 오면 적절한 액티비티를 띄워 내용을 전달합니다.

   

 

컨텐트 프로바이더 (Content Provider)

다른 응용 프로그램을 위해 자신의 데이터를 제공합니다. 안드로이드는 보안이 엄격하여 다른 응용프로그램의 데이터를 함부로 액세스 하지 못하도록 되어 있습니다. 응용프로그램 간에 데이터를 공유할 수 있는 합법적인 유일한 장치가 바로 콘텐트 프로바이더입니다.

   

   

사용 가능한 구성 요소 

(1) 데이터 보관

(2) 네트워크

(3) 멀티미디어

(4) GPS

(5) 전화서비스

   

Posted by codedragon codedragon

댓글을 달아 주세요

Activity가 가지고 있는 내장 메소드를 사용하여 내장영역에 데이터를 저장하고 호출하기

  • Activity 생명주기에 의해 내용을 자동 저장하도록 구현
  • 내장영역이므로 경로 없이 파일 호출가능

   

   

강의 내용

activity_main.xml

RelativeLayout 변경

Graphical Layout > Form Widgets-Button추가

Graphical Layout > Text Fields-Plain Text 추가

  

MainActivity.java

//파일명 지정

//이벤트 처리

//파일로 부터 Data를 읽어옴

//파일에 Data를 저장함

  

  

   

   

Activity생명주기를 통한 Data 처리

   

   

파일 저장 경로

  • 생성된 파일은 DDMS창을 통해 확인할 수 있습니다.
  • \Data\Data\kr.android.file\files\ 경로에 파일이 생성됩니다.

   

 

   

출력 결과

   

닫기 버튼 또는 종료버튼 클릭 시 데이터 저장 수행

   

다시 앱을 실행한 경우

   

   

애뮬레이터에 있는 파일을 PC로 복사 하기/PC의 파일을 애뮬레이터에 복사하기

   

DDMS창 File Explorer의 파일 관련 아이콘 설명

  

Pull a file from device

애뮬레이터에서 PC로 파일 복사

  

Push a file into device

PC에서 애뮬레이터로 파일 복사

  

Delete the select

선택항목 삭제

  

New Foler

폴더 생성

   

애뮬레이터에 있는 파일을 PC로 복사 하기

애뮬레이터가 실행된 상태에서 DDMS창을 클릭합니다.

   

오른쪽 영역의 File Explorer탭을 클릭합니다.

   

\Data\Data\kr.android.file\files 경로이동하면 notes.txt파일이 생성된 것을 확인 할 수 있습니다.

notes.txt파일을 선택 > Pull a file from device버튼을 클릭합니다.

   

저장할 경로 선택 > 확인

   

폰에서 PC로 저장한 파일

   

notes.txt 내용 확인

   

   

PC의 파일을 애뮬레이터에 복사하기

파일을 복사할 위치로 이동한 후 >

Push a file into device버튼을 클릭 >

폰으로 옭길 파일을 선택 > 열기

 

Posted by codedragon codedragon

댓글을 달아 주세요

MainActivity.java Activity 추가하기

   

MainActivity.java 오픈 > 하단의 Application탭 클릭

   

Add

   

추가할 Activity선택 > OK

   

추가 완료!

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

\res\anim 폴더 생성

   

Android XML File (Layout XML)추가 방법

anim폴더 선택 > 마우스우클릭 > New > Android XML File 선택 >

   

   

activity_main.xml에서 xmlns:android="http://schemas.android.com/apk/res/android" 부분을 카피해서 push_left_in.트에 붙여 넣습니다.

   

<set xmlns:android="http://schemas.android.com/apk/res/android">

Posted by codedragon codedragon

댓글을 달아 주세요

생명주기 상태변화가 있을 때 마다 로그로 확인하기

   

   

강의 내용

생명주기에 대응하는 메소드에 로그 작성

LogCat에서 해당 TAG의 로그 확인

activity_main.xml

RelativeLayout 변경

Graphical Layout > Form Widgets-TextView 추가

  

MainActivity.java

//생명주기 함수 재정의

onStart

onRestart

onResume

onPause

onStop

onDestroy

   

   

Console 창 종류

eclipse의 콘솔

Console 창

폰안에서 보여지는 콘솔

LogCat 창

   

   

Tag로 설정한 Log만 필터 처리하여 보기

LogCat콘솔창을 오픈

왼쪽 영역의 Saved Filters 옆 초록색 +버튼을 클릭

아래 와 같이 입력

Filter Name

ActivityLifeCycle

by Log Tag

Lifecycle

by Log Level

info

OK

   

필터 생성 완료!

   

   

   

   

출력 결과

   

Activity상태가 변화될 수 있도록 종료버튼/홈버튼/다시 앱 실행등의 작업을 수행하여 생명주기 라이프 사이클을 확인해 보시기 바랍니다.

   

 

Posted by codedragon codedragon

댓글을 달아 주세요

생명주기 상태변화에 대응하는 메소드

메소드

개요

onCreate

-액티비티가 인스턴스로 생성될 때 시작하는 메서드.

-setContentView()메서드로 레이아웃과 연결시키는 작업 등 액티비티의 초기화 작업을 실행합니다.

onRestart

-멈춤 상태에서 다시 실행 중인 상태로 복귀 시 호출되는 메서드.

-백그라운드 상태에서 최상위 화면의 실행되는 상태로 나올 때 실행

onStart

-액티비티가 화면에 표시되기 전(포그라운드)에 호출되는 메서드이다.

onResume

-액티비티가 포그라운드 상태로 사용자와 인터페이스하기 바로 전 상태. 즉 액티비티가 프로세스의 최상위 스택 상태가 된다.

onPause

-다른 액티비티로 포커스가 변경될 때 호출되는 콜백 메서드이다.

-저장되지 않은 데이터를 저장한다.

-다음 단계들은 시스템의 상태에 따라 언제든지 종료될 수 있어 개발자의지대로 작동할 수 있는 최상의 단계이다.

-(다른 앱이 보여지기전 백그라운드로 가기 직전에 실행)

onStop

-사용자에게 보이지 않을 때 호출되는 콜백 메서드이다.

-실행 중이라도 시스템에 의하여 언제라도 강제 종료 당할 수 있는 상태이다.

-(완전히 백그라운드 상태로 될 때 실행)

onDestroy

-액티비티가 종료될 때 호출되는 메서드이다.

-사용자에 의한 종료인지 시스템에 의한 종료인지 판별하기 위해 isFinishing()메서드를 호출할 수 있다.

   

   

생명주기 도식도

   

Posted by codedragon codedragon

댓글을 달아 주세요

3행 3열/4열의 수평 그리드 레이아웃

   

   

강의 내용

activity_main.xml

LinearLayout(Vertical) 변경

Graphical Layout > Form Widgets-TextView 추가

Graphical Layout > Layouts-GridLayout 추가

-android:columnCount="3"

-android:rowCount="3"

-Graphical Layout > Form Widgets-Button추가 X7

   

Graphical Layout > Form Widgets-TextView 추가

Graphical Layout > Layouts-GridLayout 추가

-android:columnCount="4"

-Graphical Layout > Form Widgets-Button추가 X7

  

AndroidManifest.xml

<uses-sdk android:minSdkVersion="14"

   

   

AndroidManifest.xml 수정

GridLayout은 API 14(안드로이드 4.0)부터 사용 가능하기 때문에 AndroidManifest.xml의 min SDK버전을 14이상으로 설정해줘야 사용가능합니다.

이하 버전일 경우 인스톨이 되지 않고 에러가 납니다. 인스톨이 되었어도 기능사용시 에러남

   

   

   

 

   

출력 결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

GridLayout 

GridLayout

격자 모양의 표을 만들 수 있는 레이아웃.

GridLayout은 API 14(안드로이드 4.0)부터 사용 가능하기 때문에 AndroidManifest.xml의 minSdkVersion을 14이상으로 설정해줘야 사용 가능합니다.

이하 버전일 경우 인스톨이 되지 않고 에러가 납니다. 인스톨이 되었어도 기능사용시 에러가 날 수 있습니다.

   

AndroidManifest.xml

<uses-sdk

android:minSdkVersion="14"

android:targetSdkVersion="19" />

   

   

GridLayout 태그에 지정하는 속성

속성

설명

orientation

배치의 방향을 지정.

가로(vertical) 우선, 세로(horizontal) 우선으로 지정할 수 있으며 디폴트는 horizontal

columnCount

최대 열 개수를 지정.

한 행이 이 개수를 초과하면 아래 행으로 자동 개행.

rowCount

최대 행 개수를 지정.

한 열이 이 개수를 초과하면 오른쪽 열로 자동 개행.

alignmentMode

차일드 정렬의 기준을 지정.

alignBounds이면 차일드의 외곽을 기준으로 하며

alignMargins이면 마진을 기준으로 합니다.

디폴트 alignMargins.

columnOrderPreserved

열의 경계를 인덱스의 오름차순으로 배치

rowOrderPreserved

행의 경계를 인덱스의 오름차순으로 배치

useDefaultMargins

차일드 뷰의 레이아웃에 별다른 지정이 없으면 차일드의 속성을 참조하여 계산한 디폴트 마진을 사용합니다.

이 값이 false이면 마진은 0으로 처리되어 차일드끼리 밀착합니다.

   

   

GridLayout 하위 태그에 지정하는 속성

속성

설명

layout_column

차일드가 배치될 셀의 열 좌표를 지정.

디폴트 UNDEFIED 차일드 순서에 따라 자동 계산

layout_row

차일드가 배치될 셀의 행 좌표를 지정.

디폴트 UNDEFIED 차일드 순서에 따라 자동 계산

layout_columnSpan

차일드가 차지할 열 수를 지정.

디폴트는 1

layout_rowSpan

차일드가 차지할 행 수를 지정.

디폴트는 1

layout_gravity

열 내에서의 차일드 정렬 방식을 지정.

디폴트 LEFT|BASELINE

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

같은 영역에 중첩된 뷰를 이벤트를 통해 이미지뷰가 보였다/사라지게 출력하기

   

   

강의 내용

activity_main.xml

FrameLayout

Graphical Layout > Form Widgets-Button추가

Graphical Layout > image&Media-ImageView 추가

  

MainActivity.java

//이벤트 연결

\res\drawable\southkorea.png

이미지 파일 추가

   

   

 

   

출력 결과

   

 

Posted by codedragon codedragon

댓글을 달아 주세요