Similar documents
UI피피티

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

화해와나눔-여름호(본문)수정

화해와나눔-가을호(본문)

THE TITLE

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

Áö½Ä°æ¿µ-2

TF_Dell x86_1..

마켓온_제품소개서_ key

Contents Lotte Focus Lotte Life

서현수

untitled

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

untitled

BC6HP Korean.ai

Microsoft PowerPoint App Fundamentals[Part1].pptx

ȸ¿ø»ç¸®½ºÆ®

ICT03_UX Guide DIP 1605

wtu05_ÃÖÁ¾

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

<C3D6C0E7C3B528BAB8B5B5C0DAB7E1292D322E687770>

B _00_Ko_p1-p51.indd

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

424

420

392

PowerPoint 프레젠테이션

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

I What is Syrup Store? 1. Syrup Store 2. Syrup Store Component 3.

Å׸¶±âȹ3

Vertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket

130726_트렌드씨_6월_rgb_s

PowerPoint 프레젠테이션

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

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

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

장기계획-내지4차

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

응답하라, 메가스터디 재수를 말한다. Ⅰ. 재수 大 해부 예전에 재수생이라고 하면 성적이 좋지 않아 대학입시에 실패한 학생 이라는 인식이 지배 적이었다. 하지만 최근에는 재수를 목표를 향한 재도전 이라고 긍정적으로 평가하는 경 향이 뚜렷해졌다. 때문에 대학

PowerPoint 프레젠테이션

MBCÆйи®68È£5*275š

UI VoC Process 안


특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

스마트월드캠퍼스 교육교제

<B9CEC1D6C1A4C3A5BFACB1B8BFF82DBBE7B6F7B0FAC1A4C3A5BABDC8A328C6EDC1FD292E687770>

오버라이딩 (Overriding)

0101표지.indd

Microsoft PowerPoint _사용자매뉴얼.ppt


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

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

슬라이드 1

Contents Lotte Focus 1 Lotte Family Magazine Lotte Life

11강-힙정렬.ppt

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

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

KBI......_ hwp

차 례 Ⅰ. 추진배경 1 Ⅱ. 2010년도 성과분석 및 내실화 방향 2 Ⅲ. 정책목표 추진과제 5 Ⅳ. 정책과제별 추진계획 6 1. 교과활동에서의 체육교육 강화 6 2. 학교스포츠클럽 육성 학생건강체력평가제(PAPS) 내실 운영 체육활동 참여 동기

#KM-1751/1791..

2힉년미술

C# Programming Guide - Types

BC6DX Korean.ai

2 종 합 2015년 8월 11일 화요일 朴대통령 룏中 전승절룑 행사 참석 검토 박기춘 의원 체포동의안, 국회 접수 오늘 본회의 보고 예정 청와대는 내달 3일 베이징에서 열리 靑 룕제반사항 고려, 신중 결정룖 는 중국의 항일승전 70주년(전승절) 기 념행사에 박근혜 대

untitled

iOS5_1±³

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

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

BC6DX-II Korean.ai

<C0E5B7C1BBF328BEEEB8B0C0CCB5E9C0C729202D20C3D6C1BE2E687770>

메뉴얼41페이지-2

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


1부

Chapter 1

F120L(JB)_UG_V1.0_ indd

<4D F736F F F696E74202D205B444D435D36BFF95FB5F0C1F6C5D0B9CCB5F0BEEE20B5BFC7E220BAB8B0EDBCAD5F C5EBC7D5BABB29>

< B5BFBEC6BDC3BEC6BBE E687770>

B2B 매뉴얼

정보

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

#KM-1750/1790..

November Vol.90 39

<C0CFBABBB0FCB1A4BCD2BAF1C0DAC1B6BBE7BAB8B0EDBCAD2E687770>

Chapter ...

Orcad Capture 9.x

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

신영_플랜업0904내지_출력

