170 likes | 418 Views
Contents. 학습목표. 지금까지 배운 내용을 총정리하며 개발 툴에 대한 고급 사용법을 익힌다. 학습내용. 개발툴. 7.2.1 기억력 게임 - 예제 ( 마지막 나온 도형 클릭하기 ). 규칙 화면을 벗어나서는 안된다 . 도형 좌상단 좌표는 항상 뷰의 영역 안쪽이지만 크기도 난수로 결정하므로 우하단이 뷰를 벗어 날 수 있다 . 이경우 좌표를 재선정해야 한다 . 기존 도형과 겹쳐서는 안된다 . 보기에 좋지 않고 사용자가 화면을 클릭할 때 어떤 도형을 클릭했는지 판별하기 애매한 문제가 있다.
E N D
Contents 학습목표 • 지금까지 배운 내용을 총정리하며 개발 툴에 대한 고급 사용법을 익힌다. 학습내용 개발툴
7.2.1 기억력 게임 - 예제(마지막 나온 도형 클릭하기) • 규칙 • 화면을 벗어나서는 안된다. 도형 좌상단 좌표는 항상 뷰의 영역 안쪽이지만 크기도 난수로 결정하므로 우하단이 뷰를 벗어 날 수 있다. 이경우 좌표를 재선정해야 한다. • 기존 도형과 겹쳐서는 안된다. 보기에 좋지 않고 사용자가 화면을 클릭할 때 어떤 도형을 클릭했는지 판별하기 애매한 문제가 있다.
7.2.2 디버깅 - 방법 • 디버깅 하기 위해서는 매니페스트에 다음 플래그를 지정한다. • <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> • 매니페스트에debuggable속성을 켜야 사용할 수 있다. • 왼쪽 거터 영역을 더블클릭하거나Ctrl + Shift + B를 누르면 중단점이 설정되며, 다시한번 설정하면 중단점이 토글된다. • 중단점을 설정하고 F11(Run/Debug)을 눌러 디버깅을 시작한다. • 디버깅을 위해 Debug퍼스펙티브로 전환하겠다는 것을 알리는 메시지(퍼스펙티브: 뷰의 집합)
7.2.2 디버깅 - 방법 • Debug 퍼스펙티브로 전환 메시지에서 [Yes]를 클릭하면 개발에 필요한 뷰에서 디버깅에 필요한 뷰들의 집합으로 재배치된다.
7.2.2 디버깅 - 방법 • Debug 단축키 모음 • F6키를 눌러 indShapeIdx메서드 호출문까지 실행 후 F5를 눌러 메서드 안쪽까지 추적해 들어가보면 다음 그림과 같다.
7.2.3 DDMS DDMS • 안드로이드 장치나 애뮬레이터의 내부작동 및 상태를 모니터링 • 에뮬레이터에서 통화/SMS/위치정보 등을 가상으로 설정하여 개발 시에 특정한 상황을 설정할수 있는 장치 디버깅 툴
7.2.3 DDMS • Debug Proccess 버튼 • 디버그 하려는 프로세스를 선태갛고 버튼을 클릭하면 해당 프로세스를 디버깅 DDMS • Update Heap 버튼 • 해당 프로세스의 Heap Memory 정보를 확인할 수 있도록 설정 • 동적 메모리 할당을 의미 • 특정 프로세스 목록에서 위의 버튼을 클릭하면 Heap탭에 힙 메모리 사용에 대한 통계수치봄 • Dump HPROF file 버튼 • 힙 덤프 정보 파일을 추출 • sdk의 tools 아래에 sdkhprof-conv.exe를 통해 표준 HPROF파일로 변환뒤에, jhat이나 eclipse Memory Anallzer Too(MAT)등의 힙 덤프 분석툴로 상세한 메모리 상태를 • Cause GC 버튼 • 해당프로세스에게 가비지 콜랙션을 요청하고, 가비지 콜랙션 되지 않는 메모리를 개략적으로 알 수 있음 • Update Threads 버튼 • 프로세스 내의 현재 스래드 활동정보를 갱신하여 보여줌 • 프로세스를 선택하고 버튼을 클릭하면 현재 프로세스가 사용하고 있는 스레드 정보를 Threads탭에서 확인 • Start Method Profiling 버튼 • 프로세스의 특정 시간 동안에 활동한 메소드 점유정보를 기록/분석 • 녹음기로 음성을 녹음하듯이 실행중인 프로세스의 리정 시간 동안 사용한 메소드의 점유 정보를 reporting • Stop Process 버튼 • 종료하고자 하는 프로세스를 선택하고 버튼을 클릭하면 선택된 프로세스를 강제로 종료할 수 있음 • Screen Capture • 선택된 장치의 현재화면을 캡쳐 • 매뉴얼 작업이나 프로그램 스크린샷 할 때 사용
7.2.4 Logcat LogCat이란? • 안드로이드의 로그를 확인하는 기능으로, 안드로이드 단말의 로그는 Log.v(), Log.d(), Log.i(), Log.w(), Log.e()로 출력되고, 이를 통해 에러가 발생한 위치의 로그를 찾아 오류를 수정할 수 있음
7.2.4 Logcat • 로그를 출력할 때는 다음과 같은 메서드를사용한다. • static intLog.d (String tag, String msg [, Throwabletr]) • static intLog.e(String tag, String msg [, Throwabletr]) • static intLog.w(String tag, String msg [, Throwabletr]) • static intLog.i(String tag, String msg [, Throwabletr]) • static intLog.v(String tag, String msg [, Throwabletr])
7.2.5 adb adb • adb(Android Debug Bridge) : 명령 행에서 장비의 상태를 관리하는 툴이다. • adb기능이대부분이 DDMS에서도 사용이 가능하므로 자주 사용하지 않는다. • adb는 다음 3가지 요소가 협력적으로 동작하여 개발 컴퓨터와 장비간 통신 수행한다. • 클라이언트 : 개발 컴퓨터에서 실행되는 관리 툴, adb자체가 대표적이며 이 외에 ADT플러그인이나DDMS도 클라이언트로 동작 • 서버 : 개발 컴퓨터에서 백그라운드로 실행되며 클라이언트와 데몬을 중계하는 역할을 한다. • 데몬 : 장비에서 백그라운드로 동작하며 클라이언트로부터 전달된 명령을 장비에서 수행한다. • 연결 장비가 여러 개이면 어떤 장비에 대해 명령을 수행할 것인지를 지정해야 하는데이때는 다음 세 개의 플래그 중 하나를 사용한다.