Android Studio 3.0: Java 8 Language Features Support

WOJTEK KALICINSKI : 우리는 개발자들이 서있는 것을 좋아하지 않는다는 것을 알고 있습니다 여전히 가장 최신의 기능에 액세스하고 싶습니다

그들이 사용하는 도구에는 프로그래밍 언어가 포함되어 있습니다 Android Studio 30을 통해 우리는 Android 용 공식 언어 Kotlin 출시, 그러나 우리는 또한 인생을 더 쉽게 만들고 있습니다 소개하여 Java로 코딩하는 것을 선호하는 사용자를 위해 기본 Java 8 언어 기능 지원 툴체인 Android Gradle 플러그인 버전 3부터는, 당신은 자유롭게 람다 (lambdas), 메소드 참조 (method references) 기본 및 정적 인터페이스 메소드, try-with 자원, 모든 Android API 수준에서 특수 효과를 반복합니다

이전에 실험용 잭을 사용하도록 전환 한 경우 컴파일러는 이러한 기능을 사용할 수 있도록, 지금은 기본 툴 체인을 사용할 때 이점이 있습니다 Jack은 제한된 Java를 제공했습니다 API 24 이상에서만 작동하는 8 가지 지원 코드를 컴파일 할 때 속도가 빠르지 않았습니다 또한 개발자가 다음과 같은 도구를 사용하여 문제가 발생했습니다 클래스 형식에 의존한다

그래서 우리는 Jack을 더 이상 지원하지 않으며 더 이상 지원하지 않을 것입니다 Android Studio 및 도구에서 좋은 소식은 전환이 매우 간단하다는 것입니다 빌드 파일에서이 행을 지우십시오 인기있는 타사 솔루션 중 하나를 사용하는 경우 Java 8 언어 기능의 경우, 기능의 일부가 부족하다는 것을 알 수 있습니다 기본 툴체인의 존재 여부 Java 8 코드를 사용하는 라이브러리를 원활하게 처리 할 수 ​​있습니다

스위치를 만들고 싶다면 귀하의 빌드에서 Retrolambda 또는 DexGuard를 제거해야합니다 그렇지 않으면 기본 제공 지원이 비활성화 된 상태로 유지됩니다 그 외에도 다음 행이 있는지 확인하십시오 Gradle을 빌드하고 적어도 Android Gradle을 사용하고 있습니다 플러그인 버전 3

중요한 플러그인 이전 지침의 경우, 다른 비디오 또는 설명서를 참조하십시오 설명에 링크되어 있습니다 이제 모든 것을 준비 했으니 까 새로운 기능으로 실제로 무엇을 할 수 있습니까? 람다는 정말 멋진 속기 표기법입니다 기능적 인터페이스를 구현하기 위해, 또는 다른 말로하면, 오직 하나의 추상적 인 방법을 가진 인터페이스

Runnable 또는 청취자를 여러 번 전달할 때 다른 방법으로, 당신은이 모든 상용구가 필요합니다 몇 줄의 코드를 실행하려면 작성해야 할 코드가 모두 있어야합니다 Android Studio를 사용하면 쉽게 변환 할 수 있습니다 람다와 익명 클래스 사이 구문을 빨리 배울 수 있습니다 메소드 참조를 사용하여 때때로 직접 람다를 만들지 마라

올바른 서명이있는 메소드를 매개 변수로 전달합니다 다음과 같이 이중 콜론 구문을 사용하십시오 인터페이스에 유틸리티 메소드를 넣으려면, 이제 정적 키워드를 사용하여 작업을 수행 할 수 있습니다 또한 기본 구현을 사용하여 메소드를 가질 수 있습니다 그러면 하위 클래스를 변경할 필요가 없습니다

기본 인터페이스에 추가하십시오 시험 사용 리소스는 좋은 방법입니다 파일과 같은 닫을 수있는 리소스를 처리합니다 이전에는 잡을 때 조심해야했습니다 finally 블록의 열려있는 스트림을 닫습니다

이제 try 블록을 열어 리소스를 선언하면 성명서는 자동으로 정리됩니다 그 블록이 끝난 후에 당신을 위해서 새로운 언어 기능이 제공됩니다 바이트 코드를 표현으로 변환 다른 플랫폼과 호환 가능한 우리는 desugaring이라고 불렀다 이것은 Java 8 패키지의 백 포트가 아니기 때문에, 새로운 API 사용에는 여전히 많은 SDK 제한이 적용됩니다

코드에서 javalangstring과 같이 마지막으로 한 가지 – 우리의 지속적인 투자의 일환으로 Android Studio 3를 사용하여 툴체인으로 우리는 새로운 dexer를 소개합니다 D8을 미리 볼 수 있습니다

Gradle 속성에이 줄을 추가하십시오 파일, 빌드 프로세스는 D8을 사용합니다 클래스 파일을 dex 바이트 코드로 변환합니다 우리의 테스트에서, D8 컴파일은 더 빠르며, 더 작은 파일을 생성하고 심지어 런타임 성능을 향상시킵니다 앱 개발자로서 D8을 사용할 때 일반적인 워크 플로우를 변경해야합니다

그러나 도구 개발자는 그 D8 이동 사용자 정의 바이트 코드 후 desugar 단계 변환합니다 따라서 변환 도구 D8을 사용할 때 자바 8 바이트 코드를 볼 수 있습니다 호환성이 있어야합니다 재미있는 코드를 작성하십시오 버그 추적기에 대해 알려주십시오

새로운 덱 서를 시도 할 때 문제가 발생하면 Android Studio 30 기능에 대한 동영상을 확인하십시오 [음악 재생]