초보자를위한 Android Studio, Part 4 : 디버깅 도구 및 생산성 플러그인

업데이트 : 2020 년 1 월.

Android Studio는 내장 된 개발 도구의 풍부한 팔레트와 훨씬 더 풍부한 플러그인 생태계를 제공합니다. 이 시리즈의 처음 세 기사는 Android Studio로 간단한 모바일 앱을 설치, 설정 및 코딩하고 실행하는 데 중점을 두었습니다. 이제 Android 애플리케이션 코드의 품질과 생산성을 디버깅하고 개선하기위한 세 가지 기본 제공 도구와 세 가지 플러그인과 같은 고급 도구에 대해 알게 될 것입니다.

이 문서에서는 다음과 같은 Android Studio 용 도구를 소개합니다.

내장 디버깅 도구

  • Logcat
  • 디버그
  • 린트

개발자 생산성을위한 플러그인

  • ADB 아이디어
  • Codota
  • 롬복 플러그인

Android Studio 3.5의 새로운 기능

Kotlin 지원, 메모리 관리 및 UI 응답 성 개선을 포함하여 최신 버전의 Android 스튜디오에서 찾아야 할 사항을 알아보세요.

Android 앱 로깅 및 디버깅

버그가있는 앱은 잠재 고객을 몰아 낼 수있는 확실한 방법입니다. Logcat 및 Debug는 Android Studio에 기본 제공되는 두 가지 도구로, Android 코드에서 버그를 식별하고 수정하는 데 사용할 수 있습니다.

Android 로깅 : Logcat

모든 "버그"시나리오에 대해 완전한 디버거가 필요하거나 필요하지 않을 수 있습니다. 어떤 경우에는 특정 변수의 값을 기록하고 수정하는 것으로 충분합니다. Android Studio의 Logcat은이 작업에 적합합니다.

Logcat 은 코드에서 문제를 찾고 수정하는 데 도움이 될 수있는 시스템 메시지 로그 를 덤프하는 명령 줄 도구 (Android Debug Bridge-ADB에 통합됨)입니다 . 메시지에는 디바이스에서 오류가 발생하는 경우에 대한 스택 추적과 의도적으로 android.util.Log클래스에 포함 된 메시지가 포함됩니다 . Logcat은 매우 유용하여 Android Studio에 직접 통합되어 보기 메뉴 또는 도구 창 표시 줄 에서 액세스 할 수 있습니다 .

Jeff Friesen

로그 캣의 윈도우는 드롭 다운 목록과 메시지 영역 뒤에 다른 컨트롤의 수평 행으로 분할된다. 컨트롤은 왼쪽에서 오른쪽으로 다음과 같습니다.

  • 연결된 장치 및 에뮬레이터를 식별하는 드롭 다운 목록입니다. (그림 1 참조)
  • 선택한 기기에 설치된 APK 패키지를 식별하는 드롭 다운 목록입니다.
  • 로깅 수준의 드롭 다운 목록 :
    • Verbose : 모든 메시지를 표시합니다.
    • 디버그 : 개발 중에 만 유용한 디버그 로그 메시지와 드롭 다운 목록의 하위 메시지 수준을 표시합니다.
    • 정보 : 일반 사용에 대한 예상 로그 메시지와 드롭 다운 목록의 하위 메시지 수준을 표시합니다.
    • 경고 : 드롭 다운 목록에서 더 낮은 메시지 수준뿐만 아니라 아직 오류가 아닌 가능한 문제를 표시합니다.
    • 오류 : 오류를 일으킨 문제 (예외 발생 및 Assert 메시지 수준)를 표시합니다.
    • Assert : 개발자가 절대로 발생해서는 안되는 문제를 보여줍니다.
  • 이 컨트롤에 입력 한 텍스트가 포함 된 메시지 만 표시되는 검색 창입니다.
  • 검색 창에서 정규식을 사용할 수있는 확인란입니다. 예를 들어, 그림 1의 컨텍스트에서 SystemClock | AlarmManager (즉, 메시지에 두 단어 중 하나가 포함되어야 함).
  • 다음 옵션을 포함하여 메시지 필터링을위한 드롭 다운 목록 :
    • 필터 없음 (기본값)은 선택한 APK 패키지에 관계없이 선택한 장치에 대한 모든 메시지를 표시합니다.
    • 선택한 애플리케이션 만 표시 는 선택한 기기에서 적절한 로그 수준 이하인 선택한 APK 패키지에 대한 메시지 만 표시합니다 .
    • 필터 구성 편집을 통해 사용자 정의 필터를 만들 수 있습니다.