< C0CEC5CDB3DDB1A4B0EDBBEABEF7C0C7C7A5C1F62D322E6A7067>

슬라이드 1

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

BSC Discussion 1

?

Facebook API

롯데 채팅 롯데제과 홍보담당 노혜빈 사원님, 롯데하이마트 사업개발팀 유철기 대리님, 롯데하이마트 마케팅팀 정준모 사원님이 대화에 참여하셨습니다 롯데제과 노혜빈 사원 안녕하세요. 롯데하이마트를 예전에는 길에 있는 로드숍으로만 마 주했던 것 같은데 요즘은 롯데마트 안에도


Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

Microsoft Word - 엔터바이윅_

Transcription:

WindowManager 100% 활용하기 안드로이드만의독특한서비스만들기 CTO 곽근봉 (kwak.keunbong@nbt.com)

1 인개발자 오늘의이야기 100 명조직

그래서! 오늘의주제는 기술과제품 이야기 feat. WindowManager

제품개발방법 Top-Down Approach 시장정의문제정의솔루션정의요구사항도출제품기획제품개발제품출시 vs 새로운기술의발견기술의습득만들어보고싶은거만들기그제품으로풀수있는문제를정의문제를더잘풀기위한개선패키징제품출시 Bottom-Up Approach

제품개발방법 Top Down Approach Bottom Up Approach 효율적이고효과적이지만 뻔한제품이나오기쉽다. vs 독특한서비스를개발할수있지만, 시장의선택을받지못할수있다.

좋은제품을만들기위해서는 두가지의방법이모두적용되어야한다 비지니스하는사람들이 기술의트렌드를기회로인식할수있어야하고, 개발하는사람들이 현재시장의문제를파악하고있어야한다.

Top-Down 식제품개발이주도적인상황에서 어떻게하면 Bottom-Up 식제품개발과조화를이룰수있을지 개발자의관점에서 좋은제품을만들기위한방법을알아보자

WindowManager

Window 안드로이드에서 사용자눈에보이는모든것들은 Window 를가진다 즉, 눈에보이는것을담는가장기본적인공간 Window 에 레이아웃과뷰들을올려서사용하는것

Window 예시 ) 액티비티를만들면 자동으로윈도우를생성해서붙여준다. /core/java/android/app/activity.java final void attach(context context, ActivityThread athread, ){... mwindow = PolicyManager.makeNewWindow(this); mwindow.setcallback(this); mwindow.setwindowmanager(null, mtoken, mcomponent.flattentostring(), (info.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED)!= 0); } mwindowmanager = mwindow.getwindowmanager();...

WindowManager Window는그자체로사용하지않고, WindowManag er를통해서사용. WindowManager는 ViewManager를상속받았기때문에, 바로 view를추가 / 수정 / 삭제할수있음. View.LayoutParams 를상속받은 WindowManager.LayoutParams 를 통해독특한윈도우를만들수있다.

WindowManager 활용법 홈버튼 반응속도 Floating Block 향상 홈버튼 Application Delay 회피 Activity 의제약조건 ( 라이프사이클, 반응속도, Home 버튼 Delay) 를 벗어나는방법으로서 WindowManager 가유용하다.

활용법 1 Floating Application Floating Application

활용법 1 Floating Application Floating Application 피그인

활용법 1 Floating Application Floating Application 페이스북 메신저

활용법 1 Floating Application Floating Application 네이버

활용법 1 Floating Application Floating Activity Context 와 Window 를분리 Application WindowManager 는 Activity Context, Service Context, Application Context 모두에서사용가능 windowmanager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); windowmanager.addview(view, layoutparam);

활용법 2 Home BTN Block 홈버튼 Block TouchLock

활용법 2 Home BTN Block 홈버튼 Type : 윈도우의노출, 터치, 포커스우선순위를결정 Block Type 마다특정 Context 의의존성 WindowManager.LayoutParams layoutparams = new WindowManager.LayoutParams(); layoutparams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR; layoutparams.format = PixelFormat.TRANSPARENT;

