Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

Android 스튜디오 미리보기의 새로운 기능

Android 스튜디오 4.0이 공개 버전 채널로 출시되었습니다. 여기에서 다운로드하세요.

Android 스튜디오 4.1은 현재 Canary 및 개발자 채널로 배포 중입니다.

각 출시 버전의 주목할 만한 수정사항 목록을 비롯한 최신 출시 소식은 버전 업데이트를 참조하세요.

Android 스튜디오의 미리보기 버전을 사용하는 동안 문제가 발생하면 알려주시기 바랍니다. 버그를 신고하시면 Android 스튜디오를 개선하는 데 도움이 됩니다.

Android 스튜디오 4.2

이제 v3 및 v4 서명이 지원됨

Android Gradle 플러그인 4.2가 이제 v3 및 v4 APK 서명 형식을 지원합니다. 빌드에서 두 형식 중 하나 또는 둘 다를 사용 설정하려면 다음 속성을 모듈 수준 build.gradle 또는 build.gradle.kts 파일에 추가하세요.

Kotlin

// build.gradle.kts

android {
   ...
   signingConfigs {
      config {
          ...
          enableV3Signing(true)
          enableV4Signing(true)
      }
   }
}

Groovy

// build.gradle

android {
  ...
  signingConfigs {
    config {
        ...
        enableV3Signing true
        enableV4Signing true
    }
  }
}

v3 및 v4 서명의 이점은 다음과 같습니다.

  • APK v3 서명은 키 순환을 사용 설정하여 분실된 키의 영향을 최소화합니다.

  • APK v4 서명을 사용하면 Android 11에서 ADB 증분 APK 설치를 통해 대규모 APK를 빠르게 배포할 수 있습니다. 이 새 플래그는 배포 프로세스의 APK 서명 단계를 처리합니다.

Jetpack Compose 지원

Jetpack Compose 도구 키트를 사용하면 최신 방식으로 앱의 UI를 빌드할 수 있습니다. 도구 키트를 사용하면 간결하고 직관적으로 코드를 작성하고 자바와 완벽하게 상호 운용 가능한 Kotlin의 모든 이점도 누릴 수 있습니다.

Jetpack Compose로 최적의 환경에서 개발하려면 최신 버전의 Android 스튜디오 4.2를 사용해야 합니다. Jetpack Compose와 함께 Android 스튜디오를 사용하여 앱을 개발할 때 Compose UI를 즉시 미리 볼 수 있는 기능 및 새 프로젝트 템플릿과 같은 스마트 편집기 기능을 활용할 수 있기 때문입니다.

자세히 알아보고 시작하려면 Jetpack Compose 개요를 참조하시기 바랍니다.

4.2의 새로운 Jetpack Compose 도구 지원

Android 스튜디오에는 이제 Jetpack Compose를 사용하는 앱을 미리 보고 테스트하는 지원이 추가됩니다.

Compose 미리보기

이제 @Preview 메서드의 다음 매개변수를 사용할 수 있습니다.

  • showBackground: 미리보기의 배경을 사용 설정 또는 사용 중지합니다.
  • backgroundColor: 미리보기 표시 영역에서만 사용되는 색상을 설정합니다.
  • uiMode: 이 새 매개변수는 어떤 Configuration.UI_* 상수나 사용할 수 있고 이 매개변수로 미리보기 동작을 변경(예: 야간 모드로 설정)하여 테마가 어떻게 반응하는지 확인할 수 있습니다.

양방향 미리보기

이 모드에서는 UI 구성요소와 상호작용하며 클릭하여 상태가 어떻게 변경되는지 확인할 수 있습니다. UI가 반응하는 방식에 관한 의견을 얻고 애니메이션을 미리 보는 빠른 방법입니다. 사용 설정하려면 양방향 아이콘 을 클릭하세요. 그러면 미리보기가 모드를 전환합니다.

중지하려면 상단 툴바에서 Stop Interactive Preview를 클릭합니다.

기기에 배포

이 기능을 사용하여 UI 스니펫을 기기에 배포합니다. 이렇게 하면 전체 애플리케이션을 시작할 필요 없이 기기에서 코드의 작은 부분을 테스트할 수 있습니다.

