Microsoft PowerPoint - Android_DDMS.pptx

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

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

( )부록

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

Secure Programming Lecture1 : Introduction

EndNote X2 초급 분당차병원도서실사서최근영 ( )

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

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

슬라이드 1

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

PowerPoint Presentation

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

tiawPlot ac 사용방법

슬라이드 1

Visual Studio online Limited preview 간략하게살펴보기

슬라이드 1

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

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

JAVA PROGRAMMING 실습 05. 객체의 활용

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

Microsoft Word - src.doc

슬라이드 1

PowerPoint Presentation

게임 기획서 표준양식 연구보고서

PowerPoint 프레젠테이션

01장

JVM 메모리구조

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

슬라이드 1

View Licenses and Services (customer)

JDK이클립스

Install stm32cubemx and st-link utility

슬라이드 1

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

RHEV 2.2 인증서 만료 확인 및 갱신

슬라이드 1

03장

1

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

문서의 제목 나눔고딕B, 54pt

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

THE TITLE

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

Microsoft PowerPoint - 14주차 강의자료

PowerPoint Presentation

오버라이딩 (Overriding)

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

PowerPoint Presentation

PowerPoint Template

Studuino소프트웨어 설치

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

윈도우시스템프로그래밍

F120L(JB)_UG_V1.0_ indd

chap 5: Trees

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

3D MAX + WEEK 9 Hansung Univ. Interior Design

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

ISP and CodeVisionAVR C Compiler.hwp

Office 365 사용자 가이드

슬라이드 1

IRISCard Anywhere 5

고객 카드

서비스 구성. 서비스 정의. 심플CRM 주요 기능 구성 0 0. 다운로드 및 설치. 기본 구성 6 6. 제공사양 0 심플CRM 표준형 6 심플CRM 녹취형 7 사용하기. 서비스 신청. 홈페이지 로그인 및 인증 안내 가입자 인증 비밀번호 재설정 비밀번호 찾기

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

rmi_박준용_final.PDF

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

Microsoft PowerPoint - Java7.pptx

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

슬라이드 1

Microsoft PowerPoint - 06-Chapter09-Event.ppt

Facebook API

Spring Data JPA Many To Many 양방향 관계 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

윈도우시스템프로그래밍

제11장 프로세스와 쓰레드

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

쉽게 풀어쓴 C 프로그래밍

(SW3704) Gingerbread Source Build & Working Guide

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

메뉴얼41페이지-2

LG-LU6200_ICS_UG_V1.0_ indd

gcloud storage 사용자가이드 1 / 17

[Brochure] KOR_TunA

B _00_Ko_p1-p51.indd

행자부 G4C

PowerPoint Presentation

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

어댑터뷰

PowerPoint Presentation

MVVM 패턴의 이해

Spring Boot

JUNIT 실습및발표

Microsoft PowerPoint - chap01-C언어개요.pptx

Transcription:

Suan Lee http://www.webdizen.net 1

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 2

DDMS(DalvikDalvik Debug Monitor Service) 란? 안드로이드 SDK가제공하는디버깅도구 에뮬레이터나실제기기의내부에접근가능 파일및프로세스관리가능 통합디버깅환경 작업관리자, 파일탐색기, 에뮬레이터콘솔, 로깅콘솔 Using the Dalvik Debug Monitor http://developer.android.com/guide/developing/tools/ddms.html 3

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 4

DDMS 실행방법 1 DDMS Perspective 실행 [Window] [Open Perspective] [Other...] DDMS Perspective 5

DDMS 실행방법 2 Eclipse DDMS Perspective 6

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 Device Emulator Control Threads Heap Allocation Tracker File Explorer LogCat 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 7

Device 1 DDMS로추적중인장치와장치내에서동작하고있는프로세스의목록을나타냄 8

Device 2 Device 세부기능 Debug Process 디버그하려는프로세스를선택하고버튼을클릭하면해당프로세스디버깅 작동하는프로세스가이클립스프로젝트안에열려있야만소스디버깅가능 보통은위의버튼을사용하기보다이클립스의디버그기능을이용소스디버깅을수행 Update Heap 해당프로세스의 Heap Memory 정보를확인할수있도록설정 프로세스목록에서위의버튼을클릭하면 Heap 탭에 Heap Memory 사용에대한통계수치가나타남 Cause CG 버튼을통한가비지컬렉션수행으로전후의메모리누수여부에대한파악가능 Dump HPROF file Heap Dump 정보파일을추출 SDK의 tools아래에 sdkhprof-conv.exe를통해표준 HPROF 파일로변환한뒤에, jhat이나 Eclipse Memory Analyzer Tool(MAT) 등의힘덥프분석툴로상세한메모리상태를점검가능 Cause GC 해당프로세스에게가비지콜랙션요청 9