소스 코드에서 다양한 android.util.Log메소드에 대한 호출을 삽입 하여 메시지를 기록 할 수 있습니다 . 예를 들어, 호출 할 수 public static int i(String tag, String msg)로그인 할 INFO-level 메시지, 또는 public static int w(String tag, String msg)로그에 WARN-level 메시지를.

두 방법 모두에 전달 된 문자열 tag은 메시지의 소스 (예 :이 로깅 방법이 호출 된 방법)를 msg식별하고 전달 된 문자열 은 로깅되는 메시지 를 식별합니다.

또는 System.out의 및 System.errprint()println()메서드를 호출 할 수 있습니다. 받는 통화 System.out방법은 똑같은 달성 log.i()통화; System.err메서드 에 대한 호출 은 log.w()호출 과 동일한 작업을 수행 합니다.

Jeff Friesen

그림 2에서 표시되는 유일한 메시지는 에뮬레이트 된 Nexus 5X 기기에서 실행되는 예제 앱 프로세스에 대한 것입니다. 또한 이러한 메시지는 선택한 응용 프로그램 만 표시 필터를 포함 onCreate하고 허용 해야합니다 .

Logcat에 대한 추가 정보

Logcat에 대해 자세히 알아 보려면 Google의 "Logcat으로 로그 쓰기 및보기"를 확인하십시오. 또한 android.util.Log수업 문서를 공부하십시오 .

Android 디버깅 : 디버그

Logcat을 사용하여 기록하고 코드를 수정하는 것은 매우 간단한 앱의 경우 괜찮습니다. 더 복잡한 앱의 경우 이러한 형태의 디버깅은 지루할 수 있습니다. 대신 앱의 실행 코드를 디버깅 할 수있는 무언가를 원할 것입니다. Android 스튜디오의 기본 제공 디버그 도구는 다음과 같은 다양한 기능을 제공합니다.

  • 앱을 디버깅 할 기기를 선택하세요.
  • 애플리케이션 코드 (자바, Kotlin 또는 C / C ++)에 중단 점을 설정합니다.
  • 변수를 조사하고 런타임에 식을 평가합니다.

이 디버깅 도구를 사용하기 전에 몇 가지 전제 조건이 있습니다.

  1. 앱에 C / C ++ 소스 코드가 포함 된 경우 SDK 관리자에서 LLDB를 설치해야합니다 (그림 3 참조). 다행히이 시리즈 ( W2A ) 의 예제 앱 에는 C / C ++ 코드가 포함되어 있지 않으므로이 필수 구성 요소를 무시할 수 있습니다.

    Jeff Friesen

  2. 연결된 장치에서 디버깅을 활성화해야합니다. 그러나 에뮬레이터를 사용하는 경우 (이 예제의 경우)이 필수 구성 요소를 무시할 수 있습니다. 디버깅은 에뮬레이트 된 장치에서 기본적으로 활성화됩니다.
  3. 디버깅 가능한 빌드 변형을 실행해야합니다. 기본적으로 이것은 사용자를 위해 생성되므로 많은 경우 (이 예제를 포함하여) 걱정할 필요가 없습니다.

빠른 디버깅 세션을 살펴 보겠습니다.

간단한 Android 디버깅

예제 앱 ( W2A.java )에 대한 편집기 창을 열고 Android Studio를 실행한다고 가정하면 첫 번째 단계는 public void onCreate(Bundle savedInstanceState)줄에 중단 점을 설정하는 것 입니다. 이 줄을 강조 표시하고 다음 중 하나를 수행하여 중단 점을 설정합니다.

  • 선 왼쪽의 거터 영역을 클릭합니다. 선이 분홍색으로 변해야합니다.
  • 실행 메뉴 에서 Toggle Line Breakpoint 를 선택 합니다.
  • CtrlF8을 동시에 누릅니다 .