@Preview 주석 옆이나 미리보기 상단에 있는 기기에 배포 아이콘 을 클릭하면 Android 스튜디오에서 @Preview를 연결된 기기나 에뮬레이터에 배포합니다.

Data Sources API 미리보기

새 Data Sources API를 사용하면 데이터에서 미리보기를 생성할 수 있습니다. 기존 데이터 목록 또는 테마 목록이 있는 경우 이 API를 사용하여 @Preview 메서드에 목록을 매개변수로 삽입할 수 있습니다.

class HelloWorldProvider :
   CollectionPreviewParameterProvider<String>(
       listOf("Hello World", "Привет мир", "Olá Mundo", "Hola Mundo"))

@Preview
@Composable
fun HelloWorldPreview(
   @PreviewParameter(HelloWorldProvider::class) text: String
) {
   MaterialTheme {
       Text(text = text)
   }
}

위 기능을 사용 설정하려면 모듈의 build.gradle에 다음 설정이 포함되어야 합니다.

  android {
  …
  buildFeatures {
    compose true
  }
  composeOptions {
     kotlinCompilerExtensionVersion = "0.1.0-dev13"
     kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
   }
}

Compose 미리보기의 알려진 문제

androidx.ui.foundation.Dialog는 현재 Compose 미리보기에서 지원되지 않습니다.

향상된 계측 테스트

이제 Android 스튜디오 4.2 Canary 1부터 계측 테스트를 여러 기기에서 동시에 실행하고 전문 계측 테스트 결과 패널을 사용하여 조사할 수 있습니다. 이 패널을 사용하면 API 수준이나 하드웨어 속성으로 인해 테스트가 실패하는지 판단할 수 있습니다.

계측 테스트 패널

다양한 API 수준과 폼 팩터에서 앱을 테스트하는 것은 모든 사용자가 앱을 사용할 때 만족스러운 경험을 할 수 있는 가장 좋은 방법 중 하나입니다.

이 기능을 활용하려면 다음 단계를 따르세요.

  1. IDE 상단 중앙의 대상 기기 드롭다운 메뉴에서 Modify Device Set를 선택합니다.

    대상 기기 드롭다운 메뉴

  2. 대상 기기를 선택하고 OK를 클릭합니다.

    기기 세트 수정 대화상자

  3. 대상 기기 드롭다운 메뉴에서 Multiple Devices를 선택하고 테스트를 실행합니다.

    대상 기기 드롭다운 메뉴에서 여러 기기 선택

Run 패널에서 테스트 결과를 보려면 View > Tool Windows > Run으로 이동합니다.

새 테스트 결과 패널을 사용하여 테스트 결과를 상태, 기기, API 수준별로 필터링할 수 있습니다. 또한 헤더를 클릭하여 각 열을 정렬할 수 있습니다. 개별 테스트를 클릭하여 각 기기의 로그 및 기기 정보를 개별적으로 확인할 수 있습니다.

Android 스튜디오 4.1

이 섹션에서는 Android 스튜디오 4.1의 새로운 기능과 변경사항을 간략히 설명합니다.

시스템 트레이스 UI: 간편한 선택, 새로운 분석 탭, 추가 프레임 렌더링 데이터

Android 스튜디오 프로파일러의 시스템 트레이스 UI에는 다음 개선사항이 포함되어 있습니다.

  • 박스 선택: 이제 Threads 섹션에서 마우스를 드래그하여 직사각형 영역의 박스 선택을 할 수 있고 이 영역은 오른쪽 상단의 Zoom to Selection 버튼을 클릭하거나 M 단축키를 사용하여 확대할 수 있습니다. 유사한 스레드를 드래그 앤 드롭하여 나란히 두면 여러 스레드를 선택하여 한 번에 모두 검사할 수 있습니다. 예를 들어 여러 작업자 스레드에서 분석을 실행하는 것이 좋습니다.

  • 요약 탭: Analysis 패널의 새로운 Summary 탭은 다음 항목을 표시합니다.

    • 일치하는 항목 수 및 최소/최대 지속 시간 등 모든 일치하는 특정 이벤트 항목의 집계 통계
    • 선택된 일치하는 항목의 트레이스 이벤트 통계
    • 스레드 상태 배포에 관한 데이터
    • 선택된 트레이스 이벤트의 가장 오래 실행되는 일치하는 항목

    다른 일치하는 항목으로 이동하려면 표에서 다른 행을 선택합니다.

  • 데이터 표시: Display 섹션에서 SurfaceFlingerVSYNC의 새로운 타임라인으로 앱 UI에서 렌더링 문제를 조사할 수 있습니다.

