Microsoft PowerPoint App Fundamentals[Part2].pptx

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

Microsoft PowerPoint App Fundamentals[Part1].pptx

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

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Microsoft PowerPoint UI-Layout.Menu.pptx

슬라이드 1

슬라이드 1

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

12 주차 인텐트

Activity

구글안드로이드프로그래밍액티비티, 인텐트수신자, 그리고서비스 안드로이드애플리케이션의구성요소에는액티비티, 인텐트수신자, 서비스, 컨텐트제공자가있다. 이번호에서는사용자인터페이스를위한액티비티와백그라운드서비스를위한인텐트수신자, 그리고서비스의라이프사이클과활용법에대해살펴보도록하자.

07( ) CPLV12-35.hwp

슬라이드 1

콘텐츠 PowerPoint 디자인

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

Daum 카페

PowerPoint 프레젠테이션

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

Folie 1

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

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

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

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint Application Resources[Part1](2.0h).pptx

안드로이드 서비스

WS12. Security

( )부록

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

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

android_training_course_for_app_developer_by_kandroid.xls

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

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

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

어댑터뷰

Chapter #01 Subject

제11장 프로세스와 쓰레드

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

슬라이드 1

50_1953.pdf

PART

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

Part Part

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

유니티 변수-함수.key

Microsoft PowerPoint Predicates and Quantifiers.ppt

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

Windows 8에서 BioStar 1 설치하기

gnu-lee-oop-kor-lec10-1-chap10

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

<35312DC1B6C0BABCF72DBEC8B5E5B7CEC0CCB5E520B1E2B9DD20B8F0B9D9C0CF20B0A1BAAFBCBA20BCB3B0E820B9D720B1B8C7F62E687770>

1부

학습내용 1. SDK, JDK, 이클립스, AVD의개념 2. 프로그래밍환경수립및설정 3. 예제프로그램수행방법 4. 액티비티생명주기

PowerPoint 프레젠테이션

<4D F736F F F696E74202D A434F20B9DFC7A5C0DAB7E1202D20C7AABDC3BCADB9F62DB0D4BDC3BABB2E >

Microsoft Word - 김정훈.doc

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

<4D F736F F D20BEC8B5E5B7CEC0CCB5E520BCBCB9CCB3AA>

자바 웹 프로그래밍

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

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


슬라이드 1

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

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

1 개요 이가이드는 Cocos2d-x 엔진을사용하는안드로이드어플리케이션프로젝트에서아이지에이웍스의서비스를 이용하기위한플러그인가이드입니다. 기능 IGAWorks Cocos2d-x 플러그인이지원하는 IGAW 서비스는아래와같습니다. - 애드브릭스 - 애드팝콘 - 디스플레이애드

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Chapter 4. LISTS

[Brochure] KOR_TunA

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

헬로, 안드로이드 7 주차 멀티미디어 강대기동서대학교컴퓨터정보공학부

rosaec_workshop_talk

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

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

03장

안드로이드2_14

01장

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

슬라이드 1

목차 1. 안드로이드란무엇인가? 1.1. 주요특징 1.2. 안드로이드아키텍처 1.3. 애플리케이션 1.4. 애플리케이션프레임워크 1.5. 라이브러리 1.6. 안드로이드런타임 1.7. 리눅스커널 2. 애플리케이션기초 2.1. 애플리케이션컴포넌트 2.2. 액티비티와태스크

Microsoft PowerPoint - chap06-2pointer.ppt

THE TITLE

SKT UCC DRM

vRealize Automation용 VMware Remote Console - VMware

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

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

PowerPoint Presentation

슬라이드 1

PowerPoint Presentation

Microsoft PowerPoint - chap06-5 [호환 모드]

<BED5BACEBCD32E696E6464>

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

변수이름 변수값 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

No Slide Title

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D B3E25FB8F0B9D9C0CFBEDBC7C1B7CEB1D7B7A1B9D6205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

슬라이드 1

Transcription:

To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부

애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 Part 2 2

태스크는명시적으로정의 / 선언하는것이아니라, 주어진목적을위해 현재수행되고있는액티비티들의스택이다. 예를들어, 어떤액티비티가특정위치상의시가지지도를보여주고자한다하자. 해당액티비티는안드로이드에이미존재하는맵뷰어액티비티를실행 ( 인텐트를사용하여 start 시킴 ) 하게된다. 이경우, 이전액티비티위에맵뷰어액티비티가수행되며, BACK 키에의해이전 액티비디로돌아갈수있다. 이들관련액티비티들은스택에관리되며, 이들액티비티를하나의태스크라한다. 처음태스크를시작한액티비티를루트액티비티라한다. 새로운액티비티가시작될때, 새로운태스크로수행될수도있으며 ( 새로운스택을 사용하여시작할수있으며 ), ( 동일한스택을사용하여 ) 이전액티비티가속한태스크내에수행될수도있다. 3

그림 : from kandroid.org 4

그림 : from kandroid.org 5

인텐트 (Intent) 를사용하여하나의액티비티에서다른액티 비티를시작시킬수있다. 시작할액티비티의인텐트필터카테고리값에따라, 새로 운태스크혹은기존태스크에서해당액티비티가수행된다. ( 일반적으로, AndroidManifest.xml 에서지정한다.) android.intent.category.launcher: 새로운태스크시작 android.intent.category.browsableintent 등 : 기존태스크에서동작 6

새로운액티비티를시작하려면, 1. 액티비티를시작을유도할 View 를결정 / 생성 2. 새로운액티비티를생성 Java class 를생성 Layout 을위한 XML 파일을생성 관련하여, string XML 파일을수정 3. AndroidManifest.xml 에해당액티비티를등록 4. 기존액티비티에서새로운액티비티를시작 (start) t) 7

