page.title=Tính năng của Ngôn ngữ Java 8 page.keywords="android N", "Java 8", "Jack" @jd:body
  1. Các tính năng và API của Ngôn ngữ Java 8 được hỗ trợ
  2. Kích hoạt các tính năng của Java 8 và Jack Toolchain

Android N cung cấp hỗ trợ cho các tính năng của ngôn ngữ Java 8 mà bạn có thể sử dụng khi phát triển các ứng dụng nhắm mục tiêu Android N. Trang này mô tả các tính năng ngôn ngữ mới được hỗ trợ trong Bản xem trước Android N, cách thiết lập dự án đúng để sử dụng chúng và các vấn đề đã biết mà bạn có thể gặp phải.

Để bắt đầu sử dụng các tính năng này, bạn cần tải xuống và cài đặt Android Studio 2.1 (bản xem trước) và SDK của Bản xem trước Android N gồm có Jack toolchain cần thiết và Bổ trợ Android được cập nhật cho Gradle. Nếu bạn chưa cài đặt SDK Bản xem trước Android N, hãy xem Thiết lập để Phát triển dành cho Android N.

Lưu ý: Sử dụng các tính năng mới của ngôn ngữ Java 8 không phải là một yêu cầu để phát triển các ứng dụng nhắm mục tiêu nền tảng Android N. Nếu bạn không muốn viết mã với các tính năng của ngôn ngữ Java 8 thì bạn có đặt các giá trị mã nguồn và tương thích mục tiêu thành Java 7. Tuy nhiên, bạn vẫn phải biên dịch với JDK 8 để dựng cho nền tảng Android N.

Các tính năng và API của Ngôn ngữ Java 8 được hỗ trợ

Hiện thời, Android không hỗ trợ tất cả các tính năng của ngôn ngữ Java 8. Tuy nhiên, các tính năng sau sẽ sử dụng được khi phát triển ứng dụng nhắm mục tiêu Bản xem trước Android N:

Ngoài ra, các API tính năng của ngôn ngữ Java 8 cũng được hỗ trợ:

Lưu ý: Android N kế thừa việc triển khai các biểu thức lambda trên các lớp ẩn danh. Phương pháp này cho phép chúng tương thích ngược và có thể chạy trên các phiên bản Android cũ hơn. Để kiểm thử các biểu thức lambda trên các phiên bản cũ hơn, hãy nhớ vào tệp {@code build.gradle} và đặt {@code compileSdkVersion} và {@code targetSdkVersion} thành 23 hoặc thấp hơn.

Kích hoạt các tính năng của Java 8 và Jack Toolchain

Để sử dụng các tính năng mới của ngôn ngữ Java 8 bạn cũng cần sử dụng Jack toolchain mới. Toolchain Android mới sẽ biên dịch mã nguồn của ngôn ngữ Java sang mã bytecode dex đọc được của Android, có định dạng thư viện {@code .jack} riêng của nó và cung cấp hầu hết các tính năng toolchain dưới dạng một phần của công cụ riêng lẻ: đóng gói lại, thu gọn, làm rối mã và multidex.

Sau đây là phần so sánh hai toolchain được sử dụng để dựng các tệp DEX Android:

Cấu hình Gradle

Để kích hoạt các tính năng ngôn ngữ Java 8 và Jack cho dự án của bạn, hãy nhập nội dung sau vào tệp {@code build.gradle} theo mô-đun:

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Vấn đề đã biết

Instant Run, được giới thiệu trong Android Studio 2.0 (Beta), hiện không hoạt động với Jack và sẽ bị vô hiệu hóa khi sử dụng toolchain mới.

Bởi vì Jack không tạo ra các tệp lớp trung gian khi biên dịch một ứng dụng, các công cụ phụ thuộc vào những tệp này hiện thời không hoạt động với Jack. Một số ví dụ về các công cụ này là:

Vui lòng thông báo lỗi nếu bạn phát hiện các vấn đề khác khi sử dụng Jack.