시스템 트레이스를 기록하는 방법에 관한 기본 사용법 안내는 CPU 프로파일러로 CPU 활동 검사트레이스 기록 섹션을 참조하세요.

독립형 프로파일러 사용 가능

이제 기본 Android 스튜디오 창과 별개인 창에서 Android 스튜디오 프로파일러에 액세스할 수 있습니다.

독립형 프로파일러를 실행하려면 다음 단계를 따르세요.

  1. Android 스튜디오가 시스템에서 실행되고 있지 않은지 확인합니다.
  2. 설치 디렉터리로 이동한 후 bin 디렉터리로 이동합니다.

    Windows/Linux: <studio-installation-folder>/bin

    macOS: <studio-installation-folder>/Contents/bin

  3. OS에 따라 profiler.exe 또는 profiler.sh를 실행합니다. Android 스튜디오 스플래시 화면이 표시됩니다.

    스플래시 화면이 사라지면 프로파일러 창이 열립니다.

  4. Android Emulator를 시작하거나 Android 기기를 연결하고 홈 화면이 로드될 때까지 기다립니다. 명령줄에서 에뮬레이터를 실행하려면 명령줄에서 에뮬레이터 시작을 참조하세요. Android 스튜디오에서 에뮬레이터를 시작한다면 에뮬레이터가 시작된 후 Android 스튜디오를 닫아야 합니다.

    독립형 프로파일러 메뉴에서 버튼을 클릭하면 연결된 모든 기기와 에뮬레이터가 표시됩니다.

    예를 들어 에뮬레이터에서 Google 지도를 엽니다. 드롭다운 메뉴에서 에뮬레이터를 선택하여 새 프로파일링 세션을 만들고 com.google.android.apps.maps (...)를 선택하면 프로파일링 세션이 실행됩니다.

지도와 상호작용하면 터치 이벤트와 CPU 사용량이 프로파일러에 표시됩니다. CPU, 메모리, 네트워크 또는 에너지 그래프를 클릭하여 추가 세부정보를 표시합니다.

버튼을 클릭하여 프로파일링 세션을 종료합니다.

이제 프로파일러를 사용하여 앱의 성능 특성을 검사할 수 있습니다. 자세한 내용은 앱 성능 프로파일링을 참조하세요.

머티리얼 디자인 구성요소: 새 프로젝트 템플릿에서 업데이트된 테마 및 스타일

애니메이션: 새 머티리얼 디자인 속성으로 Android 스튜디오에서 프로젝트 만들기

이제 Create New Project 대화상자의 Android 스튜디오 템플릿에서 머티리얼 디자인 구성요소(MDC)를 사용하며 업데이트된 테마 및 스타일 안내를 기본적으로 따릅니다. 업데이트 항목:

  • MDC: 프로젝트는 build.gradle.com.google.android.material:material에 의존합니다. 기본 앱 테마는 Theme.MaterialComponents.* 상위 요소를 사용하고 업데이트된 MDC 색상과 'on' 속성을 재정의합니다.
  • 색상 리소스: colors.xml의 색상 리소스는 리터럴 이름을 사용합니다(예: colorPrimary가 아닌 purple_500).
  • 테마 리소스: 테마 리소스는 styles.xml이 아닌 themes.xml에 있으며 Theme.<ApplicationName> 이름을 사용합니다.
  • 어두운 테마: 기본 애플리케이션 테마는 DayNight 상위 요소를 사용하고 res/valuesres/values-night 간에 분할됩니다.
  • 테마 속성: 색상 리소스는 하드 코딩 색상을 피하기 위해 레이아웃과 스타일에서 테마 속성(예: ?attr/colorPrimary)으로 참조됩니다.

Canary 9에서 IDE 구성 디렉터리 변경사항

Canary 9 버전에서는 사용자 구성 디렉터리의 위치가 다음과 같이 변경되었습니다.

Windows

구문: %APPDATA%\Google\<product><version>

예: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudioPreview4.1

macOS

구문: ~/Library/Application Support/Google/<product><version>