Device 3 Device 세부기능 Update Threads 프로세스내의현재스래드활동정보를갱신하여보여줌 현재프로세스가사용하고있는스레드정보를 Threads 탭에서확인가능 Start Method Profiling 프로세스의특정시간동안에활동한메소드점유정보를기록 / 분석 실행중인프로세스의일정시간동안사용한메소드의점유정보리포팅 Stop Process 종료하고자하는프로세스를선택하고버튼을클릭하면선택된프로세스강제종료 단말장치에프로세스의문제로실행중인프로세스의종료가어려울경우유용하게사용 Screen Capture 선택된장치의현재화면을캡쳐 10

Emulator Control 1 에뮬레이터에통화 / 문자 / 위치정보등의조작을가상처리 전화걸기 문자전송 위치설정 KML GPX 11

Emulator Control 2 전화걸기 프로그램수행중에전화가걸려온상황연출가능 Incoming number에전화번호 ( 숫자,#,-) 를입력 Voice 선택후 [Call] 버튼을누르면에뮬레이터에서입력한전화번호로부터전화가걸려온상태가되어전환됨 전화를받음 Emulator Control 의 [Hang Up] 을클릭하면전화를끊은상태로전환됨 12

Emulator Control 3 문자전송 문자메세지를받은상황을연출가능 Incoming number에전화번호 ( 숫자,#,-) 를입력 SMS 를선택하고 Message 에문자메세지를입력 [Send] 버튼을클릭하면메율레이터로문자메세지가전송 13

Emulator Control 4 위치설정 에뮬레이터를지구상의특정위치로지정하는기능으로위치기반서비스등을테스트할때사용가능 가장간단한방법은 Longitude 와 Latitude 의값을입력후 [Send] 버튼을클릭하여현재위치를가상으로전송 Google Map 등의위치기반프로그램에서확인하면입력한가상의위치로표시가됨 14

Emulator Control 5 KML 구글맵의내지도에접속하여여러지점의위치를저장한후링크기능으로 KML 파일다운가능 그파일을 [KML] 탭에서로딩하면에뮬레이터에서사용할위치리스트를만들어주는이이리스트에항목을선택하여전송하거나시간에따라자동으로위치가변하게지정가능 공식사이트 : http://code.google.com/intl/ko- /i tl/k KR/apis/kml/documentation/index.html 포맷규격문서: http://code.google.com/intl/ko- g KR/apis/kml/documentation/whatiskml.html 번역포맷규격문서 : http://heomin61.googlepages.com/whatiskml 15

Emulator Control 6 GPX KML과비슷난용도로이동한위치의정보를저장하는범용데이터포맷 인터넷검색을통하여샘플 GPX 파일과파일의구조검색가능 공식사이트 : http://www.topografix.com/gpx.asp 포맷규격문서 : http://www.topografix.com/gpx/1/1/ 16

Threads 해당프로세스의 Thread 목록과상태확인가능 17

Heap 1 장치의메모리소비상태를나타냄 18

Heap 2 Device탭에서 Update Heap을설정한프로세스의 Heap탭을통해서해당프로세스의메모리사용통계치확인가능 좀더자세한메모리정보는 Allocation Tracker탭을분석하거나 HPROF 덤프파일확인가능 Heap탭의 [Cause GC] 버튼을클릭하면해당프로세스에게가비지컬랙션을요청하게되는데, 이때메모리가해제되거나증가되는상황을통해메모리누수시점을추측가능 특정객체나배열의메모리할당상태는확인불가 19

Allocation Tracker 1 Allocation Tracker - 메모리의상세정보를표시 20

Allocation Tracker 2 Update Heap을통한방법보다더욱상세한메모리할당상태확인가능 [Start Tracking] 버튼을누르면 [Get Allocations] 버튼이활성화됨 [Get Allocations] 버튼을사용하여원하는시점에메모리할당정보를얻을수있음 작업이끝나면 [Stop Tracking] 버튼으로종료 ( 프로세스의성능이떨어지지않도록 ) 21

File Explorer 폰이나에뮬레이터의파일을 PC에저장하거나 (Pull), PC의파일을단말기로전송 (Push) 할수있고단말기의파일구조확인가능 Pull file from the device 장치 컴퓨터 Push a file onto the device 컴퓨터 장치 22

LogCat 프로그램의디버깅용로그정보를출력 verbose / debug / info / warm / error Log.v() / Log.d() / Log.i() / Log.w() / Log.e() 명령으로출력된내용을구분하여조회 Log Filter 를추가 / 수정 / 삭제하여필터를추가 화면에보이는로그를비움 23

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 디버거붙이기 스레드활동살펴보기 쓰레기수거실행 힙활동살펴보기 응용프로그램중지하기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 24

디버거붙이기 1. 원하는응용프로그램이에뮬레이터나기기에서실행중인지확인하고, 아니라면실행 2. DDMS Perspective의왼쪽목록에서해당응용프로그램의패키지이름을찾아선택 3. 목록바로위의도구모음에서녹색벌레아이콘클릭으로디버깅시작 4. Debug Perspective 에서적절히디버깅진행 25

스레드활동살펴보기 1. 원하는응용프로그램이에뮬레이터나기기에서실행중인지확인하고, 아니라면실행 2. DDMS Perspective의왼쪽목록에서해당응용프로그램의패키지이름을찾아선택 3. 목록바로위의도구모음에서검은화살표가세개있는버튼을클릭하면오른쪽창의 Threads 탭에스레드정보가표시 ( 기본적으로매 4초마다갱신 ) 4. Threads 탭에서특정스레드를선택하고 Refresh 버튼을클릭하면해당스레드에쓰이고있는클래스들이아래쪽창에나타남. 26

쓰레기수거실행 1. 원하는응용프로그램이에뮬레이터나기기에서실행중인지확인하고, 아니라면실행 2. DDMS Perspective의왼쪽목록에서해당응용프로그램의패키지이름을찾아선택 3. 목록바로위의도구모음에있는 DropDown 메뉴를열고 Cause GC 를선택 27

힙활동살펴보기 1. 원하는응용프로그램이에뮬레이터나기기에서실행중인지확인하고, 아니라면실행 2. DDMS Perspective의왼쪽목록에서해당응용프로그램의패키지이름을찾아선택 3. 목록바로위의도구모음에서녹색원기둥아이콘을클릭하면오른쪽창의 Heap 탭에힙통계수치들이나타남 ;GC 가수행될때마다갱신 ; Heap 탭의 Cause GC 버튼을이용해서강제쓰레기수거가능 4. Debug Perspective 에서적절히디버깅진행 28

응용프로그램중지하기 1. 원하는응용프로그램이에뮬레이터나기기에서실행중인지확인하고, 아니라면실행 2. DDMS Perspective의왼쪽목록에서해당응용프로그램의패키지이름을찾아선택 3. 목록바로위의도구모음에서빨간중지표지판아이콘을클릭하면해당프로세스중지 29

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 에뮬레이터나기기에서호스트로파일복사 호스트에서에뮬레이터나기기로파일복사 에뮬레이터나기기의파일삭제 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 30

파일탐색기다루기 안드로이드파일시스템의주요디렉토리들 디렉토리 /data/data/< 패키지이름 >/ /data/data/< 패키지이름 >/shared_prefs/ /data/data/< 패키지이름 >/files/ /data/data/< 패키지이름 >/cache/ /data/data/< 패키지이름 >/databases/ /sdcard/download/ /data/app/ 용도 안드로이드최상위디렉토리예 : /data/data/com.androidbook.pettracker/ androidbook 응용프로그램공유선호설정디렉토리 응용프로그램파일디렉토리 응용프로그램캐시디렉토리 응용프로그램데이터베이스디렉토리예 : /data/data/com.androidbook.pettracker/databases/test.db 브라우저로내려받은이미지들이저장되는디렉토리 서드파티안드로이드응용프로그램 APK 파일들이저장되는디렉토리 31

파일탐색기다루기 1. DDMS의왼쪽창목록에서탐색하고자하는에뮬레이터나기기선택 2. 오른쪽창에서 File Explorer 탭선택 3. File Explorer 탭에표시된디렉토리계통구조에서특정디렉토리나파일을살펴봄 32

에뮬레이터나기기에서호스트로파일복사 1. DDMS의파일탐색기에서복사하고자하는파일또는디렉토리선택 2. 파일탐색기오른쪽상단도구모음에서디스켓모양의아이콘클릭 ; 또는그옆의 DropDown 메뉴에서 Pull File 선택 3. 대화상자에서파일이나디렉토리를저장할디렉토리를선택하고적절한확인버튼클릭 33

호스트에서에뮬레이터나기기로파일복사 1. DDMS의파일탐색기에서복사하고자하는파일또는디렉토리선택 2. 파일탐색기오른쪽상단도구모음에서휴대전화모양의아이콘클릭 ; 또는그옆의 DropDown 메뉴에서 Push File 선택 3. 대화상자에서에뮬레이터나기기로복사할파일을선택하고적절한확인버튼클릭 34

에뮬레이터나기기의파일삭제 1. DDMS 의파일탐색기에서삭제하고자하는파일선택 2. 파일탐색기오른쪽상단도구모음에서빨간빼기버튼을클릭하면파일이삭제 35

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 전화가걸려오는상황연출 SMS 메세지가도착한상황연출 GPS 좌표보내기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 36

전화가걸려오는상황연출 1. DDMS 의 Devices 탭에서상호작용할에뮬레이터선택 2. Emulator Control 탭선택 3. Telephony Actions의 Incoming number 필드에원하는전화번호입력 ; 숫자와 +, # 만입력가능 4. Voice 옵션선택 5. Call 버튼클릭 6. 에뮬레이터에벨소리가나면전화를받음 7. 에뮬레이터에서전화를끊거나 DDMS 쪽에서 Hang Up 버튼으로끊음 37

SMS 메세지가도착한상황연출 1. DDMS 의 Devices 탭에서상호작용할에뮬레이터선택 2. Emulator Control 탭선택 3. Telephony Actions의 Incoming number 필드에원하는전화번호입력 ; 숫자와 +, # 만입력가능 4. SMS 옵션선택 5. Message 필드에문자메세지입력 6. Send 버튼클릭 7. 에뮬레이터에서상태표시줄에 SMS 메시지알림아이콘뜸 38

GPS 좌표보내기 에뮬레이터 1. 홈버튼을눌러서홈화면으로감 2. GPS 관련 Apps(Maps, Latitude, Places, Navigation) 하나를실행 3. Menu 버튼클릭 4. 가늠자모양의 내위치 (My Location) 항목선택 DDMS 1. 우측상단에서 DDMS Perspective 선택 2. 왼쪽중간에있는 Emulator Control 창을조금아래로스크롤해서 Location Control 찾음 3. 원하는경도와위도를각각 Longitude와 Latitude 직접입력 4. Send 버튼클릭 39

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 40

응용프로그램로깅기능다루기 1 로그기록코드 public static final String DEBUG_TAG = MyFirstAppLogging ; Log.i(DEBUG_TAG, This is info about MyFirstAndroidApp. ); 41

응용프로그램로깅기능다루기 2 예제코드 package example.userinput; import android.app.activity; import android.os.bundle; import android.util.log; import android.view.keyevent; import android.view.motionevent; public class userinput extends Activity { private static final String TAG = userinput ; @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @Override public boolean onkeydown(int keycode, KeyEvent event) { Log.i(TAG, onkeydown: + keycode + event.tostring()); tostring()); return super.onkeydown(keycode, event); } 42

응용프로그램로깅기능다루기 2 예제코드 @Override public boolean onkeyup(int keycode, KeyEvent event) { Log.i(TAG, onkeyup: + keycode + event.tostring()); return super.onkeyup(keycode, event); } @Override public boolean ontouchevent(motionevent event) { Log.i(TAG, ontouchevent: + event.tostring()); return super.ontouchevent(event); } } @Override public boolean ontrackballevent(motionevent event) { Log.i(TAG, ontrackballevent: + event.tostring()); return super.ontrackballevent(event); } 43

목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 44

에뮬레이터나기기의화면캡쳐 1. DDMS의 Devices 탭에서캡쳐할에뮬레이터선택 2. 원하는화면이기기나에뮬레이터에나타나게함 3. DDMS 상단도구모음에서총천연색정사각형사진모양의버튼클릭 4. 캡쳐창의 Save 버튼을클릭해서화면을이미지파일로저장 45