Android Studio for beginners, Part 4: Advanced tools and plugins (1)
A guide to profiling, debugging, and extending your Android Studio applications
http://www.javaworld.com/article/3104595/android/android-studio-for-beginners-part-4-advanced-tools-and-plugins.html
Android Studio는 다양한 개발 도구 팔레트를 제공하며 많은 플러그인과 호환됩니다. 이 시리즈의 처음 3 개 기사는 간단한 모바일 앱 제작을위한 기본 도구에 중점을 둡니다. 이제 Android Studio를 확장하는 데 사용할 수있는 세 가지 플러그인과 함께 Android Studio의 일부인 고급 도구 중 일부에 대해 알게됩니다.
Android Device Monitor, Lint 및 Android Monitor - Android Studio에서 애플리케이션 코드를 디버그, 검사 및 프로파일 링하는 데 사용할 수있는 세 가지 도구로 시작하겠습니다. 그런 다음 플러그인 ADB Idea, Codota Code Search 및 Project Lombok을 소개합니다.
Android Device Monitor로 디버깅하기
Android Device Monitor 는 실패한 앱을 디버깅하기위한 Android SDK 도구입니다. 다음 SDK 도구에 대한 그래픽 사용자 인터페이스를 제공합니다.
- DDMS (Dalvik Debug Monitor Server) : 포트 포워딩 서비스, 장치의 화면 캡처, 장치의 스레드 및 힙 정보, 로그 카트, 프로세스, 무선 상태 정보, 수신 전화 및 SMS 스푸핑, 위치 데이터 스푸핑, 그리고 더.
- OpenGL ES 용 추적 프로그램 : Android 앱에서 Embedded Systems (ES) 코드 용 OpenGL을 분석하기위한 도구입니다. OpenGL ES 명령과 프레임 별 이미지를 캡처하여 그래픽 명령이 실행되는 방식을 이해하는 데 도움이됩니다.
- 계층 구조 뷰어 : 레이아웃 뷰 계층 구조 (레이아웃보기) 및 디스플레이 확대 검토 (픽셀 완벽한보기)를위한 그래픽 뷰어입니다. 이 도구는 사용자 인터페이스를 디버그하고 최적화하는 데 도움을줍니다.
- Systrace : 추적 (전체 안드로이드 장치에 걸친 타이밍 정보) 을 수집하고 검사하는 도구 . 추적은 시간과 CPU 사이클이 소비되는 곳을 보여 주며 주어진 시간에 각 스레드와 프로세스가 수행하는 작업을 표시합니다. 또한 캡처 된 추적 정보를 검사하여 목록 항목 재활용에서부터 컨텐츠 렌더링까지의 문제를 강조 표시하고 문제를 해결하는 방법에 대한 권장 사항을 제공합니다.
- 추적보기 (Traceview) :
android.os.Debug
코드에서 추적 정보를 로깅 하기 위해 클래스를 통해 앱이 만드는 실행 로그의 그래픽 뷰어입니다 . 이 도구는 응용 프로그램을 디버그하고 성능을 프로파일 링하는 데 도움을 줄 수 있습니다.
명령 행에서 Android Device Monitor를 실행 monitor
하려면 Android SDK의 tools
디렉토리 에서 프로그램을 실행하십시오 . Android Studio에서이 도구를 실행하려면 도구> Android> Android Device Monitor를 선택하십시오 .
파트 1 에서 Nexus 4 에뮬레이터에서 Android Studio를 사용하여 W2A 예제 앱을 실행했다는 것을 기억할 것 입니다. 그런 다음 Android Studio에서 Android Device Monitor를 시작했습니다. 그림 1은 결과 화면을 보여줍니다.
기기 탭에는이 예에서 에뮬레이트 된 Nexus 4 기기로 사용 가능한 모든 기기가 표시됩니다. 강조 표시된 장치 행 아래에는 현재 표시된 android.app.Activity
하위 클래스 객체 목록이 있습니다.
패키지 이름 W2A
으로 식별 된 활동 객체를 강조 표시 ca.javajeff.w2a
한 다음 Hierarchy View를 클릭하여 Hierarchy Viewer 도구를 활성화했다. 그림 2는 결과를 보여줍니다.
Hierarchy Viewer는 다중 사용자 인터페이스를 표시합니다. 트리보기 창에는 android.view.View
하위 클래스 개체 의 활동 계층 구조에 대한 다이어그램이 표시 됩니다. 트리 개요 창은 전체 트리보기 창의 작은 맵 표현을 제공합니다. Layout View 창 (내용은 그림 2에 표시되지 않음)은 UI의 블록 표현을 나타냅니다. Hierarchy Viewer 도구 및이 창에 대한 자세한 내용은 " UI 최적화 "를 참조하십시오 .
실제 (에뮬레이션되지 않은) Android 장치로 계층 뷰어를 실행하려고하면 그림 3과 같은 오류 메시지가 나타날 수 있습니다.
이러한 메시지 는 계층 뷰어에 의해 다이어그램 된 개체 를 반환하는 장치에서 실행되는 소프트웨어 인 뷰 서버 를 참조합니다 View
. 프로덕션 빌드 장치는 이러한 오류 메시지를 반환하여 보안을 강화합니다. Google 소프트웨어 엔지니어 인 Romain Guy가 만든 ViewServer
클래스 를 사용하여이 문제를 극복 할 수 있습니다 .
린트 코드 검사
Lint 는 코드에 구조적 문제가 없는지 확인하기위한 Android SDK 코드 검사 도구입니다. 사용 중지 된 요소 또는 대상 API에서 지원하지 않는 API 호출과 같은 문제를 찾을 때 사용할 수 있습니다.
Lint는 명령 줄에서 실행할 수 있지만 Android Studio 내에서이 도구를 실행하면 도움이됩니다. 선택 코드를 검사> 분석 (이 경우 전체 프로젝트,) 그런 다음 원하는 범위를 선택 그림 4에 표시된 지정 검사 범위 대화 상자를 활성화하고, 분석을 수행하기 위해 확인 버튼을 클릭합니다. 결과는 검사 결과 창에 나타나며, 여기에서 범주별로 구성됩니다.
그림 5에서 볼 수 있듯이 Lint는 몇 가지 문제점을 발견했습니다.
보풀은 또한 다음에 대해 불평했다 :
- 요소 의 누락 된
contentDescription
속성 은 앱의 접근성ImageView
을main.xml
방해합니다. LinearLayout
in 의 루트 요소main.xml
는 배경을 흰색 으로 칠#ffffff
하는 테마 (추론 된 테마@style/AppTheme
)를 칠합니다 . 이처럼 오버 드로하면 성능이 저하 될 수 있습니다.- 이
dimens.xml
파일은 사용되지 않는 3 차원 자원을 지정합니다. 사용되지 않는 자원을 지정하는 것은 비효율적입니다. - SDK v23 이상에서는 앱 설치시 앱 데이터가 자동으로 백업 및 복원됩니다.
@xml
백업 할 파일을 구성 하는 자원을 지정할 때 요소에 속성android:fullBackupContent
을 추가하는 것을 고려하십시오 . 그렇지 않으면 보안 문제가 발생할 수 있습니다.application
AndroidManifest.xml
- Google 앱 색인 생성에 대한 지원이 없습니다.
- ,, 및 에 저장
android0.png
되며 밀도 독립적 인 그래픽 용입니다. 응용 프로그램의 생산 버전, 나는 그들을 이동해야 하고 생각에 높고 낮은 해상도 버전을 제공 , 하고 . 그러나이 예제에서는 해를 입지 않았습니다.android1.png
android2.png
drawable
drawable-mdpi
drawable-ldpi
drawable-hdpi
drawable-xhdpi
- 린트에 대한 참조 지적, 내 맞춤법을 검사
javajeff
에서manifest
요소의package
에서, 속성을AndroidManifest.xml
.
Android Studio에서 Lint를 사용하는 방법에 대한 자세한 내용은 " Lint로 코드 개선 " 을 참조하십시오 .
Android 모니터로 프로파일 링
성능 병목 현상을 찾기 위해 실행중인 응용 프로그램을 프로파일 링하는 것은 앱 개발의 중요한 부분입니다. Android Device Monitor의 Traceview 도구는 프로파일 링을 지원합니다. Android Monitor는 더 많은 기능을 제공합니다.
Android Monitor 는 앱 성능을 프로파일 링하여 앱을 최적화, 디버그 및 개선하는 데 도움이되는 Android Studio 구성 요소입니다. 하드웨어 및 에뮬레이트 된 기기에서 실행되는 앱의 다음 측면을 모니터링 할 수 있습니다.
- 로그 메시지 (시스템 정의 또는 사용자 정의)
- 메모리, CPU 및 GPU 사용량
- 네트워크 트래픽 (하드웨어 장치 만 해당)
Android 모니터는 다양한 도구를 통해 앱에 대한 실시간 정보를 제공합니다. 앱 실행에 따라 데이터를 캡처하여 다양한 뷰어에서 분석 할 수있는 파일에 저장할 수 있습니다. 앱이 실행되면서 스크린 샷과 비디오를 캡처 할 수도 있습니다.
Android Studio의 Android 모니터 도구 창을 통해 Android 모니터에 액세스 할 수 있습니다. 선택 보기> 도구 창> 안드로이드 모니터 하거나 보도 Alt + 6 :
그림 6은 안드로이드 모니터 툴 윈도우를 보여준다.이 윈도우는 모니터링되는 디바이스 (이 경우에는 Amazon Kindle Fire 디바이스에서)와 디바이스에서 디버깅중인 애플 리케이션을 식별하는 드롭 다운 목록 상자를 제공한다. ADB 통합이 활성화되지 않았기 때문에 후자 목록에 "디버깅 할 수없는 응용 프로그램 없음"이 표시됩니다. 확인 도구> 안드로이드> ADB 통합을 사용 ADB의 통합을 가능하게 할 수 있습니다.
ADB 통합을 활성화 한 후 드롭 다운 목록에서 Kindle에서 실행중인 W2A 응용 프로그램의 패키지 이름 인 "ca.javajeff.w2a"가 "No Debuggable Applications"로 대체되었습니다.
두 개의 목록 상자 아래에는 logcat 및 Monitors라는 탭 쌍이 있습니다. 이전 탭에는 장치에서 기록 된 메시지가 표시되고 후자 탭에는 그래픽 기반 메모리, CPU, 네트워크 및 GPU 모니터가 표시됩니다 (그림 7 참조).
그림 7에 표시된 메모리 모니터는 앱이 거의 13 메가 바이트를 차지하고 그 이후 메모리 사용이 일정하다는 것을 보여줍니다. 앱이 명시적인 메모리 할당을하지 않기 때문에 놀라지 않습니다. 기본 API는 추가 메모리. CPU 모니터는 약 1 분간의 모니터링에 좁은 빨간색 선을 통해 약간의 CPU 사용량 만 표시합니다. 이 사용법은 Animate 버튼을 여러 번 클릭하여 발생했습니다. 앱이 네트워크 요청을하지 않기 때문에 네트워크 활동이 표시되지 않습니다. 마지막으로 GPU 모니터링을 지원하지 않는 이전 버전의 Android (4.0.3)를 실행 중이기 때문에 GPU 모니터가 비활성화되었습니다.
Android 모니터 도구 창의 왼쪽에는 스크린 샷 (카메라 아이콘)을 얻기위한 버튼, 화면 기록, 시스템 정보 (활동 관리자 상태, 패키지 정보, 메모리 사용량, 시간 경과에 따른 메모리 사용량 및 그래픽 상태), 응용 프로그램 종료 및 도움말 얻기. 카메라 버튼을 클릭하고 그림 8과 같은 스크린 샷을 얻었습니다.
Android 모니터 에 대한 자세한 내용은 " Android 모니터 개요 "를 참조하십시오.
플러그인으로 Android Studio 앱 확장하기
Android Studio는 애플리케이션 뷰를 관리하기위한 여러 가지 도구를 제공합니다. Android Studio에 내장 된 Image Asset Studio를 사용하여 이미지 에셋을 관리하고 테마 편집기로 테마를 디자인하고 레이아웃 편집기로 활동의 레이아웃을 디자인 할 수 있습니다. 귀하가 필요로하는 도구가 제공하는 도구를 초과 할 경우 플러그인을 사용하여 차이를 채울 수 있습니다.
Android Studio의 플러그인 관리자를 사용하면 플러그인을 쉽게 찾고 설치할 수 있습니다. 선택하여 플러그인 관리자를 활성화 파일> 설정 다음 플러그인 설정 대화 상자에서를 :
그런 다음 저장소 찾아보기를 클릭하십시오. . . 지원되는 플러그인의 전체 목록을 보여주는 Browse Repositories 대화 상자를 활성화하려면 :
세 가지 유용한 플러그인 인 ADB Idea, Codota Code Search 및 Project Lombok을 소개하고이를 설치하고 사용하는 방법을 보여줄 것입니다.
ADB 아이디어
ADB Idea 는 앱 시작 및 제거와 같이 일반적으로 사용되는 ADB 명령에 빠르게 액세스하여 일상적인 Android 개발 속도를 높입니다.
플러그인의 리포지토리 목록에서 ADB 아이디어를 선택한 다음 설치 버튼을 클릭하십시오. Android Studio에서 플러그인 다운로드 및 설치가 진행됩니다. 그런 다음 Install to Android Studio를 다시 시작합니다. 다시 시작하면 ADB 아이디어가 활성화됩니다.
Android Studio를 사용하면 도구 메뉴에서 ADB Idea에 액세스 할 수 있습니다. 선택 도구> 안드로이드> ADB 아이디어 및 그 결과 나타나는 팝업 메뉴에서 적절한 명령을 선택합니다 :
이 명령을 사용하려면 먼저 앱을 설치해야합니다. 예를 들어 ADB Restart App을 선택하고 아마존 킨들 (Amazon Kindle) 기기에서 재시작 한 앱뿐만 아니라 다음 메시지를 관찰했다.
Codota 코드 검색
사용 Codota 코드 검색 액세스하는 플러그인을 Codota 검색 엔진 문제가 코딩 솔루션 (GitHub의 다른 사이트에) 공개 자바 소스 코드 조각의 수백만을 통해 볼 수 있습니다 :
이 플러그인을 설치하려면 플러그인의 리포지토리 목록에 Codota을 선택하고 설치 버튼을 클릭합니다. Android Studio가 플러그인을 다운로드하여 설치 한 후 설치 버튼의 라벨을 다시 지정하여 Android Studio를 다시 시작합니다. 다시 시작하면 Codota Code Search가 활성화됩니다.
안드로이드 Studio는 자바 편집기 창에서 코드 및 검색 오픈 소스 (Codota) 메뉴 항목을 선택 (또는 눌러 마우스 오른쪽 버튼으로 클릭 Codota 코드 검색에 액세스 할 수 있습니다 Ctrl 키를 + K를 그림 15).
안드로이드 스튜디오는 그 텍스트 필드 공백 또는 마우스 오른쪽 버튼으로 클릭 된 자바 API 유형의 전체 패키지 이름으로 채워집니다 검색 Codota 대화 상자를 표시하여 응답합니다. 그림 16은이 대화 상자를 보여줍니다.
Codota Code Search는 검색 텍스트를 Codota 검색 엔진에 전달하고 CodotaView 도구 창에서 수직 스크롤 가능한 검색 결과를 제공합니다.
그림 15에서는 Find Usages (Codota) 메뉴 항목도 보여줍니다. 이 메뉴 항목을 클릭하면 Java 코드 단편에 대한 모든 저장소를 의미 론적으로 검색 할 수 있습니다.
'DevOps' 카테고리의 다른 글
Reactive Programming with JDK 9 Flow API (0) | 2017.06.20 |
---|---|
Java 101 : 자바 인터페이스 - 재사용 가능한 Java 인터페이스 (0) | 2017.06.20 |
Android Studio for beginners, Part 4: Advanced tools and plugins (2) (0) | 2017.06.17 |
Android Studio for beginners, Part 3: Build and run the app (0) | 2017.06.17 |
Android Studio for beginners, Part 2: Explore and code the app (2) (0) | 2017.06.17 |
Android Studio for beginners, Part 2: Explore and code the app (1) (0) | 2017.06.17 |
Android Studio for beginners, Part 1: Installation and setup (0) | 2017.06.17 |