예: ~/Library/Application Support/Google/AndroidStudioPreview4.1

Linux

구문: ~/.config/Google/<product><version>

예: ~/.config/Google/AndroidStudioPreview4.1

이러한 새 디렉터리 위치는 Android 스튜디오가 기반하는 IDE인 IntelliJ IDEA의 최근 업데이트와 일치합니다.

Dagger 이동 지원

Dagger 소비자 및 제공업체로 이동하는 IDE 거터 작업

Android 스튜디오를 사용하면 새 거터 작업을 제공하고 Find Usages 창에서 지원을 확장하여 Dagger 관련 코드 간에 더 쉽게 이동할 수 있습니다.

  • 새 거터 작업: Dagger를 사용하는 프로젝트의 경우 IDE에서 Dagger 주석이 달린 코드 간에 이동하는 데 도움이 되는 거터 작업을 제공합니다. 예를 들어 특정 유형을 사용하는 메서드 옆의 거터 작업을 클릭하면 이 유형의 제공업체로 이동합니다. 반대로 거터 작업을 클릭하면 유형이 종속 항목으로 사용되는 위치로 이동합니다.

  • 사용법 찾기 노드: 특정 유형의 제공업체에서 Find Usages를 호출하면 이제 Find 창에 그 유형의 소비자를 나열하는 Dependency consumer(s) 노드가 포함됩니다. 반대로 Dagger 삽입 종속 항목의 소비자에서 이 작업을 호출하면 Find 창에 종속 항목의 제공업체가 표시됩니다.

Android 스튜디오에서 직접 Android Emulator 실행

이제 Android 스튜디오에서 직접 Android Emulator를 실행할 수 있습니다. 이 기능을 통해 화면 공간을 절약하고 핫키를 사용하여 에뮬레이터와 편집기 창 간에 빠르게 이동하며 단일 애플리케이션 창에서 IDE 및 에뮬레이터 워크플로를 구성합니다.

Android 스튜디오의 도구 창에서 실행되는 에뮬레이터

Android 스튜디오에서 에뮬레이터를 실행하려면 Android Emulator 버전 30.0.10 이상과 함께 Android 스튜디오 4.1을 사용하고 있는지 확인하고 다음 단계를 따르세요.

  1. File > Settings > Tools > Emulator 또는 Android Studio > Preferences > Tools > Emulator on macOS를 클릭하고 Launch in a tool window를 선택한 다음 OK를 클릭합니다.
  2. 에뮬레이터 창이 자동으로 표시되지 않으면 View > Tool Windows > Emulator를 클릭하여 엽니다.
  3. 가상 기기는 AVD Manager를 사용하거나 앱을 실행할 때 타겟팅하여 시작합니다.

제한사항

현재 도구 창에서 실행될 때 에뮬레이터의 확장 컨트롤은 사용할 수 없습니다. 개발 워크플로가 확장 컨트롤에 크게 의존하는 경우 Android Emulator를 독립형 애플리케이션으로 계속 사용하세요. 또한 Android TV와 폴더블 기기와 같은 특정 가상 기기는 Android 스튜디오에서 실행할 수 없습니다. 확장 컨트롤에 특수한 UI 요구사항이나 중요한 기능이 있기 때문입니다.

Database Inspector

Android 스튜디오 4.1 Canary 6 이상에서는 새로운 Database Inspector를 사용하여 앱의 데이터베이스를 검사하고 쿼리 및 수정할 수 있습니다. 예를 들어 데이터베이스의 값을 수정하고 이 변경사항을 기기에서 테스트하여 실행 중인 앱을 디버그할 수 있습니다.

테이블 값을 수정하고 실행 중인 앱에서 변경사항 보기

시작하려면 API 수준 26 이상을 실행하는 기기에 앱을 배포하고 메뉴 바에서 View > Tool Windows > Database Inspector를 선택합니다.

Database Inspector 창에서 앱의 프로세스가 자동으로 선택되어 있지 않으면 드롭다운 메뉴에서 프로세스를 선택합니다.

테이블 검사 및 수정

Databases 패널에서 앱의 데이터베이스를 볼 수 있으며 데이터베이스 노드를 확장하여 테이블을 볼 수 있습니다. 테이블을 더블클릭하면 아래 스크린샷처럼 오른쪽에 있는 별도의 탭에서 검사기가 테이블을 엽니다. 여기서 데이터를 검사하거나 열을 기준으로 정렬하거나 앱이 기기에서 실행되는 동안 값을 수정할 수도 있습니다.

