SlideShare a Scribd company logo
1 of 42
JAVA, Android 스터디
2015.06.16
김희준
1
2
ㅁ 스레드(Thread)의 필요성
- 메인 액티비티는 하나의 프로세스로 처리
* 대기시간이 길어질 시 많은 시간이 필요
- 멀티스레디 방식으로 해결 가능, 메모리 리소스 공유
- 리소스를 공유하기 때문에 데드락(Deadlock)발생 가능
- 런타임 예외라서 찾기가 힘듬
- 안드로이드에선 자바의 표준 Thread지원
참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
3
실행화면
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com0. 지난주 복습
4
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
버튼 터치시 스레드에서 받은
값을 출력 함
MainActivity의 소스
0. 지난주 복습
5
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
MainActivity의 소스
화면이 보이고 있을때
스레드를 실행
화면이 꺼져 있을때
스레드를 중지
0. 지난주 복습
6
ㅁ 프로세스가 생성되면
메인스레드는 메시지 큐를
실행, 메시지 큐를 이용해
메인 스레드가 처리할
메시지를 전달 하는 것이
핸들러 클래스
스레드와 스레드 핸들러 플로우 차트
참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
7
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
실행화면
0. 지난주 복습
8
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
스레드 핸들러 변수 선언과
새로운 핸들러 객체 생성
0. 지난주 복습
9
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
프로그래스 바(가로로 긴 막대) 0으로 초기화
액티비티 시작 시 스레드 생성 후 실행
1초마다 핸들러로 메시지 전송
스레드에서 작업 상태나 결과를 핸들러의
sendMessage()로 전송
0. 지난주 복습
10
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
handleMessage()메소드 내에서
전달된 정보를 이용해 UI 업데이트
MainActivity의 소스
새로운 Handler클래스 정의,
프로그래스 바를 5씩 증가시킴
0. 지난주 복습
11
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
Activity_main.xml의 소스
진행상태를 표기하기 위한
프로그래스 바를 정의
0. 지난주 복습
12
MainActivity의 소스
ㅁ 앞에 그림은 서브스레드와
메시지 큐와의 메시지 전달,
하지만 서브스레드가 메인스
레드에게 메시지를 전달해야
되는 경우도 생기며, 이를 순
차적으로 처리하기 위해 메시
지 큐가 사용됨, 루퍼가 계속
돌며 메시지 큐에 있는 명령
들을 한 개 씩 처리
참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
13
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
실행화면
0. 지난주 복습
14
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
새로운 스레드 생성, 스레드를
생성하고 스레드를 위한 핸들러
를 만든다.
MainActivity의 소스
새로만든 스레드에서
루퍼(Lopper)를 실행
0. 지난주 복습
15
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
텍스트 뷰와 텍스를 수정할 수 있는
에디트 텍스트를 위한 레퍼런스 변수 선언
메인스레드를 위한 핸들러
서브스레드를 위한 핸들러
생성된 객체를 레퍼런스 변수 참조(이름)를
이용해 activity_main.xml에 이미 만들어진
텍스트 뷰와 에디트 텍스트의 속성을
알 수 있음
버튼이 눌릴 경우 스레드로 메시지를 보내고
해당 스레드를 실행
텍스트 뷰와 텍스를 수정할 수 있는
에디트 텍스트를 위한 객체 생성
0. 지난주 복습
16
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
새로 만든 스레드 핸들러,
메인 스레드의 핸들러로 메시시 전송
새로 만든 스레드 핸들러로 받은
메시지를 메인 스레드 핸들러에서
에디트텍스트에 메시로 표시
0. 지난주 복습
17
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com1. 스레드와 애니메이션
실행화면
18
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com1. 스레드와 애니메이션
실행화면
19
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com1. 스레드와 애니메이션
실행화면
20
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com1. 스레드와 애니메이션
실행화면
21
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com1. 스레드와 애니메이션
Activity_main.xml
애니메이션을 보여줄 뷰 만듬
22
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
콜백 인터페이스 설정
* 콜백이란? = 캐치볼, 탁구, 전화
상대방을 호출하고 일정시간(조건)후에
다시 호출 받음
ThreadAnimationView.java
23
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
이미지 스레드 객체 생성
ThreadAnimationView.java
24
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
서피스 뷰를 위한 홀더 선언
25
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
서피스 뷰를 위한 홀더 선언
* 서피스 뷰란? 3D지원을 위해 OpenGL ES 라이브러리 포함
2D그래픽도 지원하며 빠른성능의 2D구현 가능
26
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
애니메이션을 보여줄 크기에 대한 변수와
어떤 그림을 보여줄지에 대한 변수 선언
27
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
이미지를 저장할 배열,
각각 안드로이드 이모티콘과
사각형(배경)을 그림
28
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
스레드 생성자
29
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
각각의 이모티콘과 배경에
어떤 이미지가 들어갈지
설정
30
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
스레드 실행
31
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
스레드간 동기화를 위해
Synchronized를 사용
32
1. 스레드와 애니메이션
참조 프로젝트 : SampleThreadAnimation
다운로드 : easyspub.com
ThreadAnimationView.java
Sleep(ms)를 이용해 해당 시간
만큼의 간격을 두고 스레드 실행
Dodraw메소드를 사용해 화면에 표시
33
2. 트윈 애니메이션 참조 교재 : Do it! 안드로이드 앱 프로그래밍
- 보여줄 대상을 적절히 연산 후 그 결과를 연속적으로 디스플레이
->한 개의 대상만 있으면 충분
- 대상과 효과로 구분
- 대상 : 뷰, 그리기 객체
* 뷰 : 위젯과 레이아웃 모두 포함, 그리기 객체 : drawable
- 효과 : 위치 이동, 확대/축소, 회전, 투명도
* 위치 이동 : translate, 확대/축소 : Scale, 회전 : Rotate, 투명도 : Alpha
34
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
실행화면
35
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
Scale.xml
Scale2.xml
트윈 애니메이션을 위한 Action
정보는 XML리소스 or 자바 코드
에서 직접 객체로 만듬
36
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
Scale.xml
Scale2.xml
트윈 애니메이션을 위한 Action
정보는 XML리소스 or 자바 코드
에서 직접 객체로 만듬
Duration은 에니메이션
지속 시간
37
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
Scale.xml
Scale2.xml
트윈 애니메이션을 위한 Action
정보는 XML리소스 or 자바 코드
에서 직접 객체로 만듬
pivotX/Y는 에니메이션이
실행되는 동안의 축(기준)
을 의미
38
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
Scale.xml
Scale2.xml
트윈 애니메이션을 위한 Action
정보는 XML리소스 or 자바 코드
에서 직접 객체로 만듬
From(to)X/Yscale는
시작과 끝의 크기
비율을 지정해줌
39
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
리소스에 정의한
40
2. 트윈 애니메이션
참조 프로젝트 : SampleTwinAnimation
다운로드 : easyspub.com
뷰의 애니메이션 시작
Q & A
41
Thank you!!
42