액티비티를시작을유도할 View 를결정 / 생성 main.xml button04 추가 string.xml 8

새로운액티비티를생성 (1/4) UiPracticeFirstAct1.java 생성 9

새로운액티비티를생성 (2/4) 10

새로운액티비티를생성 (3/4) act1.xml strings.xml 11

새로운액티비티를생성 (4/4) 12

AndroidManifest.xml 에액티비티등록 (1/2) 기존 activity 추가된새로운 activity 13

AndroidManifest.xml 에액티비티등록 (2/2) AndroidManifest.xml string.xml 14

기존액티비티에서새로운액티비티시작 UiPracticeFirst.java 추가된부분 버튼이클릭되면, 인텐트를이용하여새로운액티비티시작 15

오류가있는경우 ( 특히, Manifest 에등록되지않은경우 ) 16

정상적으로수행된경우 17

홈화면을봅시다. 두개의애플리케이션이있는것으로보인다. 실은새로운태스크가생성되었기때문이다. 왜이런현상이나타났는가? android.intent.category.launcher 로 설정했기때문이다. 18

새로운태스크가아닌액티비티만시작 (1/2) AndroidManifest.xml LAUNCHER 대신에 BROWSABLE 사용 19

새로운태스크가아닌액티비티만시작 (2/2) UiPrac1stAct1이보이지않는다. 하나의태스크에서액티비티들이수행된다. 20

애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 21

애플리케이션의첫번째컴포넌트가실행되어야할때, 안드로이드는 이의실행을위해하나의실행 (execution) 쓰레드를갖는리눅스프로세스를시작한다. 디폴트로모든애플리케이션의컴포넌트는하나의프로세스내의메인쓰레드에 서동작한다. 그러나, 컴포넌트는메인이아닌다른쓰레드에서동작할수도있으며, 다른프로 세스의쓰레드에서수행될수도있다. 22

애플리케이션의각컴포넌트는자신이실행될프로세스를지정 할수있다. Manifest 파일에서 process 애트리뷰트로지정한다. 모든컴포넌트는지정된프로세스의메인쓰레드에서인스턴스화되며, 그컴포넌트에대한시스템호출은메인쓰레드로부터디스패치 (dispatch) 된다. 23

메인쓰레드이외에, 백그라운드작업을위해쓰레드를생성할 수있다. 특히, 빨리응답할수없는 ( 완료할수없는 ) 컴포넌트의경우, 별 도의쓰레드에할당하는것이바람직하다. 쓰레드는표준 Java 쓰레드오브젝트를사용하여코드에서생성 된다. 24

애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 25

액티비티의세가지상태 활성화 (active) or 실행중 (running) 상태 해당액티비티가사용자액션에대한포커스를가지고있을때이다. 좀더쉽게말해서, foreground 화면에나타나있을때이다. 멈춤 (paused) 상태 포커스는보유하지않았으나, 여전히사용자에게보이는상태이다. 다른액티비티에의해가려져부분적으로만보이는상태로서, 해당액 티비티는살아있는상태이다. 정지 (stop) 상태 다른액티비티에의해완전히가려진상태이다. 여전히액티비티의정보는유지되나, 메모리부족시종료될가능성이 높은상태이다. 26

액티비티의상태가변하면, 다음의 method 가호출되어, 그변화가통 보된다. void oncreate(bundle savedinstancestate) void onstart() void onrestart() void onresume() void onpause() void onstop() void ondestroy() 이들 method 는상태변화에따른적절한액션을위해, override 하여 사용할수있다. 대표적인사용예가 oncreate() method 이다. 27

foreground lifetime entire lifetime visible lifetime 28

entire lifetime foreground lifetime visible lifetime 29

entire lifetime foreground lifetime visible lifetime 30

entire lifetime foreground lifetime visible lifetime 31

서비스가사용되는두가지방법 새로운서비스시작, 명시적종료 startservice() 로새로운서비스시작 stopservice() 로실행중지, 혹은자신이스스로 stopself() 를사용하여중지 Methods: oncreate(), onstart(intent), ondestroy() 이미존재하는서비스오브젝트에 bind/unbind 클라이언트가 bindservice() 를사용하여서비스오브젝트에커넥션을 만들어이용 커넥션은 unbindservice() 로끊을수있음 Methods: onbind(intent), onunbind(intent), onrebind(intent) 32

active lifetime entire lifetime 33

하나의 callback method 를가진다. onreceive(context, Intent) 리시버에게브로드캐스트메시지가도착할때, 안드로이드는 onreceive() 를호출하여, 메시지를포함하고있는인텐트오브젝트를전달한다. 리시버는 onreceive() method 를실행하는동안에만활성화되는것으로 간주한다. 리시버는 onreceive() 가리턴될때, 비활성화된다. 34

( 자원이부족한모바일디바이스의특성을고려하여 ) 프로세스들은 중요성계층구조 (importance hierarchy) 속에서유지되며, 자원이부족한경우낮은중요성을가진프로세스부터순차적으로제거된다. 프로세스의중요성순서 Foreground: 사용자가현재인터랙션하는프로세스 Visible: 인터랙션은없어도, 눈에는보이는프로세스 Service: 서비스를동작시키고있는프로세스 Background: 동작은하나 visible 하지않은액티비티를가진프로세스 Empty: 어떠한 active 한컴포넌트도가지지않은프로세스 ( 다음번에구동될수있는컴포넌트에대한캐슁을수행하고있음 ) 35

36