테이블 셀의 값을 변경하려면 셀을 더블클릭하여 값을 변경한 다음 Enter 키를 누르면 됩니다. Room 지속성 라이브러리를 사용 중이며 데이터베이스를 관찰하는 경우(예: LiveData 사용) 실행 중인 앱에서 거의 즉시 변경사항을 확인할 수 있습니다. 확인할 수 없으면 앱의 데이터베이스 쿼리를 새로고침하여 변경사항을 확인할 수 있습니다.

앱의 데이터베이스 검사, 쿼리, 수정

앱이 데이터베이스를 업데이트하고 검사기 창에서 이 업데이트가 자동으로 표시되게 하려면 Live updates 옆의 체크박스를 선택합니다. 이 옵션을 사용하는 동안에는 검사기의 테이블이 읽기 전용으로 되며 값을 수정할 수 없습니다.

또는 Refresh Table을 클릭하면 검사기에서 수동으로 데이터를 업데이트할 수 있습니다. 마찬가지로 데이터베이스 스키마가 변경되면 Databases 패널에서 Refresh Schema 를 클릭합니다.

데이터베이스 쿼리

데이터베이스를 쿼리하려면 Databases 패널에서 Open New Query 탭 을 클릭합니다. 그러면 오른쪽에 New Query 탭이 열립니다. 앱에 데이터베이스가 두 개 이상 포함된 경우에는 탭 창의 드롭다운 메뉴를 사용하여 쿼리할 데이터베이스를 선택합니다. 텍스트 입력란에서 SQLite 쿼리를 지정하고 Run을 클릭하면 됩니다. 그러면 검사기에서 앱의 데이터베이스를 쿼리하여 다음과 같이 결과를 반환합니다.

데이터베이스 쿼리

Room 지속성 라이브러리를 사용하는 경우 Android 스튜디오에서 @Query 주석에 정의한 쿼리를 빠르게 실행하는 데 유용한 거터 작업도 제공됩니다. 앱이 호환 기기에 배포되고 IDE에서 Database Inspector가 열려 있는 동안 아래와 같이 @Query 주석 옆의 버튼을 클릭합니다.

Room 쿼리 주석 거터 작업

Database Inspector에서 새 탭이 열리고 쿼리가 실행되어 결과가 반환됩니다. 쿼리에 명명된 결합 매개변수(예: :name)가 포함된 경우 Android 스튜디오는 쿼리를 실행하기 전에 각 매개변수의 값을 요청합니다.

새 데이터베이스 및 기존 데이터베이스 닫힘 방지

앱이 데이터베이스에 자주 연결되거나 연결이 해제되는 경우 데이터베이스를 검사하기 어려울 수 있습니다. 데이터베이스를 검사, 쿼리, 수정하려면 앱과 데이터베이스의 실시간 연결이 유지되어야 하기 때문입니다. Database Inspector 창은 열린() 데이터베이스와 닫힌() 데이터베이스를 식별할 수 있도록 아이콘을 사용합니다.

이러한 데이터베이스를 더 쉽게 검사하려면 Keep database connections open 을 클릭하여 데이터베이스의 기존 및 새 연결이 닫히지 않도록 하면 됩니다. 이 동작이 사용 설정되면 Keep database connections open 버튼이 로 변경됩니다.

네이티브 비정상 종료 보고서 기호화

네이티브 코드에서 비정상 종료나 ANR이 발생하면 시스템은 스택 트레이스를 생성하는데 이 스택 트레이스는 비정상 종료가 발생한 시점까지 프로그램에서 호출된 일련의 중첩 함수를 스냅샷으로 보여줍니다. 이러한 스냅샷은 소스의 문제를 식별하고 수정하는 데 도움이 될 수 있지만 먼저 기호화하여 머신 주소를 다시 사람이 읽을 수 있는 함수 이름으로 변환해야 합니다.

C++와 같은 네이티브 코드를 사용하여 앱이나 게임을 개발하는 경우 이제 각 앱 버전의 디버그 기호 파일을 Play Console에 업로드할 수 있습니다. Play Console에서는 이러한 디버그 기호 파일을 사용하여 앱의 스택 트레이스를 기호화하므로 비정상 종료와 ANR을 쉽게 분석할 수 있습니다.