More Related Content

Viewers also liked

Java, android 스터티1
Java, android 스터티1Java, android 스터티1
Java, android 스터티1Heejun Kim
 
sqlserver7.0 데이타베이스
sqlserver7.0 데이타베이스sqlserver7.0 데이타베이스
sqlserver7.0 데이타베이스영빈 송
 
Java, android 스터티2
Java, android 스터티2Java, android 스터티2
Java, android 스터티2Heejun Kim
 
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념Changhwan Yi
 
16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석KISEC
 
Java for android
Java for androidJava for android
Java for android동욱 하
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정Kenu, GwangNam Heo
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문Taeho Kim
 
Java programming language
Java programming languageJava programming language
Java programming languageChiwon Song
 
디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론Baro Kim
 
Android 개론
Android 개론Android 개론
Android 개론운용 최
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는도형 임
 
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?FAST CAMPUS
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기Yong Joon Moon
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11hungrok
 
파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)민지 김
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1stEunGi Hong
 
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아![Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!Arawn Park
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 

Viewers also liked (20)

Java, android 스터티1
Java, android 스터티1Java, android 스터티1
Java, android 스터티1
 
sqlserver7.0 데이타베이스
sqlserver7.0 데이타베이스sqlserver7.0 데이타베이스
sqlserver7.0 데이타베이스
 
Java, android 스터티2
Java, android 스터티2Java, android 스터티2
Java, android 스터티2
 
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
 
16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석
 
Java for android
Java for androidJava for android
Java for android
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 
Java programming language
Java programming languageJava programming language
Java programming language
 
디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론
 
Android 개론
Android 개론Android 개론
Android 개론
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는
 
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?
[강의소개] 프로그래밍 입문자가 안드로이드와 잘 사귀려면?
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11
 
파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)
 
Java start01 in 2hours
Java start01 in 2hoursJava start01 in 2hours
Java start01 in 2hours
 
안드로이드 개발하기_1st
안드로이드 개발하기_1st안드로이드 개발하기_1st
안드로이드 개발하기_1st
 
[Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아![Spring Camp 2013] Java Configuration 없인 못살아!
[Spring Camp 2013] Java Configuration 없인 못살아!
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 

Similar to Java, android 스터티10

Java, android 스터티8
Java, android 스터티8Java, android 스터티8
Java, android 스터티8Heejun Kim
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7Heejun Kim
 
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&Csys4u
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1jangpd007
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기NAVER Engineering
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJSEunYoung Kim
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개 SuHyun Jeon
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4Usys4u
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4Daniel Lim
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기hajaekwon
 
Netty 세미나
Netty 세미나Netty 세미나
Netty 세미나Jang Hoon
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇Amazon Web Services Korea
 

Similar to Java, android 스터티10 (20)

Java, android 스터티8
Java, android 스터티8Java, android 스터티8
Java, android 스터티8
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7
 
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&C
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
Light Tutorial Django
Light Tutorial DjangoLight Tutorial Django
Light Tutorial Django
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
 
Node week1
Node week1Node week1
Node week1
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4U
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4
 
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
 
Netty 세미나
Netty 세미나Netty 세미나
Netty 세미나
 
8장 editor
8장 editor8장 editor
8장 editor
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
 

More from Heejun Kim

Java, android 스터티6
Java, android 스터티6Java, android 스터티6
Java, android 스터티6Heejun Kim
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5Heejun Kim
 
SSM 참고자료
SSM 참고자료SSM 참고자료
SSM 참고자료Heejun Kim
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4Heejun Kim
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4Heejun Kim
 
Java, android 스터티3
Java, android 스터티3Java, android 스터티3
Java, android 스터티3Heejun Kim
 

More from Heejun Kim (6)

Java, android 스터티6
Java, android 스터티6Java, android 스터티6
Java, android 스터티6
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5
 
SSM 참고자료
SSM 참고자료SSM 참고자료
SSM 참고자료
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4
 
Java, android 스터티3
Java, android 스터티3Java, android 스터티3
Java, android 스터티3
 

Java, android 스터티10

  • 2. 2 ㅁ 스레드(Thread)의 필요성 - 메인 액티비티는 하나의 프로세스로 처리 * 대기시간이 길어질 시 많은 시간이 필요 - 멀티스레디 방식으로 해결 가능, 메모리 리소스 공유 - 리소스를 공유하기 때문에 데드락(Deadlock)발생 가능 - 런타임 예외라서 찾기가 힘듬 - 안드로이드에선 자바의 표준 Thread지원 참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
  • 3. 3 실행화면 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com0. 지난주 복습
  • 4. 4 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com 버튼 터치시 스레드에서 받은 값을 출력 함 MainActivity의 소스 0. 지난주 복습
  • 5. 5 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com MainActivity의 소스 화면이 보이고 있을때 스레드를 실행 화면이 꺼져 있을때 스레드를 중지 0. 지난주 복습
  • 6. 6 ㅁ 프로세스가 생성되면 메인스레드는 메시지 큐를 실행, 메시지 큐를 이용해 메인 스레드가 처리할 메시지를 전달 하는 것이 핸들러 클래스 스레드와 스레드 핸들러 플로우 차트 참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
  • 7. 7 참조 프로젝트 : SampleThread 다운로드 : easyspub.com 실행화면 0. 지난주 복습
  • 8. 8 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 스레드 핸들러 변수 선언과 새로운 핸들러 객체 생성 0. 지난주 복습
  • 9. 9 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 프로그래스 바(가로로 긴 막대) 0으로 초기화 액티비티 시작 시 스레드 생성 후 실행 1초마다 핸들러로 메시지 전송 스레드에서 작업 상태나 결과를 핸들러의 sendMessage()로 전송 0. 지난주 복습
  • 10. 10 참조 프로젝트 : SampleThread 다운로드 : easyspub.com handleMessage()메소드 내에서 전달된 정보를 이용해 UI 업데이트 MainActivity의 소스 새로운 Handler클래스 정의, 프로그래스 바를 5씩 증가시킴 0. 지난주 복습
  • 11. 11 참조 프로젝트 : SampleThread 다운로드 : easyspub.com Activity_main.xml의 소스 진행상태를 표기하기 위한 프로그래스 바를 정의 0. 지난주 복습
  • 12. 12 MainActivity의 소스 ㅁ 앞에 그림은 서브스레드와 메시지 큐와의 메시지 전달, 하지만 서브스레드가 메인스 레드에게 메시지를 전달해야 되는 경우도 생기며, 이를 순 차적으로 처리하기 위해 메시 지 큐가 사용됨, 루퍼가 계속 돌며 메시지 큐에 있는 명령 들을 한 개 씩 처리 참조 교재 : Do it! 안드로이드 앱 프로그래밍0. 지난주 복습
  • 13. 13 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 실행화면 0. 지난주 복습
  • 14. 14 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 새로운 스레드 생성, 스레드를 생성하고 스레드를 위한 핸들러 를 만든다. MainActivity의 소스 새로만든 스레드에서 루퍼(Lopper)를 실행 0. 지난주 복습
  • 15. 15 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 텍스트 뷰와 텍스를 수정할 수 있는 에디트 텍스트를 위한 레퍼런스 변수 선언 메인스레드를 위한 핸들러 서브스레드를 위한 핸들러 생성된 객체를 레퍼런스 변수 참조(이름)를 이용해 activity_main.xml에 이미 만들어진 텍스트 뷰와 에디트 텍스트의 속성을 알 수 있음 버튼이 눌릴 경우 스레드로 메시지를 보내고 해당 스레드를 실행 텍스트 뷰와 텍스를 수정할 수 있는 에디트 텍스트를 위한 객체 생성 0. 지난주 복습
  • 16. 16 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 새로 만든 스레드 핸들러, 메인 스레드의 핸들러로 메시시 전송 새로 만든 스레드 핸들러로 받은 메시지를 메인 스레드 핸들러에서 에디트텍스트에 메시로 표시 0. 지난주 복습
  • 17. 17 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com1. 스레드와 애니메이션 실행화면
  • 18. 18 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com1. 스레드와 애니메이션 실행화면
  • 19. 19 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com1. 스레드와 애니메이션 실행화면
  • 20. 20 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com1. 스레드와 애니메이션 실행화면
  • 21. 21 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com1. 스레드와 애니메이션 Activity_main.xml 애니메이션을 보여줄 뷰 만듬
  • 22. 22 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com 콜백 인터페이스 설정 * 콜백이란? = 캐치볼, 탁구, 전화 상대방을 호출하고 일정시간(조건)후에 다시 호출 받음 ThreadAnimationView.java
  • 23. 23 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com 이미지 스레드 객체 생성 ThreadAnimationView.java
  • 24. 24 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 서피스 뷰를 위한 홀더 선언
  • 25. 25 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 서피스 뷰를 위한 홀더 선언 * 서피스 뷰란? 3D지원을 위해 OpenGL ES 라이브러리 포함 2D그래픽도 지원하며 빠른성능의 2D구현 가능
  • 26. 26 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 애니메이션을 보여줄 크기에 대한 변수와 어떤 그림을 보여줄지에 대한 변수 선언
  • 27. 27 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 이미지를 저장할 배열, 각각 안드로이드 이모티콘과 사각형(배경)을 그림
  • 28. 28 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 스레드 생성자
  • 29. 29 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 각각의 이모티콘과 배경에 어떤 이미지가 들어갈지 설정
  • 30. 30 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 스레드 실행
  • 31. 31 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java 스레드간 동기화를 위해 Synchronized를 사용
  • 32. 32 1. 스레드와 애니메이션 참조 프로젝트 : SampleThreadAnimation 다운로드 : easyspub.com ThreadAnimationView.java Sleep(ms)를 이용해 해당 시간 만큼의 간격을 두고 스레드 실행 Dodraw메소드를 사용해 화면에 표시
  • 33. 33 2. 트윈 애니메이션 참조 교재 : Do it! 안드로이드 앱 프로그래밍 - 보여줄 대상을 적절히 연산 후 그 결과를 연속적으로 디스플레이 ->한 개의 대상만 있으면 충분 - 대상과 효과로 구분 - 대상 : 뷰, 그리기 객체 * 뷰 : 위젯과 레이아웃 모두 포함, 그리기 객체 : drawable - 효과 : 위치 이동, 확대/축소, 회전, 투명도 * 위치 이동 : translate, 확대/축소 : Scale, 회전 : Rotate, 투명도 : Alpha
  • 34. 34 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com 실행화면
  • 35. 35 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com Scale.xml Scale2.xml 트윈 애니메이션을 위한 Action 정보는 XML리소스 or 자바 코드 에서 직접 객체로 만듬
  • 36. 36 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com Scale.xml Scale2.xml 트윈 애니메이션을 위한 Action 정보는 XML리소스 or 자바 코드 에서 직접 객체로 만듬 Duration은 에니메이션 지속 시간
  • 37. 37 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com Scale.xml Scale2.xml 트윈 애니메이션을 위한 Action 정보는 XML리소스 or 자바 코드 에서 직접 객체로 만듬 pivotX/Y는 에니메이션이 실행되는 동안의 축(기준) 을 의미
  • 38. 38 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com Scale.xml Scale2.xml 트윈 애니메이션을 위한 Action 정보는 XML리소스 or 자바 코드 에서 직접 객체로 만듬 From(to)X/Yscale는 시작과 끝의 크기 비율을 지정해줌
  • 39. 39 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com 리소스에 정의한
  • 40. 40 2. 트윈 애니메이션 참조 프로젝트 : SampleTwinAnimation 다운로드 : easyspub.com 뷰의 애니메이션 시작