Soumettre la recherche
Mettre en ligne
GKAC 2015 Apr. - Android Looper
•
3 j'aime
•
2,192 vues
GDG Korea
Suivre
Speaker: 차영호 GDG Korea Android Conference 2015 Apr. Google Campus Seoul 2015. 4. 18
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 32
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GDG Korea
헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리
은숙 이
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
NAVER D2
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
knight1128
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
jongho jeong
Dependency Injection 소개
Dependency Injection 소개
beom kyun choi
Angular2 router&http
Angular2 router&http
Dong Jun Kwon
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JS
Circulus
Recommandé
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GDG Korea
헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리
은숙 이
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
NAVER D2
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
knight1128
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
jongho jeong
Dependency Injection 소개
Dependency Injection 소개
beom kyun choi
Angular2 router&http
Angular2 router&http
Dong Jun Kwon
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JS
Circulus
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
Taegon Kim
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
욱진 양
ECMAScript 6의 새로운 것들!
ECMAScript 6의 새로운 것들!
WooYoung Cho
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
MVP 패턴 소개
MVP 패턴 소개
beom kyun choi
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
jeong seok yang
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Young-Beom Rhee
Javascript
Javascript
Hong Hyo Sang
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
NAVER D2
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon
Jquery javascript_ed10
Jquery javascript_ed10
hungrok
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
Sungju Jin
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Young-Beom Rhee
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
hanbeom Park
Deview 2019 눈발자국
Deview 2019 눈발자국
hanbeom Park
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
beom kyun choi
모델링 연습 리뷰
모델링 연습 리뷰
beom kyun choi
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
양 한빛
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
juricde
Android Concurrency Presentation
Android Concurrency Presentation
Karol Depka Pradzinski
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GDG Korea
RetroFit by Square - GDG Dallas 06/09/16
RetroFit by Square - GDG Dallas 06/09/16
Stacy Devino
Contenu connexe
Tendances
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
Taegon Kim
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
욱진 양
ECMAScript 6의 새로운 것들!
ECMAScript 6의 새로운 것들!
WooYoung Cho
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
MVP 패턴 소개
MVP 패턴 소개
beom kyun choi
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
jeong seok yang
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Young-Beom Rhee
Javascript
Javascript
Hong Hyo Sang
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
NAVER D2
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon
Jquery javascript_ed10
Jquery javascript_ed10
hungrok
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
Sungju Jin
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Young-Beom Rhee
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
hanbeom Park
Deview 2019 눈발자국
Deview 2019 눈발자국
hanbeom Park
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
beom kyun choi
모델링 연습 리뷰
모델링 연습 리뷰
beom kyun choi
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
양 한빛
Tendances
(18)
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
ECMAScript 6의 새로운 것들!
ECMAScript 6의 새로운 것들!
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
MVP 패턴 소개
MVP 패턴 소개
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Javascript 실행 가능한 코드(Executable Code)와 실행 콘텍스트(Execution Context), Lexical En...
Javascript
Javascript
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Jquery javascript_ed10
Jquery javascript_ed10
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
Deview 2019 눈발자국
Deview 2019 눈발자국
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
모델링 연습 리뷰
모델링 연습 리뷰
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
track2 04. MS는 Rx를 왜 만들었을까? feat. RxJS/ 네이버, 김훈민
En vedette
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
juricde
Android Concurrency Presentation
Android Concurrency Presentation
Karol Depka Pradzinski
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GDG Korea
RetroFit by Square - GDG Dallas 06/09/16
RetroFit by Square - GDG Dallas 06/09/16
Stacy Devino
Intro to Android : Making your first App!
Intro to Android : Making your first App!
Stacy Devino
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!
Stacy Devino
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
GDG Korea
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
GDG Korea
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GDG Korea
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
GDG Korea
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GDG Korea
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GDG Korea
Best Practices in Media Playback
Best Practices in Media Playback
GDG Korea
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
GDG Korea
Reinfocement learning
Reinfocement learning
GDG Korea
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
GDG Korea
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
GDG Korea
Android - Preventing common memory leaks
Android - Preventing common memory leaks
Ali Muzaffar
Android : How Do I Code Thee?
Android : How Do I Code Thee?
Viswanath J
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009
Viswanath J
En vedette
(20)
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices
Android Concurrency Presentation
Android Concurrency Presentation
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
GKAC 2015 Apr. - Xamarin forms, mvvm and testing
RetroFit by Square - GDG Dallas 06/09/16
RetroFit by Square - GDG Dallas 06/09/16
Intro to Android : Making your first App!
Intro to Android : Making your first App!
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
Best Practices in Media Playback
Best Practices in Media Playback
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
Reinfocement learning
Reinfocement learning
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
Android - Preventing common memory leaks
Android - Preventing common memory leaks
Android : How Do I Code Thee?
Android : How Do I Code Thee?
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009
Similaire à GKAC 2015 Apr. - Android Looper
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Javajigi Jaesung
Modern android
Modern android
Leonardo YongUk Kim
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
현철 조
Spring Boot 2
Spring Boot 2
경륜 이
Eclipse RCP 1/2
Eclipse RCP 1/2
cho hyun jong
안드로이드 세미나
안드로이드 세미나
ang0123dev
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
Kwangsung Ha
Pinpoint spring_camp 2015
Pinpoint spring_camp 2015
Woonduk-Kang
Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2
성일 한
Effective unit testing ch3. 테스트더블
Effective unit testing ch3. 테스트더블
YongEun Choi
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park
TestExplorer 소개 - Android application GUI testing tool
TestExplorer 소개 - Android application GUI testing tool
hyunae lee
TestExplorer 소개 - Android application GUI testing tool
TestExplorer 소개 - Android application GUI testing tool
hyunae lee
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
redribbon1307
Gradle 한번 살펴보기
Gradle 한번 살펴보기
Junseo Youn
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례
Daehwan Lee
Java 강의자료 ed11
Java 강의자료 ed11
hungrok
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
Ryan Park
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
Ryan Park
Node.js intro
Node.js intro
Chul Ju Hong
Similaire à GKAC 2015 Apr. - Android Looper
(20)
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Modern android
Modern android
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
Spring Boot 2
Spring Boot 2
Eclipse RCP 1/2
Eclipse RCP 1/2
안드로이드 세미나
안드로이드 세미나
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
Pinpoint spring_camp 2015
Pinpoint spring_camp 2015
Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2
Effective unit testing ch3. 테스트더블
Effective unit testing ch3. 테스트더블
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
TestExplorer 소개 - Android application GUI testing tool
TestExplorer 소개 - Android application GUI testing tool
TestExplorer 소개 - Android application GUI testing tool
TestExplorer 소개 - Android application GUI testing tool
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
Gradle 한번 살펴보기
Gradle 한번 살펴보기
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례
Java 강의자료 ed11
Java 강의자료 ed11
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
Node.js intro
Node.js intro
Plus de GDG Korea
접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드
GDG Korea
Tensorflow 101
Tensorflow 101
GDG Korea
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
GDG Korea
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GDG Korea
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GDG Korea
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GDG Korea
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GDG Korea
Plus de GDG Korea
(7)
접근성(Accessibility)과 안드로이드
접근성(Accessibility)과 안드로이드
Tensorflow 101
Tensorflow 101
Building Extraordinary Apps with Firebase Analytics
Building Extraordinary Apps with Firebase Analytics
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 안드로이드 스튜디오로 생산성 올리기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - 그루비로 안드로이드 앱 개발하기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - The Beautiful Design Collection 살펴보기
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2014 Nov. - 안드로이드 5.0의 새로운 기능
GKAC 2015 Apr. - Android Looper
1.
Android Looper 차영호 @ganachoco
2.
발표자 소개
3.
Agenda ● Java VS
Android ● Where is main? ● Event Loop ● Create and Handle Event with Message ● Advanced Topic
4.
Android Looper ● Event
Loop for Android ● 공기 같은 존재 ○ 어디에나 있지만, 여간해선 사용할 일은 없다. ○ 사용할 일은 없지만, 모르면 가끔씩 해결이 곤란할 때 가 생긴다.
5.
Java vs Android
6.
Start Entry public class
Hello { public static void main(String[] s) { System.out.println("Hello, World"); } } public class HelloActivity extends Activity { @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.activity_hello); } }
7.
Start Entry C: >
java Hello Hello, World ????
8.
간단한 호출경로 확인
방법(Log)
9.
간단한 호출경로 확인
방법(Log)
10.
main() package android.app; public final
class ActivityThread { public static void main(String[] args) { // blahblah Looper.loop(); throw new RuntimeException("Main thread loop unexpectedly exited"); } }
11.
Event Loop while (true)
{ // do someting }
12.
Event Loop while (true)
{ msg = waitAndGetMessage(); handler = msg.getTarget(); handler.handleMessage(msg); }
13.
간단한 호출경로 확인
방법(Log)
14.
Message Queue Image Source:
MSDN
15.
Message Queue Image Source:
MSDN
16.
ANR이 반겨줍니다.
17.
Events ● Component Lifecycle
Event ○ Activity ○ Service ● Intent Handler ○ BroadcastReceiver.onReceive ● View layout & draw ● Input Event
18.
Event Loop ● android.os.Message ●
android.os.Handler ● android.os.Looper ○ android.os.HandlerThread
19.
Message @Override public void onClick(View
v) { setText("Text 1"); } private static final int MSG_HANDLE_CHANGE_TEXT = 1; public void setText(String text) { // Message msg = new Message(); // bad usage Message msg = mHandler.obtainMessage(MSG_HANDLE_CHANGE_TEXT, text); mHandler.sendMessage(msg); }
20.
Handler private mHandler =
new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_HANDLE_TEXT_CHANGED: mTextView.setText((String)(msg.obj)); break; default: break; } } }
21.
Call Flow Looper.loop onClick setText mHandler.sendMessage ... mHandler.handleMessage mTextView.setText 시 간
22.
직구를 배웠습니다
23.
변화구도 배워봅시다 Image Source:
https://mirror.enha.kr/wiki/야구의 구종
24.
Message Queue Image Source:
MSDN sendMessageAtFrontOfQueue()
25.
Message Queue Image Source:
MSDN removeMessages()
26.
Message Queue Image Source:
MSDN sendMessageDelayed() sendMessageAtTime()
27.
Requirement ● 안드로이드앱이 시작하고나서 1분
후에 팝업을 띄워주세요.
28.
Solution
29.
Advanced Topic ● Wakelock ●
AlarmManager
30.
Wakelock ● View.setKeepScreenOn() ● WakeLock ○
FULL_WAKE_LOCK ○ SCREEN_BRIGHT_WAKE_LOCK ○ SCREEN_DIM_WAKE_LOCK ○ PARTIAL_WAKE_LOCK
31.
AlarmManager ● ELAPSED_REALTIME ● ELAPSED_REALTIME_WAKEUP ●
RTC ● RTC_WAKEUP
32.
Q&A
Télécharger maintenant