디버그 기호 파일 업로드 방법

디버그 기호 파일을 업로드하려면 먼저 Android Gradle 플러그인 버전 4.1 이상을 사용하고 있어야 합니다.

디버그 기호 파일을 업로드하는 방법은 앱을 빌드하는 데 Android App Bundle을 사용하는지 또는 APK를 사용하는지에 따라 다릅니다.

  • Android App Bundle을 사용하여 빌드한 앱: 프로젝트에서 Android App Bundle을 빌드한다면 디버그 기호 파일을 자동으로 포함할 수 있으므로 파일을 수동으로 업로드할 필요가 없습니다. 이 파일을 포함하려면 앱의 build.gradle 파일에 다음을 추가하세요.

    android.defaultConfig.ndk.debugSymbolLevel = 'FULL'
    
  • APK를 사용하여 빌드한 앱: 프로젝트에서 APK를 빌드한다면 디버그 기호 파일이 별도로 빌드됩니다. 앱의 build.gradle 파일에 다음을 추가하세요.

    android.defaultConfig.ndk.debugSymbolLevel = 'FULL'
    

    빌드 프로세스의 일부로 Android Gradle 플러그인은 디버그 기호 파일을 다음 프로젝트 위치에 출력합니다.

    app/build/outputs/native-debug-symbols/variant-name/native-debug-symbols.zip
    

    이 디버그 기호 파일을 Play Console에 업로드합니다.

네이티브 메모리 프로파일러

이제 Android 스튜디오 메모리 프로파일러에 Android 10 이상을 실행하는 실제 기기에 배포된 앱의 네이티브 메모리 프로파일러가 포함됩니다. 샘플 크기가 32바이트인 경우 네이티브 메모리 프로파일러는 특정 기간 네이티브 코드에서 객체의 할당/할당 해제를 추적하고 다음 정보를 제공합니다.

  • Allocations: 선택한 기간 malloc() 또는 new 연산자를 통해 할당된 객체의 수입니다.
  • Deallocations: 선택한 기간 free() 또는 delete 연산자를 통해 할당 해제된 객체의 수입니다.
  • Allocations Size: 선택한 기간 모든 할당의 집계 크기(단위: 바이트)입니다.
  • Deallocations Size: 선택한 기간 확보되는 모든 메모리의 집계 크기(단위: 바이트)입니다.
  • Total Count: Allocations 열의 값에서 Deallocations 열의 값을 뺀 값입니다.
  • Remaining Size: Allocations Size 열의 값에서 Deallocations Size 열의 값을 뺀 값입니다.

네이티브 메모리 프로파일러

기록을 시작하려면 메모리 프로파일러 창 맨 위에서 Record native allocations를 클릭합니다.

Record native allocations 버튼

기록을 마칠 준비가 되면 Stop recording을 클릭합니다.

NDK 경로 설정

모듈의 build.gradle 파일에서 android.ndkPath 속성을 사용하여 로컬 NDK 설치 경로를 설정할 수 있습니다.

android {
   ndkPath "your-custom-ndk-path"
}

이 속성을 android.ndkVersion 속성과 함께 사용하면 이 경로에는 android.ndkVersion과 버전이 동일한 NDK 디렉터리가 포함되어야 합니다.

TensorFlow Lite 모델 사용

ML 모델 바인딩을 사용하면 .tflite 모델 파일을 직접 가져와 프로젝트에서 사용할 수 있습니다. Android 스튜디오에서는 사용하기 쉬운 클래스가 생성되므로, 코드를 적게 사용하고 유형 안전성을 높여 모델을 실행할 수 있습니다.

지원되는 모델

현재 ML 모델 바인딩의 구현은 메타데이터로 향상되는 경우 이미지 분류 및 스타일 전송 모델을 지원합니다. 시간이 지남에 따라 객체 감지, 이미지 세분화, 텍스트 분류와 같은 다른 문제 영역으로 지원이 확장됩니다.