이제 실행 메뉴 에서 디버그 '앱' 을 선택 하거나 도구 모음에서 적절한 아이콘을 클릭합니다. 에뮬레이터가 실행되고 있지 않으면 배포 대상 선택 대화 상자가 표시됩니다. Nexus 5X API 15를 선택 하고 확인을 클릭했습니다 .

온라인 올 에뮬레이트 된 장치에 대한 기다리는 동안, 클릭 디버그 디스플레이로 도구 창 표시 줄에 버튼을 디버그 창을여십시오. 결국 그림 4와 유사한 내용이 표시됩니다.

Jeff Friesen

디버그 창에, 이상 스테핑에 대한 아이콘을 제공하고, 방법의 밖으로, 그리고 더. 그림 5는 우리 한 방법을 넘어 설 때 일어나는 일을 보여줍니다 .

Jeff Friesen

해당 아이콘을 클릭하고 실행 메뉴 에서 Step Over 를 선택 하거나 F8 키를 누르십시오 . 이를 통해 각 메서드 호출을 단계별 로 진행 하면서 메서드를 더 깊게 진행할 수 있습니다 .onCreate()

메서드 의 닫는 }문자가 있는 줄 onCreate()을 선택한 다음 Run to Cursor 를 선택 합니다. 애플리케이션이 실행 중이라는 알림을 받게됩니다. 기기를 잠금 해제하면 예제 앱의 활동 창이 표시됩니다.

Jeff Friesen

디버그에 대한 추가 정보

Android Studio의 디버깅에 대해 자세히 알아 보려면 Google의 "앱 디버그"를 확인하세요. 예를 들어 다양한 종류의 중단 점을 사용하는 방법이 있습니다.

GAPID로 디버깅

여기에서는 다루지 않지만 Android 앱에서 그래픽 드라이버로 호출을 검사, 조정 및 재생할 수있는 디버깅 도구 모음 인 GAPID : Graphics API Debugger를 확인하는 것이 좋습니다.

Lint를 사용한 코드 검사

아무리 신중하게 작성하더라도 소스 코드는 버그, 문체 문제를 포함 할 수 있으며 어떤 이유로 든 비활성 상태 인 리소스를 참조 할 수 있습니다. 린터은 이러한 증거하고 개발자에게보고 불쾌한 보풀의 다른 비트의 소스 코드를 스캔 도구의 유형입니다.

Lint 는 Android SDK 용 내장 linter입니다. 이를 사용하여 대상 API에서 지원하지 않는 더 이상 사용되지 않는 요소 및 API 호출과 같은 문제를 찾을 수 있습니다.

Android Studio 내에서 Lint를 실행하려면 Analyze 메뉴 에서 Inspect Code ... 를 선택 합니다. 이렇게하면 검사 범위 지정 대화 상자가 활성화됩니다 .

Jeff Friesen

대화 상자에서 원하는 범위 (이 경우 전체 프로젝트)를 선택한 다음 확인 을 클릭 하여 검사를 시작합니다. 결과는 범주별로 구성된 검사 결과 창에 나타납니다 .

Jeff Friesen

본질적으로 Lint는 응용 프로그램 코드를 복잡하게 만들 수있는 몇 가지 보풀을 골랐습니다. 발견되면 그림 8에 표시된 세 가지 Java 경고를 쉽게 수정할 수 androidAnimationprivate있습니다. 두 findViewById()메서드 호출 에서 캐스트를 선언 하고 제거하기 만하면 됩니다.

Lint에 대한 추가 정보

Android 스튜디오에서 Lint를 사용하는 방법에 대해 자세히 알아보고 Android SDK의 독립형 Lint 도구에 대해 자세히 알아 보려면 "lint 검사로 코드 개선"을 확인하세요.

Android Studio 플러그인 설치 및 사용