활용법 3 반응속도향상 반응속도비교

활용법 3 반응속도향상 Activity 와 Window 분리 왜빠른가? Activity Life Cycle 을따르지않음 * Fluctutation 이없음. View 재사용가능 어떻게? Service Context 로 WindowManager 를가져와서구현

활용법 4 홈 BTN delay 회피 홈버튼후런처를제외한 다른방식으로앱을실행하려는 경우 5 초 Delay 를갖는현상

WindowManager 주요 Type 소개 TYPE_APPLICATION 가장기본이되는 type. Activity를생성하면이타입으로윈도우가생성된다. Activity Context로만생성이가능하다. Activity Context로생성된 window는 Service Conxtext로생성된 window보다우선순위가낮다. ( 잠금시는예외 TYPE_PHONE Service Context 로만들수있는윈도우 Type 중가장우선순위가낮다. 홈버튼을막지않고통과시킨다. TYPE_SYSTEM_ERROR 가장우선순위가높은 Type 중하나. 거의모든 View를덮을수있다. Status Bar, 네비게이션바등을모두막을수있기때문에주의해서써야한다. 홈버튼을막는다.

WindowManager 주요 Flag 소개 FLAG_DISMISS_KEYGUARD window 가 attach 되면잠금해제를하는 flag. Activity Context 를가진윈도우매니저에서만동작 FLAG_LAYOUT_NO_LIMITS window 가화면을벗어나서도배치될수있다. 숨기거나일부만보이는윈도우를만들때사용 FLAG_LAYOUT_IN_SCREEN window 가보여지는화면의전체영역을가진다. status bar 혹은 navigation bar 영역까지도배치될수있다. FLAG_NOT_FOCUSABLE 해당윈도우가 focus 를받지않게된다. 즉 home button 이나 back button 처럼 focus 를받아야동작하는것들을다음우선순위 window 에넘긴다. FLAG_NOT_TOUCH_MODAL 해당윈도우가터치를받지않게된다. 터치가오면다음우선순위 window 에넘긴다.

WindowManager 사용시주의사항 * 안드로이드 6.0 이상에서는명시적으로동의를받아야하는퍼미션이다. (TYPE_PHONE 이상의경우 * 외부 APK 를설치할경우 Floating App 이있으면설치가제한된다. * 6.0 이상에서다른앱들의명시적동의를받아야하는경우에는 Floating App 이이슈가된다. * Context 별사용법을정확히알아야한다. * 잠금해제는 Activity Context 만가능 * 유튜브 SDK 사용은 Activity Context 만가능등 * 디바이스별파편화가일부있다. * 메모리관리를잘해야한다.

요약 WindowManager 를사용하면, Activity 의제약사항들 ( 라이프사이클, 반응속도, 홈버튼처리 ) 을뛰어넘어서개발할수

진짜요약 Omni Swipe, TouchLock 과같은제품들이 시장의정의, 문제의정의로부터시작했을까? 오히려 WindowManager 라는기술의발견 Floating App, Home Block 이라는기술의습득에서부터시작하지않았을까? 마지막예시하나더

어떤팀이좋은팀인가? - InfoQ 1. 신뢰수준 2. 업무자유도 3. 협업 4. 솔직한태도 5. 고객피드백 6. 수고에대한인정 7. 작업환경... 20. 업무공간

어떤팀이좋은팀인가? - Tech Planet 2016 1. 신뢰수준 2. 팀원간의피드백 3. 수고에대한인정 4. 협업... 14. 끈끈한유대감 14. 성공에대한축하 14. 고객피드백 14. 정기적인회고..

엔지니어 제품을만들어주는사람이아닌 제품을만들어내는사람 단순히기술의발견에만머무르지말고보다적극적으로기술을습득하고문제를정의하고그것을창의적으로해결해야한다.

감사합니다. CTO 곽근봉 (kwak.keunbong@nbt.com)