메타데이터가 있는 선행 학습된 다양한 모델이 TensorFlow Hub에 제공됩니다. Adding metadata to TensorFlow Lite model(TensorFlow Lite 모델에 메타데이터 추가)에서 설명한 대로 TensorFlow Lite 모델에 메타데이터를 직접 추가할 수도 있습니다.

모델 파일 가져오기

지원되는 모델 파일을 가져오려면 다음 단계를 따르세요.

  1. File 메뉴에서(File > New > Other > TensorFlow Lite Model) TensorFlow Lite 모델 가져오기 대화상자를 엽니다.
  2. 이전에 다운로드했거나 만든 .tflite 모델 파일을 선택합니다.
  3. Finish를 클릭합니다.

그러면 모델 파일을 프로젝트로 가져와 ml/ 폴더에 배치합니다. 디렉터리가 존재하지 않으면 Android 스튜디오에서 자동으로 디렉터리가 만들어집니다.

TensorFlow Lite 모델 가져오기

모델 메타데이터 및 사용법 보기

가져온 모델의 세부정보를 확인하고 앱에서 모델을 사용하는 방법에 관한 안내를 보려면 프로젝트에서 모델 파일을 더블클릭하여 다음을 보여주는 모델 뷰어 페이지를 엽니다.

  • Model: 모델에 관한 대략적인 설명
  • Tensors: 입력 및 출력 텐서에 관한 설명
  • Sample code: 앱에서 모델과 상호작용하는 방법의 예

다음은 mobilenet_v1_0.25_160_quantized.tflite를 사용하는 예입니다.

TensorFlow Lite 모델 뷰어의 스크린샷

예에서 알 수 있듯이 Android 스튜디오는 모델과 상호작용하기 위한 MobilenetV1025160Quantized라는 클래스를 만듭니다.

모델에 메타데이터가 없는 경우 이 화면은 최소한의 정보만 제공합니다.

알려진 문제 및 해결 방법

  • 이미지 분류 및 스타일 전송 이외의 문제 영역과 관련한 TensorFlow Lite 모델은 현재 제한적으로 지원됩니다. 가져오기는 잘 작동하지만 일부 모델 입력 및 출력은 친숙한 유형이 아닌 TensorBuffers로 표현됩니다. 메타데이터가 없는 모델의 경우 모든 모델 입력 및 출력은 TensorBuffers입니다.
  • 입력 데이터 유형과 출력 데이터 유형이 DataType.UINT8 또는 DataType.FLOAT32가 아닌 모델은 지원되지 않습니다.

이 기능은 아직 개발 중이므로 의견을 보내거나 버그를 신고해 주세요.

디버그 빌드의 어설션

앱의 디버그 버전을 배포할 때 이제 자바 코드의 어설션을 사용할 수 있습니다. Android 런타임은 런타임 시(즉, -ea/-enableassertions 플래그와 동등한 항목을 자바 VM에 전달함) 어설션을 사용 설정하도록 지원하지 않으므로 이전에는 앱의 어설션이 적용되지 않았습니다.

이제 Android Gradle 플러그인 4.1.0-alpha01 이상을 사용하여 앱의 디버그 버전을 빌드하고 배포할 때 내장 컴파일러(D8)는 컴파일 시 어설션을 사용 설정하도록 코드를 다시 작성하므로, 항상 어설션 확인이 활성화됩니다.

변경사항 적용

앱에서 반복할 때 생산성을 높일 수 있도록 Android 11 개발자 프리뷰 3 이상을 실행하는 기기의 Apply Changes를 다음과 같이 개선했습니다.

빠른 배포 속도

애플리케이션을 설치하지 않고 기기에 변경사항을 배포하고 유지하는 방법을 개발하여 반복 속도를 최적화하는 데 집중적으로 투자했습니다. 초기 배포 후 Apply Code Changes 또는 Apply Changes and Restart Activity 를 사용하여 Android 11 기기에 후속 배포하는 속도가 이제 훨씬 빨라졌습니다.

이 두 작업의 차이점에 관해 자세히 알아보려면 변경사항 적용을 참조하세요.

추가 코드 변경사항 지원

Android 11 개발자 프리뷰 3 이상을 실행하는 기기의 경우 이제 메서드 및 정적 최종 기본 필드를 추가하고 Apply Code Changes 또는 Apply Changes and Restart Activity 를 클릭하여 변경사항을 실행 중인 앱에 배포할 수 있습니다.