내장 도구에는 장점이 있지만 다른 많은 도구를 플러그인으로 사용할 수 있습니다. 이 섹션에서는 Android Studio에서 코딩 생산성을 향상시키기위한 세 가지 플러그인을 살펴 보겠습니다.

  • ADB 아이디어
  • Codota
  • 롬복 플러그인

Android Studio 플러그인 관리자

Android Studio의 플러그인 관리자를 사용하면 플러그인을 매우 쉽게 찾고 설치할 수 있습니다. 선택하여 플러그인 관리자를 활성화 파일 > 설정은 다음 플러그인 로부터 설정 대화 상자 :

Jeff Friesen

그런 다음 저장소 찾아보기 ... 를 클릭 하여 지원되는 플러그인의 전체 목록을 표시하는 저장소 찾아보기 대화 상자 를 활성화하십시오 . 이 대화 상자를 사용하여 첫 번째 플러그인 인 ADB Idea를 선택합니다.

Jeff Friesen

Android 생산성 향상

코드 단축키 : ADB 아이디어

ADB Idea 는 앱 시작 및 제거와 같이 일반적으로 사용되는 ADB 명령에 대한 빠른 액세스를 제공하여 일상적인 Android 개발 속도를 높입니다.

선택 ADB 아이디어 플러그인의 리포지토리 목록을 다음 클릭 설치 버튼을 누릅니다. Android Studio는 플러그인 다운로드 및 설치를 진행합니다. 그런 다음 Install to Restart Android Studio 라벨 을 다시 지정 합니다 . 각 플러그인에 대해 Restart Android Studio를 클릭 한 후 플러그인을 다시 선택한 다음 Android Studio를 다시 시작하기 위해이 버튼을 두 번 클릭해야했습니다.

Jeff Friesen

Android Studio를 설치하면 Tools 메뉴 에서 ADB Idea에 액세스 할 수 있습니다 . 선택 도구> ADB 아이디어를 하고 그 결과 나타나는 팝업 메뉴에서 적절한 명령을 선택합니다.

Jeff Friesen

ADB Restart App을 선택한 후 이벤트 로그 창 에서 다음 메시지와 Amazon Kindle 디바이스에서 다시 시작된 앱을 확인했습니다.

Jeff Friesen

사용 가능한 코드 찾기 : Codota

당신은 사용할 수 있습니다 Codota을 당신이 안드로이드 코딩 문제에 대한 해결책을 공개 자바 소스 코드 조각의 수백만 통해보고 할 수있는 Codota 검색 엔진에 액세스하는 플러그인.

Jeff Friesen

선택 Codota를 플러그인 저장소 목록에서 다음 클릭 설치 버튼을 누릅니다. Android Studio가 플러그인을 다운로드하고 설치하면 Install 버튼의 라벨이 Restart Android Studio로 변경 됩니다. 다시 시작하면 Codota가 활성화됩니다.

다시 시작하면 Codota 인증 대화 상자가 나타납니다. 링크를 클릭하고 지침에 따라 토큰을 받으십시오. 그런 다음 앞서 언급 한 대화 상자에 토큰을 붙여넣고 이동을 클릭 합니다 .

Jeff Friesen

Android Studio를 사용하면 편집기 창에서 Java 코드를 마우스 오른쪽 버튼으로 클릭하고 관련 예제 가져 오기 메뉴 항목을 선택하여 Codota에 액세스 할 수 있습니다 ( 그림 16 참조).

Jeff Friesen

이 메뉴 항목을 클릭하면 브라우저에 관련 코드 예제가있는 페이지가 표시됩니다. 예를 들어, 다음 페이지는 관련 예제를 제공합니다 findViewById.

Jeff Friesen

자바 코드 자동 생성 : Lombok

Project Lombok 은 상용구 코드 대신 사용할 수있는 주석 세트를 제공하므로이 코드를 직접 작성하는 시간을 절약 할 수 있습니다.

Jeff Friesen

선택 롬복 플러그인을 플러그인의 저장소 목록에서 다음을 클릭합니다 설치 . Android Studio가 플러그인을 다운로드하고 설치하면 Restart Android Studio라는 메시지가 표시됩니다 . 다시 시작하면 Lombok 플러그인이 활성화됩니다.