이제 리소스를 추가하고 Apply Changes and Restart Activity 를 클릭하여 Android 11 기기에서 실행 중인 앱에 변경사항을 배포할 수도 있습니다.

AAR에서 C/C++ 종속 항목 내보내기

Android Gradle 플러그인 4.0에는 아래 설명과 같이 AAR 종속 항목에서 [Prefab] 패키지를 가져오는 기능이 추가되었습니다. Canary 10부터 버전 4.1에서는 Android 라이브러리 프로젝트의 AAR에 있는 외부 네이티브 빌드에서 라이브러리를 내보낼 수 있습니다.

네이티브 라이브러리를 내보내려면 라이브러리 프로젝트 build.gradle 파일의 android 블록에 다음을 추가하세요.

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
      headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

이 예에서 ndk-build 또는 CMake 외부 네이티브 빌드의 mylibrarymyotherlibrary 라이브러리는 빌드에서 생성된 AAR에 패키징되며 각각은 지정된 디렉터리의 헤더를 종속 디렉터리로 내보냅니다.

CMake에서 사용하는 미리 빌드된 종속 항목

Android Gradle 플러그인 4.0 이상 사용자의 경우 미리 빌드된 네이티브 라이브러리를 가져오기 위한 구성 설정이 변경되었습니다. 자세한 내용은 AGP 출시 노트를 참조하세요.

4.1 미리보기의 알려진 문제

이 섹션에서는 Android 스튜디오 4.1 미리보기의 현재 알려진 문제를 설명합니다.

4.1 Canary 10에서 패치가 작동하지 않음

현재 Android 스튜디오 4.1 Canary 10의 패치가 작동하지 않습니다. 최신 버전의 Android 스튜디오 4.1로 업데이트하려면 Android 스튜디오를 종료한 다음 최신 패키지를 다운로드하여 설치하세요.

이 문제는 Android 스튜디오 4.1 베타 1에서 수정되었습니다.

Canary 9에서 Kotlin 플러그인 누락 문제 해결 방법

Android 스튜디오 4.1 Canary 9에서는 업그레이드 후 Android 스튜디오를 처음 실행할 때 다음 오류가 표시될 수 있습니다.

missing essential plugin org.jetbrains.android

이 문제는 이전 버전의 Android 스튜디오에서 설정을 가져오면 발생할 수 있습니다. 일반적으로 새 IDE와 호환되지 않는, 로컬에 설치된 Kotlin 플러그인이 있다는 의미입니다.

이 문제를 해결하려면 다음 위치에서 Kotlin 디렉터리를 삭제하세요.

Linux: ~/.local/share/Google/AndroidStudioPreview4.1

Windows: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudioPreview4.1

MacOS: ~/Library/Application Support/Google/AndroidStudioPreview4.1

현재 JetBrains에서 사용할 수 있는 Canary 9와 호환되는 Kotlin 플러그인이 없으므로 자체 Kotlin 플러그인을 Canary 9 업데이트와 함께 번들로 제공합니다. 따라서 Kotlin 플러그인을 수동으로 설치할 필요가 없습니다.

CPU 프로파일러의 시간 초과 오류

Sample Java Methods 또는 Trace Java Methods 구성을 선택하면 Android 스튜디오 CPU 프로파일러에서 '기록 중지 실패' 오류가 발생할 수도 있습니다. 특히 idea.log 파일에 다음 오류 메시지가 표시되는 경우 시간 초과 오류입니다.

Wait for ART trace file timed out

시간 초과 오류는 샘플링된 메서드보다 추적된 메서드에, 짧은 기록보다 긴 기록에 더 많은 영향을 미치는 경향이 있습니다. 일시적인 해결 방법으로, 짧은 기록을 시도하여 오류가 사라지는지 확인하는 것이 유용할 수도 있습니다.

프로파일러에 시간 초과 문제가 발생하면 기기의 제조업체/모델과 idea.log 및 logcat의 관련 항목을 포함하여 버그를 신고하세요.

IDE의 Git 버전 제어 오류

Git 버전 제어에서 인증이 필요한 작업은 Android 스튜디오 4.1 Canary 1용 IDE에서 작동하지 않습니다.

이 문제를 해결하려면 Android 스튜디오 4.1 Canary 2로 업그레이드하세요.