Bản phát hành cũ

Dưới đây là các ghi chú phát hành của Android Studio 3.6 trở xuống và trình bổ trợ Android cho Gradle 3.6.0 trở xuống.

Các bản phát hành Android Studio trước đây

Phiên bản 3.6 (Tháng 2 năm 2020)

Android Studio 3.6 là bản phát hành chính có nhiều điểm cải tiến và tính năng mới.

Chúng tôi cũng muốn cảm ơn tất cả những đóng góp của cộng đồng đã giúp chúng tôi triển khai bản phát hành này.

Phiên bản 3.6.3 (tháng 4 năm 2020)

Bản cập nhật nhỏ này gồm một số bản sửa lỗi. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

Phiên bản 3.6.2 (tháng 3 năm 2020)

Bản cập nhật nhỏ này gồm một số bản sửa lỗi. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

Phiên bản 3.6.1 (tháng 2 năm 2020)

Bản cập nhật nhỏ này gồm một số bản sửa lỗi. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

Công cụ thiết kế

Phiên bản Android Studio này bổ sung các điểm cập nhật cho một số công cụ thiết kế, trong đó có Layout Editor (Trình chỉnh sửa bố cục) và Resource Manager (Trình quản lý tài nguyên).

Khung hiển thị phân tách và tính năng thu phóng trong trình chỉnh sửa thiết kế

khung hiển thị phân tách cùng lúc cho thấy cả khung hiển thị thiết kế và khung hiển thị văn bản

Bản phát hành này có những điểm cập nhật sau đây đối với trình chỉnh sửa thiết kế trực quan:

  • Trình chỉnh sửa thiết kế, chẳng hạn như Layout Editor (Trình chỉnh sửa bố cục) và Navigation Editor (Trình chỉnh sửa điều hướng), nay cung cấp khung hiển thị Split (Phân tách) cho phép bạn cùng lúc xem cả chế độ Design (Thiết kế) và Code (Mã) trên giao diện người dùng. Ở góc trên cùng bên phải cửa sổ trình chỉnh sửa, nay có ba nút biểu tượng chế độ xem để bật/tắt giữa các chế độ khung hiển thị:

    • Để bật khung hiển thị phân tách, hãy nhấp vào biểu tượng Split (Phân tách) biểu tượng split view (khung hiển thị phân tách).
    • Để bật khung hiển thị nguồn XML, hãy nhấp vào biểu tượng Source (Nguồn) biểu tượng chế độ xem nguồn.
    • Để bật khung hiển thị thiết kế, hãy nhấp vào biểu tượng Design (Thiết kế) biểu tượng design view (khung hiển thị bản thiết kế).
  • Các nút điều khiển để thu phóng và kéo hình ảnh trong trình chỉnh sửa thiết kế đã chuyển sang một bảng điều khiển nổi ở góc dưới cùng bên phải cửa sổ trình chỉnh sửa.

Để tìm hiểu thêm, hãy xem bài viết Tạo giao diện người dùng bằng Layout Editor.

Thẻ tài nguyên trong Công cụ chọn màu

Để giúp bạn nhanh chóng cập nhật giá trị của tài nguyên màu trong ứng dụng khi đang dùng công cụ chọn màu trong XML hoặc công cụ thiết kế, IDE nay điền sẵn giá trị của tài nguyên màu cho bạn.

Công cụ chọn màu có các giá trị màu được điền sẵn

Trình quản lý tài nguyên

Trình quản lý tài nguyên có các bản cập nhật sau:

  • Trình quản lý tài nguyên nay hỗ trợ hầu hết các loại tài nguyên.
  • Giờ đây, khi tìm kiếm một tài nguyên, Trình quản lý tài nguyên sẽ cho thấy kết quả của tất cả các mô-đun dự án. Trước đây, các lượt tìm kiếm chỉ trả về kết quả của mô-đun đã chọn.
  • Nút bộ lọc (filter) cho phép bạn xem các tài nguyên trong các mô-đun phụ thuộc cục bộ, thư viện bên ngoài và khung Android. Bạn cũng có thể dùng bộ lọc để cho thấy các thuộc tính của giao diện.
  • Giờ đây, bạn có thể đổi tên tài nguyên trong quá trình nhập bằng cách nhấp vào bên trong hộp văn bản ở phía trên tài nguyên đó.

Để tìm hiểu thêm, hãy xem bài viết Quản lý tài nguyên giao diện người dùng của ứng dụng bằng Trình quản lý tài nguyên.

Các điểm cập nhật của trình bổ trợ Android cho Gradle

Trình bổ trợ Android cho Gradle phiên bản mới nhất bổ sung nhiều điểm cập nhật, chẳng hạn như khả năng tối ưu hoá cho tốc độ xây dựng, hỗ trợ trình bổ trợ phát hành Maven và hỗ trợ tính năng Liên kết khung hiển thị (View Binding). Để tìm hiểu thêm, hãy đọc ghi chú phát hành đầy đủ.

Liên kết thành phần hiển thị

Tính năng Liên kết khung hiển thị cho phép bạn dễ dàng viết đoạn mã tương tác với khung hiển thị bằng cách tạo lớp liên kết cho mỗi tệp bố cục XML. Các lớp này chứa thông tin tham chiếu trực tiếp đến mọi khung hiển thị có mã nhận dạng trong bố cục tương ứng.

Vì thay thế cho findViewById(), nên tính năng liên kết khung hiển thị sẽ loại bỏ rủi ro xảy ra trường hợp ngoại lệ về con trỏ rỗng do mã khung hiển thị không hợp lệ.

Để bật tính năng liên kết khung hiển thị, bạn cần sử dụng trình bổ trợ Android cho Gradle 3.6.0 trở lên và đưa dòng lệnh sau đây vào tệp build.gradle của mỗi mô-đun:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Áp dụng các thay đổi

Giờ đây, bạn có thể thêm một lớp rồi triển khai sự thay đổi mã đó cho ứng dụng đang chạy bằng cách nhấp vào Apply Code Changes (Áp dụng thay đổi mã) hoặc Apply Changes and Restart Activity (Áp dụng thay đổi và khởi động lại hoạt động) .

Để tìm hiểu thêm về sự khác biệt giữa hai thao tác này, hãy xem phần Áp dụng các thay đổi.

Tái cấu trúc chế độ trình đơn để bật tính năng hỗ trợ Ứng dụng tức thì

Giờ đây, bạn có thể hỗ trợ phiên bản tức thì cho mô-đun cơ sở bất cứ lúc nào sau khi tạo dự án ứng dụng, thực hiện như sau:

  1. Mở bảng điều khiển Project (Dự án) bằng cách chọn View > Tool Windows > Project (Xem > Cửa sổ công cụ > Dự án) trên thanh trình đơn.
  2. Nhấp chuột phải vào mô-đun cơ sở, thường có tên là "app", rồi chọn Refactor > Enable Instant Apps Support (Tái cấu trúc > Bật tính năng hỗ trợ ứng dụng tức thì).
  3. Trong hộp thoại xuất hiện, hãy chọn mô-đun cơ sở trên trình đơn thả xuống.
  4. Nhấp vào OK.

Lưu ý: Chế độ hỗ trợ phiên bản tức thì trong trình hướng dẫn Create New Project (Tạo dự án mới) đã bị xoá.

Để tìm hiểu thêm, hãy đọc bài viết Tổng quan về Google Play Instant.

Gỡ rối mã nguồn cho mã byte của lớp và phương thức trong Công cụ phân tích APK

Khi sử dụng Công cụ phân tích APK để kiểm tra tệp DEX, bạn có thể gỡ rối mã nguồn cho mã byte của lớp và phương thức theo cách sau đây:

  1. Chọn Build > Analyze APK (Xây dựng > Phân tích tệp APK) trên thanh trình đơn.
  2. Trong hộp thoại xuất hiện, hãy chuyển đến APK bạn muốn kiểm tra và chọn APK đó.
  3. Nhấp vào Open (Mở).
  4. Trong Công cụ phân tích APK, hãy chọn tệp DEX mà bạn muốn kiểm tra.
  5. Trong trình xem tệp DEX, hãy tải tệp liên kết ProGuard cho APK mà bạn đang phân tích.
  6. Nhấp chuột phải vào lớp hoặc phương thức mà bạn muốn kiểm tra rồi chọn Show bytecode (Hiện mã byte).

Công cụ gốc

Các bản cập nhật sau đây hỗ trợ việc phát triển (C/C++) gốc trong Android Studio.

Hỗ trợ Kotlin

Các tính năng sau đây của NDK trong Android Studio, trước đây được hỗ trợ trong Java, giờ đây cũng được hỗ trợ trong Kotlin:

  • Chuyển từ phần khai báo JNI sang hàm triển khai tương ứng bằng C/C++. Xem mối liên kết này bằng cách di chuột lên điểm đánh dấu của mục C hoặc C++ ở gần số dòng trong tệp mã nguồn được quản lý.

  • Tự động tạo hàm triển khai đoạn mã cho mục khai báo JNI. Trước tiên, hãy xác định mục khai báo JNI, sau đó nhập “jni” hoặc tên phương thức vào tệp C/C++ để kích hoạt.

  • Các hàm triển khai gốc không sử dụng được đánh dấu là cảnh báo trong mã nguồn. Những phần khai báo JNI thiếu phần triển khai cũng được đánh dấu là lỗi.

  • Khi bạn đổi tên (tái cấu trúc) một hàm triển khai gốc, tất cả những phần khai báo JNI tương ứng sẽ được cập nhật. Đổi tên mục khai báo JNI để cập nhật hàm triển khai gốc.

  • Kiểm tra chữ ký cho các hoạt động triển khai JNI có liên kết ngầm định.

Các điểm cải tiến khác của JNI

Giờ đây, trình soạn thảo mã trong Android Studio sẽ hỗ trợ quy trình phát triển JNI liền mạch hơn, bao gồm việc cải tiến các tính năng như gợi ý về loại, tự động hoàn thành, kiểm tra và tái cấu trúc mã.

Tải lại APK cho thư viện gốc {:#3.6-reload-apk}

Bạn không cần phải tạo dự án mới khi tệp APK trong dự án của bạn được cập nhật ở bên ngoài IDE. Android Studio sẽ phát hiện các thay đổi trong tệp APK và cung cấp tuỳ chọn để nhập lại.

Đính kèm nguồn APK chỉ dành cho Kotlin

Giờ đây, bạn có thể đính kèm các nguồn tệp APK bên ngoài chỉ dành cho Kotlin khi lập hồ sơ và gỡ lỗi cho các tệp APK được tạo sẵn. Để tìm hiểu thêm, hãy xem bài viết Đính kèm nguồn Kotlin/Java.

Phát hiện rò rỉ trong Trình phân tích bộ nhớ

Giờ đây, khi phân tích một tệp báo lỗi trong Memory Profiler (Trình phân tích bộ nhớ), bạn có thể lọc dữ liệu phân tích mà Android Studio cho rằng có thể chỉ báo lỗi rò rỉ bộ nhớ cho các thực thể ActivityFragment trong ứng dụng của bạn.

Bộ lọc này hiển thị những loại dữ liệu sau đây:

  • Các thực thể Activity đã bị huỷ bỏ nhưng vẫn đang được tham chiếu.
  • Các thực thể Fragment không có FragmentManager hợp lệ nhưng vẫn đang được tham chiếu.

Đính kèm nguồn APK chỉ dành cho Kotlin

Giờ đây, bạn có thể đính kèm các nguồn tệp APK bên ngoài chỉ dành cho Kotlin khi lập hồ sơ và gỡ lỗi cho các tệp APK được tạo sẵn. Để tìm hiểu thêm, hãy xem bài viết Đính kèm nguồn Kotlin/Java.

Phát hiện rò rỉ trong Trình phân tích bộ nhớ

Giờ đây, khi phân tích một tệp báo lỗi trong Memory Profiler (Trình phân tích bộ nhớ), bạn có thể lọc dữ liệu phân tích mà Android Studio cho rằng có thể chỉ báo lỗi rò rỉ bộ nhớ cho các thực thể ActivityFragment trong ứng dụng của bạn.

Bộ lọc này hiển thị những loại dữ liệu sau đây:

  • Các thực thể Activity đã bị huỷ bỏ nhưng vẫn đang được tham chiếu.
  • Các thực thể Fragment không có FragmentManager hợp lệ nhưng vẫn đang được tham chiếu.

Trong một số trường hợp, bộ lọc có thể mang lại kết quả dương tính giả, chẳng hạn như sau:

  • Fragment được tạo nhưng chưa được sử dụng.
  • Fragment đang được lưu vào bộ nhớ đệm nhưng không thuộc FragmentTransaction.

Để sử dụng tính năng này, trước tiên, hãy ghi lại tệp báo lỗi hoặc nhập tệp báo lỗi vào Android Studio. Để hiển thị các mảnh và hoạt động có thể bị rò rỉ bộ nhớ, hãy chọn hộp đánh dấu Activity/Fragment Leaks (Hoạt động/Mảnh bị rò rỉ) trong ngăn tệp báo lỗi của Trình phân tích bộ nhớ.

Trình phân tích tài nguyên: Phát hiện rò rỉ bộ nhớ

Lọc tệp báo lỗi để xem tìm lỗi rò rỉ bộ nhớ.

Trình mô phỏng

Android Studio 3.6 giúp bạn tận dụng một số điểm cập nhật có trong Trình mô phỏng Android 29.2.7 trở lên, như mô tả dưới đây.

Cải thiện tính năng hỗ trợ vị trí

Trình mô phỏng Android 29.2.7 trở lên cung cấp thêm tính năng hỗ trợ cho việc mô phỏng toạ độ GPS và thông tin tuyến đường. Khi bạn mở Extended controls (Chế độ điều khiển mở rộng) của Trình mô phỏng, các chế độ trong thẻ Location (Vị trí) nay được sắp xếp thành hai thẻ: Single points (Điểm đơn) và Routes (Tuyến đường).

Điểm đơn

Trong thẻ Single points (Điểm đơn), bạn có thể sử dụng webview (chế độ xem web) của Google Maps để tìm kiếm các địa điểm yêu thích, giống như cách bạn sử dụng Google Maps trên điện thoại hoặc trình duyệt. Khi tìm kiếm hoặc nhấp vào một vị trí trên bản đồ, bạn có thể lưu vị trí đó bằng cách chọn Save point (Lưu điểm) ở gần cuối bản đồ. Tất cả vị trí bạn đã lưu được liệt kê ở bên phải cửa sổ Chế độ điều khiển mở rộng (Extended controls).

Để đặt vị trí của Trình mô phỏng thành vị trí bạn đã chọn trên bản đồ, hãy nhấp vào nút Set location (Đặt vị trí) ở gần góc dưới cùng bên phải cửa sổ Extended controls (Điều khiển mở rộng).

Thẻ Single Points (Điểm đơn) trong chế độ Emulator Extended Controls (Điều khiển mở rộng của Trình mô phỏng)..

Tuyến đường

Tương tự như thẻ Single points (Điểm đơn), thẻ Routes (Tuyến đường) cung cấp webview (chế độ xem web) của Google Maps mà bạn có thể dùng để tạo tuyến đường giữa hai vị trí trở lên. Để tạo và lưu một tuyến đường, hãy làm như sau:

  1. Trong thành phần hiển thị bản đồ, hãy sử dụng trường văn bản để tìm điểm đến đầu tiên trong tuyến đường.
  2. Chọn vị trí trong kết quả tìm kiếm.
  3. Chọn nút Điều hướng (Navigate).
  4. Chọn điểm xuất phát của tuyến đường đó trong bản đồ.
  5. (Không bắt buộc) Nhấp vào Add destination (Thêm điểm đến) để thêm các điểm dừng khác vào tuyến đường của bạn.
  6. Lưu tuyến đường của bạn bằng cách nhấp vào Save route (Lưu tuyến đường) trong chế độ xem bản đồ.
  7. Đặt tên cho tuyến đường rồi nhấp vào Save (Lưu).

Để mô phỏng trình mô phỏng theo tuyến đường bạn đã lưu, hãy chọn tuyến đường trong danh sách Tuyến đường đã lưu (Saved routes) rồi nhấp vào Chạy hành trình (Play route) gần phía dưới cùng bên phải của cửa sổ Chế độ điều khiển mở rộng (Extended controls). Để dừng quá trình mô phỏng, hãy nhấp vào Stop route (Dừng tuyến đường).

Thẻ Tuyến đường trong Chế độ điều khiển mở rộng của Trình mô phỏng..

Để liên tục chạy Trình mô phỏng theo tuyến đường đã chỉ định, hãy bật nút bên cạnh Repeat playback (Lặp lại quá trình chạy). Để thay đổi tốc độ của Trình mô phỏng theo tuyến đường đã chỉ định, hãy chọn một chế độ trong trình đơn thả xuống Playback speed (Tốc độ chạy).

Hỗ trợ nhiều màn hình

Giờ đây, Android Emulator (Trình mô phỏng Android) cho phép bạn triển khai ứng dụng cho nhiều màn hình, hỗ trợ các kích thước tuỳ chỉnh và có thể giúp bạn kiểm thử ứng dụng hỗ trợ nhiều cửa sổnhiều màn hình. Khi một thiết bị ảo đang chạy, bạn có thể thêm tối đa hai màn hình bổ sung như sau:

  1. Mở Chế độ kiểm soát mở rộng (Extended controls) rồi chuyển đến thẻ Màn hình (Displays).

  2. Thêm một màn hình khác bằng cách nhấp vào Add secondary display (Thêm màn hình phụ).

  3. Trên trình đơn thả xuống bên dưới Secondary displays (Màn hình phụ), hãy làm theo một trong những cách sau:

  4. Chọn một trong các tỷ lệ khung hình có sẵn

  5. Chọn custom (tuỳ chỉnh) rồi đặt giá trị height (chiều cao), width (chiều rộng) và dpi cho màn hình tuỳ chỉnh.

  6. (Không bắt buộc) Nhấp vào Add secondary display (Thêm màn hình phụ) để thêm màn hình thứ ba.

  7. Nhấp vào Apply changes (Áp dụng các thay đổi) để thêm (các) màn hình được chỉ định vào thiết bị ảo đang chạy.

Thêm nhiều màn hình trong thẻ Display (Hiển thị) của phần Extended Controls (Chế độ điều khiển mở rộng) trên trình mô phỏng

Mẫu dự án và thiết bị ảo mới dành cho Android Automotive OS

Khi tạo một dự án mới bằng Android Studio, nay bạn có thể chọn trong số 3 mẫu trên thẻ Automotive trong trình hướng dẫn Create New Project (Tạo dự án mới), gồm có: No Activity (Không có hoạt động), Media service (Dịch vụ nội dung đa phương tiện) và Messaging service (Dịch vụ nhắn tin). Đối với các dự án hiện có, bạn có thể thêm tuỳ chọn hỗ trợ cho các thiết bị Android Automotive bằng cách chọn File > New > New Module (Tệp > Mới > Mô-đun mới) trên thanh trình đơn rồi chọn Automotive module (Mô-đun Automotive). Trình hướng dẫn Create New Module (Tạo mô-đun mới) sẽ hướng dẫn bạn tạo mô-đun mới bằng một trong các mẫu dự án của Android Automotive.

Chọn mẫu dự án của Android Automotive..

Ngoài ra, giờ đây, bạn cũng có thể tạo Thiết bị Android ảo (AVD) cho thiết bị Android Automotive OS bằng cách chọn một trong các tuỳ chọn sau trong thẻ Automotive của trình hướng dẫn Virtual Device Configuration (Cấu hình thiết bị ảo).

  1. Polestar 2: Tạo một AVD mô phỏng đầu phát trung tâm Polestar 2.
  2. Automotive (1024p theo chiều ngang) (Automotive (1024p landscape)): Tạo một AVD cho đầu phát trung tâm Android Automotive 1024 x 768 px thông thường.

Chọn thiết bị ảo chạy Android Automotive..

Mục tải xuống SDK có thể tiếp tục

Giờ đây, khi tải các thành phần và công cụ SDK xuống bằng Trình quản lý SDK, Android Studio sẽ giúp bạn tiếp tục quá trình tải xuống bị gián đoạn (ví dụ: do sự cố mạng) thay vì bắt đầu tải xuống lại từ đầu. Tính năng nâng cao này đặc biệt hữu ích cho các nội dung tải xuống có kích thước lớn (chẳng hạn như Trình mô phỏng Android hoặc hình ảnh hệ thống) khi kết nối Internet không ổn định.

Ngoài ra, nếu có tác vụ tải SDK xuống (đang chạy ở chế độ nền), thì bạn có thể tạm dừng hoặc tiếp tục quá trình tải xuống bằng các chế độ điều khiển trên thanh trạng thái.

Tác vụ tải xuống ở chế độ nền trên thanh trạng thái có các chế độ điều khiển mới giúp bạn tạm dừng hoặc tiếp tục quá trình tải xuống.

Tác vụ tải xuống ở chế độ nền trên thanh trạng thái có các chế độ điều khiển mới giúp bạn tạm dừng hoặc tiếp tục quá trình tải xuống.

Ngừng sử dụng Win32

Android Studio phiên bản Android 32 bit sẽ ngừng nhận bản cập nhật sau tháng 12 năm 2019 và sẽ không nhận hỗ trợ sau tháng 12 năm 2020. Bạn có thể tiếp tục dùng Android Studio. Tuy nhiên, để nhận thêm các bản cập nhật, hãy nâng cấp máy trạm lên phiên bản Windows 64 bit.

Để tìm hiểu thêm, hãy đọc bài đăng về việc ngừng sử dụng Windows 32 bit trên blog

Chế độ mới để tối ưu hoá thời gian đồng bộ hoá Gradle

Trong các bản phát hành trước, Android Studio đã lấy danh sách tất cả tác vụ Gradle trong quá trình Đồng bộ hoá Gradle. Đối với các dự án lớn, việc lấy danh sách tác vụ có thể làm chậm thời gian đồng bộ hoá.

Để cải thiện hiệu suất của tính năng đồng bộ hoá Gradle, hãy chuyển đến File > Settings > Experimental (Tệp > Cài đặt > Thử nghiệm) rồi chọn Do not build Gradle task list during Gradle sync (Không tạo danh sách tác vụ Gradle trong quá trình đồng bộ hoá Gradle).

Khi bạn bật chế độ này, Android Studio sẽ bỏ qua việc tạo danh sách tác vụ trong quá trình đồng bộ hoá. Điều này cho phép tính năng Đồng bộ hoá Gradle hoàn thành nhanh hơn và cải thiện khả năng thích ứng của giao diện người dùng. Xin lưu ý rằng khi IDE bỏ qua việc tạo danh sách tác vụ, danh sách tác vụ trong bảng điều khiển Gradle sẽ trống và tính năng tự động hoàn thành tên tác vụ trong các tệp bản dựng sẽ không hoạt động.

Vị trí mới để bật/tắt chế độ ngoại tuyến của Gradle

Để bật hoặc tắt chế độ ngoại tuyến của Gradle, trước tiên, hãy chọn View > Tool Windows > Gradle (Khung hiển thị > Cửa sổ công cụ > Gradle) trên thanh trình đơn. Sau đó, ở gần đầu cửa sổ Gradle, hãy nhấp vào biểu tượng Bật/tắt Chế độ ngoại tuyến Nút chế độ ngoại tuyến của Gradle trong bảng điều khiển Gradle..

IntelliJ IDEA 2019.2

IDE Android Studio chính đã được cập nhật với các cải tiến từ IntelliJ IDEA thông qua bản phát hành 2019.2.

Để tìm hiểu thêm về những điểm cải tiến từ các phiên bản IntelliJ khác được tích hợp cùng phiên bản 2019.2 theo cách tích luỹ, hãy xem các trang sau:

Người đóng góp cho cộng đồng

Cảm ơn tất cả những người đóng góp cho cộng đồng đã giúp chúng tôi phát hiện lỗi và những cách khác để cải thiện Android Studio 3.6. Cụ thể, chúng tôi muốn cảm ơn những người sau đây đã báo cáo lỗi:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • Phiên bản 3.5 (Tháng 8/2019)

    Android Studio 3.5 là một bản phát hành chính và cũng là kết quả của Project Marble. Kể từ bản phát hành Android Studio 3.3, sáng kiến Project Marble đã bao gồm nhiều bản phát hành tập trung vào việc cải thiện 3 lĩnh vực chính trên IDE: Đó là tình trạng hệ thống, hoàn thiện tính năng và sửa lỗi.

    Để tìm hiểu thông tin về những nội dung này và các nội dung cập nhật khác về Project Marble, hãy đọc bài đăng trên blog dành cho nhà phát triển Android hoặc các phần bên dưới.

    Chúng tôi cũng muốn cảm ơn tất cả những người đóng góp cho cộng đồng đã giúp chúng tôi triển khai bản phát hành này.

    Phiên bản 3.5.3 (Tháng 12 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất.

    Phiên bản 3.5.2 (Tháng 11 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

    Phiên bản 3.5.1 (Tháng 10 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

    Project Marble: Tình trạng hệ thống

    Phần này mô tả về các thay đổi trong Android Studio 3.5 tập trung vào việc cải thiện tình trạng hệ thống.

    Chế độ cài đặt đề xuất cho bộ nhớ

    Android Studio giờ đây sẽ thông báo cho bạn nếu phát hiện thấy bạn có thể cải thiện hiệu suất bằng cách tăng dung lượng RAM tối đa mà hệ điều hành nên phân bổ cho các quy trình của Android Studio, chẳng hạn như IDE chính, trình nền của Gradle và trình nền của Kotlin. Bạn có thể chấp nhận các chế độ cài đặt đề xuất bằng cách nhấp vào đường liên kết hành động trong thông báo, hoặc điều chỉnh các chế độ cài đặt này theo cách thủ công bằng cách chọn File > Settings (Tệp > Cài đặt) (hoặc Android Studio > Preferences (Android Studio > Lựa chọn ưu tiên) trên macOS) sau đó tìm phần Memory Settings (Cài đặt bộ nhớ) trong Appearance & Behavior > System Settings (Giao diện và hành vi > Cài đặt hệ thống). Để tìm hiểu thêm, hãy xem bài viết Kích thước tối đa của vùng nhớ khối xếp.

    Thông báo về các chế độ cài đặt đề xuất cho bộ nhớ.

    Thông báo về các chế độ cài đặt đề xuất cho bộ nhớ.

    Báo cáo về mức sử dụng bộ nhớ

    Đôi khi, rất khó mô phỏng và báo cáo các vấn đề về bộ nhớ trong Android Studio. Để giúp giải quyết vấn đề này, Android Studio sẽ cho phép bạn tạo báo cáo về mức sử dụng bộ nhớ bằng cách nhấp vào Help > Analyze Memory Usage (Trợ giúp > Phân tích mức sử dụng bộ nhớ) trên thanh trình đơn. Khi bạn làm như vậy, IDE sẽ xoá dữ liệu về thông tin cá nhân trên máy trước khi hỏi xem bạn có muốn gửi dữ liệu đó cho nhóm Android Studio để xác định căn nguyên của các vấn đề về bộ nhớ hay không. Để tìm hiểu thêm, hãy xem bài viết Chạy báo cáo về mức sử dụng bộ nhớ.

    Báo cáo về mức sử dụng bộ nhớ.

    Báo cáo về mức sử dụng bộ nhớ.

    Windows: Tối ưu hoá I/O của tệp diệt vi-rút

    Giờ đây, Android Studio sẽ tự động kiểm tra xem một số thư mục dự án có bị loại trừ khỏi quá trình quét diệt vi-rút theo thời gian thực hay không. Khi có thể điều chỉnh để cải thiện hiệu suất của bản dựng, Android Studio sẽ thông báo cho bạn và cung cấp hướng dẫn về cách tối ưu hoá cấu hình diệt vi-rút của bạn. Để tìm hiểu thêm, hãy xem bài viết Giảm thiểu tác động của phần mềm diệt vi-rút đến tốc độ của bản dựng.

    Project Marble: Hoàn thiện tính năng

    Phần này mô tả về các thay đổi trong Android Studio 3.5 tập trung vào việc cải thiện các tính năng hiện có.

    Áp dụng các thay đổi

    Tuỳ chọn Áp dụng các thay đổi giúp bạn đẩy các thay đổi mã và tài nguyên vào ứng dụng đang chạy của mình mà không cần khởi động lại ứng dụng và trong một số trường hợp, bạn cũng không cần khởi động lại hoạt động hiện tại. Tuỳ chọn Áp dụng các thay đổi sẽ triển khai một phương pháp hoàn toàn mới để duy trì trạng thái của ứng dụng. Không giống như tuỳ chọn Chạy tức thì (sẽ viết lại mã byte của APK), tuỳ chọn Áp dụng các thay đổi sẽ nhanh chóng xác định lại các lớp bằng cách tận dụng khả năng đo lường thời gian chạy được hỗ trợ trong Android 8.0 (API cấp 26) trở lên.

    Để tìm hiểu thêm, hãy xem bài viết Áp dụng các thay đổi.

    Nút Áp dụng các thay đổi trên thanh công cụ.

    Nút Áp dụng các thay đổi trên thanh công cụ.

    Quy trình triển khai ứng dụng

    IDE có trình đơn thả xuống mới giúp bạn nhanh chóng chọn thiết bị mà mình muốn triển khai ứng dụng. Trình đơn này cũng có một tuỳ chọn mới giúp bạn chạy ứng dụng của mình trên nhiều thiết bị cùng một lúc.

    Trình đơn thả xuống về thiết bị mục tiêu.

    Trình đơn thả xuống về thiết bị mục tiêu.

    Cải thiện tính năng phát hiện bộ nhớ đệm và đồng bộ hoá Gradle

    Giờ đây, IDE có khả năng phát hiện tốt hơn khi Gradle định kỳ xoá bộ nhớ đệm của bản dựng khi giảm mức tiêu thụ ổ đĩa cứng. Trong các phiên bản trước, trạng thái này khiến IDE báo cáo các phần phụ thuộc bị thiếu và khiến quá trình đồng bộ hoá Gradle không thành công. Giờ đây, IDE chỉ cần tải các phần phụ thuộc xuống khi cần thiết để đảm bảo rằng quá trình đồng bộ hoá Gradle đã hoàn tất thành công.

    Cải thiện tính năng báo cáo lỗi của bản dựng

    Cửa sổ Build (Xây dựng) Biểu tượng cửa sổ Build (Xây dựng) hiện cung cấp tính năng báo cáo lỗi tốt hơn, chẳng hạn như một đường liên kết đến tệp và dòng của lỗi được báo cáo cho các quy trình xây dựng sau:

    • Liên kết và biên dịch AAPT
    • R8 và ProGuard
    • Tạo tệp dex
    • Hợp nhất tài nguyên
    • Phân tích cú pháp tệp XML
    • Biên dịch Java, Kotlinc và CMake

    Nâng cấp dự án

    Cải thiện trải nghiệm cập nhật để cung cấp thêm thông tin và hành động nhằm giúp bạn cập nhật IDE và trình bổ trợ Android cho Gradle. Ví dụ: sẽ có nhiều lỗi đồng bộ hoá và tạo bản dựng hơn, trong đó có các hành động giúp bạn giảm thiểu lỗi khi cập nhật.

    Điều quan trọng cần lưu ý là bạn có thể cập nhật IDE một cách độc lập với các thành phần khác, chẳng hạn như trình bổ trợ Android cho Gradle. Vì vậy, bạn có thể cập nhật IDE một cách an toàn ngay khi có phiên bản mới và cập nhật các thành phần khác sau.

    Trình chỉnh sửa bố cục (Layout Editor)

    Android Studio 3.5 có một số điểm cải tiến cho quá trình tương tác, quản lý và trực quan hoá bố cục.

    Khi làm việc với ConstraintLayout, một phần mới có tên là Constraints (Quy tắc ràng buộc) trong bảng điều khiển Attributes (Thuộc tính) sẽ liệt kê các mối quan hệ ràng buộc của thành phần trên giao diện người dùng đã chọn. Bạn có thể chọn một quy tắc ràng buộc trong giao diện thiết kế hoặc trong danh sách quy tắc ràng buộc để làm nổi bật quy tắc ràng buộc đó ở cả hai khu vực.

    Mối quan hệ ràng buộc của một phần tử trên giao diện người dùng đã chọn.

    Mối quan hệ ràng buộc của một phần tử trên giao diện người dùng đã chọn.

    Tương tự, giờ đây, bạn có thể xoá một quy tắc ràng buộc bằng cách chọn quy tắc đó rồi nhấn phím Delete. Bạn cũng có thể xoá một quy tắc ràng buộc bằng cách giữ phím Control (Command trên macOS) và nhấp vào điểm neo của quy tắc ràng buộc. Xin lưu ý rằng khi bạn giữ phím Control hoặc Command và di chuột qua một điểm neo, mọi quy tắc ràng buộc có liên quan sẽ chuyển sang màu đỏ để cho bạn biết rằng mình có thể nhấp vào để xoá các quy tắc đó.

    Khi chọn khung hiển thị, bạn có thể tạo một quy tắc ràng buộc bằng cách nhấp vào bất cứ biểu tượng + nào trong phần Constraint Widget (Tiện ích quy tắc ràng buộc) của bảng điều khiển Attributes (Thuộc tính), như minh hoạ trong hình sau. Khi bạn tạo một quy tắc ràng buộc mới, Layout Editor hiện sẽ chọn và làm nổi bật quy tắc ràng buộc đó để cung cấp ý kiến phản hồi trực quan ngay lập tức cho nội dung bạn vừa thêm.

    Ảnh động minh hoạ cách sử dụng tiện ích quy tắc ràng buộc để tạo các quy tắc ràng buộc.

    Sử dụng tiện ích quy tắc ràng buộc để tạo các quy tắc ràng buộc.

    Khi tạo một quy tắc ràng buộc, Layout Editor hiện sẽ chỉ hiển thị các điểm neo đủ điều kiện mà bạn có thể ràng buộc. Trước đây, Layout Editor làm nổi bật mọi điểm neo trên tất cả khung hiển thị, bất kể bạn có thể ràng buộc đến các điểm neo này hay không. Ngoài ra, giờ đây, lớp phủ màu xanh lam sẽ làm nổi bật mục tiêu của quy tắc ràng buộc. Tính năng làm nổi bật này đặc biệt hữu ích khi bạn cố gắng ràng buộc đến một thành phần trùng lặp với một thành phần khác.

    Ảnh động minh hoạ cách tạo quy tắc ràng buộc cho một thành phần trùng lặp trong Android Studio 3.4.

    Tạo quy tắc ràng buộc cho một thành phần trùng lặp trong Android Studio 3.4.

    Ảnh động minh hoạ cách tạo quy tắc ràng buộc cho một thành phần trùng lặp trong Android Studio 3.5.

    Tạo quy tắc ràng buộc cho một thành phần trùng lặp trong Android Studio 3.5.

    Ngoài các bản cập nhật ở trên, Android Studio 3.5 cũng có các điểm cải tiến sau đây cho Layout Editor:

    • Giờ đây, Constraint Widget (Tiện ích quy tắc ràng buộc) và trình đơn lề thả xuống mặc định sẽ cho phép bạn sử dụng tài nguyên kích thước cho lề.
    • Trong thanh công cụ của Layout Editor (Trình chỉnh sửa bố cục), danh sách các thiết bị xác định kích thước của giao diện thiết kế đã được cập nhật. Ngoài ra, hoạt động chụp nhanh trong khi đổi kích thước cũng được cải thiện và ô điều khiển thay đổi kích thước trên giao diện thiết kế giờ đây sẽ luôn hiển thị. Khi đổi kích thước, các lớp phủ mới sẽ xuất hiện cho biết kích thước phổ biến của thiết bị.
    • Layout Editor (Trình chỉnh sửa bố cục) có một bảng phối màu mới giúp cải thiện tính nhất quán và giảm độ tương phản giữa các thành phần, văn bản cũng như các quy tắc ràng buộc.
    • Chế độ bản vẽ giờ đây sẽ hỗ trợ định dạng văn bản cho một số thành phần mà văn bản không hiển thị.

    Để biết thêm thông tin về những thay đổi này, hãy xem bài viết Android Studio Project Marble: Layout Editor.

    Liên kết dữ liệu

    Ngoài việc bổ sung hoạt động hỗ trợ xử lý chú giải gia tăng cho tính năng Liên kết dữ liệu, IDE còn cải thiện hiệu suất và các tính năng của trình chỉnh sửa thông minh khi tạo biểu thức liên kết dữ liệu trong XML.

    Ảnh động minh hoạ hiệu suất của trình soạn thảo mã trên Android Studio 3.4.

    Hiệu suất của trình soạn thảo mã trên Android Studio 3.4.

    Ảnh động minh hoạ hiệu suất của trình soạn thảo mã trên Android Studio 3.5.

    Cải thiện hiệu suất soạn thảo mã trên Android Studio 3.5.

    Cải thiện dịch vụ hỗ trợ cho các dự án C/C++

    Android Studio 3.5 có một số thay đổi giúp cải tiến dịch vụ hỗ trợ các dự án C/C++.

    Cải thiện bảng điều khiển Biến thể bản dựng để đồng bộ hoá một biến thể

    Giờ đây, bạn có thể chỉ định cả biến thể bản dựng và giao diện nhị phân ứng dụng (ABI) đang hoạt động trong bảng điều khiển Biến thể bản dựng (Build Variants). Tính năng này giúp đơn giản hoá cấu hình bản dựng cho mỗi mô-đun và cũng có thể cải thiện hiệu suất đồng bộ hoá Gradle.

    Để tìm hiểu thêm, hãy xem phần Thay đổi biến thể bản dựng.

    Bảng điều khiển Build Variants (Biến thể bản dựng) hiển thị một lựa chọn biến thể theo ABI.

    Bảng điều khiển Build Variants (Biến thể bản dựng) có một lựa chọn biến thể theo ABI.

    Sử dụng song các phiên bản NDK

    Giờ đây, bạn có thể sử dụng song nhiều phiên bản NDK. Tính năng này mang đến cho bạn khả năng định cấu hình dự án linh hoạt hơn. Ví dụ: nếu bạn có dự án sử dụng nhiều phiên bản NDK trên cùng một máy.

    Nếu dự án của bạn sử dụng trình bổ trợ Android cho Gradle 3.5.0 trở lên, bạn cũng có thể chỉ định phiên bản NDK mà mỗi mô-đun trong dự án của bạn sẽ sử dụng. Bạn có thể dùng tính năng này để tạo các bản dựng có thể mô phỏng, đồng thời giảm thiểu sự không tương thích giữa các phiên bản NDK và trình bổ trợ Android cho Gradle.

    Để tìm hiểu thêm, hãy xem bài viết Cài đặt và định cấu hình NDK, CMake và LLDB.

    Hỗ trợ ChromeOS

    Android Studio giờ đây chính thức hỗ trợ các thiết bị ChromeOS, chẳng hạn như HP Chromebook x360 14, Acer Chromebook 13/Spin 13 và các thiết bị khác mà bạn có thể đọc trong các yêu cầu của hệ thống. Để bắt đầu, hãy tải Android Studio xuống thiết bị ChromeOS tương thích rồi làm theo hướng dẫn cài đặt.

    Lưu ý: Hiện tại, Android Studio trên ChromeOS chỉ hỗ trợ quá trình triển khai ứng dụng cho một thiết bị phần cứng đã kết nối. Để tìm hiểu thêm, hãy đọc bài viết Chạy ứng dụng trên thiết bị phần cứng.

    Phân phối có điều kiện cho các mô-đun tính năng

    Phương thức phân phối có điều kiện cho phép bạn đặt một số yêu cầu về cấu hình thiết bị để hệ thống tự động tải các mô-đun tính năng xuống trong quá trình cài đặt ứng dụng. Ví dụ: bạn có thể định cấu hình cho một mô-đun tính năng có cung cấp chức năng thực tế tăng cường (AR) khi cài đặt ứng dụng chỉ cho những thiết bị hỗ trợ AR.

    Cơ chế phân phối này hiện hỗ trợ việc kiểm soát lượt tải xuống của một mô-đun tại thời điểm cài đặt ứng dụng dựa trên các cấu hình thiết bị sau:

    • Các tính năng của thiết bị liên quan đến phần cứng và phần mềm, bao gồm cả phiên bản OpenGL ES
    • Quốc gia của người dùng
    • Cấp độ API

    Nếu thiết bị không đáp ứng mọi yêu cầu mà bạn đưa ra, thì mô-đun sẽ không được tải xuống tại thời điểm cài đặt ứng dụng. Tuy nhiên, ứng dụng của bạn sau đó có thể yêu cầu tải mô-đun xuống theo yêu cầu bằng Thư viện Play Core. Để tìm hiểu thêm, hãy đọc bài viết Định cấu hình cho phương thức phân phối có điều kiện.

    IntelliJ IDEA 2019.1

    IDE Android Studio chính đã được cập nhật với các cải tiến từ IntelliJ IDEA thông qua bản phát hành 2019.1, chẳng hạn như quá trình tuỳ chỉnh giao diện.

    Phiên bản IntelliJ mới nhất đi kèm với Android Studio là 2018.3.4. Để biết thêm thông tin về những điểm cải tiến của các phiên bản IntelliJ khác đi kèm với bản phát hành Android Studio này theo cách tích luỹ, hãy xem các bản cập nhật sửa lỗi sau:

    Nội dung cập nhật của trình bổ trợ Android cho Gradle 3.5.0

    Để biết thông tin về các tính năng mới trong trình bổ trợ Android cho Gradle 3.5.0, chẳng hạn như cải thiện tính năng hỗ trợ cho quá trình xử lý chú giải gia tăng và các bài kiểm thử đơn vị có thể lưu vào bộ nhớ đệm, hãy xem ghi chú phát hành của trình bổ trợ này.

    Người đóng góp cho cộng đồng

    Cảm ơn tất cả những người đóng góp cho cộng đồng đã giúp chúng tôi phát hiện được lỗi và các cách khác để cải thiện Android Studio 3.5. Cụ thể, chúng tôi muốn cảm ơn những người sau đây đã báo cáo lỗi P0 và P1:

    Phiên bản 3.4 (Tháng 4 năm 2019)

    Android Studio 3.4 là một bản phát hành chính có nhiều tính năng và điểm cải tiến mới.

    Phiên bản 3.4.2 (Tháng 7 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog Thông tin cập nhật về bản phát hành.

    Phiên bản 3.4.1 (Tháng 5 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog Thông tin cập nhật về bản phát hành.

    Vấn đề đã biết về phiên bản 3.4.0

    • Tính năng phân tích tài nguyên bị tắt khi triển khai ứng dụng cho một thiết bị chạy Android Q Beta.

    • Khi bạn sử dụng Thư viện liên kết dữ liệu, có thể LiveDataListener.onChanged() sẽ gặp lỗi NPE. Bản sửa lỗi cho vấn đề này sẽ được đưa vào Android Studio 3.4.1 và sẽ có trong Phiên bản xem trước mới nhất của Android Studio 3.5. (Xem vấn đề #122066788)

    IntelliJ IDEA 2018.3.4

    IDE Android Studio chính đã được cập nhật với các điểm cải tiến từ IntelliJ IDEA thông qua bản phát hành 2018.3.4.

    Tính năng cập nhật của trình bổ trợ Android cho Gradle 3.4.0

    Để biết thông tin về các tính năng mới trong trình bổ trợ của cho Gradle 3.4.0, hãy xem các bản ghi chú phát hành của trình bổ trợ này.

    Hộp thoại cấu trúc dự án mới

    Hộp thoại cấu trúc dự án (PSD) mới giúp bạn dễ dàng cập nhật các phần phụ thuộc và định cấu hình nhiều khía cạnh của dự án, chẳng hạn như các mô-đun, biến thể bản dựng, cấu hình ký tên và biến thể bản dựng.

    Bạn có thể mở PSD bằng cách chọn Tệp > Cấu trúc dự án (File > Project Structure) trên thanh trình đơn. Bạn cũng có thể mở PSD bằng cách nhấn Ctrl+Shift+Alt+S trên Windows và Linux hoặc Command+; (dấu chấm phẩy) trên macOS. Bạn có thể xem phần mô tả về một số mục mới, được cập nhật của PSD ở bên dưới.

    Biến

    Mục biến mới của PSD cho phép bạn tạo và quản lý biến thể bản dựng, chẳng hạn như các biến giúp duy trì sự nhất quán số phiên bản giữa các phần phụ thuộc trên dự án.

    • Nhanh chóng xem và chỉnh sửa các biến thể bản dựng đã tồn tại trong tập lệnh bản dựng Gradle của dự án.
    • Thêm các biến thể bản dựng mới ở cấp dự án hoặc cấp mô-đun ngay trong PSD.

    Lưu ý: Nếu các tệp cấu hình bản dựng hiện có của bạn gán giá trị thông qua tập lệnh Groovy phức tạp, thì có thể bạn không chỉnh sửa được các giá trị đó thông qua PSD. Ngoài ra, bạn còn không chỉnh sửa được các tệp bản dựng viết bằng Kotlin thông qua PSD.

    Mô-đun

    Định cấu hình các thuộc tính áp dụng cho mọi biến thể bản dựng trong một mô-đun hiện có hoặc thêm các mô-đun mới vào dự án của bạn qua phần Modules (Mô-đun). Ví dụ: đây là nơi bạn có thể định cấu hình các thuộc tính của defaultConfig hoặc quản lý các cấu hình ký tên.

    Phần phụ thuộc

    Kiểm tra và trực quan hoá từng phần phụ thuộc trong biểu đồ phần phụ thuộc của dự án, do Gradle giải quyết trong quá trình đồng bộ hoá dự án, bằng cách làm theo các bước sau:

    1. Trong ngăn bên trái của PSD, hãy chọn Dependencies (Phần phụ thuộc).
    2. Trong ngăn Mô-đun (Modules), hãy chọn một mô-đun mà bạn muốn kiểm tra các phần phụ thuộc đã được giải quyết.
    3. Ở phía bên phải của PSD, hãy mở ngăn Phần phụ thuộc đã giải quyết (Resolved Dependencies), như minh hoạ bên dưới.

    Bạn cũng có thể nhanh chóng tìm kiếm và thêm phần phụ thuộc vào dự án bằng cách chọn một mô-đun trong phần Dependencies (Phần phụ thuộc) của PSD trước tiên, sau đó nhấp vào nút (+) trong phần Declared Dependencies (Phần phụ thuộc đã khai báo) rồi chọn loại phần phụ thuộc mà bạn muốn thêm.

    Tuỳ thuộc vào loại phần phụ thuộc mà bạn chọn, bạn sẽ thấy một hộp thoại tương tự như hộp thoại dưới đây, giúp bạn thêm phần phụ thuộc vào mô-đun.

    Biến thể bản dựng

    Trong phần này của PSD, hãy tạo và định cấu hình các biến thể bản dựng cũng như phiên bản sản phẩm cho mỗi mô-đun trong dự án của bạn. Bạn có thể thêm phần giữ chỗ cho tệp kê khai, thêm tệp ProGuard và chỉ định khoá ký, v.v.

    Nội dung đề xuất

    Xem nội dung cập nhật đề xuất cho các phần phụ thuộc của dự án và biến thể bản dựng trong phần Suggestions (Nội dung đề xuất), như minh hoạ dưới đây.

    Trình quản lý tài nguyên mới

    Resource Manager (Trình quản lý tài nguyên) là một cửa sổ công cụ mới dùng để nhập, tạo, quản lý và sử dụng các tài nguyên trong ứng dụng của bạn. Bạn có thể mở cửa sổ công cụ bằng cách chọn View > Tool Windows > Resource Manager (Xem > Cửa sổ công cụ > Trình quản lý tài nguyên) trên thanh trình đơn. Resource Manager giúp bạn làm những việc sau:

    • Trực quan hoá tài nguyên: Bạn có thể xem trước các đối tượng có thể vẽ, màu sắc và bố cục để tìm nhanh những tài nguyên mình cần.
    • Thêm hàng loạt: Bạn có thể cùng lúc thêm nhiều thành phần có thể vẽ bằng cách kéo và thả các thành phần đó vào cửa sổ công cụ Resource Manager (Trình quản lý tài nguyên) hoặc bằng cách sử dụng trình hướng dẫn Import drawables (Nhập đối tượng có thể vẽ). Để truy cập trình hướng dẫn, hãy chọn nút (+) ở góc trên cùng bên trái cửa sổ công cụ, sau đó chọn Import Drawables (Nhập đối tượng có thể vẽ) trên trình đơn thả xuống.
    • Chuyển đổi đồ hoạ vectơ có thể mở rộng (SVG) thành đối tượng VectorDrawable: Bạn có thể dùng trình hướng dẫn Import Drawables (Nhập đối tượng có thể vẽ) để chuyển đổi hình ảnh SVG thành đối tượng VectorDrawable.
    • Kéo và thả thành phần: Trên cửa sổ công cụ Resource Manager (Trình quản lý tài nguyên), bạn có thể kéo và thả các đối tượng có thể vẽ vào cả thành phần hiển thị thiết kế và thành phần hiển thị XML của Layout Editor.
    • Xem các phiên bản thay thế: Giờ đây, bạn có thể xem các phiên bản thay thế của tài nguyên bằng cách nhấp đúp vào tài nguyên trong cửa sổ Tool (Công cụ). Chế độ xem này cho thấy nhiều phiên bản mà bạn đã tạo và các bộ hạn định được đưa vào.
    • Chế độ xem ô và danh sách: Bạn có thể thay đổi chế độ xem trong cửa sổ Công cụ để trực quan hoá tài nguyên của mình theo nhiều cách sắp xếp.

    Để tìm hiểu thêm, hãy đọc hướng dẫn về cách Quản lý tài nguyên ứng dụng.

    Kiểm tra mã bản dựng khi phân tích và gỡ lỗi APK

    Khi bạn cung cấp tệp biểu tượng gỡ lỗi cho thư viện dùng chung .so bên trong tệp APK của mình, Android Studio sẽ xác minh rằng mã bản dựng của các tệp biểu tượng đã cung cấp khớp với mã bản dựng của thư viện .so trong tệp APK.

    Nếu bạn tạo các thư viện gốc trong tệp APK bằng một mã bản dựng thì Android Studio sẽ kiểm tra xem mã bản dựng trong các tệp biểu tượng có khớp với mã bản dựng trong thư viện gốc hay không, sau đó từ chối các tệp biểu tượng trên nếu không khớp. Nếu bạn không xây dựng bằng mã bản dựng thì việc cung cấp tệp biểu tượng không chính xác có thể gây ra sự cố khi gỡ lỗi.

    R8 được bật theo mặc định

    R8 tích hợp tính năng đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex tất cả chỉ trong một bước. Điều này giúp cải thiện đáng kể hiệu suất của các bản dựng. R8 ra mắt trong trình bổ trợ Android cho Gradle 3.3.0 và hiện được bật theo mặc định cho cả ứng dụng lẫn các dự án thư viện Android sử dụng trình bổ trợ 3.4.0 trở lên.

    Hình ảnh dưới đây cung cấp thông tin tổng quan cấp cao về quá trình biên dịch trước khi R8 ra mắt.

    Trước R8, ProGuard là một bước biên dịch riêng, tách biệt với tác vụ tạo tệp dex và đơn giản hoá.

    Hiện tại, nhờ R8, việc đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex (D8) đều được hoàn tất trong một bước, theo minh hoạ dưới đây.

    Với R8, việc đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex đều được thực hiện trong một bước biên dịch.

    Xin lưu ý rằng R8 được thiết kế để hoạt động với các quy tắc ProGuard hiện có, vì vậy, bạn có thể sẽ không cần thực hiện thêm hành động nào. Tuy nhiên, vì công nghệ này khác với ProGuard được thiết kế riêng cho các dự án Android, nên việc rút gọn và tối ưu hoá có thể khiến mã mà ProGuard không có bị xoá. Vì vậy, trong trường hợp hiếm gặp này, có thể bạn cần phải thêm quy tắc bổ sung để giữ lại đoạn mã đó trong đầu ra của bản dựng.

    Nếu gặp vấn đề khi sử dụng R8, hãy đọc bài viết Câu hỏi thường gặp về khả năng tương thích với R8 để xem có giải pháp nào không. Nếu không tìm thấy giải pháp, vui lòng báo cáo lỗi. Bạn có thể tắt R8 bằng cách thêm một trong các dòng sau vào tệp gradle.properties của dự án:

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    Lưu ý: Đối với một loại bản dựng cụ thể, nếu bạn đặt useProguard thành false trong tệp build.gradle của mô-đun ứng dụng, thì trình bổ trợ Android cho Gradle sẽ sử dụng R8 để rút gọn mã của ứng dụng cho loại bản dựng đó, bất kể bạn có tắt R8 trong tệp gradle.properties của dự án hay không.

    Tất cả các loại đối số được hỗ trợ trong thành phần Navigation (Điều hướng) hiện cũng được hỗ trợ trong Navigation Editor. Để biết thêm thông tin về các loại được hỗ trợ, hãy xem bài viết Chuyển dữ liệu giữa các đích đến.

    Các điểm cải tiến của Layout Editor {:#layout-editor}

    Ngăn Attributes (Thuộc tính) trong Layout Editor được tinh giản thành một trang duy nhất cùng với các mục mà bạn có thể mở rộng để xem các thuộc tính có thể định cấu hình. Ngăn Thuộc tính (Attributes) cũng có những điểm cập nhật sau đây:

    • Phần mới tên là Declared Attributes (Thuộc tính đã khai báo) liệt kê những thuộc tính mà tệp bố cục chỉ định và cho phép bạn để nhanh chóng thêm các thuộc tính mới.
    • Ngăn Attributes (Thuộc tính) giờ đây cũng có các chỉ báo tính năng bên cạnh mỗi thuộc tính bền vững khi giá trị của thuộc tính đó là một mã tham chiếu tài nguyên hoặc trống.
    • Các thuộc tính có lỗi hoặc cảnh báo giờ đây sẽ được làm nổi bật. Nội dung đánh dấu màu đỏ để chỉ các lỗi (ví dụ: khi bạn sử dụng giá trị bố cục không hợp lệ) và nội dung đánh dấu màu cam để chỉ các cảnh báo (ví dụ: khi bạn sử dụng giá trị được cố định giá trị trong mã).

    Thao tác mới theo ý định để nhập nhanh các phần phụ thuộc

    Nếu bạn bắt đầu sử dụng một số lớp Jetpack và Firebase trong đoạn mã của mình nhưng chưa thêm phần phụ thuộc bắt buộc của thư viện Gradle vào dự án của bạn thì một thao tác mới theo ý định sẽ đề xuất thực hiện việc này. Ví dụ: nếu bạn tham chiếu lớp WorkManager mà không nhập trước phần phụ thuộc android.arch.work:work-runtime bắt buộc, thì một thao tác theo ý định sẽ giúp bạn thực hiện thao tác đó dễ dàng chỉ bằng một lần nhấp, theo minh hoạ dưới đây.

    Cụ thể, vì Jetpack đã đóng gói lại thư viện hỗ trợ thành các gói riêng biệt để dễ quản lý và cập nhật hơn, nên thao tác theo ý định này sẽ giúp bạn chỉ thêm nhanh các phần phụ thuộc mà bạn cần cho các thành phần Jetpack mà bạn muốn sử dụng.

    Phiên bản 3.3 (Tháng 1 năm 2019)

    Android Studio 3.3 là một bản phát hành chính có nhiều tính năng và điểm cải tiến mới.

    Phiên bản 3.3.2 (Tháng 3 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất. Để xem danh sách những bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trong phần Release Updates (Thông tin cập nhật về bản phát hành) trên blog.

    Phiên bản 3.3.1 (tháng 2 năm 2019)

    Bản cập nhật nhỏ này bao gồm nhiều bản sửa lỗi và điểm cải tiến hiệu suất.

    IntelliJ IDEA 2018.2.2

    IDE Android Studio chính đã được cập nhật với các điểm cải tiến từ IntelliJ IDEA thông qua bản phát hành 2018.2.2.

    Tính năng cập nhật của trình bổ trợ Android cho Gradle

    Để biết thông tin về các tính năng mới trong trình bổ trợ Android cho Gradle, hãy xem các bản ghi chú phát hành của trình bổ trợ này.

    Trình chỉnh sửa điều hướng cho phép bạn nhanh chóng trực quan hoá và đưa tính năng điều hướng vào ứng dụng của mình bằng cách sử dụng Thành phần cấu trúc điều hướng (Navigation Architecture Component).

    Để biết thêm thông tin, hãy xem bài viết Triển khai tính năng điều hướng bằng Thành phần cấu trúc điều hướng.

    Xoá thư mục Android Studio không dùng đến

    Trong lần đầu tiên bạn chạy Android Studio phiên bản lớn, Android Studio sẽ tìm các thư mục chứa bộ nhớ đệm, chế độ cài đặt, chỉ mục và nhật ký của những phiên bản Android Studio không tìm thấy bản cài đặt tương ứng. Sau đó, hộp thoại Delete Unused Android Studio (Xoá thư mục Android Studio không dùng đến) sẽ cho thấy vị trí, kích thước và thời gian sửa đổi gần đây nhất của các thư mục không dùng đến này, đồng thời đưa ra tuỳ chọn để xoá những thư mục đó.

    Dưới đây là danh sách các thư mục mà Android Studio xem xét xoá:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    Cải tiến công cụ tìm lỗi mã nguồn

    Khi được gọi từ Gradle, Công cụ tìm lỗi mã nguồn sẽ hoạt động nhanh hơn đáng kể – với các dự án có quy mô lớn hơn, công cụ tìm lỗi mã nguồn này dự kiến có thể chạy nhanh hơn gấp 4 lần.

    Trình hướng dẫn Tạo dự án mới

    Trình hướng dẫn Create New Project (Tạo dự án mới) có giao diện mới cũng như có các điểm cập nhật để tinh giản quy trình tạo dự án mới trong Android Studio.

    Để biết thêm thông tin, hãy xem bài viết Tạo dự án.

    Bản cập nhật của trình phân tích tài nguyên

    Android Studio 3.3 cung cấp các bản cập nhật cho một số trình phân tích tài nguyên.

    Cải tiến hiệu suất

    Dựa trên ý kiến phản hồi của người dùng, hiệu suất hiển thị khi sử dụng trình phân tích tài nguyên đã được cải thiện đáng kể. Hãy tiếp tục cung cấp ý kiến phản hồi, đặc biệt nếu bạn vẫn gặp các vấn đề về hiệu suất.

    Tuỳ chọn theo dõi hoạt động phân bổ bộ nhớ của trình phân tích tài nguyên

    Để cải thiện hiệu suất của ứng dụng trong quá trình phân tích, Trình phân tích bộ nhớ hiện sẽ lấy mẫu các lượt phân bổ bộ nhớ định kỳ theo mặc định. Nếu muốn, bạn có thể thay đổi hành vi này bằng cách sử dụng trình đơn thả xuống Allocation Tracking (Theo dõi hoạt động phân bổ) khi kiểm thử trên các thiết bị chạy Android 8.0 (API cấp 26) trở lên.

    Khi sử dụng trình đơn thả xuống Allocation Tracking (Theo dõi hoạt động phân bổ), bạn có thể chọn trong số các chế độ sau:

    • Full (Đầy đủ): Ghi lại toàn bộ quá trình phân bổ bộ nhớ cho đối tượng. Xin lưu ý rằng nếu có một ứng dụng phân bổ rất nhiều đối tượng, thì bạn có thể thấy các vấn đề nghiêm trọng về hiệu suất trong khi phân tích.

    • Sampled (Lấy mẫu): Ghi lại việc lấy mẫu định kỳ của quá trình phân bổ bộ nhớ cho đối tượng. Đây là hành vi mặc định và có ít tác động hơn đến hiệu suất của ứng dụng trong quá trình phân tích. Bạn có thể gặp phải một số vấn đề về hiệu suất với những ứng dụng phân bổ quá nhiều đối tượng trong một khoảng thời gian ngắn.

    • Off (Tắt): Tắt chế độ phân bổ bộ nhớ. Nếu chưa chọn, chế độ này sẽ tự động bật trong quá trình ghi CPU rồi quay lại chế độ cài đặt trước đó khi quá trình ghi hoàn tất. Bạn có thể thay đổi hành vi này trong hộp thoại cấu hình bản ghi CPU.

      Hoạt động theo dõi này ảnh hưởng đến cả đối tượng Java và tệp tham chiếu JNI.

    Kiểm tra dữ liệu kết xuất khung

    Trong Trình phân tích CPU, giờ đây, bạn có thể kiểm tra thời gian cần thiết để ứng dụng Java hiển thị từng khung trên luồng hiển thị và luồng giao diện người dùng chính. Dữ liệu này có thể hữu ích khi tìm hiểu về các vấn đề liên quan đến nút thắt cổ chai khiến giao diện người dùng bị giật và tốc độ khung hình thấp. Ví dụ: Mỗi khung mất hơn 16 mili giây để duy trì tốc độ khung hình mượt mà sẽ hiển thị bằng màu đỏ.

    Để xem dữ liệu kết xuất khung, hãy ghi lại dấu vết bằng cách sử dụng cấu hình cho phép bạn Trace System Calls (Truy vết lệnh gọi hệ thống). Sau khi ghi lại dấu vết, hãy tìm thông tin về từng khung hình theo tiến trình ghi trong mục có tên FRAMES (KHUNG HÌNH), như minh hoạ bên dưới.

    Để tìm hiểu thêm về cách kiểm tra và khắc phục vấn đề về tốc độ khung hình, hãy đọc bài viết Kết xuất chậm.

    Các mảnh trong tiến trình của sự kiện

    Tiến trình của sự kiện giờ đây sẽ hiển thị thời điểm các mảnh được đính kèm và tách ra. Ngoài ra, khi bạn di chuột qua một mảnh, phần chú thích sẽ cho bạn biết trạng thái của mảnh đó.

    Xem văn bản được định dạng cho các gói dữ liệu kết nối trong Trình phân tích mạng

    Trước đây, Trình phân tích mạng chỉ hiển thị văn bản thô từ các gói dữ liệu tải trọng kết nối. Android Studio 3.3 hiện định dạng một số loại văn bản theo mặc định, bao gồm cả định dạng JSON, XML và HTML. Trong thẻ Response (Phản hồi) và Request (Yêu cầu), hãy nhấp vào đường liên kết View Parsed (Xem phần đã phân tích cú pháp) để hiển thị văn bản đã định dạng, sau đó nhấp vào đường liên kết View Source (Xem nguồn) để hiển thị văn bản thô.

    Để biết thêm thông tin, hãy xem bài viết Kiểm tra lưu lượng truy cập mạng bằng Trình phân tích mạng.

    Tự động tải các thành phần của SDK xuống

    Khi dự án của bạn cần có thành phần SDK của nền tảng SDK, NDK hoặc CMake, Gradle hiện sẽ tìm cách tự động tải các gói bắt buộc xuống, miễn là trước đây bạn đã chấp nhận mọi thoả thuận cấp phép liên quan bằng cách sử dụng Trình quản lý SDK.

    Để biết thêm thông tin, hãy xem bài viết Tự động tải các gói bị thiếu xuống nhờ Gradle.

    Hỗ trợ Clang-Tidy

    Android Studio hiện sẽ hỗ trợ tính năng phân tích mã tĩnh bằng cách sử dụng Clang-Tidy cho các dự án có chứa mã gốc. Để bật tính năng hỗ trợ Clang-Tidy, hãy cập nhật NDK lên phiên bản r18 trở lên.

    Sau đó, bạn có thể bật hoặc bật lại tính năng kiểm tra bằng cách mở hộp thoại Settings (Cài đặt) hoặc Preferences (Lựa chọn ưu tiên) rồi chuyển đến Editor > Inspections > C/C++ > General > Clang-Tidy (Trình chỉnh sửa > Kiểm tra > C/C++ > Chung > Clang-Tidy). Khi chọn tính năng kiểm tra này trong hộp thoại Settings (Cài đặt) hoặc Preferences (Lựa chọn ưu tiên), bạn cũng có thể thấy danh sách các chế độ kiểm tra Clang-Tidy đã bật và tắt trong mục Option (Tuỳ chọn) của bảng điều khiển ở ngoài cùng bên phải. Để bật các chế độ kiểm tra bổ sung, hãy thêm chúng vào danh sách rồi nhấp vào Apply (Áp dụng).

    Để định cấu hình Clang-Tidy bằng các tuỳ chọn bổ sung, hãy nhấp vào Configure Clang-Tidy Checks Options (Định cấu hình các tuỳ chọn kiểm tra Clang-Tidy) rồi thêm các tuỳ chọn đó vào hộp thoại mở ra.

    Xoá các tuỳ chọn tuỳ chỉnh C++

    Các tuỳ chọn sau đã bị xoá khỏi hộp thoại Customize C++ Support (Hỗ trợ tuỳ chỉnh C++):

    • Hỗ trợ ngoại lệ (-fexceptions)
    • Hỗ trợ thông tin về loại thời gian chạy (-ftti)

    Hành vi tương ứng được bật cho tất cả dự án được tạo qua Android Studio.

    CMake phiên bản 3.10.2

    CMake phiên bản 3.10.2 giờ đây sẽ được đưa vào Trình quản lý SDK. Xin lưu ý rằng Gradle sẽ vẫn sử dụng phiên bản 3.6.0 theo mặc định.

    Để chỉ định một phiên bản CMake cho Gradle sử dụng, hãy thêm nội dung sau đây vào tệp build.gradle của mô-đun:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Để biết thêm thông tin về cách định cấu hình CMake trong build.gradle, hãy xem phần Định cấu hình Gradle theo cách thủ công.

    Cú pháp “+” mới để chỉ định các phiên bản CMake tối thiểu

    Khi chỉ định một phiên bản CMake trong tệp build.gradle của mô-đun chính, giờ đây, bạn có thể thêm một dấu “+” để khớp với hành vi của lệnh cmake_minimum_required() của CMake.

    Thận trọng: Bạn không nên sử dụng cú pháp "+" với các phần phụ thuộc khác của bản dựng vì các phần phụ thuộc động có thể gây ra tình trạng cập nhật phiên bản không mong muốn cũng như gây khó khăn cho việc xử lý sự khác biệt về phiên bản.

    Android App Bundle hiện đã hỗ trợ Ứng dụng tức thì

    Android Studio giờ đây sẽ giúp bạn tạo Android App Bundle với khả năng hỗ trợ đầy đủ cho Google Play Instant. Nói cách khác, giờ đây, bạn có thể tạo và triển khai cả ứng dụng cần cài đặt lẫn trải nghiệm tức thì từ một dự án Android Studio, đồng thời đưa chúng vào một Android App Bundle duy nhất.

    Nếu bạn đang tạo một dự án Android Studio mới bằng hộp thoại Create New Project (Tạo dự án mới), hãy nhớ đánh dấu hộp bên cạnh tuỳ chọn Configure your project > This project will support instant apps (Định cấu hình dự án > Dự án này sẽ hỗ trợ ứng dụng tức thì). Sau đó, Android Studio sẽ tạo một dự án ứng dụng mới như bình thường, nhưng có chứa các thuộc tính sau trong tệp kê khai để thêm tính năng hỗ trợ ứng dụng tức thì vào mô-đun cơ sở của ứng dụng:

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    Sau đó, bạn có thể tạo một tính năng hỗ trợ phiên bản tức thì bằng cách chọn File > New > New Module (Tệp > Mới > Mô-đun mới) trên thanh trình đơn rồi chọn Instant Dynamic Feature Module (Mô-đun tính năng động tức thì) trong hộp thoại Create New Module (Tạo mô-đun mới). Hãy lưu ý rằng việc tạo mô-đun này cũng sẽ ngay lập tức kích hoạt mô-đun cơ sở của ứng dụng.

    Để triển khai ứng dụng cho một thiết bị cục bộ ở dạng trải nghiệm tức thì, hãy chỉnh sửa cấu hình chạy rồi chọn hộp bên cạnh tuỳ chọn General > Deploy as instant app (Chung > Triển khai ở dạng ứng dụng tức thì).

    Đồng bộ hoá dự án có một biến thể

    Việc đồng bộ hoá dự án với cấu hình bản dựng là một bước quan trọng để Android Studio có thể hiểu cấu trúc dự án của bạn. Tuy nhiên, đối với các dự án lớn, quá trình này có thể tốn nhiều thời gian. Nếu dự án của bạn sử dụng nhiều biến thể bản dựng, thì giờ đây, bạn có thể tối ưu hoá tính năng đồng bộ hoá dự án bằng cách chỉ giới hạn các biến thể đó thành biến thể bạn đang chọn.

    Bạn cần sử dụng Android Studio 3.3 trở lên với trình bổ trợ Android cho Gradle 3.3.0 trở lên để bật tính năng tối ưu hoá này. Khi bạn đáp ứng các yêu cầu trên, IDE sẽ nhắc bạn bật tính năng tối ưu hoá này khi bạn đồng bộ hoá dự án. Tính năng tối ưu hoá này cũng được bật theo mặc định trên các dự án mới.

    Để bật tính năng tối ưu hoá này theo cách thủ công, hãy nhấp vào File > Settings > Experimental > Gradle (Tệp > Cài đặt > Thử nghiệm > Gradle) (Android Studio > Preferences > Experimental > Gradle (Android Studio > Lựa chọn ưu tiên > Thử nghiệm > Gradle) trên máy Mac) rồi chọn hộp đánh dấu Only sync the active variant (Chỉ đồng bộ hoá biến thể đang hoạt động).

    Lưu ý: Tính năng tối ưu hoá này hiện hỗ trợ các dự án chỉ bao gồm ngôn ngữ lập trình Java. Chẳng hạn, nếu IDE phát hiện mã Kotlin hoặc C++ trong dự án của bạn, thì IDE sẽ không tự động bật tính năng tối ưu hoá này và bạn cũng không nên bật theo cách thủ công.

    Để biết thêm thông tin, hãy xem bài viết Bật tính năng đồng bộ hoá dự án có một biến thể.

    Gửi ý kiến phản hồi nhanh chóng

    Nếu đã chọn chia sẻ số liệu thống kê về việc sử dụng nhằm giúp cải thiện Android Studio, bạn sẽ thấy 2 biểu tượng mới này trên thanh trạng thái ở cuối cửa sổ IDE:

    Bạn chỉ cần nhấp vào biểu tượng thể hiện đúng nhất trải nghiệm hiện tại của mình khi dùng IDE. Khi bạn nhấp vào biểu tượng nêu trên, IDE sẽ gửi số liệu thống kê về việc sử dụng để giúp nhóm Android Studio hiểu rõ hơn quan điểm của bạn. Trong một số trường hợp, chẳng hạn như khi đưa ra chỉ báo về trải nghiệm không tốt khi dùng IDE, bạn sẽ có thể cung cấp thêm ý kiến phản hồi.

    Nếu chưa nhấp vào biểu tượng nêu trên, bạn có thể bật tính năng chia sẻ số liệu thống kê về việc sử dụng bằng cách mở hộp thoại Settings (Cài đặt) (Preferences (Lựa chọn ưu tiên) trên máy Mac), chuyển đến Appearance & Behavior > System Settings > Data Sharing (Giao diện và hành vi > Cài đặt hệ thống > Chia sẻ dữ liệu) rồi chọn Send usage statistics to Google (Gửi số liệu thống kê về việc sử dụng cho Google).

    Phiên bản 3.2 (Tháng 9 năm 2018)

    Android Studio 3.2 là một bản phát hành chính có nhiều tính năng và điểm cải tiến mới.

    Phiên bản 3.2.1 (Tháng 10 năm 2018)

    Bản cập nhật dành cho Android Studio 3.2 này bao gồm các thay đổi và bản sửa lỗi sau đây:

    • Phiên bản Kotlin đi kèm hiện là 1.2.71.
    • Phiên bản công cụ bản dựng mặc định hiện là 28.0.3.
    • Trong Thư viện điều hướng, các loại đối số đã được đổi tên từ type thành argType.
    • Các lỗi sau đây đã được khắc phục:
      • Khi bạn sử dụng thư viện Liên kết dữ liệu, tên biến có dấu gạch dưới gây ra lỗi biên dịch.
      • CMake khiến IntelliSense và các tính năng CLion khác gặp lỗi.
      • Việc thêm SliceProvider gây lỗi biên dịch trong những dự án không sử dụng thư viện androidx.*.
      • Một số chương trình kiểm thử đơn vị Kotlin không chạy.
      • Vấn đề liên quan đến việc liên kết dữ liệu gây ra lỗi PsiInvalidElementAccessException.
      • Đôi khi, phần tử <merge> khiến Layout Editor gặp sự cố.

    Các vấn đề đã biết về phiên bản 3.2.0

    Lưu ý: Những sự cố này đã được khắc phục trong Android Studio phiên bản 3.2.1

    • Bạn không nên sử dụng Kotlin phiên bản 1.2.70.

      Kotlin phiên bản 1.2.61 khắc phục lỗi có thể khiến Android Studio bị treo, nhưng Kotlin phiên bản 1.2.70 thì chưa khắc phục lỗi này.

      Tuy nhiên, Kotlin phiên bản 1.2.71 trở lên thì lại khắc phục lỗi này.

    • Mặc dù bạn thường không cần chỉ định phiên bản của công cụ bản dựng, nhưng khi dùng trình bổ trợ Android cho Gradle phiên bản 3.2.0 với renderscriptSupportModeEnabled có giá trị là true, bạn cần đưa mã sau vào tệp build.gradle của từng mô-đun:

      android.buildToolsVersion "28.0.3"

    Trợ lý thông báo tính năng mới

    Trợ lý thông báo tính năng mới sẽ thông báo cho bạn về những thay đổi mới nhất trong Android Studio.

    Trợ lý sẽ mở khi bạn khởi động Android Studio sau một lượt cài đặt mới hoặc cập nhật nếu phát hiện thấy có thông tin mới để hiển thị. Bạn cũng có thể mở trợ lý bằng cách chọn Help > What's new in Android Studio (Trợ giúp > Tính năng mới trong Android Studio).

    Android Jetpack

    Android Jetpack giúp tăng tốc độ phát triển Android bằng các thành phần, công cụ và hướng dẫn giúp loại bỏ các thao tác lặp lại, đồng thời cho phép bạn xây dựng ứng dụng chất lượng cao, có thể kiểm thử một cách nhanh chóng và dễ dàng hơn. Android Studio có các bản cập nhật hỗ trợ Jetpack sau đây. Để biết thêm thông tin, hãy xem Tài liệu về Jetpack.

    Trình chỉnh sửa điều hướng mới tích hợp với các thành phần điều hướng của Android Jetpack sẽ cung cấp khung hiển thị đồ hoạ nhằm tạo cấu trúc điều hướng cho ứng dụng. Trình chỉnh sửa điều hướng giúp đơn giản hoá việc thiết kế và triển khai hoạt động điều hướng giữa các vị trí lưu trữ trong ứng dụng.

    Trong Android Studio 3.2, Trình chỉnh sửa điều hướng là một tính năng thử nghiệm. Để bật Trình chỉnh sửa điều hướng, hãy nhấp vào File > Settings (Tệp > Cài đặt) (Android Studio > Preferences (Android Studio > Lựa chọn ưu tiên) trên máy Mac), chọn danh mục Experimental (Thử nghiệm) trong ngăn bên trái, đánh dấu vào hộp bên cạnh Enable Navigation Editor (Bật Trình chỉnh sửa điều hướng) và khởi động lại Android Studio.

    Để tìm hiểu thêm, hãy đọc tài liệu tài liệu về Trình chỉnh sửa điều hướng.

    Di chuyển AndroidX

    Chúng tôi sẽ di chuyển Thư viện hỗ trợ Android thuộc Jetpack sang một thư viện tiện ích Android mới bằng cách sử dụng không gian tên androidx. Để biết thêm thông tin, hãy xem bài viết Tổng quan về AndroidX.

    Android Studio 3.2 sẽ giúp bạn thực hiện quy trình này bằng một tính năng di chuyển mới.

    Để di chuyển một dự án hiện có sang AndroidX, hãy chọn Tái cấu trúc > Di chuyển sang AndroidX (Refactor > Migrate to AndroidX). Nếu bạn có các phần phụ thuộc Maven chưa di chuyển sang không gian tên AndroidX thì hệ thống xây dựng của Android Studio cũng sẽ tự động chuyển đổi những phần phụ thuộc dự án đó.

    Trình bổ trợ Android cho Gradle sẽ cung cấp các cờ chung sau đây mà bạn có thể đặt trong tệp gradle.properties của mình:

    • android.useAndroidX: Khi được đặt thành true, cờ này biểu thị rằng bạn muốn bắt đầu dùng AndroidX kể từ giờ trở đi. Nếu không có cờ này, Android Studio sẽ hoạt động như thể cờ này được đặt thành false.
    • android.enableJetifier: Khi được đặt thành true, cờ này biểu thị rằng bạn muốn được hỗ trợ về công cụ (từ trình bổ trợ Android cho Gradle) để tự động chuyển đổi các thư viện bên thứ ba hiện có như thể các thư viện này được viết cho AndroidX. Nếu không có cờ này, Android Studio sẽ hoạt động như thể cờ này được đặt thành false.

    Cả hai cờ sẽ đều được đặt thành true khi bạn sử dụng lệnh Migrate to AndroidX (Di chuyển sang AndroidX).

    Nếu muốn bắt đầu sử dụng thư viện AndroidX ngay mà không cần chuyển đổi các thư viện bên thứ ba hiện có, bạn có thể đặt cờ android.useAndroidX thành true và cờ android.enableJetifier thành false.

    Android App Bundle

    Android App Bundle là một định dạng tải lên mới bao gồm tất cả tài nguyên và mã đã biên dịch của ứng dụng, nhưng tạm ngưng việc tạo và ký APK cho Cửa hàng Google Play.

    Sau đó, mô hình phân phát ứng dụng mới của Google Play sử dụng gói ứng dụng để tạo và phân phát các APK được tối ưu hoá cho cấu hình thiết bị của mỗi người dùng. Như vậy, mỗi người dùng chỉ cần tải mã và tài nguyên mà họ cần xuống để chạy ứng dụng. Bạn không cần phải xây dựng, ký và quản lý nhiều APK nữa, đồng thời người dùng sẽ nhận được tệp tải xuống có kích thước nhỏ hơn và được tối ưu hoá tốt hơn.

    Ngoài ra, bạn có thể thêm các mô-đun tính năng vào dự án ứng dụng và đưa các mô-đun đó vào gói ứng dụng của mình. Sau đó, người dùng có thể tải xuống và cài đặt các tính năng của ứng dụng theo yêu cầu.

    Để tạo một gói, hãy chọn Build > Build Bundle(s)/APK(s) > Build Bundle(s) (Tạo > Tạo gói/APK >Tạo gói).

    Để biết thêm thông tin, bao gồm cả hướng dẫn tạo và phân tích Android App Bundle, hãy xem Android App Bundle.

    Dữ liệu mẫu trong Layout Editor (Trình chỉnh sửa bố cục)

    Nhiều bố cục trong Android chứa dữ liệu thời gian chạy có thể gây khó khăn cho việc trực quan hoá giao diện của bố cục trong giai đoạn thiết kế của quá trình phát triển ứng dụng. Giờ đây, bạn có thể dễ dàng thấy bản xem trước khung hiển thị trong Layout Editor có chứa dữ liệu mẫu. Khi bạn thêm một khung hiển thị, nút sẽ xuất hiện ở bên dưới khung hiển thị đó trong cửa sổ Thiết kế (Design). Hãy nhấp vào nút này để thiết lập các thuộc tính khung hiển thị thời gian thiết kế. Bạn có thể chọn trong số nhiều mẫu dữ liệu mẫu và chỉ định số lượng mục mẫu để điền sẵn vào khung hiển thị.

    Để thử sử dụng dữ liệu mẫu, hãy thêm RecyclerView vào một bố cục mới, nhấp vào nút thuộc tính thời gian thiết kế ở bên dưới khung hiển thị và chọn một lựa chọn trên băng chuyền gồm các mẫu dữ liệu mẫu.

    Lát cắt

    Lát cắt mang đến một cách mới để nhúng các phần chức năng của ứng dụng vào các nền tảng giao diện người dùng khác trên Android. Ví dụ: Lát cắt có thể hiển thị nội dung và chức năng của ứng dụng trong các nội dung đề xuất của Google Tìm kiếm.

    Android Studio 3.2 sở hữu một mẫu tích hợp sẵn giúp bạn mở rộng ứng dụng bằng các Slice Provider API (API Trình cung cấp lát cắt) mới, cũng như các tuỳ chọn kiểm tra giúp tìm lỗi mã nguồn mới nhằm đảm bảo các phương pháp bạn đang sử dụng khi tạo Lát cắt là tốt nhất.

    Để bắt đầu, hãy nhấp chuột phải vào một thư mục dự án rồi chọn New > Other > Slice Provider (Mới > Khác > Trình cung cấp lát cắt).

    Để tìm hiểu thêm (bao gồm cả cách kiểm tra các lượt tương tác trên Lát cắt), hãy đọc Hướng dẫn bắt đầu sử dụng Lát cắt.

    Kotlin 1.2.61

    Android Studio 3.2 tích hợp Kotlin 1.2.61, và SDK Android mới có khả năng tích hợp tốt hơn với Kotlin. Để biết thêm thông tin, hãy xem blog dành cho nhà phát triển Android.

    IntelliJ IDEA 2018.1.6

    IDE Android Studio chính đã được cập nhật với các điểm cải tiến từ IntelliJ IDEA thông qua bản phát hành 2018.1.6.

    Trình phân tích tài nguyên trên Android

    Hãy dùng thử các tính năng mới sau đây của Trình phân tích tài nguyên Android trong Android Studio 3.2.

    Phiên

    Giờ đây, bạn có thể lưu dữ liệu của Trình phân tích tài nguyên ở dạng các phiên để truy cập và kiểm tra sau. Trình phân tích tài nguyên sẽ lưu giữ dữ liệu cho phiên của bạn cho đến khi bạn khởi động lại IDE.

    Khi bạn ghi hoạt động tìm dấu vết phương thức hoặc ghi tệp báo lỗi, IDE sẽ thêm dữ liệu đó (cùng với hoạt động mạng của ứng dụng) ở dạng một mục riêng biệt cho phiên hiện tại và bạn có thể dễ dàng chuyển đổi qua lại giữa các bản ghi để so sánh dữ liệu.

    Theo dõi hệ thống

    Trong Trình phân tích CPU, hãy chọn cấu hình Theo dõi hệ thống (System Trace) mới để kiểm tra hoạt động của luồng và CPU hệ thống của thiết bị. Cấu hình theo dõi này được xây dựng trên systrace. Đây là cấu hình giúp điều tra các vấn đề ở cấp hệ thống, chẳng hạn như giao diện người dùng bị giật.

    Khi sử dụng cấu hình theo dõi này, bạn có thể đánh dấu các quy trình quan trọng của mã trong tiến trình của trình phân tích tài nguyên theo cách trực quan thông qua việc đo lường mã C/C++ bằng API theo dõi gốc hoặc mã Java có lớp Trace.

    Kiểm tra các tham chiếu JNI trong Trình phân tích bộ nhớ

    Nếu triển khai ứng dụng cho một thiết bị chạy Android 8.0 (API cấp 26) trở lên, bạn nay có thể kiểm tra quá trình phân bổ bộ nhớ cho mã JNI của ứng dụng thông qua Trình phân tích bộ nhớ.

    Khi ứng dụng đang chạy, hãy chọn một phần tiến trình mà bạn muốn kiểm tra rồi chọn JNI heap (Vùng nhớ khối xếp JNI) trong trình đơn thả xuống ở phía trên danh sách lớp, như minh hoạ bên dưới. Sau đó, bạn có thể kiểm tra các đối tượng trong vùng nhớ khối xếp như bình thường rồi nhấp đúp vào các đối tượng trong thẻ Allocation Call Stack (Ngăn xếp lệnh gọi phân bổ) để xem vị trí phân bổ và giải phóng các lượt tham chiếu JNI trong mã.

    Nhập, xuất và kiểm tra tệp báo lỗi bộ nhớ

    Giờ đây, bạn có thể thêm, xuất và kiểm tra tệp báo lỗi bộ nhớ .hprof được tạo bằng Trình phân tích bộ nhớ.

    Thêm tệp .hprof bằng cách nhấp vào biểu tượng Start new profiler session (Bắt đầu phiên mới cho trình phân tích tài nguyên) trong ngăn Sessions (Phiên) trên trình phân tích tài nguyên rồi chọn Load from file (Tải từ tệp). Sau đó, bạn có thể kiểm tra dữ liệu của tệp đó trong Trình phân tích bộ nhớ như với bất kỳ tệp báo lỗi nào khác.

    Nếu bạn muốn lưu dữ liệu tệp báo lỗi để xem sau, hãy dùng nút Export Heap Dump (Xuất tệp báo lỗi) ở bên phải mục Heap Dump (Tệp báo lỗi) trong ngăn Sessions (Phiên). Trong hộp thoại Xuất dưới dạng (Export as), hãy lưu theo đuôi tên tệp .hprof.

    Ghi lại hoạt động của CPU trong khi khởi động ứng dụng

    Giờ đây, bạn có thể ghi lại hoạt động của CPU trong khi khởi động ứng dụng, bằng cách làm như sau:

    1. Chọn Run > Edit Configurations (Chạy > Chỉnh sửa cấu hình) trên thanh trình đơn chính.
    2. Trong thẻ Profiling (Phân tích) trên cấu hình chạy bạn mong muốn, hãy đánh dấu hộp bên cạnh mục Start recording a method trace on startup (Bắt đầu ghi hoạt động tìm dấu vết phương thức khi khởi động).
    3. Chọn một cấu hình ghi CPU để sử dụng trong trình đơn thả xuống.
    4. Triển khai ứng dụng cho một thiết bị chạy Android 8.0 (API cấp 26) trở lên bằng cách chọn Chạy > Profile (Run > Profile).
    Xuất thông tin theo dõi CPU

    Sau khi ghi lại hoạt động của CPU bằng Trình phân tích CPU, bạn có thể xuất dữ liệu này dưới dạng tệp .trace để chia sẻ với những người khác hoặc để kiểm tra vào lúc khác.

    Để xuất thông tin theo dõi sau khi bạn ghi hoạt động của CPU, hãy làm như sau:

    1. Nhấp chuột phải vào bản ghi mà bạn muốn xuất trong tiến trình của CPU.
    2. Chọn Export trace (Xuất thông tin theo dõi) trong trình đơn thả xuống.
    3. Chuyển đến vị trí bạn muốn lưu tệp rồi nhấp vào Save (Lưu).
    Nhập và kiểm tra tệp theo dõi CPU

    Giờ đây, bạn có thể nhập và kiểm tra các tệp .trace được tạo bằng API gỡ lỗi hoặc Trình phân tích CPU. (Hiện tại, bạn không nhập được các bản ghi của công cụ Theo dõi hệ thống.)

    Nhập tệp theo dõi bằng cách nhấp vào biểu tượng Bắt đầu phiên mới cho trình phân tích tài nguyên trong ngăn Sessions (Phiên) của trình phân tích tài nguyên rồi chọn Load from file (Tải từ tệp). Sau đó, bạn có thể kiểm tra dữ liệu của tệp đó trong Trình phân tích CPU như thông thường, với các ngoại lệ sau đây:

    • Hoạt động của CPU không được biểu thị cùng với tiến trình của CPU.
    • Tiến trình hoạt động của luồng chỉ cho biết vị trí cung cấp dữ liệu theo dõi cho từng luồng chứ không phải là trạng thái thực của luồng (chẳng hạn như đang chạy, đang chờ hoặc đang ngủ).
    Ghi lại hoạt động của CPU bằng API Gỡ lỗi (Debug)

    Giờ đây, bạn có thể bật và tắt việc ghi lại hoạt động của CPU trong Trình phân tích CPU thông qua việc đo lường ứng dụng bằng API Gỡ lỗi. Sau khi bạn triển khai ứng dụng cho một thiết bị, trình phân tích tài nguyên sẽ tự động bắt đầu ghi lại hoạt động của CPU khi ứng dụng gọi phương thức startMethodTracing(String tracePath) và trình phân tích tài nguyên sẽ ngừng ghi khi ứng dụng gọi phương thức stopMethodTracing(). Trong lúc việc ghi lại hoạt động của CPU được kích hoạt bằng API này, Trình phân tích CPU sẽ hiển thị API Gỡ lỗi ở dạng cấu hình ghi CPU đã chọn.

    Trình phân tích năng lượng

    Trình phân tích năng lượng cho thấy hình ảnh trực quan về mức sử dụng năng lượng ước tính của ứng dụng, cũng như các sự kiện của hệ thống ảnh hưởng đến việc sử dụng năng lượng, chẳng hạn như khoá chế độ thức, chuông báo và các công việc.

    Trình phân tích năng lượng xuất hiện ở dạng một hàng mới ở cuối cửa sổ Profiler (Trình phân tích tài nguyên) khi bạn chạy ứng dụng trên một thiết bị được kết nối hoặc Trình mô phỏng Android chạy Android 8.0 (API 26) trở lên.

    Nhấp vào hàng Energy (Năng lượng) để tối đa hoá thành phần hiển thị của Trình phân tích năng lượng. Đặt con trỏ chuột lên một thanh trong tiến trình để xem thông tin chi tiết về mức sử dụng năng lượng theo CPU, mạng, tài nguyên vị trí (GPS) và các sự kiện hệ thống có liên quan.

    Các sự kiện hệ thống ảnh hưởng đến mức sử dụng năng lượng được chỉ ra trong tiến trình Hệ thống (System) bên dưới tiến trình Energy (Năng lượng). Thông tin chi tiết về các sự kiện hệ thống trong phạm vi thời gian xác định sẽ xuất hiện trong ngăn sự kiện khi bạn chọn một khoảng thời gian trong tiến trình Energy (Năng lượng).

    Để xem ngăn xếp lệnh gọi và các thông tin chi tiết khác của một sự kiện hệ thống, chẳng hạn như khoá chế độ thức, hãy chọn sự kiện này trong ngăn sự kiện. Để chuyển đến mã của một sự kiện hệ thống, hãy nhấp đúp vào mục đó trong ngăn xếp lệnh gọi.

    Kiểm tra tìm lỗi mã nguồn

    Android Studio 3.2 có nhiều tính năng mới cũng như tính năng cải tiến để thực hiện việc kiểm tra tìm lỗi mã nguồn.

    Các quy trình kiểm tra mới để tìm lỗi mã nguồn giúp bạn tìm và xác định các vấn đề thường gặp về mã, từ các cảnh báo về vấn đề liên quan đến khả năng hữu dụng cho đến các lỗi có mức độ ưu tiên cao liên quan đến các lỗ hổng bảo mật tiềm ẩn.

    Kiểm tra tìm lỗi mã nguồn để đảm bảo khả năng tương tác của Java/Kotlin

    Để đảm bảo mã Java tương tác tốt với mã Kotlin, quy trình kiểm tra mới để tìm lỗi mã nguồn sẽ thực thi các phương pháp hay nhất được mô tả trong Hướng dẫn về khả năng tương tác của Kotlin. Ví dụ về quy trình kiểm tra này gồm có việc tìm sự hiện diện của chú thích về Tính chất rỗng, việc sử dụng từ khoá cứng Kotlin cũng như việc đặt tham số lambda cuối cùng.

    Để bật những quy trình kiểm tra này, hãy nhấp vào Tệp > Cài đặt (File > Settings) (Android Studio > Lựa chọn ưu tiên (Android Studio > Preferences trên máy Mac)) để mở hộp thoại Cài đặt (Settings), sau đó chuyển đến phần Trình chỉnh sửa > Kiểm tra > Android > Tìm lỗi mã nguồn > Khả năng tương tác > Khả năng tương tác của Kotlin (Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability) rồi chọn quy tắc mà bạn muốn bật.

    Để bật những quy trình kiểm tra này cho bản dựng dòng lệnh, hãy thêm phần sau vào tệp build.gradle của bạn:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Kiểm tra tìm lỗi mã nguồn cho Lát cắt

    Quy trình kiểm tra mới để kiểm tra lỗi mã nguồn cho Lát cắt giúp đảm bảo rằng bạn đang xây dựng Lát cắt đúng cách. Ví dụ: quy trình kiểm tra tìm lỗi mã nguồn sẽ cảnh báo bạn nếu bạn chưa chỉ định hành động chính cho một Lát cắt.

    Mục tiêu mới của Gradle

    Hãy sử dụng tác vụ mới lintFix của Gradle để áp dụng ngay tất cả các bản sửa lỗi an toàn do quy trình kiểm tra tìm lỗi mã nguồn đề xuất cho mã nguồn. Một ví dụ về quy trình kiểm tra tìm lỗi mã nguồn có đề xuất bản sửa lỗi an toàn để áp dụng là SyntheticAccessor.

    Cập nhật siêu dữ liệu

    Nhiều loại siêu dữ liệu, chẳng hạn như dữ liệu kiểm tra về việc truyền dịch vụ, đã được cập nhật để chạy được quy trình kiểm tra tìm lỗi mã nguồn trên Android 9 (API cấp 28).

    Cảnh báo nếu bạn chạy quy trình tìm lỗi mã nguồn trên một biến thể mới

    Giờ đây, công cụ tìm lỗi mã nguồn sẽ ghi lại thông tin để xem đường cơ sở được ghi lại bằng biến thể và phiên bản nào, và công cụ tìm lỗi mã nguồn sẽ cảnh báo cho bạn nếu bạn chạy đường cơ sở đó trên một biến thể khác với biến thể mà đường cơ sở được tạo ra.

    Cải tiến quy trình kiểm tra tìm lỗi mã nguồn hiện tại

    Android Studio phiên bản 3.2 có nhiều điểm cải tiến cho quy trình kiểm tra tìm lỗi mã nguồn hiện tại. Ví dụ: quy trình kiểm tra chu kỳ tài nguyên giờ đây sẽ áp dụng cho các loại tài nguyên khác và trình phát hiện hoạt động dịch có thể nhanh chóng tìm thấy các hoạt động dịch bị thiếu trong trình chỉnh sửa.

    Mã vấn đề dễ phát hiện hơn

    Mã vấn đề giờ đây được hiển thị ở nhiều vị trí hơn, kể cả trong cửa sổ Inspection Results (Kết quả kiểm tra). Nhờ vậy, bạn có thể dễ dàng tìm thấy thông tin cần thiết hơn để bật hoặc tắt các quy trình kiểm tra cụ thể thông qua lintOptions trong build.gradle.

    Để biết thêm thông tin, hãy xem bài viết Định cấu hình các tuỳ chọn tìm lỗi mã nguồn với Gradle.

    Liên kết dữ liệu V2

    Data Binding (Liên kết dữ liệu) V2 giờ đây được bật theo mặc định và tương thích với V1. Điều này có nghĩa là nếu có các phần phụ thuộc trong thư viện bạn đã biên dịch bằng V1, thì bạn có thể sử dụng các phần phụ thuộc đó với các dự án sử dụng Liên kết dữ liệu (Data Binding) V2. Tuy nhiên, xin lưu ý rằng các dự án sử dụng V1 không dùng được các phần phụ thuộc được biên dịch bằng V2.

    Đơn giản hoá D8

    Trong Android Studio 3.1, chúng tôi đã tích hợp bước đơn giản hoá này vào công cụ D8 ở dạng một tính năng thử nghiệm, giúp giảm thiểu tổng thời gian tạo bản dựng. Trong Android Studio 3.2, tuỳ chọn đơn giản hoá bằng D8 được bật theo mặc định.

    Công cụ mới dùng để thu gọn mã

    R8 là một công cụ mới giúp rút gọn và làm rối mã thay thế cho ProGuard. Bạn có thể bắt đầu sử dụng phiên bản dùng thử của R8 bằng cách đưa những nội dung sau vào tệp gradle.properties của dự án:

          android.enableR8 = true
        

    Thay đổi ABI mặc định cho nhiều APK

    Khi xây dựng nhiều APK mà mỗi APK lại nhắm mục tiêu đến một ABI khác, theo mặc định, trình bổ trợ sẽ không tạo APK cho các ABI sau đây nữa: mips, mips64, và armeabi.

    Nếu muốn xây dựng APK nhắm mục tiêu đến các ABI này, bạn phải sử dụng NDK phiên bản r16b trở xuống và chỉ định ABI trong tệp build.gradle, như minh hoạ ở dưới:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Lưu ý: Sự thay đổi này đối với hành vi cũng có trong Android Studio phiên bản 3.1 RC1 trở lên.

    Cải thiện các tính năng của trình chỉnh sửa cho tệp bản dựng CMake

    Nếu bạn sử dụng CMake để thêm mã C và C++ vào dự án của mình, thì giờ đây, Android Studio sẽ có cả các tính năng cải tiến của trình chỉnh sửa để giúp bạn chỉnh sửa các tập lệnh bản dựng CMake, chẳng hạn như các tính năng sau:

    • Làm nổi bật cú pháp và gợi ý hoàn thành mã: IDE giờ đây sẽ làm nổi bật và đề xuất gợi ý hoàn thành mã cho các lệnh CMake phổ biến. Ngoài ra, bạn có thể chuyển đến một tệp bằng cách nhấp vào tệp đó trong khi nhấn phím Control (phím Command trên máy Mac).
    • Định dạng lại mã: Giờ đây, bạn có thể sử dụng tuỳ chọn định dạng lại mã của IntelliJ để áp dụng các kiểu mã cho tập lệnh bản dựng CMake.
    • Tái cấu trúc lại một cách an toàn: Các công cụ tái cấu trúc tích hợp của IDE giờ đây cũng kiểm tra xem bạn có đổi tên hoặc xoá các tệp mà bạn tham chiếu trong tập lệnh bản dựng CMake hay không.

    Khi sử dụng cửa sổ Dự án (Project) trong các phiên bản Android Studio trước, bạn có thể di chuyển và chỉ kiểm tra các tệp tiêu đề thuộc các thư viện mà bạn tạo từ một dự án cục bộ. Với bản phát hành này, giờ đây, bạn cũng có thể xem và kiểm tra các tệp tiêu đề có trong phần phụ thuộc thư viện C/C++ bên ngoài mà bạn thêm vào dự án xây dựng ứng dụng của mình.

    Nếu bạn đã đưa mã C/C++ và thư viện vào dự án, hãy mở cửa sổ Dự án (Project) ở phía bên trái IDE bằng cách chọn Xem > Cửa sổ công cụ > Dự án (View > Tool Windows > Project) trong trình đơn chính rồi chọn Android trong trình đơn thả xuống. Trong thư mục cpp, tất cả tiêu đề nằm trong phạm vi của dự án ứng dụng đều được sắp xếp theo nút include cho từng phần phụ thuộc thư viện C/C++ cục bộ như minh hoạ bên dưới.

    Multidex gốc được bật theo mặc định

    Các phiên bản trước của Android Studio đã bật chế độ multidex gốc khi triển khai phiên bản gỡ lỗi của ứng dụng cho thiết bị chạy API Android cấp 21 trở lên. Hiện tại, cho dù bạn đang triển khai cho một thiết bị hay xây dựng APK để phát hành, trình bổ trợ Android cho Gradle sẽ bật chế độ multidex gốc cho tất cả những mô-đun thiết lập minSdkVersion=21 trở lên.

    Đã chuyển AAPT2 sang kho lưu trữ Maven của Google

    Kể từ Android Studio 3.2, nguồn của AAPT2 (Công cụ đóng gói tài nguyên Android 2) sẽ là kho lưu trữ Maven của Google.

    Để sử dụng AAPT2, hãy đảm bảo bạn có phần phụ thuộc google() trong tệp build.gradle, như minh hoạ bên dưới:

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    Phiên bản mới của AAPT2 khắc phục nhiều vấn đề, bao gồm việc cải thiện hoạt động xử lý các ký tự không phải ASCII trên Windows.

    Xoá cấu hình theo yêu cầu

    Lựa chọn ưu tiên về Định cấu hình theo yêu cầu (Configure on demand) đã bị xoá khỏi Android Studio.

    Android Studio không chuyển đối số --configure-on-demand đến Gradle nữa.

    Trợ lý kết nối ADB

    Trợ lý kết nối ADB mới cung cấp hướng dẫn từng bước để giúp bạn thiết lập và sử dụng thiết bị qua kết nối Cầu gỡ lỗi Android (ADB).

    Để khởi động trợ lý, hãy chọn Công cụ > Trợ lý kết nối (Tools > Connection Assistant).

    Trợ lý kết nối ADB đưa ra hướng dẫn, chế độ điều khiển theo ngữ cảnh và danh sách thiết bị đã kết nối trong một loạt trang trên bảng điều khiển của Trợ lý (Assistant).

    Cải tiến trình mô phỏng

    Giờ đây, bạn có thể lưu và tải ảnh chụp nhanh của AVD (thiết bị Android ảo) tại bất kỳ thời điểm nào trong Trình mô phỏng Android, để dễ dàng và nhanh chóng đưa một thiết bị được mô phỏng về trạng thái đã xác định để kiểm thử. Khi chỉnh sửa một AVD bằng Trình quản lý thiết bị ảo Android, bạn có thể chỉ định ảnh chụp nhanh AVD nào sẽ tải khi AVD khởi động.

    Giờ đây, các chế độ kiểm soát để lưu, tải và quản lý ảnh chụp nhanh AVD sẽ có trong thẻ Snapshots (Ảnh chụp nhanh) trong cửa sổ Extended controls (Chế độ điều khiển mở rộng) của trình mô phỏng.

    Để biết thông tin chi tiết, hãy xem bài viết về Ảnh chụp nhanh.

    Để biết thêm thông tin về những tính năng mới và những thay đổi trong Trình mô phỏng, hãy xem Ghi chú phát hành của Trình mô phỏng.

    Phiên bản 3.1 (Tháng 3 năm 2018)

    Android Studio 3.1.0 là một bản phát hành chính có nhiều tính năng và điểm cải tiến mới.

    Phiên bản 3.1.4 (Tháng 8 năm 2018)

    Bản cập nhật dành cho Android Studio 3.1 này bao gồm các thay đổi và bản sửa lỗi sau đây:

    • Kotlin đi kèm hiện là phiên bản 1.2.50.
    • Các dự án mới được tạo bằng kotlin-stdlib-jdk* artifacts thay vì các cấu phần phần mềm kotlin-stdlib-jre* đã ngừng sử dụng.
    • Quá trình phân tích cú pháp R8 của các quy tắc ProGuard đã được cải thiện.
    • Các lỗi sau đây đã được khắc phục:
      • Không chạy được lớp chính của Kotlin kèm theo lỗi: "Error: Could not find or load main class..."
      • R8 đi vào một vòng lặp vô hạn trong khi thực hiện một số hoạt động tối ưu hoá.
      • Việc sử dụng lệnh Chạy lại chương trình kiểm thử không thành công (Rerun failed tests) trong cửa sổ Chạy (Run) đôi khi trả về thông báo "Không tìm thấy hoạt động kiểm thử" theo cách không chính xác.
      • D8 xử lý thực thể invoke-virtual không đúng cách gây ra sự cố với VerifyError: invoke-super/virtual can't be used on private method
      • Trình biên dịch Liên kết dữ liệu phụ thuộc vào một phiên bản cũ của com.android.tools:annotations. Trình biên dịch hiện sử dụng các chú giải công cụ của dự án cơ sở (nếu có).
      • Android Studio gặp sự cố trong giai đoạn chuyển đổi mảnh khi sử dụng trình phân tích tài nguyên.
      • Trình gỡ lỗi gặp sự cố khi gỡ lỗi bố cục có hộp văn bản.
      • D8 không đọc được một số tệp ZIP có các ký tự đặc biệt.

    Phiên bản 3.1.3 (Tháng 6/2018)

    Bản cập nhật dành cho Android Studio 3.1 này bao gồm các bản sửa lỗi cho các lỗi sau đây:

    • Lỗi rò rỉ bộ nhớ khiến Android Studio hoạt động chậm và không phản hồi sau khi bạn sử dụng Layout Editor. Bản cập nhật này bao gồm các bản sửa lỗi cho hầu hết vấn đề này. Chúng tôi dự định sẽ sớm phát hành một bản cập nhật khác để xử lý những lỗi rò rỉ bộ nhớ khác.
    • Một số ứng dụng được tạo bằng D8 gặp sự cố trên một số máy tính bảng Verizon Ellipsis.
    • Không cài đặt được các ứng dụng tạo bằng D8 có lỗi INSTALL_FAILED_DEXOPT trên những thiết bị chạy Android 5.0 hoặc 5.1 (API cấp 21 hoặc 22).
    • Một số ứng dụng dùng thư viện OkHttp, được tạo bằng D8 gặp sự cố trên những thiết bị chạy Android 4.4 (API cấp 19).
    • Đôi khi, Android Studio không khởi động được, với ProcessCanceledException trong quá trình khởi tạo lớp cho com.intellij.psi.jsp.JspElementType.

    Phiên bản 3.1.2 (Tháng 4 năm 2018)

    Bản cập nhật dành cho Android Studio 3.1 này bao gồm các bản sửa lỗi cho các lỗi sau đây:

    • Trong một số trường hợp, Android Studio bị treo vô thời hạn trong khi thoát.
    • Không định cấu hình được các bản dựng có nhóm tài nguyên kèm theo thông báo sau đây khi tính năng Chạy tức thì được bật:

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • Khi bạn bật tính năng Chạy tức thì, các bản dựng của dự án Kotlin mới sẽ không hoạt động khi được kích hoạt bằng lệnh Chạy (Run).
    • Trong quá trình chỉnh sửa tệp build.gradle, đôi lúc có sự chậm trễ đáng kể giữa việc nhập một ký tự và việc ký tự đó xuất hiện trên màn hình.
    • Lỗi bản dựng xảy ra trong quá trình tạo tệp dex ở một số dự án có số lượng mô-đun hoặc phần phụ thuộc bên ngoài lớn, cùng với thông báo lỗi như sau:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • Việc tính toán danh sách DEX chính của D8 không tính đến một số lệnh gọi phản ánh.

    Bản cập nhật này cũng bao gồm các thay đổi giúp quá trình chạy hoạt động kiểm tra tìm lỗi mã nguồn từ Gradle nhanh hơn nhiều trong một số trường hợp.

    Phiên bản 3.1.1 (Tháng 4 năm 2018)

    Bản cập nhật dành cho Android Studio 3.1 này bao gồm các bản sửa lỗi cho các lỗi sau đây:

    • Trong một số trường hợp, khi lần đầu tiên mở một dự án được tạo trong Android Studio 3.0 mở trong Android Studio 3.1, tác vụ Tạo bản dựng nhận biết Gradle bị xoá khỏi vùng Before launch (Trước khi khởi chạy) trong Run/Debug Configurations (Cấu hình chạy/gỡ lỗi). Kết quả là những dự án đó sẽ không tạo bản dựng khi nút Run (Chạy) hoặc Debug (Gỡ lỗi) được nhấp vào, từ đó dẫn đến các lỗi, chẳng hạn như triển khai tệp APK không đúng và gặp sự cố khi dùng tính năng Chạy tức thì.

      Để giải quyết vấn đề này, Android Studio 3.1.1 sẽ thêm tác vụ Tạo bản dựng nhận biết Gradle cho cấu hình chạy đối với những dự án còn thiếu mục này. Hoạt động sửa đổi này sẽ diễn ra sau lần đồng bộ hoá Gradle đầu tiên khi dự án được tải.

    • Trình gỡ lỗi gặp sự cố khi gỡ lỗi bố cục có hộp văn bản nếu chế độ phân tích nâng cao được bật.
    • Android Studio bị treo sau khi bạn nhấp vào Build Variants (Biến thể xây dựng).
    • Các tệp AAR (đề xuất được tự động áp dụng) (Android Archive) được trích xuất hai lần, một lần trong quy trình đồng bộ hoá Gradle và một lần trong quy trình tạo bản dựng Gradle.
    • Một số vectơ vẽ được nhập từ tệp SVG bị thiếu các phần tử.
    • Cảnh báo về việc ngừng sử dụng cấu hình phần phụ thuộc của compile đã được cập nhật bằng hướng dẫn phù hợp hơn về cấu hình implementationapi. Để biết thông tin chi tiết về việc di chuyển bằng cấu hình compile, hãy xem tài liệu về cấu hình mới cho phần phụ thuộc.

    Lập trình/IDE

    IntelliJ 2017.3.3

    IDE Android Studio chính đã được cập nhật với các cải tiến từ IntelliJ IDEA thông qua bản phát hành 2017.3.3. Những điểm cải tiến bao gồm nâng cao khả năng phân tích luồng điều khiển đối với bộ sưu tập và chuỗi, cải thiện khả năng dự đoán tính chất rỗng, cung cấp các bản sửa lỗi nhanh mới và nhiều điểm khác.

    Để biết thông tin chi tiết, hãy xem ghi chú phát hành của JetBrains cho phiên bản IntelliJ IDEA 2017.22017.3, cũng như ghi chú phát hành của JetBrains cho các bản cập nhật sửa lỗi.

    Cải thiện tính năng chỉnh sửa SQL bằng Room

    Khi sử dụng Thư viện cơ sở dữ liệu của Room, bạn có thể tận dụng một số điểm cải tiến đối với tính năng chỉnh sửa SQL:

    • Quá trình hoàn thành mã trong Query sẽ giúp nắm rõ về bảng SQL (thực thể), cột, tham số truy vấn, tên đại diện, phép liên kết, truy vấn phụ và mệnh đề WITH.
    • Giờ đây, tính năng đánh dấu cú pháp SQL sẽ hoạt động.
    • Bạn có thể nhấp chuột phải vào tên bảng trong SQL và đổi tên, việc này cũng ghi lại mã Java hoặc Kotlin tương ứng (ví dụ: kiểu dữ liệu trả về của truy vấn). Việc đổi tên này cũng sẽ có tác động theo hướng khác, vì vậy, việc đổi tên một lớp hoặc trường Java sẽ ghi lại mã SQL tương ứng.
    • Các trường hợp sử dụng SQL sẽ hiển thị khi bạn dùng tuỳ chọn Find usages (Tìm các trường hợp sử dụng) (nhấp chuột phải rồi chọn tuỳ chọn Find usages (Tìm các trường hợp sử dụng) này trong trình đơn theo bối cảnh).
    • Để chuyển đến phần khai báo của thực thể SQL trong mã Java hoặc Kotlin, bạn có thể giữ phím Control (phím Command trên máy Mac) trong khi nhấp vào thực thể đó.

    Để biết thông tin về cách sử dụng SQL bằng Room, hãy xem bài viết Lưu dữ liệu trong cơ sở dữ liệu cục bộ bằng Room.

    Cập nhật tính năng liên kết dữ liệu

    Bản cập nhật này có một số điểm cải tiến cho tính năng liên kết dữ liệu:

    • Giờ đây, bạn có thể dùng một đối tượng LiveData làm trường có thể quan sát trong biểu thức liên kết dữ liệu. Lớp ViewDataBinding hiện có chứa một phương thức setLifecycle() mới mà bạn dùng để quan sát đối tượng LiveData.

    • Lớp ObservableField hiện có thể chấp nhận các đối tượng Observable khác trong hàm khởi tạo.

    • Bạn có thể xem trước một trình biên dịch gia tăng mới cho các lớp liên kết dữ liệu của mình. Để biết thông tin chi tiết về trình biên dịch mới này cũng như hướng dẫn về cách bật, hãy xem bài viết Trình biên dịch liên kết dữ liệu V2.

      Sau đây là những lợi ích của trình biên dịch mới:

      • Các lớp ViewBinding sẽ do trình bổ trợ Android cho Gradle tạo trước trình biên dịch Java.
      • Các thư viện sẽ giữ lại những lớp liên kết đã tạo của chúng khi ứng dụng được biên dịch, thay vì tạo lại mỗi lần. Điều này có thể giúp cải thiện đáng kể hiệu suất cho các dự án có nhiều mô-đun.

    Trình biên dịch và Gradle

    D8 là trình biên dịch DEX mặc định

    Giờ đây, trình biên dịch D8 được dùng để tạo mã byte DEX theo mặc định.

    Trình biên dịch DEX mới này mang lại một số lợi ích như sau:

    • Tạo tệp dex nhanh hơn
    • Giảm mức sử dụng bộ nhớ
    • Cải thiện khả năng tạo mã (khả năng phân bổ thanh ghi tốt hơn, bảng chuỗi thông minh hơn)
    • Mang lại trải nghiệm gỡ lỗi hiệu quả hơn khi thực hiện các bước thông qua mã

    Bạn không cần thực hiện bất kỳ thay đổi nào đối với mã hoặc quy trình phát triển để nhận các lợi ích này, trừ phi bạn đã tắt trình biên dịch D8 theo cách thủ công trước đó.

    Nếu bạn đặt android.enableD8 thành false trong gradle.properties, hãy xoá cờ đó hoặc đặt thành true:

            android.enableD8=true
          

    Để biết thông tin chi tiết, hãy xem bài viết Trình biên dịch DEX mới.

    Quy trình đơn giản hoá gia tăng

    Đối với những dự án sử dụng các tính năng ngôn ngữ của Java 8, quá trình đơn giản hoá gia tăng sẽ được bật theo mặc định. Điều này giúp cải thiện thời gian xây dựng.

    Quá trình đơn giản hoá sẽ chuyển đổi cú pháp dễ hiểu sang một dạng thức mà trình biên dịch có thể xử lý hiệu quả hơn.

    Bạn có thể vô hiệu hoá quá trình này bằng cách xác định thông tin sau đây trong tệp gradle.properties của dự án:

            android.enableIncrementalDesugaring=false
          
    Cửa sổ kết quả đơn giản hoá

    Gradle Console (Bảng điều khiển Gradle) được thay thế bằng cửa sổ Build (Xây dựng), trong đó có thẻ Sync (Đồng bộ hoá) và Build (Xây dựng).

    Để biết thông tin chi tiết về cách sử dụng cửa sổ mới có tên là Build (Xây dựng) được đơn giản hoá, hãy xem bài viết Theo dõi quy trình xây dựng.

    Cập nhật theo lô và lập chỉ mục đồng thời

    Các quy trình lập chỉ mục IDE và đồng bộ hoá Gradle giờ đây hiệu quả hơn nhiều, giúp giảm thiểu thời gian lãng phí vào nhiều hoạt động lập chỉ mục dư thừa.

    C++ và LLDB

    Chúng tôi đã thực hiện nhiều điểm cải tiến về chất lượng và hiệu suất trong các giai đoạn lập trình, đồng bộ hoá, tạo bản dựng và gỡ lỗi khi phát triển C++. Các điểm cải tiến như sau:

    • Nếu thực hiện các dự án C++ có quy mô lớn, bạn sẽ thấy những cải tiến đáng kể trong việc giảm thời gian tạo biểu tượng. Thời gian đồng bộ hoá cũng giảm đáng kể đối với các dự án lớn.

    • Hiệu suất khi tạo bản dựng và đồng bộ hoá với CMake được cải thiện thông qua việc sử dụng lại các kết quả đã lưu vào bộ nhớ đệm một cách linh hoạt hơn.

    • Việc thêm các bộ định dạng ("tạo bản in đẹp") cho nhiều cấu trúc dữ liệu C++ hơn sẽ làm cho kết quả đầu ra LLDB dễ đọc hơn.

    • LLDB hiện chỉ hoạt động với Android 4.1 (API cấp 16) trở lên.

    Lưu ý: Chức năng gỡ lỗi gốc có trong Android Studio 3.0 trở lên không hoạt động trên Windows 32 bit. Nếu bạn đang sử dụng Windows 32 bit và muốn gỡ lỗi mã gốc, hãy dùng Android Studio 2.3.

    Kotlin

    Kotlin đã nâng cấp lên phiên bản 1.2.30

    Android Studio 3.1 sẽ bao gồm Kotlin phiên bản 1.2.30.

    Mã Kotlin hiện được phân tích bằng cách kiểm tra tìm lỗi mã nguồn trong dòng lệnh

    Giờ đây, việc chạy công cụ tìm lỗi mã nguồn trong dòng lệnh sẽ phân tích các lớp Kotlin của bạn.

    Đối với mỗi dự án mà bạn muốn chạy công cụ tìm lỗi mã nguồn, Kho lưu trữ Maven của Google phải được tích hợp trong tệp build.gradle cấp cao nhất. Kho lưu trữ Maven đã được đưa vào các dự án tạo bằng Android Studio 3.0 trở lên.

    Công cụ hiệu suất

    Lấy mẫu quy trình xử lý C++ gốc bằng Trình phân tích CPU

    Giờ đây, Trình phân tích CPU sẽ có cấu hình mặc định để ghi lại dấu vết được lấy mẫu của luồng gốc ứng dụng. Bạn có thể dùng cấu hình này bằng cách triển khai ứng dụng trên một thiết bị chạy Android 8.0 (API cấp 26) trở lên, sau đó chọn cấu hình Lấy mẫu (gốc) (Sampled (Native)) trong trình đơn thả xuống về cấu hình ghi của Trình phân tích CPU. Sau đó, hãy ghi lại và kiểm tra dấu vết như bạn thường làm.

    Bạn có thể thay đổi các chế độ cài đặt mặc định, chẳng hạn như khoảng thời gian lấy mẫu, bằng cách tạo cấu hình ghi.

    Để quay lại chế độ theo dõi các luồng Java, hãy chọn cấu hình Sampled (Java) (Lấy mẫu (Java)) hoặc Instrumented (Java) (Đo lường (Java)).

    Lọc dấu vết CPU, kết quả phân bổ bộ nhớ và tệp báo lỗi

    Trình phân tích CPUTrình phân tích bộ nhớ sẽ tích hợp tính năng tìm kiếm giúp bạn lọc các kết quả từ việc ghi lại hoạt động tìm dấu vết phương thức, phân bổ bộ nhớ hoặc tệp báo lỗi.

    Để tìm kiếm, hãy nhấp vào biểu tượng Bộ lọc (Filter) ở góc trên cùng bên phải của ngăn, nhập truy vấn rồi nhấn phím Enter.

    Mẹo: Bạn cũng có thể mở trường tìm kiếm bằng cách nhấn tổ hợp phím Control + F (Command + F trên máy Mac).

    Trong thẻ Biểu đồ hình ngọn lửa (Flame Chart) của Trình phân tích CPU, các ngăn xếp lệnh gọi tích hợp các phương thức liên quan đến cụm từ tìm kiếm của bạn sẽ được làm nổi bật và di chuyển sang phía bên trái của biểu đồ.

    Để biết thêm thông tin về cách lọc theo phương thức, lớp hoặc tên gói, hãy xem bài viết Ghi lại và kiểm tra hoạt động tìm dấu vết phương thức.

    Thẻ yêu cầu trong Trình phân tích mạng

    Trình phân tích mạng nay bao gồm một thẻ Request (Yêu cầu) để cung cấp thông tin chi tiết về các yêu cầu mạng trong tiến trình đã chọn. Trong các phiên bản trước, Trình phân tích mạng chỉ cung cấp thông tin về phản hồi mạng.

    Thành phần hiển thị luồng trong Trình phân tích mạng

    Sau khi chọn một phần tiến trình trong Trình phân tích mạng, bạn có thể chọn một trong những thẻ sau để xem thêm thông tin chi tiết về hoạt động mạng trong khung thời gian đó:

    • Khung hiển thị kết nối (Connection View): Cung cấp thông tin tương tự như các phiên bản Android Studio trước. Khung hiển thị này liệt kê các tệp được gửi hoặc nhận trong phần tiến trình đã chọn trên mọi luồng CPU của ứng dụng. Đối với mỗi yêu cầu, bạn có thể kiểm tra kích thước, loại, trạng thái và thời lượng truyền.
    • Khung hiển thị luồng (Thread View): Cho thấy hoạt động mạng của từng luồng CPU trong ứng dụng. Khung hiển thị này giúp bạn kiểm tra xem luồng nào của ứng dụng chịu trách nhiệm về từng yêu cầu mạng.

    Trình kiểm tra bố cục (Layout Inspector)

    Trình kiểm tra bố cục (Layout Inspector) có các tính năng mới, bao gồm cả một số chức năng mà công cụ Pixel Perfect và Trình xem chế độ phân cấp (đã bị ngừng sử dụng) cung cấp trước đây:

    • Các nút thu phóng và phím tắt để di chuyển và kiểm tra bố cục
    • Lớp phủ tham chiếu dạng lưới
    • Khả năng tải hình ảnh tham chiếu và sử dụng hình ảnh này làm lớp phủ (giúp ích khi so sánh bố cục với bản minh hoạ giao diện người dùng)
    • Hiển thị bản xem trước ở dạng cây con để tách riêng khung hiển thị trong một bố cục phức tạp

    Trình chỉnh sửa bố cục (Layout Editor)

    Bảng khung hiển thị (Palette) trong Trình kiểm tra bố cục (Layout Editor) có rất nhiều điểm cải tiến:

    • Sắp xếp lại các danh mục cho khung hiển thị và bố cục.
    • Danh mục mới có tên là Phổ biến (Common) cho khung hiển thị và bố cục mà bạn có thể thêm vào bằng lệnh Yêu thích (Favorite).
    • Cải tiến chức năng tìm kiếm thành phần hiển thị và bố cục.
    • Các lệnh mới để mở tài liệu cho phần tử bố cục hoặc khung hiển thị cụ thể.

    Bạn có thể sử dụng lệnh mới có tên là Chuyển đổi khung hiển thị (Convert view) trong Cây thành phần (Component tree) hoặc trình chỉnh sửa thiết kế để chuyển đổi khung hiển thị hoặc bố cục sang một loại khung hiển thị hoặc bố cục khác.

    Giờ đây, bạn có thể dễ dàng tạo quy tắc ràng buộc cho các mục ở gần khung hiển thị đã chọn bằng cách sử dụng nút mới có tên là Create a connection (Tạo kết nối) trong trình kiểm tra khung hiển thị ở đầu cửa sổ Attributes (Thuộc tính).

    Chạy và Chạy tức thì

    Hoạt động của tuỳ chọn Dùng cùng lựa chọn cho các lần khởi chạy trong tương lai (Use same selection for future launches) trong hộp thoại Chọn mục tiêu triển khai (Select deployment target) đã trở nên nhất quán hơn. Nếu bạn bật tuỳ chọn Sử dụng cùng một lựa chọn (Use same selection), thì hộp thoại Chọn mục tiêu triển khai (Select deployment target) sẽ chỉ mở vào lần đầu tiên bạn dùng lệnh Chạy (Run) cho đến khi thiết bị được chọn không kết nối nữa.

    Khi nhắm mục tiêu đến một thiết bị chạy Android 8.0 (API cấp 26) trở lên, tính năng Chạy tức thì có thể triển khai các thay đổi đối với tài nguyên mà không làm cho ứng dụng khởi động lại. Điều này có thể xảy ra vì các tài nguyên nằm trong một tệp APK phân tách.

    Trình mô phỏng

    Để biết thông tin chi tiết về những tính năng mới và những thay đổi trong trình mô phỏng kể từ Android Studio 3.0, hãy xem ghi chú phát hành của Trình mô phỏng Android từ phiên bản 27.0.2 đến phiên bản 27.1.12.

    Những điểm cải tiến chính gồm có:

    • Ảnh chụp nhanh của tính năng Khởi động nhanh để lưu trạng thái của trình mô phỏng và khởi động nhanh hơn, với khả năng sử dụng lệnh Lưu ngay (Save now) để lưu trạng thái khởi động tuỳ chỉnh.
    • Màn hình trình mô phỏng không có cửa sổ.
    • Hình ảnh hệ thống của Bản dùng thử Android 8.0 (API cấp 26), Android 8.1 (API cấp 27) và Android P cho nhà phát triển.

    Cải thiện trải nghiệm người dùng và giao diện người dùng

    Thêm chú giải công cụ, phím tắt và tin nhắn hữu ích

    Chúng tôi đã thêm chú giải công cụ và lớp phủ thông báo hữu ích ở nhiều vị trí trong Android Studio.

    Để xem phím tắt của nhiều lệnh, bạn chỉ cần giữ con trỏ chuột trên nút cho đến khi phần chú thích xuất hiện.

    Xoá trình đơn Tools > Android (Công cụ > Android)

    Xoá trình đơn Tools > Android (Công cụ > Android) Các lệnh trước đây ở trong trình đơn này đã được di chuyển.

    • Nhiều lệnh đã được chuyển đến vị trí ở ngay trong trình đơn Công cụ (Tools).
    • Lệnh Đồng bộ hoá dự án với tệp Gradle (Sync project with gradle files) đã chuyển sang trình đơn Tệp (File).
    • Xoá lệnh Device Monitor (Giám sát thiết bị), như mô tả ở bên dưới.

    Giám sát thiết bị (Device Monitor) có sẵn trên dòng lệnh

    Trong Android Studio 3.1, Giám sát thiết bị (Device Monitor) có ít vai trò hơn trước đây. Trong nhiều trường hợp, chức năng của Giám sát thiết bị (Device Monitor) giờ đây sẽ do các công cụ mới và cải tiến cung cấp.

    Xem Tài liệu về Device Monitor để biết hướng dẫn gọi Device Monitor từ dòng lệnh và để biết thông tin chi tiết về các công cụ có sẵn trên Device Monitor.

    Phiên bản 3.0 (Tháng 10 năm 2017)

    Android Studio 3.0.0 là một bản phát hành chính có nhiều tính năng và điểm cải tiến mới.

    Người dùng macOS: Nếu đang cập nhật phiên bản Android Studio cũ, thì bạn có thể thấy hộp thoại lỗi cập nhật cho biết "Some conflicts were found in the installation area" (Đã phát hiện một số xung đột trong vùng cài đặt). Bạn chỉ cần bỏ qua lỗi này và nhấp vào Cancel (Huỷ) để tiếp tục quá trình cài đặt.

    Phiên bản 3.0.1 (Tháng 11 năm 2017)

    Đây là bản cập nhật nhỏ cho Android Studio 3.0, bao gồm các bản sửa lỗi chung cùng các điểm cải thiện hiệu suất.

    Trình bổ trợ Android cho Gradle 3.0.0

    Trình bổ trợ Android cho Gradle mới có nhiều điểm cải tiến và tính năng mới. Tuy nhiên, trình bổ trợ này chủ yếu cải thiện hiệu suất bản dựng cho các dự án có nhiều mô-đun. Khi sử dụng trình bổ trợ mới cùng với các dự án có quy mô lớn này, bạn sẽ có những trải nghiệm sau đây:

    • Thời gian của cấu hình bản dựng sẽ nhanh hơn do đã có giải pháp mới cho phần phụ thuộc bị chậm trễ.
    • Giải pháp cho phần phụ thuộc có thể nhận biết biến thể chỉ dành cho các dự án và biến thể mà bạn đang tạo.
    • Thời gian tạo bản dựng tăng dần nhanh hơn khi áp dụng các thay đổi đơn giản cho mã hoặc tài nguyên.

    Lưu ý: Những điểm cải tiến này đòi hỏi phải có những thay đổi lớn để dừng API, DSL và hành vi của một số trình bổ trợ. Việc nâng cấp lên phiên bản 3.0.0 có thể đòi hỏi bạn phải thay đổi các tệp bản dựng và trình bổ trợ cho Gradle.

    Phiên bản này cũng bao gồm các tính năng sau đây:

    • Hỗ trợ dành cho Android 8.0.
    • Hỗ trợ xây dựng các APK riêng biệt dựa trên tài nguyên về ngôn ngữ.
    • Hỗ trợ các tính năng về ngôn ngữ Java 8 và thư viện Java 8 (không có trình biên dịch Jack).
    • Hỗ trợ cho Thư viện hỗ trợ kiểm thử Android 1.0 (Phần mềm tiện ích kiểm thử Android và Android Test Orchestrator).
    • Cải thiện tốc độ tạo bản dựng của cmake và ndk-build.
    • Cải thiện tốc độ đồng bộ hoá Gradle.
    • AAPT2 hiện được bật theo mặc định.
    • Việc sử dụng ndkCompile sẽ bị hạn chế hơn. Thay vào đó, bạn nên chuyển sang sử dụng CMake hoặc ndk-build để biên dịch mã gốc mà bạn muốn đóng gói vào APK. Để tìm hiểu thêm, hãy đọc bài viết Di chuyển từ ndkcompile.

    Để biết thêm thông tin về những thay đổi, hãy xem ghi chú phát hành của trình bổ trợ Android cho Gradle.

    Nếu bạn đã sẵn sàng nâng cấp lên trình bổ trợ phiên bản mới, hãy xem bài viết Di chuyển sang trình bổ trợ Android cho Gradle 3.0.0.

    Hỗ trợ Kotlin

    Như đã công bố tại Google I/O năm 2017, ngôn ngữ lập trình Kotlin giờ đây chính thức được hỗ trợ trên Android. Vì vậy, với bản phát hành này, Android Studio sẽ hỗ trợ cho ngôn ngữ Kotlin để phát triển Android.

    Bạn có thể đưa Kotlin vào dự án của mình bằng cách chuyển đổi một tệp Java thành Kotlin (nhấp vào Code > Convert Java File to Kotlin File (Mã > Chuyển đổi tệp Java thành tệp Kotlin)) hoặc bằng cách tạo một dự án mới có hỗ trợ Kotlin thông qua trình hướng dẫn New Project (Dự án mới).

    Để bắt đầu, hãy đọc cách thêm Kotlin vào dự án của bạn.

    Hỗ trợ các tính năng ngôn ngữ Java 8

    Giờ đây, bạn có thể sử dụng một số tính năng ngôn ngữ Java 8 và sử dụng các thư viện được xây dựng bằng Java 8. Jack không còn là yêu cầu bắt buộc. Do đó, trước tiên, bạn nên tắt Jack để dùng dịch vụ hỗ trợ Java 8 được cải tiến tích hợp trong chuỗi công cụ mặc định.

    Để cập nhật dự án nhằm hỗ trợ cho chuỗi công cụ ngôn ngữ Java 8 mới, hãy cập nhật tuỳ chọn Source Compatibility (Khả năng tương thích nguồn) và Target Compatibility (Khả năng tương thích đích) lên phiên bản 1.8 trong hộp thoại Project Structure (Cấu trúc dự án) (nhấp vào File > Project Structure (Tệp > Cấu trúc dự án)). Để tìm hiểu thêm, hãy đọc cách sử dụng các tính năng ngôn ngữ Java 8.

    Trình phân tích tài nguyên Android

    Trình phân tích tài nguyên Android mới thay thế công cụ Android Monitor và cung cấp một bộ công cụ mới để đo lường mức sử dụng CPU, bộ nhớ và mạng của ứng dụng theo thời gian thực. Bạn có thể thực hiện hoạt động tìm dấu vết phương thức dựa trên mẫu để xác định thời điểm thực thi mã, ghi lại tệp báo lỗi, xem quá trình phân bổ bộ nhớ và kiểm tra thông tin chi tiết về các tệp được truyền qua mạng.

    Để mở, hãy nhấp vào View > Tool Windows > Android Profiler (Xem > Cửa sổ công cụ > Trình phân tích tài nguyên Android) (hoặc nhấp vào biểu tượng Android Profiler (Trình phân tích tài nguyên Android) trên thanh công cụ).

    Tiến trình của sự kiện ở đầu cửa sổ cho thấy các sự kiện nhấn, các lượt nhấn phím và các thay đổi về hoạt động để bạn có thêm ngữ cảnh nhằm mục đích hiểu được các sự kiện về hiệu suất khác trong tiến trình.

    Lưu ý: Chế độ xem Logcat cũng được di chuyển sang một cửa sổ riêng (trước đây, chế độ này có trong Android Monitor nhưng đã bị xoá).

    Trong tiến trình tổng quan của Trình phân tích tài nguyên Android, hãy nhấp vào tiến trình CPU (BỘ XỬ LÝ TRUNG TÂM), MEMORY (BỘ NHỚ) hoặc NETWORK (MẠNG) để truy cập vào các công cụ tương ứng của trình phân tích tài nguyên.

    Trình phân tích CPU

    Trình phân tích CPU giúp bạn phân tích mức sử dụng luồng CPU của ứng dụng bằng cách kích hoạt một mẫu hoặc một dấu vết CPU được đo lường. Sau đó, bạn có thể khắc phục các sự cố về hiệu suất của CPU bằng cách sử dụng nhiều bộ lọc và khung hiển thị dữ liệu.

    Để biết thêm thông tin, hãy xem Hướng dẫn của Trình phân tích CPU.

    Trình phân tích bộ nhớ

    Trình phân tích bộ nhớ giúp bạn xác định tình trạng rò rỉ bộ nhớ hay nhồi nhét bộ nhớ có thể khiến ứng dụng của bạn bị gián đoạn, bị treo và thậm chí gặp sự cố. Trình phân tích này cho bạn thấy biểu đồ theo thời gian thực về mức sử dụng bộ nhớ của ứng dụng, đồng thời cho phép bạn ghi lại tệp báo lỗi, buộc thu thập rác và theo dõi hoạt động phân bổ bộ nhớ.

    Để biết thêm thông tin, hãy xem Hướng dẫn của Trình phân tích bộ nhớ.

    Trình phân tích mạng

    Trình phân tích mạng cho phép bạn theo dõi hoạt động mạng của ứng dụng, kiểm tra tải trọng của từng yêu cầu mạng và liên kết ngược lại mã đã tạo yêu cầu mạng đó.

    Để biết thêm thông tin, hãy xem hướng dẫn của Trình phân tích mạng.

    Phân tích và gỡ lỗi APK

    Android Studio giờ đây sẽ cho phép bạn phân tích và gỡ lỗi mọi APK mà không cần phải tạo APK từ dự án Android Studio, miễn là APK được tạo để bật tính năng gỡ lỗi và bạn có quyền truy cập vào các tệp nguồn và biểu tượng gỡ lỗi.

    Để bắt đầu, hãy nhấp vào Profile or debug APK (Phân tích hoặc gỡ lỗi APK) trên màn hình Chào mừng của Android Studio. Hoặc nếu bạn đã mở dự án, hãy nhấp vào File > Profile or debug APK (Tệp > Phân tích hoặc gỡ lỗi APK) trên thanh trình đơn. Thao tác này sẽ hiển thị các tệp APK đã giải nén nhưng không biên dịch ngược mã đó. Vì vậy, để thêm các điểm ngắt và xem dấu vết ngăn xếp đúng cách, bạn cần đính kèm tệp nguồn Java và biểu tượng gỡ lỗi gốc.

    Để biết thêm thông tin, hãy xem bài viết Phân tích và gỡ lỗi APK được tạo sẵn.

    Trình khám phá tệp trên thiết bị (Device File Explorer)

    Trình khám phá tệp trên thiết bị phiên bản mới cho phép bạn kiểm tra hệ thống tệp của thiết bị đã kết nối và chuyển tệp giữa thiết bị và máy tính. Thao tác này sẽ thay thế công cụ hệ thống tệp có trong DDMS.

    Để mở, hãy nhấp vào View > Tool Windows > Device File Explorer (Xem > Cửa sổ công cụ > Trình khám phá tệp trên thiết bị).

    Để biết thêm thông tin, hãy xem hướng dẫn của Trình khám phá tệp trên thiết bị.

    Hỗ trợ Ứng dụng tức thì

    Dịch vụ hỗ trợ mới cho Ứng dụng Android tức thì giúp bạn tạo Ứng dụng tức thì trong dự án của mình bằng cách sử dụng 2 loại mô-đun mới: Mô-đun ứng dụng tức thì và Mô-đun tính năng (các loại mô-đun này đòi hỏi bạn phải cài đặt SDK Phát triển ứng dụng tức thì).

    Android Studio cũng bao gồm cả thao tác mới để tái cấu trúc mô-đun nhằm giúp bạn thêm dịch vụ hỗ trợ cho Ứng dụng tức thì trong dự án hiện có. Ví dụ: nếu bạn muốn tái cấu trúc cho dự án của mình để đặt một số lớp trong mô-đun tính năng Ứng dụng tức thì, hãy chọn các lớp trong cửa sổ Project (Dự án) rồi nhấp vào Refactor > Modularize (Tái cấu trúc > Mô-đun hoá). Trong hộp thoại xuất hiện, hãy chọn mô-đun mà các lớp sẽ chuyển đến rồi nhấp vào OK.

    Và khi đã sẵn sàng kiểm thử Ứng dụng tức thì, bạn có thể xây dựng và chạy mô-đun Ứng dụng tức thì trên một thiết bị đã kết nối bằng cách chỉ định URL của Ứng dụng tức thì đó trong các tuỳ chọn khởi chạy cấu hình chạy: Chọn Run > Edit Configurations (Chạy > Chỉnh sửa cấu hình), chọn mô-đun Ứng dụng tức thì rồi đặt URL trong mục Launch Options (Tuỳ chọn khởi chạy).

    Để biết thêm thông tin, hãy xem bài viết Ứng dụng Android tức thì.

    Mô-đun Android Things

    Các mẫu Android Things mới trong trình hướng dẫn Dự án mới (New Project) và Mô-đun mới (New Module) giúp bạn bắt đầu phát triển cho các thiết bị IOT chạy hệ điều hành Android.

    Để biết thêm thông tin, hãy xem cách tạo dự án Android Things.

    Trình hướng dẫn về biểu tượng thích ứng

    Giờ đây, Image Asset Studio sẽ hỗ trợ vectơ vẽ được và cho phép bạn tạo các biểu tượng trình chạy thích ứng cho Android 8.0 trong khi đồng thời tạo biểu tượng truyền thống (biểu tượng "Cũ") cho các thiết bị chạy phiên bản cũ.

    Để bắt đầu, hãy nhấp chuột phải vào thư mục res trong dự án của bạn, sau đó nhấp vào New > Image Asset (Mới > Thành phần hình ảnh). Trong cửa sổ Asset Studio, hãy chọn Launcher Icons (Adaptive and Legacy) (Biểu tượng trình chạy (Thích ứng và Cũ)) làm loại biểu tượng.

    compileSdkVersionLưu ý: Bạn phải đặt thành cấp 26 trở lên để sử dụng biểu tượng trình chạy thích ứng.

    Để biết thêm thông tin, hãy đọc bài viết về Biểu tượng thích ứng.

    Hỗ trợ các tài nguyên về phông chữ

    Để hỗ trợ các tài nguyên mới về phông chữ trong Android 8.0, Android Studio sẽ cung cấp font resources selector (bộ chọn tài nguyên phông chữ) để giúp đưa các phông chữ vào ứng dụng hoặc định cấu hình dự án để tải phông chữ trên thiết bị xuống (khi có sẵn). Layout Editor cũng có thể xem trước phông chữ trong bố cục của bạn.

    Để dùng thử các phông chữ có thể tải xuống, hãy đảm bảo rằng thiết bị hoặc trình mô phỏng đang chạy Dịch vụ Google Play phiên bản 11.2.63 trở lên. Để biết thêm thông tin, hãy đọc bài viết về Phông chữ có thể tải xuống.

    Trợ lý lập chỉ mục ứng dụng Firebase

    Trợ lý Firebase đã được cập nhật với hướng dẫn mới nhằm kiểm thử tính năng Lập chỉ mục ứng dụng. Để mở Trợ lý, hãy chọn Tools > Firebase (Công cụ > Firebase). Sau đó, chọn App Indexing > Test App Indexing (Lập chỉ mục ứng dụng > Kiểm thử tính năng lập chỉ mục ứng dụng).

    Phần hướng dẫn sẽ bao gồm các nút mới để kiểm thử việc lập chỉ mục nội dung cá nhân và nội dung công khai:

    • Ở bước 2, hãy nhấp vào Preview search results (Xem trước kết quả tìm kiếm) để xác minh rằng URL của bạn đang xuất hiện trong kết quả của Google Tìm kiếm.
    • Ở bước 3, hãy nhấp vào Kiểm tra lỗi (Check for errors) để xác minh rằng các đối tượng có thể lập chỉ mục trong ứng dụng của bạn đã được thêm vào chỉ mục nội dung cá nhân.

    Trợ lý về đường liên kết trong ứng dụng đã được cập nhật với các tính năng mới sau đây:

    • Thêm hoạt động kiểm thử URL cho mỗi liên kết URL để đảm bảo bộ lọc ý định xử lý các URL trong thực tế.

      Bạn cũng có thể tự xác định các hoạt động kiểm thử URL này bằng cách sử dụng thẻ <tools:validation> mô tả bên dưới.

    • Tạo tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) có mục đối tượng thích hợp để hỗ trợ Google Smart Lock và thêm thẻ asset_statements <meta-data> tương ứng vào tệp kê khai của bạn.

    Trình xác thực bộ lọc ý định URL

    Android Studio hiện hỗ trợ một thẻ đặc biệt trong tệp kê khai, cho phép bạn kiểm thử URL của bộ lọc ý định. Đây cũng chính là các thẻ mà Trợ lý về đường liên kết trong ứng dụng có thể tạo cho bạn.

    Để khai báo một URL của hoạt động kiểm thử cho một bộ lọc ý định, hãy thêm phần tử <tools:validation> cùng với phần tử <intent-filter> tương ứng. Ví dụ:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Hãy nhớ đưa cả xmlns:tools="http://schemas.android.com/tools" vào thẻ <manifest>.

    Nếu có bất cứ URL nào của hoạt động kiểm thử không vượt qua được định nghĩa của bộ lọc ý định, thì lỗi tìm lỗi mã nguồn sẽ xuất hiện. Dù lỗi này có xuất hiện thì bạn vẫn tạo được các biến thể gỡ lỗi, nhưng sẽ làm hỏng bản phát hành.

    Trình chỉnh sửa bố cục (Layout Editor)

    Layout Editor đã được cập nhật với một số tính năng nâng cao sau đây:

    • Biểu tượng và bố cục mới trên thanh công cụ.
    • Cập nhật bố cục trong cây thành phần.
    • Cải thiện tính năng chèn khung hiển thị kéo và thả.
    • Bảng điều khiển mới về lỗi ở bên dưới trình chỉnh sửa, hiển thị mọi vấn đề kèm theo nội dung đề xuất để khắc phục (nếu có).
    • Các tính năng nâng cao cho giao diện người dùng để xây dựng bằng ConstraintLayout, gồm có các tính năng sau:
      • Tính năng hỗ trợ mới để tạo rào cản.
      • Tính năng hỗ trợ mới để tạo nhóm: Trong thanh công cụ, hãy chọn Guidelines > Add Group (Nguyên tắc > Thêm nhóm) (cần có ConstraintLayout phiên bản 1.1.0 beta 2 trở lên)
      • Giao diện người dùng mới để tạo chuỗi: Chọn nhiều khung hiển thị, sau đó nhấp chuột phải và chọn Chain (Chuỗi).

    Trình kiểm tra bố cục (Layout Inspector)

    Layout Inspector bao gồm các tính năng nâng cao giúp bạn dễ dàng gỡ lỗi cho các vấn đề về bố cục ứng dụng hơn, bao gồm cả việc nhóm các thuộc tính vào danh mục phổ biến và chức năng tìm kiếm mới ở cả ngăn View Tree (Cây khung hiển thị) và ngăn Properties (Thuộc tính).

    Công cụ phân tích APK

    Giờ đây, bạn có thể sử dụng Công cụ phân tích APK trong dòng lệnh bằng công cụ apkanalyzer.

    Công cụ phân tích APK cũng được cập nhật với những điểm cải tiến sau đây:

    • Đối với những APK được tạo bằng ProGuard, bạn có thể tải các tệp ánh xạ ProGuard để thêm các tính năng vào trình xem DEX, bao gồm:
      • Các nút được in đậm để cho biết rằng bạn không nên xoá những nút này khi rút gọn mã.
      • Nút cho thấy các nút đã bị xoá trong quá trình rút gọn.
      • Nút khôi phục tên ban đầu của các nút trong khung hiển thị dạng cây đã bị ProGuard làm rối mã nguồn.
    • Trình xem DEX giờ đây sẽ cho bạn biết tác động ước tính về kích thước của mỗi gói, lớp và phương thức.
    • Các tuỳ chọn lọc mới ở trên cùng để hiện và ẩn các trường cũng như phương thức.
    • Trong khung hiển thị dạng cây, các nút là tệp tham chiếu không được xác định trong tệp DEX sẽ xuất hiện bằng chữ in nghiêng.

    Để biết thêm thông tin, hãy xem bài viết Phân tích bản dựng của bạn bằng Công cụ phân tích APK.

    Bản xem trước trình biên dịch DEX D8

    Android Studio 3.0 có một trình biên dịch DEX mới không bắt buộc có tên là D8. Cuối cùng, trình biên dịch này sẽ thay thế trình biên dịch DX, tuy nhiên, bạn có thể chọn sử dụng trình biên dịch D8 mới ngay bây giờ.

    Quá trình biên dịch DEX có tác động trực tiếp đến thời gian tạo bản dựng, kích thước tệp .dex và hiệu suất thời gian chạy của ứng dụng. Và khi so sánh trình biên dịch D8 mới với trình biên dịch DX hiện tại, D8 biên dịch nhanh hơn và tạo ra các tệp .dex có kích thước nhỏ hơn, trong khi vẫn có cùng hiệu suất thời gian chạy ứng dụng hoặc có hiệu suất thời gian chạy ứng dụng tốt hơn.

    Để dùng thử, hãy đặt giá trị trong tệp gradle.properties của dự án như sau:

    android.enableD8=true
        

    Để biết thêm thông tin, hãy xem bài đăng trên blog về trình biên dịch D8.

    Kho lưu trữ Maven của Google

    Android Studio hiện sử dụng Kho lưu trữ Maven của Google theo mặc định thay vì phải dựa vào Trình quản lý SDK Android để tải bản cập nhật cho Thư viện hỗ trợ Android, Dịch vụ Google Play, Firebase và các phần phụ thuộc khác. Điều này giúp bạn dễ dàng cập nhật các thư viện của mình hơn, đặc biệt khi sử dụng hệ thống tích hợp liên tục (CI).

    Tất cả các dự án mới giờ đây đều bao gồm kho lưu trữ Maven của Google theo mặc định. Để cập nhật dự án hiện có, hãy thêm google() vào khối repositories của tệp build.gradle ở cấp cao nhất:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Hãy tìm hiểu thêm về kho lưu trữ Maven của Google tại đây.

    Các thay đổi khác

    • Tính năng gỡ lỗi gốc có trong Android Studio không hỗ trợ Windows 32 bit nữa. Chúng tôi đã chọn tập trung vào các nền tảng khác vì có rất ít nhà phát triển dùng nền tảng này. Nếu đang dùng Windows 32 bit và định gỡ lỗi mã gốc, thì bạn nên tiếp tục sử dụng Android Studio 2.3.
    • Nâng cấp IDE cơ sở lên IntelliJ 2017.1.2, có bổ sung một số tính năng mới từ phiên bản 2016.32017.1, chẳng hạn như tái cấu trúc ngôn ngữ Java 8, gợi ý tham số, làm nổi bật ngữ nghĩa, điểm ngắt kéo được, kết quả tức thì trong tính năng tìm kiếm và nhiều tính năng khác.
    • Thêm nhiều lượt kiểm tra tìm lỗi mã nguồn mới.
    • Ngoài ra, hãy xem thông tin cập nhật mới nhất về Trình mô phỏng Android.

    Phiên bản 2.3 (Tháng 3 năm 2017)

    Android Studio 2.3.0 chính là một bản sửa lỗi và bản phát hành chính thức, tuy nhiên, bản phát hành này cũng có một số tính năng mới.

    Phiên bản 2.3.3 (tháng 6 năm 2017)

    Đây là bản cập nhật nhỏ để bổ sung tính năng hỗ trợ cho Android O (API cấp 26).

    Phiên bản 2.3.2 (Tháng 4 năm 2017)

    Đây là bản cập nhật nhỏ cho Android Studio 2.3 với những thay đổi sau:

    • Cập nhật Trình quản lý thiết bị ảo Android để hỗ trợ Google Play trong ảnh hệ thống.
    • Sửa lỗi cho các bản dựng NDK khi sử dụng NDK R14+.

    Đồng thời thấy các bản cập nhật tương ứng cho Trình mô phỏng Android 26.0.3.

    Phiên bản 2.3.1 (tháng 4 năm 2017)

    Đây là bản cập nhật nhỏ cho Android Studio 2.3, trong đó khắc phục sự cố một số thiết bị Android thực tế không hoạt động đúng cách khi dùng Tính năng Chạy tức thì (xem Vấn đề 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your project’s
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    Phiên bản 2.2 (Tháng 9 năm 2016)

    Phiên bản 2.2.3 (tháng 12 năm 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    Phiên bản 2.2.2 (tháng 10 năm 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    Phiên bản 2.2.1 (tháng 10 năm 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Mới

    • Tất cả Layout Editor phiên bản mới đều có công cụ được thiết kế tuỳ chỉnh nhằm hỗ trợ ConstraintLayout.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Các thay đổi

    • Cập nhật cơ sở mã IDE từ IntelliJ 15 thành IntelliJ 2016.1
    • Hiện tại, tính năng Chạy tức thì yêu cầu phải cài đặt SDK của nền tảng tương ứng với cấp độ API của thiết bị mục tiêu.
    • Tính năng Chạy tức thì sẽ tự động tắt nếu người dùng đang chạy ứng dụng trong hồ sơ công việc hoặc với tư cách là người dùng phụ.
    • Khắc phục nhiều vấn đề về độ ổn định của tính năng Chạy tức thì, trong đó các thay đổi không được triển khai hoặc ứng dụng gặp sự cố:
      • Một số tài sản của ứng dụng chưa được triển khai cho ứng dụng đang chạy. (Lỗi: 213454)
      • Ứng dụng gặp sự cố khi người dùng chuyển đổi giữa các phiên Chạy tức thì và phiên Chạy không tức thì, trong đó Lớp có thể chuyển đổi tuần tự chưa xác định serialVersionUID. (Lỗi: 209006)
      • Các thay đổi về kiểu chưa được phản ánh bằng tính năng Chạy tức thì. (Lỗi: 210851)
      • Phiên Chạy tức thì không đáng tin cậy nên gây ra tình trạng FileNotFoundException. (Lỗi: 213083)
      • Các thay đổi đối với đối tượng có thể vẽ không được phản ánh cho đến khi bạn xây dựng lại toàn bộ cho KitKat. (Lỗi: 21530)
      • Các thay đổi về tài nguyên không được phản ánh bằng tính năng Chạy tức thì khi sourceSets tuỳ chỉnh có chứa các đường dẫn lồng nhau. (Lỗi: 219145)
      • Tính năng hoán đổi nóng và nguội không hoạt động nếu lớp được thay đổi chứa chú giải có giá trị enum. (Lỗi: 209047)
      • Các thay đổi đối với dữ liệu chú giải chưa được phản ánh bằng tính năng Chạy tức thì. (Lỗi: 210089)
      • Tính năng Chạy tức thì không đề xuất các thay đổi mã nếu bạn thay đổi bên ngoài IDE. (Lỗi: 213205)
      • Phiên Chạy tức thì không đáng tin cậy do mã thông báo bảo mật không khớp. (Lỗi: 211989
      • Không chạy được tính năng hoán đổi nguội cho các thiết bị không hỗ trợ chế độ run-as đúng cách. (Lỗi: 210875)
      • Xảy ra sự cố ứng dụng sau khi khởi động lại tính năng chạy tức thì. (Lỗi: 219744)
      • Phát hiện ClassNotFoundException khi chuyển từ tính năng Chạy tức thì sang Gỡ lỗi tức thì. (Lỗi: 215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    Phiên bản 2.1 (Tháng 4 năm 2016)

    Những thay đổi chính trong bản cập nhật này sẽ hỗ trợ bạn phát triển ứng dụng bằng Bản xem trước Android N.

    Phiên bản 2.1.3 (tháng 8 năm 2016)

    Bản cập nhật này bổ sung khả năng tương thích với Gradle 2.14.1, trong đó có những điểm cải tiến về hiệu suất, tính năng mới và một bản vá bảo mật quan trọng. Để biết thêm thông tin chi tiết, hãy xem ghi chú phát hành của Gradle.

    Theo mặc định, các dự án mới trong Android Studio 2.1.3 sẽ sử dụng Gradle 2.14.1. Đối với các dự án hiện có, IDE sẽ nhắc bạn nâng cấp lên Gradle 2.14.1 và Trình bổ trợ Android cho Gradle 2.1.3 (cần có khi sử dụng Gradle 2.14.1 trở lên).

    Phiên bản 2.1.2 (tháng 6 năm 2016)

    Bản cập nhật này có một số thay đổi nhỏ và các bản sửa lỗi như sau:

    • Bản cập nhật và bản sửa lỗi cho tính năng Chạy tức thì.
    • Cải thiện hiệu suất của LLDB và thông báo lỗi.
    • Khắc phục lỗi hồi quy trong bản cập nhật bảo mật Android Studio 2.1.1 khiến git rebase không hoạt động được.

    Phiên bản 2.1.1 (Tháng 5/2016)

    Bản phát hành cập nhật về bảo mật.

    Nền tảng Android N thêm tính năng hỗ trợ cho các tính năng trong ngôn ngữ Java 8. Các tính năng này cần có một trình biên dịch thử nghiệm mới có tên là Jack. Phiên bản Jack mới nhất hiện chỉ được hỗ trợ trong Android Studio 2.1. Vì vậy, nếu muốn sử dụng các tính năng trong ngôn ngữ Java 8, bạn cần dùng Android Studio 2.1 để xây dựng ứng dụng.

    Lưu ý: Tính năng Chạy tức thì bị tắt khi bạn bật trình biên dịch Jack vì chúng hiện không tương thích.

    Mặc dù Android Studio 2.1 hiện là bản chính thức, nhưng trình biên dịch Jack vẫn là bản thử nghiệm và bạn phải bật trình biên dịch này bằng thuộc tính jackOptions trong tệp build.gradle.

    Ngoài các thay đổi để hỗ trợ Bản xem trước N, Android Studio 2.1 bao gồm các bản sửa lỗi nhỏ và các tính năng nâng cao sau đây:

    • Trình gỡ lỗi C++ có khả năng nhận biết Java hiện được bật theo mặc định khi bạn đang sử dụng thiết bị hoặc trình mô phỏng N, đồng thời bạn chọn chế độ trình gỡ lỗi Native (Gốc) (trong thẻ Debugger (Trình gỡ lỗi) cho cấu hình chạy/gỡ lỗi).

    Đối với các tính năng bản dựng nâng cao khác, bao gồm tính năng biên dịch Java tăng dần và tính năng tạo tệp dex trong quy trình tạo bản dựng, hãy cập nhật trình bổ trợ Android cho Gradle lên phiên bản 2.1.0.

    Phiên bản 2.0 (Tháng 4 năm 2016)

    Lưu ý: Nếu đang phát triển Bản dùng thử N cho nhà phát triển, thì bạn nên sử dụng Bản dùng thử Android Studio 2.1. Android Studio 2.0 không hỗ trợ mọi tính năng cần thiết để nhắm mục tiêu đến Bản dùng thử N.

    Chạy tức thì:

    • Android Studio giờ đây sẽ triển khai các bản dựng sạch nhanh hơn bao giờ hết. Ngoài ra, việc chuyển các thay đổi tăng dần về mã vào trình mô phỏng hoặc thiết bị thực tế giờ đây gần như diễn ra ngay lập tức. Xem lại các bản cập nhật mà không cần triển khai lại bản gỡ lỗi mới hoặc, trong nhiều trường hợp, không cần khởi động lại ứng dụng.
    • Tính năng Chạy tức thì hỗ trợ chuyển các thay đổi sau đây vào ứng dụng đang chạy:
      • Thay đổi đối với việc triển khai một phương thức thực thể hoặc phương thức tĩnh hiện có
      • Thay đổi đối với tài nguyên ứng dụng hiện có
      • Thay đổi đối với mã cấu trúc, chẳng hạn như chữ ký phương thức hoặc một trường tĩnh (cần có thiết bị mục tiêu chạy API cấp 21 trở lên).
    • Hãy đọc tài liệu này để tìm hiểu thêm về tính năng Chạy tức thì.

      Lưu ý: Tính năng Chạy tức thì chỉ được hỗ trợ khi bạn triển khai biến thể bản dựng gỡ lỗi, sử dụng trình bổ trợ Android cho Gradle phiên bản 2.0.0 trở lên và định cấu hình tệp build.gradle ở cấp mô-đun của ứng dụng cho minSdkVersion 15 trở lên. Để có hiệu suất tốt đa, hãy định cấu hình ứng dụng cho minSdkVersion 21 trở lên.

    Những điểm bổ sung mới cho công cụ tìm lỗi mã nguồn:

    • Kiểm tra các câu lệnh switch bằng số nguyên có chú giải @IntDef để đảm bảo mọi hằng số đều được xử lý. Để thêm nhanh mọi câu lệnh bị thiếu, hãy sử dụng trình đơn thả xuống thao tác theo ý định và chọn Add Missing @IntDef Constants (Thêm hằng số @IntDef bị thiếu).
    • Gắn cờ cho những lần thử dùng loại nội suy chuỗi không chính xác để chèn số phiên bản trong tệp build.gradle.
    • Gắn cờ cho các lớp ẩn danh mở rộng lớp Fragment.
    • Gắn cờ cho mã gốc ở các vị trí không an toàn, chẳng hạn như thư mục res/asset/. Cờ này khuyến khích việc lưu trữ mã gốc trong thư mục libs/, sau đó, mã này sẽ được đóng gói một cách an toàn vào thư mục data/app-lib/ của ứng dụng khi cài đặt. AOSP: 169950
    • Gắn cờ cho các lệnh gọi không an toàn đến Runtime.load() và lệnh gọi đến System.load(). AOSP: 179980
    • Tìm và xoá mọi tài nguyên không dùng đến bằng cách chọn Refactor > Remove Unused Resources (Tái cấu trúc > Xoá Tài nguyên không dùng đến) khỏi thanh trình đơn. Tính năng phát hiện tài nguyên không dùng đến giờ đây sẽ chỉ hỗ trợ các tài nguyên được tham chiếu bởi tài nguyên không dùng đến, tài nguyên trong tệp thô, chẳng hạn như tệp tham chiếu hình ảnh .html và thuộc tính tools:keeptools:discard do trình rút gọn tài nguyên Gradle sử dụng, trong khi vẫn tính đến các nhóm tài nguyên không hoạt động (chẳng hạn như tài nguyên được dùng trong các phiên bản bản dựng khác) và xử lý đúng cách việc nhập trường tĩnh.
    • Hãy kiểm tra để đảm bảo rằng các tài liệu tham khảo API ngầm ẩn được hỗ trợ trên mọi nền tảng mà minSdkVersion nhắm đến.
    • Gắn cờ việc sử dụng RecyclerViewParcelable sai cách.
    • Tính năng kiểm tra @IntDef, @IntRange@Size giờ đây cũng sẽ được kiểm tra cho mảng và vararg của int.

    Những điểm cải tiến bổ sung:

    • Tối ưu hoá cho Trình mô phỏng Android 2.0, phiên bản nhanh hơn bao giờ hết, hỗ trợ nhiều thiết bị ảo hơn và có giao diện người dùng được cải thiện đáng kể. Để tìm hiểu thêm về trình mô phỏng mới này, hãy đọc ghi chú phát hành của Bộ công cụ SDK.
    • Những điểm cải tiến cho Trình quản lý Thiết bị Android ảo:
      • Ảnh hệ thống giờ đây sẽ được phân loại theo các thẻ sau: Khuyên dùng, x86Khác.
      • Trong phần cài đặt nâng cao, bạn có thể bật tính năng hỗ trợ nhiều lõi và chỉ định số lượng lõi mà trình mô phỏng có thể sử dụng.
      • Trong phần cài đặt nâng cao, bạn có thể xác định cách kết xuất nội dung đồ hoạ trên trình mô phỏng bằng cách chọn một trong các tuỳ chọn sau:
        • Hardware (Phần cứng): Dùng thẻ đồ hoạ của máy tính để hiển thị nhanh hơn.
        • Software (Phần mềm): Sử dụng chế độ hiển thị dựa trên phần mềm.
        • Auto (Tự động): Để trình mô phỏng quyết định tuỳ chọn phù hợp nhất. Đây là chế độ cài đặt mặc định.
    • Cải thiện thời gian đóng gói AAPT bằng cách xác định mục tiêu triển khai trước khi ứng dụng được tạo. Việc này sẽ giúp Android Studio chỉ đóng gói những tài nguyên mà thiết bị được chỉ định yêu cầu theo cách hiệu quả.
    • Bổ sung tính năng tích hợp Phòng thí nghiệm kiểm tra đám mây để kiểm thử ứng dụng theo yêu cầu nhờ sự tiện lợi và khả năng mở rộng của dịch vụ đám mây. Tìm hiểu thêm về cách bạn có thể dùng Phòng thí nghiệm kiểm tra đám mây với Android Studio.
    • Bổ sung một bản xem trước của Trình gỡ lỗi GPU mới. Đối với các ứng dụng dùng nhiều đồ hoạ, giờ đây, bạn có thể cung cấp bước thực hiện theo cách trực quan thông qua mã OpenGL ES để tối ưu hoá ứng dụng hoặc trò chơi của mình.
    • Bổ sung hoạt động kiểm thử cho tính năng Lập chỉ mục ứng dụng Google. Thêm tính năng hỗ trợ cho các URL, chức năng lập chỉ mục ứng dụng và chức năng tìm kiếm cho ứng dụng để thu hút thêm lưu lượng truy cập vào ứng dụng, khám phá nội dung ứng dụng được dùng nhiều nhất và thu hút người dùng mới. Bạn có thể thực hiện toàn bộ hoạt động kiểm thử và xác thực URL trong ứng dụng của mình ngay trong Android Studio. Hãy xem bài viết Hỗ trợ URL và lập chỉ mục ứng dụng trong Android Studio.
    • Nâng cấp từ bản phát hành IntelliJ 15 mới nhất, bao gồm các điểm cải thiện về hiệu suất và khả năng phân tích mã. Hãy xem bài viết Tính năng mới trong IntelliJ để biết nội dung mô tả đầy đủ về các tính năng cũng như các điểm cải thiện mới.
    • Giờ đây, tính năng tự động hoàn thành của trình chỉnh sửa XML sẽ thêm dấu ngoặc kép khi hoàn thành các thuộc tính. Để kiểm tra xem đã bật tuỳ chọn này hay chưa, hãy mở hộp thoại Setting (Cài đặt) hoặc Preferences (Lựa chọn ưu tiên), chuyển đến Editor > General > Smart Keys (Trình chỉnh sửa > Chung > Khoá thông minh) rồi chọn hộp bên cạnh tuỳ chọn Add quotes for attribute value on attribute completion (Thêm dấu ngoặc kép cho giá trị thuộc tính khi hoàn thành thuộc tính). Vấn đề: 195113
    • Trình chỉnh sửa XML giờ đây sẽ hỗ trợ tính năng hoàn thành mã cho biểu thức liên kết dữ liệu.

    Android Studio phiên bản 1.5.1 (Tháng 12 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Khắc phục một vấn đề về lỗi hiển thị trong Layout Editor. Vấn đề: 194612
    • Thêm chức năng thay đổi thuộc tính tệp kê khai description theo cấu hình. Vấn đề: 194705
    • Cải thiện độ tương phản của giao diện Darcula trên Android Studio trong Vector Asset Studio. Vấn đề: 191819
    • Thêm tính năng hỗ trợ thông qua nút Trợ giúp cho Vector Asset Studio.
    • Thêm tính năng hỗ trợ cho toán tử % để liên kết dữ liệu. Vấn đề: 194045
    • Khắc phục trường hợp chạy một ứng dụng để gỡ lỗi dẫn đến trình gỡ lỗi kết nối nhầm thiết bị. Vấn đề: 195167
    • Khắc phục ngoại lệ về con trỏ rỗng có thể xảy ra khi bạn tìm cách chạy một ứng dụng trong các trường hợp nhất định.

    Android Studio phiên bản 1.5.0 (Tháng 11 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Thêm các tính năng phân tích mới của Memory Monitor (Trình theo dõi bộ nhớ) vào Android Monitor (Trình theo dõi Android). Khi bạn xem tệp HPROF được ghi từ trình theo dõi này, giờ đây, thông tin hiển thị sẽ hữu ích hơn, nhờ đó bạn có thể xác định nhanh hơn các sự cố, chẳng hạn như sự cố rò rỉ bộ nhớ. Để sử dụng trình theo dõi này, hãy nhấp vào Android Monitor (Trình theo dõi Android) ở cuối cửa sổ chính. Trong Android Monitor (Trình theo dõi Android), hãy nhấp vào thẻ Memory (Bộ nhớ). Khi trình theo dõi đang chạy, hãy nhấp vào biểu tượng Dump Java Heap, sau đó nhấp vào Captures (Ghi) trong cửa sổ chính rồi nhấp đúp vào tệp để xem tệp đó. Nhấp vào Capture Analysis (Ghi thông tin phân tích) ở bên phải. (Trình theo dõi thiết bị Android và Trình theo dõi Android không thể cùng chạy một lúc.)
    • Thêm tuỳ chọn hỗ trợ mới cho đường liên kết sâu và đường liên kết ứng dụng. Trình soạn thảo mã có thể tự động tạo một bộ lọc ý định cho đường liên kết sâu trong tệp AndroidManifest.xml. Tệp này cũng có thể tạo mã để giúp bạn tích hợp với App Lập chỉ mục ứng dụng trong một hoạt động trong tệp Java. Tính năng kiểm thử đường liên kết sâu giúp bạn xác minh xem đường liên kết sâu được chỉ định có thể chạy ứng dụng hay không. Trong thẻ General (Chung) của hộp thoại Run/Debug Configurations (Cấu hình chạy/gỡ lỗi), bạn có thể chỉ định các tuỳ chọn khởi chạy đường liên kết sâu. Bạn cũng có thể kiểm thử các lệnh gọi API Lập chỉ mục ứng dụng trong một hoạt động bằng cách sử dụng thông tin hiển thị logcat của Android Monitor (Trình theo dõi Android). Công cụ lint của Android giờ đây sẽ có cảnh báo về một số vấn đề cụ thể liên quan đến đường liên kết sâu và API Lập chỉ mục ứng dụng.
    • Thêm khả năng sử dụng tên ngắn khi hoàn thành mã cho thành phần hiển thị tuỳ chỉnh trong Trình soạn thảo mã.
    • Thêm khả năng hỗ trợ cho các phần tử VectorDrawable khác để Vector Asset Studio có khả năng tương thích ngược. Vector Asset Studio có thể sử dụng các phần tử này nhằm chuyển đổi những vectơ vẽ được thành hình ảnh đường quét PNG để dùng được trên Android 4.4 (API cấp 20) trở xuống.
    • Thêm quy trình kiểm tra lint mới cho Android TV và Android Auto để cung cấp cho bạn phản hồi tức thì, có thể hành động trong Android Studio cùng với một số bản sửa lỗi nhanh. Ví dụ: đối với Android TV, ứng dụng này có thể báo cáo và sửa nhanh các quyền, phần cứng không được hỗ trợ, phần tử uses-feature và những vấn đề về việc thiếu biểu ngữ. Đối với Android Auto, ứng dụng này có thể xác thực cách sử dụng chính xác trong tệp mô tả được tham chiếu từ tệp AndroidManifest.xml, báo cáo nếu không có bộ lọc ý định cho lớp MediaBrowserService, và xác định một số vấn đề liên quan đến thao tác bằng giọng nói.
    • Thêm quy trình kiểm tra lint mới đối với broadcast receiver không an toàn, việc sử dụng lớp SSLCertificateSocketFactoryHostnameVerifier, cũng như lệnh gọi File.setReadable()File.setWritable(). Ứng dụng này cũng phát hiện các lượt tra cứu tài nguyên tệp kê khai không hợp lệ, đặc biệt đối với những tài nguyên thay đổi theo cấu hình.
    • Khắc phục một số vấn đề về độ ổn định.

    Android Studio phiên bản 1.4.1 (Tháng 10 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Khắc phục sự cố lưu vào bộ nhớ đệm của mô hình Gradle mà có thể dẫn đến tình trạng đồng bộ hoá Gradle quá mức khi IDE được khởi động lại.
    • Khắc phục sự cố tắc nghẽn khi gỡ lỗi gốc.
    • Khắc phục sự cố chặn người dùng của hệ thống quản lý phiên bản phiên bản phụ 1.9.
    • Khắc phục sự cố với hộp thoại Device Chooser (Trình chọn thiết bị) trong đó, sau khi kết nối một thiết bị không được phép, bạn không chọn được trình mô phỏng nữa. Vấn đề: 189658
    • Khắc phục tình trạng báo cáo lỗi dịch không chính xác cho các ngôn ngữ có bộ hạn định khu vực và bản dịch trong khu vực (nhưng không phải bằng ngôn ngữ cơ sở). Vấn đề: 188577
    • Khắc phục sự cố tắc nghẽn trong Trình chỉnh sửa giao diện liên quan đến hoạt động tương tác với Layout Editor. Vấn đề: 188070
    • Khắc phục tình trạng Theme Editor (Trình chỉnh sửa giao diện) tải lại và xảy ra hiện tượng xung đột khi chỉnh sửa khiến các thuộc tính không cập nhật đúng. Vấn đề: 187726
    • Cải thiện hiệu suất của Trình chỉnh sửa giao diện.
    • Khắc phục vấn đề thuộc tính android:required bị bỏ qua trong tệp kê khai. Vấn đề: 187665

    Android Studio phiên bản 1.4.0 (Tháng 9 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Thêm công cụ Vector Asset Studio để nhập đồ hoạ vectơ, chẳng hạn như biểu tượng Material và tệp SVG. Để dùng công cụ này, trong khung hiển thị của cửa sổ Dự án trên Android, hãy nhấp chuột phải vào thư mục res rồi chọn New > Vector Asset (Mới > Tài sản vectơ).
    • Thêm các hàm mới trong Trình theo dõi Android, GPU và Mạng. Để dùng các trình theo dõi này, hãy nhấp vào Android Monitor (Trình theo dõi Android) ở cuối cửa sổ chính. Trình theo dõi thiết bị Android và Trình theo dõi Android không thể cùng chạy một lúc.
    • Thêm bản xem trước sớm của Trình chỉnh sửa giao diện mới. Để dùng tính năng này, hãy chọn Tools > Android > Theme Editor (Công cụ > Android > Trình chỉnh sửa giao diện).
    • Cập nhật các mẫu Android cho Thư viện hỗ trợ thiết kế. Các mẫu giờ đây sẽ hỗ trợ thông số của Material Design cũng như Thư viện hỗ trợ appcompat để có khả năng tương thích ngược.

    Android Studio phiên bản 1.3.2 (Tháng 8 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Thêm tính năng hỗ trợ cho Android 6.0 (API cấp 23), trong đó có một số biểu tượng mới và tính năng hỗ trợ Trình quản lý thiết bị ảo Android để tạo thiết bị có mật độ màn hình mới.
    • Khắc phục một trường hợp ngoại lệ xảy ra trong quá trình kiểm tra bản cập nhật. Vấn đề: 183068
    • Khắc phục vấn đề về toạ độ khung hiển thị chưa được giải quyết có thể khiến Layout Editor gặp sự cố. Vấn đề: 178690
    • Khắc phục vấn đề về cảnh báo loại tài nguyên không hợp lệ. Vấn đề: 182433
    • Khắc phục tình trạng quy trình kiểm tra tìm lỗi mã nguồn bị gắn cờ không chính xác là tài nguyên riêng tư. Vấn đề: 183120

    Android Studio phiên bản 1.3.1 (Tháng 8 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Khắc phục tính năng hỗ trợ để tạo Thiết bị Android ảo Android Wear (AVD) trên Windows.
    • Cập nhật Project Wizard (Trình hướng dẫn dự án) để dùng tên dự án đã nhập.
    • Thêm tính năng hỗ trợ để cho phép lưu trữ SDK Android trong một thư mục chỉ có thể đọc.
    • Cập nhật trình bổ trợ Android cho Gradle lên phiên bản 1.3.0.
    • Khắc phục các vấn đề liên quan đến việc chạy một phiên gỡ lỗi từ vỏ Unix của Cầu gỡ lỗi Android (adb).
    • Khắc phục lỗi với thông điệp đổi tên gói Java để hiển thị đúng tên gói.

    Android Studio phiên bản 1.3.0 (Tháng 7 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Thêm các tuỳ chọn để bật các dịch vụ cho nhà phát triển, chẳng hạn như Google AdMobAnalytics, trong ứng dụng ngay trong Android Studio.
    • Thêm các chú giải bổ sung, chẳng hạn như @RequiresPermission, @CheckResults@MainThread.
    • Thêm tính năng tạo tệp báo lỗi trong Java và phân tích quá trình phân bổ luồng trong Memory Monitor (Trình theo dõi bộ nhớ). Bạn cũng có thể chuyển đổi các tệp có định dạng nhị phân HPROF dành riêng cho Android sang định dạng HPROF chuẩn ngay trong Android Studio.
    • Tích hợp Trình quản lý SDK vào Android Studio để đơn giản hoá việc truy cập vào gói và công cụ cũng như cung cấp thông báo cập nhật.

      Lưu ý: Bạn vẫn có thể sử dụng Trình quản lý SDK độc lập từ dòng lệnh, nhưng chỉ nên sử dụng trình quản lý này với các bản cài đặt SDK độc lập.

    • Thêm lệnh finger vào bảng điều khiển của trình mô phỏng để mô phỏng quy trình xác thực vân tay.
    • Thêm phần khai báo tài nguyên <public> để chỉ định tài nguyên thư viện làm tài nguyên công khai và riêng tư.

      Lưu ý: Cần có trình bổ trợ Android cho Gradle phiên bản 1.3 trở lên.

    • Thêm tính năng hỗ trợ liên kết dữ liệu để tạo bố cục khai báo, trong đó liên kết logic của ứng dụng với các phần tử bố cục.
    • Thêm tính năng hỗ trợ cho một mô-đun APK kiểm thử riêng để tạo các APK kiểm thử trong Android Studio.
    • Cập nhật Trình quản lý thiết bị ảo Android để tối ưu hoá HAXM và cải thiện thông báo.
    • Thêm tính năng hỗ trợ cho trình mô phỏng MIPS và ARM 64 bit cho QEMU 2.1.
    • Đơn giản hoá quá trình xử lý cảnh báo của công cụ Tìm lỗi mã nguồn (Lint) bằng cách thêm các bản sửa lỗi nhanh (chẳng hạn như tự động tạo hoạt động triển khai Theo gói).
    • Thêm tính năng hỗ trợ mẫu trực tiếp để chèn nhanh đoạn mã.

    Android Studio phiên bản 1.2.2 (Tháng 6 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Khắc phục các sự cố về bản dựng, trong đó bản dựng không hoàn thành được.

    Android Studio phiên bản 1.2.1 (Tháng 5 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Khắc phục các vấn đề nhỏ về hiệu suất và tính năng.

    Android Studio phiên bản 1.2.0 (Tháng 4 năm 2015)

    Các bản sửa lỗi và tính năng nâng cao:

    • Cập nhật cửa sổ Android Runtime để bao gồm công cụ Trình theo dõi bộ nhớ và thêm một thẻ để theo dõi hiệu suất của CPU.
    • Thêm thẻ Captures (Ghi) ở lề bên trái để hiển thị các tệp dữ liệu về hiệu suất của CPU và bộ nhớ đã ghi, chẳng hạn như chức năng theo dõi phương thức CPU và ảnh chụp nhanh của vùng nhớ khối xếp trong bộ nhớ.
    • Mở rộng tính năng hỗ trợ bằng chú giải với chú giải bổ sung về siêu dữ liệu và tính chất rỗng theo dự đoán.
    • Cải thiện Trình chỉnh sửa bản dịch để hỗ trợ thêm cho Phương pháp hay nhất hiện tại (BCP) 47, trong đó sử dụng mã vùng và mã ngôn ngữ gồm 3 chữ cái.
    • Tích hợp các tính năng IntelliJ 14 và 14.1 để cải thiện hiệu suất và việc phân tích mã:
      • Cải thiện tính năng gỡ lỗi để hiển thị giá trị cùng dòng cho các biến và đối tượng giới thiệu, cũng như thực hiện việc đánh giá cùng dòng về các biểu thức toán tử và lambda.
      • Thêm tính năng phát hiện kiểu mã cho kích thước thẻ và kích thước thụt lề.
      • Thêm tệp bản thảo cho các thử nghiệm mã và hoạt động tạo bản mô hình mà không cần có tệp dự án.
      • Thêm tính năng chèn đồng thời thẻ mở cùng thẻ đóng trong tệp HTML và XML.
      • Bổ sung trình dịch ngược lớp Java tích hợp sẵn để bạn có thể xem nội dung bên trong thư viện không có mã nguồn.

      Hãy xem bài viết Tính năng mới trong IntelliJ để biết nội dung mô tả đầy đủ về các tính năng và tính năng nâng cao mới.

    • Thêm Project Views (Thành phần hiển thị dự án) cho Scratches (Bản thảo), Project Files (Tệp dự án), Problems (Sự cố), Production (Sản xuất) và Tests (Kiểm thử) để tăng cường quyền truy cập và quyền quản lý dự án.
    • Cải thiện trình đơn File > Settings (Tệp > Cài đặt) và các hộp thoại để cải thiện quyền truy cập và quyền quản lý các chế độ cài đặt.
    • Thêm tính năng hỗ trợ cho màn hình mật độ cao dành cho Windows và Linux.
    • Thêm tính năng hỗ trợ cho các tài nguyên 280 dpi trong thư mục res/drawable-280dpi/.

    Android Studio phiên bản 1.1.0 (Tháng 2 năm 2015)

    Nhiều bản sửa lỗi và tính năng nâng cao:

    • Thêm tính năng hỗ trợ cho mẫu đồng hồ Android Wear.
    • Sửa đổi cách tạo mô-đun và dự án mới để thêm thư mục res/mipmap cho các biểu tượng trình chạy có mật độ cụ thể. Các thư mục res/mipmap này thay thế thư mục res/drawable cho các biểu tượng trình chạy.
    • Cập nhật các biểu tượng trình chạy để có giao diện Material Design và thêm biểu tượng trình chạy xxxhdpi.
    • Thêm và cải thiện hoạt động kiểm tra tìm lỗi mã nguồn cho các tổ hợp khu vực và ngôn ngữ, biểu tượng trình chạy, tên tài nguyên và các vấn đề phổ biến khác về mã.
    • Thêm tính năng hỗ trợ cho thẻ ngôn ngữ 47 của Phương pháp hay nhất hiện tại (BCP).

    Android Studio phiên bản 1.0.1 (Tháng 12 năm 2014)

    Nhiều bản sửa lỗi và tính năng nâng cao:

    • Khắc phục vấn đề liên quan đến Trình quản lý thiết bị ảo Android và tình trạng khoá tệp device.xml.
    • Khắc phục lỗi với nhật ký của trình mô phỏng trên các hệ thống Windows.
    • Khắc phục sự cố tạo Thiết bị Android ảo (AVD) khi Android Studio và SDK Android được cài đặt trên các trình điều khiển khác nhau trên hệ thống Windows.
    • Đặt kênh cập nhật mặc định cho các nội dung tải xuống mới thành Stable (Chính thức). Nếu bạn đã cài đặt Android Studio phiên bản 1.0.0 và muốn có các bản cập nhật chính thức, sẵn sàng phát hành, hãy sử dụng tuỳ chọn File > Settings > Updates (Tệp > Cài đặt > Bản cập nhật) để thay đổi thành kênh cập nhật Chính thức.

    Android Studio phiên bản 1.0 (Tháng 12 năm 2014)

    Bản phát hành ban đầu của Android Studio.

    Android Studio phiên bản 0.8.14 (Tháng 10 năm 2014)

    Hãy truy cập tools.android.com để xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.8.6 (Tháng 8 năm 2014)

    Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.8.0 (Tháng 6 năm 2014)

    Bổ sung dịch vụ hỗ trợ cho các dự án Android Wear.

    Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.5.2 (Tháng 5 năm 2014)

    • Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.4.6 (Tháng 3 năm 2014)

    • Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.4.2 (Tháng 1 năm 2014)

    • Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.3.2 (Tháng 10 năm 2013)

    • Hãy truy cập tools.android.comđể xem danh sách đầy đủ về các thay đổi.

    Android Studio phiên bản 0.2.x (Tháng 7 năm 2013)

    • Hợp nhất trong những thay đổi mới nhất về cơ sở mã IntelliJ. Tích hợp các bản sửa lỗi cho những vấn đề mà người dùng Studio báo cáo (chẳng hạn như những thay đổi về kích thước phông chữ và khả năng hiển thị phông chữ của Linux).
    • Trình bổ trợ Android cho Gradle đã cập nhật lên phiên bản 0.5.0.

      Thận trọng: Phiên bản mới này không có khả năng tương thích ngược. Khi bạn mở một dự án sử dụng phiên bản trình bổ trợ cũ, Studio sẽ cho thấy trạng thái Gradle <project_name> project refresh failed (Không làm mới được dự án Gradle <tên_dự_án>).

      Trình bổ trợ Gradle được cập nhật bao gồm những thay đổi sau:

      • Sửa mô hình IDE để chứa tệp đầu ra ngay cả khi tệp đó được tuỳ chỉnh thông qua DSL. Ngoài ra, chúng tôi cũng sửa DSL để tải/thiết lập tệp đầu ra trên đối tượng biến thể, nhờ vậy, bạn không cần sử dụng variant.packageApplication or variant.zipAlign
      • Khắc phục sự cố về độ phân giải của phần phụ thuộc để chúng tôi có thể giải quyết cùng lúc cấu hình mặc định, loại bản dựng và (các) phiên bản thay vì giải quyết riêng biệt.
      • Sửa phần phụ thuộc cho các bài kiểm thử của dự án thư viện để tích hợp đúng tất cả các phần phụ thuộc của chính thư viện đó.
      • Khắc phục trường hợp 2 phần phụ thuộc có cùng tên lá.
      • Khắc phục vấn đề không thể áp dụng tệp quy tắc Proguard trong phiên bản.

      Tất cả các ghi chú phát hành cho trình bổ trợ Gradle đều có ở đây: http://tools.android.com/tech-docs/new-build-system.

    • Lỗi Gradle từ aapt không còn trỏ đến các tệp đầu ra đã được hợp nhất trong bản dựng/thư mục, mà sẽ trỏ trở lại các vị trí nguồn thực tế.
    • Bản dựng song. Hiện tại, bạn có thể sử dụng bản dựng song của Gradle. Xin lưu ý rằng các bản dựng song song đang ở trạng thái "ưu tiên" (xem tài liệu về Gradle.) Tính năng này bị tắt theo mặc định. Để bật tính năng này, hãy chuyển đến Preferences (Lựa chọn ưu tiên) > Compiler (Trình biên dịch) rồi đánh dấu vào hộp Compile independent modules in parallel (Biên dịch các mô-đun độc lập song).
    • Ngoài ra, bạn còn có thể sử dụng kho lưu trữ tài nguyên mới để hiển thị bố cục, thu gọn tài nguyên trong trình chỉnh sửa và nhiều tác vụ khác:
      • Hỗ trợ cơ bản cho các phần phụ thuộc của thư viện .aar (ví dụ: sử dụng thư viện không có bản sao nguồn cục bộ). Vẫn không hoạt động với tính năng xác thực và điều hướng XML trong trình chỉnh sửa nguồn.
      • Phát hiện chu kỳ trong tệp tham chiếu tài nguyên.
      • Tài liệu nhanh (F1) (có thể cho thấy mọi bản dịch của chuỗi dưới dấu nháy) nay cũng cho thấy mọi lớp phủ tài nguyên cho nhiều loại phiên bản và loại bản dựng Gradle, cũng như các thư viện. Các tài nguyên này được liệt kê theo thứ tự lớp phủ tài nguyên ngược, với dấu gạch ngang trên các phiên bản của chuỗi bị che khuất.
      • Các cách khắc phục để xử lý việc cập nhật tài nguyên hợp nhất khi nhóm các phần phụ thuộc của mô-đun thay đổi.
      • Sửa lỗi kết xuất XML để xử lý đúng cách phần khai báo thực thể ký tự cũng như các ký tự thoát XML và Unicode.
    • Hỗ trợ lưu ảnh chụp màn hình cho cửa sổ xem trước bố cục và cửa sổ Layout Editor.
    • Bản sửa lỗi mẫu.
    • Bản sửa lỗi cho công cụ tìm lỗi mã nguồn.
    • Nhiều giải pháp khắc phục cho báo cáo sự cố. Cảm ơn bạn và hãy tiếp tục gửi báo cáo sự cố nhé!

    Android Studio phiên bản 0.1.x (Tháng 5 năm 2013)

    • Nhiều bản sửa lỗi, bao gồm cả bản sửa lỗi cho vấn đề thường gặp khi cài đặt Windows.

    Các bản phát hành trước đây của trình bổ trợ Android cho Gradle

    Phiên bản 3.6.0 (tháng 2 năm 2020)

    Phiên bản trình bổ trợ Android này yêu cầu:

    Tính năng mới

    Phiên bản Trình bổ trợ Android cho Gradle này có các tính năng mới sau đây.

    Liên kết thành phần hiển thị

    Tính năng Liên kết khung hiển thị đảm bảo an toàn về thời gian biên dịch khi tham chiếu các khung hiển thị trong mã. Bây giờ, bạn có thể thay thế findViewById() bằng tệp tham chiếu lớp liên kết tạo tự động. Để bắt đầu sử dụng tính năng Liên kết khung hiển thị, hãy đưa nội dung sau vào tệp build.gradle của mỗi mô-đun:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Để tìm hiểu thêm, hãy đọc tài liệu về Liên kết khung hiển thị.

    Hỗ trợ trình bổ trợ phát hành của Maven

    Trình bổ trợ Android cho Gradle cung cấp tính năng hỗ trợ cho Trình bổ trợ phát hành của Maven cho Gradle, cho phép bạn phát hành các cấu phần phần mềm bản dựng lên một kho lưu trữ Apache Maven. Trình bổ trợ Android cho Gradle sẽ tạo một thành phần cho mỗi cấu phần phần mềm biến thể bản dựng trong ứng dụng hoặc mô-đun thư viện mà bạn có thể dùng để tuỳ chỉnh ấn bản cho kho lưu trữ Maven.

    Để tìm hiểu thêm, hãy truy cập trang về cách sử dụng Trình bổ trợ phát hành của Maven.

    Công cụ đóng gói mặc định mới

    Khi xây dựng phiên bản gỡ lỗi của ứng dụng, trình bổ trợ sẽ sử dụng một công cụ đóng gói mới có tên zipflinger để xây dựng APK. Công cụ mới này sẽ giúp cải thiện tốc độ tạo bản dựng. Nếu công cụ đóng gói mới không hoạt động như mong đợi, vui lòng báo cáo lỗi. Bạn có thể quay lại sử dụng công cụ đóng gói cũ bằng cách đưa nội dung sau vào tệp gradle.properties:

            android.useNewApkCreator=false
          
    Thuộc tính bản dựng gốc

    Hiện bạn có thể xác định khoảng thời gian cần thiết để Clang xây dựng và liên kết mỗi tệp C/C++ trong dự án. Gradle có thể xuất một dấu vết Chrome chứa dấu thời gian cho những sự kiện biên dịch này, giúp bạn hiểu rõ hơn về thời gian cần thiết để xây dựng dự án. Để xuất tệp thuộc tính bản dựng này, hãy làm như sau:

    1. Bổ sung cờ -Pandroid.enableProfileJson=true khi chạy bản dựng Gradle. Ví dụ:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Mở trình duyệt Chrome và nhập chrome://tracing vào thanh tìm kiếm.

    3. Nhấp vào nút Tải (Load) và chuyển đến <var>project-root</var>/build/android-profile để tìm tệp. Tệp này có tên là profile-<var>timestamp</var>.json.gz.

    Bạn có thể xem dữ liệu thuộc tính bản dựng gốc ở gần đầu trình xem:

    Theo dõi thuộc tính bản dựng gốc trong Chrome

    Thay đổi về hành vi

    Khi sử dụng phiên bản trình bổ trợ này, bạn có thể gặp phải các thay đổi sau về hành vi.

    Thư viện gốc đóng gói không nén theo mặc định

    Khi bạn xây dựng ứng dụng, theo mặc định, trình bổ trợ hiện sẽ thiết lập extractNativeLibs thành "false". Điều đó nghĩa là các thư viện gốc của bạn được căn chỉnh theo trang và đóng gói không nén. Mặc dù tính năng này làm tăng kích thước tải lên, nhưng người dùng sẽ có được các lợi ích sau:

    • Giảm dung lượng cài đặt ứng dụng vì nền tảng có thể truy cập vào các thư viện gốc trực tiếp từ APK đã cài đặt mà không cần tạo bản sao của thư viện.
    • Giảm kích thước tải xuống vì tệp nén ở Cửa hàng Play thường tốt hơn khi bạn đưa thư viện gốc không nén vào APK hoặc Android App Bundle.

    Ngược lại, nếu bạn muốn Trình bổ trợ Android cho Gradle đóng gói các thư viện gốc được nén, hãy đưa nội dung sau vào tệp kê khai của ứng dụng:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Lưu ý: Thuộc tính tệp kê khai extractNativeLibs đã được thay thế bằng tuỳ chọn DSL useLegacyPackaging. Để biết thêm thông tin, hãy xem ghi chú phát hành Sử dụng DSL để đóng gói các thư viện gốc nén.

    Phiên bản NDK mặc định

    Nếu bạn tải nhiều phiên bản của NDK thì hiện Trình bổ trợ Android cho Gradle sẽ chọn một phiên bản mặc định dùng khi biên dịch các tệp mã nguồn. Trước đây, trình bổ trợ này đã chọn phiên bản đã tải xuống mới nhất của NDK. Sử dụng thuộc tính android.ndkVersion trong tệp build.gradle của mô-đun để ghi đè phiên bản mặc định do trình bổ trợ chọn.

    Đơn giản hoá tính năng tạo lớp R

    Trình đơn Android cho Gradle đơn giản hoá classpath biên dịch bằng cách chỉ tạo một lớp R cho từng mô-đun thư viện trong dự án và chia sẻ các lớp R đó với các phần phụ thuộc khác của mô-đun. Quá trình tối ưu hoá này sẽ tạo ra các bản dựng nhanh hơn, nhưng bạn cần lưu ý những điều sau:

    • Vì trình biên dịch chia sẻ các lớp R có phần phụ thuộc mô-đun ngược dòng, nên điều quan trọng là mỗi mô-đun trong dự án phải sử dụng một tên gói duy nhất.
    • Chế độ hiển thị lớp R của một thư viện đối với các phần phụ thuộc khác của dự án được xác định bằng cấu hình dùng để đưa thư viện vào dưới dạng phần phụ thuộc. Ví dụ: nếu Thư viện A tích hợp Thư viện B vào dưới dạng phần phụ thuộc "api", thì Thư viện A và các thư viện khác phụ thuộc vào Thư viện A có quyền truy cập vào lớp R của Thư viện B. Tuy nhiên, các thư viện khác có thể không có quyền truy cập vào lớp R của Thư viện B. Nếu Thư viện A sử dụng cấu hình phần phụ thuộc implementation. Để tìm hiểu thêm, hãy đọc bài viết về cấu hình phần phụ thuộc.
    Xoá tài nguyên bị thiếu khỏi cấu hình mặc định

    Đối với các mô-đun Thư viện, nếu bạn bổ sung một tài nguyên cho ngôn ngữ mà bạn không đưa vào nhóm tài nguyên mặc định (ví dụ: nếu bạn bổ sung hello_world dưới dạng tài nguyên chuỗi trong /values-es/strings.xml nhưng không xác định tài nguyên đó trong /values/strings.xml), thì Trình bổ trợ Android cho Gradle sẽ không còn đưa tài nguyên đó vào khi biên dịch dự án. Sự thay đổi này về hành vi sẽ giúp giảm số trường hợp ngoại lệ Resource Not Found đối với thời gian chạy và cải thiện tốc độ bản dựng.

    D8 hiện tuân thủ chính sách giữ lại dữ liệu CLASS dành cho chú giải

    Khi biên dịch ứng dụng, D8 hiện tuân thủ việc các chú giải áp dụng chính sách giữ lại dữ liệu CLASS và các chú giải đó sẽ không còn xuất hiện trong thời gian chạy. Hành vi này cũng tồn tại khi thiết lập SDK mục tiêu của ứng dụng thành API cấp 23. Trước đó, SDK đã cho phép truy cập vào các chú giải này trong thời gian chạy khi biên dịch ứng dụng bằng các phiên bản cũ của Trình bổ trợ Android cho Gradle và D8.

    Thay đổi khác về hành vi
    • aaptOptions.noCompress không còn phân biệt chữ hoa chữ thường trên bất cứ nền tảng nào (dành cho cả tệp APK lẫn gói) và tuân theo các đường dẫn sử dụng ký tự viết hoa.
    • Theo mặc định, liên kết dữ liệu hiện được gia tăng. Để tìm hiểu thêm, hãy xem nội dung Vấn đề #110061530.

    • Mọi bài kiểm thử đơn vị, bao gồm cả các bài kiểm thử đơn vị Roboelectric, hiện đều có thể lưu vào bộ nhớ đệm. Để tìm hiểu thêm, hãy xem nội dung Vấn đề #115873047.

    Sửa lỗi

    Phiên bản Trình bổ trợ Android cho Gradle này cung cấp các bản sửa lỗi sau:

    • Hiện chúng tôi đã hỗ trợ các bài kiểm thử đơn vị Robolectric trong những mô-đun thư viện sử dụng tính năng liên kết dữ liệu. Để tìm hiểu thêm, hãy xem nội dung Vấn đề #126775542.
    • Giờ đây, bạn có thể chạy tác vụ connectedAndroidTest trên nhiều mô-đun trong khi bật chế độ thực thi song song của Gradle.

    Vấn đề đã biết

    Phần này mô tả các vấn đề đã biết tồn tại trong Trình bổ trợ Android cho Gradle 3.6.0.

    Hiệu suất tác vụ chạy trên trình tìm lỗi mã nguồn của Android ở mức chậm

    Trình tìm lỗi mã nguồn của Android có thể mất thêm nhiều thời gian để hoàn thành một số dự án do sự hồi quy cơ sở hạ tầng phân tích cú pháp, dẫn đến việc tính toán chậm hơn các kiểu suy luận cho lambda trong những cấu trúc mã nhất định.

    Vấn đề này được báo cáo là một lỗi trong IDEA và sẽ được khắc phục trong Trình bổ trợ Android cho Gradle 4.0.

    Thiếu lớp tệp kê khai {:#agp-missing-manifest}

    Nếu ứng dụng của bạn xác định các quyền tuỳ chỉnh trong tệp kê khai, thì Trình bổ trợ Android cho Gradle thường tạo một lớp Manifest.java bổ sung các quyền đó dưới dạng hằng số chuỗi. Trình bổ trợ sẽ đóng gói lớp này cùng với ứng dụng để bạn có thể dễ dàng tham chiếu đến những quyền đó trong thời gian chạy.

    Tính năng tạo lớp tệp kê khai bị lỗi trong Trình bổ trợ Android cho Gradle 3.6.0. Nếu tạo ứng dụng bằng phiên bản trình bổ trợ này và ứng dụng tham chiếu đến lớp tệp kê khai, thì bạn có thể thấy ngoại lệ của ClassNotFoundException. Để giải quyết vấn đề này, hãy làm theo một trong những cách sau:

    • Tham chiếu đến các quyền tuỳ chỉnh theo tên đủ điều kiện. Ví dụ: "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Xác định các hằng số của riêng bạn như sau:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    Phiên bản 3.5.0 (tháng 8 năm 2019)

    Trình bổ trợ Android cho Gradle 3.5.0, cùng với Android Studio 3.5, là một bản phát hành chính và cũng là kết quả của Project Marble, tập trung vào việc cải thiện 3 lĩnh vực chính của công cụ cho nhà phát triển Android: trạng thái hệ thống, hoàn thiện tính năng và sửa lỗi. Đáng chú ý, việc cải thiện tốc độ bản dựng dự án là trọng tâm của bản cập nhật này.

    Để tìm hiểu thông tin về những nội dung này và các nội dung cập nhật khác về Project Marble, hãy đọc bài đăng trên blog dành cho nhà phát triển Android hoặc các phần dưới đây.

    Phiên bản trình bổ trợ Android này yêu cầu:

    Phiên bản 3.5.4 (tháng 7 năm 2020)

    Bản cập nhật nhỏ này hỗ trợ khả năng tương thích với các tính năng và chế độ cài đặt mặc định mới của chế độ xem gói trong Android 11.

    Hãy xem ghi chú phát hành phiên bản 4.0.1 để biết thông tin chi tiết.

    Phiên bản 3.5.3 (Tháng 12 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.5.3, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất.

    Phiên bản 3.5.2 (Tháng 11 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.5.2, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất. Để xem danh sách bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog về Thông tin cập nhật về bản phát hành.

    Phiên bản 3.5.1 (Tháng 10 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.5.1, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất. Để xem danh sách bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog về Thông tin cập nhật về bản phát hành.

    Tính năng xử lý chú giải gia tăng

    Trình xử lý chú giải Liên kết dữ liệu hỗ trợ tính năng xử lý chú giải gia tăng nếu bạn thiết lập android.databinding.incremental=true trong tệp gradle.properties. Tính năng tối ưu hoá này cải thiện hiệu suất bản dựng gia tăng. Để xem danh sách đầy đủ trình xử lý chú giải được tối ưu hoá, hãy tham khảo bảng các trình xử lý chú giải gia tăng.

    Ngoài ra, KAPT 1.3.30 trở lên cũng hỗ trợ trình xử lý chú giải gia tăng, bạn có thể bật bằng cách đưa kapt.incremental.apt=true vào tệp gradle.properties.

    Kiểm thử đơn vị lưu được vào bộ nhớ đệm

    Khi bạn bật tính năng kiểm thử đơn vị để dùng các tài nguyên, tài sản và tệp kê khai của Android bằng cách thiết lập includeAndroidResources thành true, trình bổ trợ Android cho Gradle sẽ tạo một tệp cấu hình kiểm thử chứa các đường dẫn tuyệt đối. Điều này sẽ làm hỏng khả năng di chuyển của bộ nhớ đệm. Bạn có thể hướng dẫn trình bổ trợ tạo cấu hình kiểm thử thay thế bằng cách sử dụng đường dẫn tương đối. Điều này cho phép tác vụ AndroidUnitTest lưu được hoàn toàn vào bộ nhớ đệm bằng cách đưa nội dung sau vào tệp gradle.properties:

          android.testConfig.useRelativePath = true
        

    Vấn đề đã biết

    • Khi dùng trình bổ trợ Kotlin cho Gradle 1.3.31 trở xuống, bạn có thể thấy cảnh báo sau đây khi tạo hoặc đồng bộ hoá dự án:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Để giải quyết vấn đề này, hãy nâng cấp trình bổ trợ lên phiên bản 1.3.40 trở lên.

    Phiên bản 3.4.0 (tháng 4 năm 2019)

    Phiên bản trình bổ trợ Android này yêu cầu:

    Phiên bản 3.4.3 (tháng 7 năm 2020)

    Bản cập nhật nhỏ này hỗ trợ khả năng tương thích với các tính năng và chế độ cài đặt mặc định mới của chế độ hiển thị gói trong Android 11.

    Hãy xem ghi chú phát hành phiên bản 4.0.1 để biết thông tin chi tiết.

    Phiên bản 3.4.2 (Tháng 7 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.4.2, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất. Để xem danh sách bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog về Thông tin cập nhật về bản phát hành.

    Phiên bản 3.4.1 (Tháng 5 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.4.1, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất. Để xem danh sách bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog về Thông tin cập nhật về bản phát hành.

    Tính năng mới

    • Cấu hình phần phụ thuộc mới cho công cụ kiểm tra tìm lỗi mã nguồn: Hành vi của lintChecks đã thay đổi và cấu hình phần phụ thuộc mới (lintPublish) đã được giới thiệu để cung cấp thêm quyền điều khiển công cụ kiểm tra tìm lỗi mã nguồn được đóng gói trong thư viện Android.

      • lintChecks: Đây là cấu hình hiện có mà bạn nên dùng cho công cụ kiểm tra tìm lỗi mã nguồn mà bạn chỉ muốn chạy khi tạo dự án cục bộ. Nếu trước đó bạn đã dùng cấu hình phần phụ thuộc lintChecks để đưa vào công cụ kiểm tra tìm lỗi mã nguồn trong tệp AAR đã phát hành, thì bạn cần di chuyển các phần phụ thuộc đó để dùng cấu hình lintPublish mới được mô tả bên dưới.
      • lintPublish: Sử dụng cấu hình mới này trong các dự án thư viện cho công cụ kiểm tra tìm lỗi mã nguồn bạn muốn đưa vào AAR đã phát hành, như được minh hoạ bên dưới: Tức là những dự án sử dụng thư viện cũng được áp dụng công cụ kiểm tra tìm lỗi mã nguồn trên.

      Mã mẫu sau đây dùng cả hai cấu hình phần phụ thuộc trong một dự án thư viện Android cục bộ.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • Nhìn chung, tốc độ xây dựng tổng thể các tác vụ đóng gói và ký sẽ cải thiện. Nếu bạn nhận thấy hiệu suất những tác vụ này giảm dần, vui lòng báo cáo lỗi.

    Thay đổi về hành vi

    • Cảnh báo về việc ngừng hỗ trợ trình bổ trợ Tính năng ứng dụng Android tức thì: Nếu bạn vẫn đang dùng trình bổ trợ com.android.feature để tạo ứng dụng tức thì, trình bổ trợ Android cho Gradle 3.4.0 sẽ gửi cảnh báo về việc ngừng hỗ trợ. Để đảm bảo bạn vẫn có thể tạo ứng dụng tức thì trên các phiên bản trình bổ trợ tương lai, hãy di chuyển ứng dụng tức thì sang dùngtrình bổ trợ tính năng động. Phương pháp này cũng cho phép phát hành cả thử nghiệm ứng dụng cài đặt và ứng dụng tức thì từ một Android App Bundle duy nhất.

    • R8 được bật theo mặc định: R8 tích hợp tính năng đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex chỉ trong một bước. Điều này giúp cải thiện hiệu suất của các bản dựng một cách đáng kể. R8 được giới thiệu trong trình bổ trợ Android cho Gradle 3.3.0 và hiện được bật theo mặc định cho cả ứng dụng lẫn các dự án thư viện Android sử dụng trình bổ trợ 3.4.0 trở lên.

    Hình ảnh bên dưới cung cấp thông tin tổng quan cấp cao về quá trình biên dịch trước khi R8 được giới thiệu.

    Trước R8, ProGuard là một bước biên dịch riêng, tách biệt với tác vụ tạo tệp dex và đơn giản hoá.

    Giờ đây, nhờ R8, việc đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex (D8) đều được hoàn tất trong một bước, như minh hoạ dưới đây.

    Với R8, việc đơn giản hoá, rút gọn, làm rối mã nguồn, tối ưu hoá và tạo tệp dex đều được thực hiện trong một bước biên dịch.

    Xin lưu ý rằng R8 được thiết kế để hoạt động với các quy tắc ProGuard hiện có, vì vậy, bạn có thể sẽ không cần thực hiện thêm hành động nào để hưởng lợi từ R8. Tuy nhiên, vì công nghệ này khác với ProGuard được thiết kế riêng cho các dự án Android, nên việc rút gọn và tối ưu hoá có thể khiến mã mà ProGuard không có bị xoá. Vì vậy, trong trường hợp hiếm gặp này, bạn có thể cần phải thêm quy tắc bổ sung để giữ lại mã đó trong đầu ra của bản dựng.

    Nếu gặp vấn đề khi sử dụng R8, hãy đọc bài viết Câu hỏi thường gặp về khả năng tương thích với R8 để xem có giải pháp nào không. Nếu không tìm thấy giải pháp, vui lòng báo cáo lỗi. Bạn có thể tắt R8 bằng cách thêm một trong các dòng sau vào tệp gradle.properties của dự án:

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    Lưu ý: Đối với một loại bản dựng cụ thể, nếu bạn đặt useProguard thành false trong tệp build.gradle của mô-đun ứng dụng, thì trình bổ trợ Android cho Gradle sẽ dùng R8 để rút gọn mã của ứng dụng cho loại bản dựng đó, bất kể bạn có tắt R8 trong tệp gradle.properties của dự án hay không.

    • Ngừng sử dụng ndkCompile: Bạn sẽ gặp lỗi bản dựng nếu cố sử dụngndkBuild để biên dịch thư viện gốc. Thay vào đó, bạn nên dùng CMake hoặc ndk-build đểThêm mã C và C++ vào dự án.

    Vấn đề đã biết

    • Việc dùng đúng tên gói duy nhất hiện không được thực thi nhưng sẽ áp dụng nghiêm ngặt hơn trên các phiên bản trình bổ trợ sau này. Trên Trình bổ trợ Android cho Gradle phiên bản 3.4.0, bạn có thể chọn tham gia để kiểm tra xem dự án của bạn có khai báo tên gói được chấp nhận hay không bằng cách bổ sung dòng dưới đây vào tệp gradle.properties.

                android.uniquePackageNames = true
                
              

      Để tìm hiểu thêm về cách đặt tên gói thông qua Trình bổ trợ Android cho Gradle, hãy xem nội dung Thiết lập mã ứng dụng.

    Phiên bản 3.3.0 (tháng 1 năm 2019)

    Phiên bản trình bổ trợ Android này yêu cầu:

    Phiên bản 3.3.3 (tháng 7 năm 2020)

    Bản cập nhật nhỏ này hỗ trợ khả năng tương thích với các tính năng và chế độ cài đặt mặc định mới của chế độ hiển thị gói trong Android 11.

    Hãy xem ghi chú phát hành phiên bản 4.0.1 để biết thông tin chi tiết.

    Phiên bản 3.3.2 (Tháng 3 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.3.2, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất. Để xem danh sách bản sửa lỗi đáng chú ý, hãy đọc bài đăng liên quan trên blog về Thông tin cập nhật về bản phát hành.

    Phiên bản 3.3.1 (tháng 2 năm 2019)

    Bản cập nhật nhỏ này hỗ trợ Android Studio 3.3.1, bao gồm nhiều bản sửa lỗi và cải thiện hiệu suất.

    Tính năng mới

    • Cải thiện tính năng đồng bộ hoá classpath: Khi phân giải các phần phụ thuộc trên classpath thời gian chạy và thời gian biên dịch, trình bổ trợ Android cho Gradle cố gắng sửa một số xung đột phiên bản truyền xuống cụ thể cho các phần phụ thuộc xuất hiện trên nhiều classpath.

      Ví dụ: nếu classpath thời gian chạy bao gồm Thư viện A phiên bản 2.0 và classpath biên dịch bao gồm Thư viện A phiên bản 1.0, thì trình bổ trợ sẽ tự động cập nhật phần phụ thuộc trên classpath biên dịch thành Thư viện A phiên bản 2.0 để tránh lỗi.

      Tuy nhiên, nếu classpath thời gian chạy bao gồm Thư viện A phiên bản 1.0 và classpath biên dịch bao gồm Thư viện A phiên bản 2.0, thì trình bổ trợ sẽ không hạ cấp phần phụ thuộc trên classpath biên dịch thành Thư viện A phiên bản 1.0 và sẽ xảy ra lỗi. Để tìm hiểu thêm, hãy xem nội dung Khắc phục xung đột giữa các classpath.

    • Cải thiện tính năng biên dịch Java gia tăng khi dùng trình xử lý chú giải: Bản cập nhật này giúp giảm thời gian tạo bản dựng bằng cách cải thiện khả năng hỗ trợ chế độ biên dịch Java gia tăng khi dùng trình xử lý chú giải.

      Lưu ý: Tính năng này tương thích với Gradle 4.10.1 trở lên, ngoại trừ Gradle 5.1 do Vấn đề Gradle 8194.

      • Đối với các dự án sử dụng Kapt (hầu hết các dự án chỉ dành cho Kotlin và dự án kết hợp Kotlin-Java): Chúng tôi sẽ bật tính năng biên dịch Java gia tăng, ngay cả khi bạn dùng tính năng liên kết dữ liệu hoặc trình bổ trợ retro-lambda. Hoạt động xử lý chú giải theo tác vụ Kapt chưa được gia tăng.

      • Đối với các dự án không sử dụng Kapt (các dự án chỉ dành cho Java): Nếu tất cả trình xử lý chú giải bạn sử dụng đều hỗ trợ xử lý chú giải gia tăng, tính năng biên dịch Java gia tăng sẽ được bật theo mặc định. Để theo dõi quá trình sử dụng trình xử lý chú giải gia tăng, hãy xem nội dung Vấn đề Gradle 5277.

        Tuy nhiên, nếu một hoặc nhiều trình xử lý chú giải không hỗ trợ các bản dựng gia tăng, thì chế độ biên dịch Java gia tăng sẽ không được bật. Thay vào đó, bạn có thể đưa cờ này vào tệp gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        Khi bạn đưa cờ này vào, trình bổ trợ Android cho Gradle sẽ thực thi các trình xử lý chú giải trong một tác vụ riêng và cho phép tác vụ biên dịch Java chạy theo mức độ tăng dần.

    • Cung cấp thông tin gỡ lỗi rõ ràng hơn khi dùng API lỗi thời: Trình bổ trợ phát hiện bạn đang dùng API đã bị ngừng hỗ trợ, nhưng vẫn có thể cung cấp thông tin chi tiết hơn để giúp xác định nơi API đó đang được dùng. Để xem thông tin bổ sung, bạn cần đưa đoạn mã sau vào tệp gradle.properties của dự án:

                android.debug.obsoleteApi=true
              

      Bạn cũng có thể bật cờ này bằng cách chuyển -Pandroid.debug.obsoleteApi=true vào từ dòng lệnh.

    • Bạn có thể chạy kiểm thử đo lường trên các mô-đun tính năng từ dòng lệnh.

    Thay đổi về hành vi

    • Cấu hình tác vụ trì hoãn: Trình bổ trợ hiện sử dụng API tạo tác vụ mới của Gradle nhằm tránh khởi chạy và định cấu hình các tác vụ không cần thiết để hoàn thành bản dựng hiện tại (hoặc các tác vụ không có trên biểu đồ tác vụ thực thi). Ví dụ: nếu bạn có nhiều biến thể bản dựng (chẳng hạn như các biến thể bản dựng "bản phát hành" và "gỡ lỗi") và đang xây dựng phiên bản "gỡ lỗi" của ứng dụng, trình bổ trợ sẽ tránh việc khởi chạy và định cấu hình tác vụ cho phiên bản "phát hành" của ứng dụng.

      Việc gọi một số phương thức cũ trong các API Biến thể (chẳng hạn như variant.getJavaCompile()) vẫn có thể bắt buộc định cấu hình tác vụ. Để đảm bảo rằng bản dựng được tối ưu hoá cho cấu hình tác vụ trì hoãn, hãy gọi các phương thức mới để trả về đối tượng TaskProvider thay thế (chẳng hạn như variant.getJavaCompileProvider()).

      Nếu bạn thực thi các tác vụ bản dựng tuỳ chỉnh, hãy tìm hiểu cách thích ứng với API tạo tác vụ mới của Gradle.

    • Đối với một loại bản dựng cụ thể, khi thiết lập useProguard false, trình bổ trợ hiện sẽ sử dụng R8 thay vì ProGuard để rút gọn và làm rối mã nguồn cùng tài nguyên của ứng dụng. Để tìm hiểu thêm về R8, hãy đọc bài đăng trên blog từ Blog của nhà phát triển Android.

    • Tạo lớp R nhanh hơn cho các dự án thư viện: Trước đây, trình bổ trợ Android cho Gradle sẽ tạo một tệp R.java cho từng phần phụ thuộc của dự án, sau đó biên dịch các lớp R đó cùng với các phần phụ thuộc của các lớp khác trong ứng dụng. Trình bổ trợ này hiện tạo tệp JAR chứa trực tiếp lớp R được biên dịch của ứng dụng mà không cần tạo trước các lớp R.java trung gian. Tính năng tối ưu hoá này có thể cải thiện đáng kể hiệu suất bản dựng cho các dự án có nhiều dự án thư viện con và phần phụ thuộc, đồng thời cải thiện tốc độ lập chỉ mục trong Android Studio.

    • Khi tạo một Android App Bundle, tệp APK được tạo từ gói ứng dụng đó – nhắm đến Android 6.0 (API cấp 23) trở lên – nay tích hợp các phiên bản thư viện gốc không nén theo mặc định. Việc tối ưu hoá này sẽ làm mất đi nhu cầu tạo bản sao thư viện của thiết bị. Nhờ đó, ứng dụng sẽ chiếm ít dung lượng trên ổ đĩa hơn. Tuy nhiên, nếu bạn muốn vô hiệu hoá tính năng tối ưu hoá này, hãy thêm nội dung sau vào tệp gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • Trình bổ trợ thực thi các phiên bản tối thiểu của một số trình bổ trợ bên thứ ba.

    • Đồng bộ hoá dự án một biến thể: Việc đồng bộ hoá dự án với cấu hình bản dựng là một bước quan trọng để Android Studio có thể nắm được cách xây dựng cấu trúc dự án. Tuy nhiên, đối với các dự án lớn, quá trình này có thể tốn nhiều thời gian. Giờ đây, nếu dự án của bạn dùng nhiều biến thể bản dựng, thì bạn có thể tối ưu hoá tính năng đồng bộ hoá dự án bằng cách chỉ giới hạn các biến thể đó thành biến thể bạn đang chọn.

      Bạn cần dùng Android Studio 3.3 trở lên với trình bổ trợ Android cho Gradle 3.3.0 trở lên để bật tính năng tối ưu hoá này. Khi bạn đáp ứng các yêu cầu trên, IDE sẽ nhắc bạn bật tính năng tối ưu hoá này khi bạn đồng bộ hoá dự án. Tính năng tối ưu hoá cũng được bật theo mặc định trên các dự án mới.

      Để bật tính năng tối ưu hoá này theo cách thủ công, hãy nhấp vàoFile > Settings > Experimental > Gradle (Tệp > Cài đặt > Thử nghiệm > Gradle) (Android Studio > Preferences > Experimental > Gradle trên máy Mac) (Android Studio > Tuỳ chọn > Thử nghiệm > Gradle trên máy Mac) rồi chọn hộp đánh dấu Only sync the active variant (Chỉ đồng bộ hoá biến thể đang hoạt động).

      Lưu ý: Tính năng tối ưu hoá này hỗ trợ đầy đủ các dự án chứa các ngôn ngữ Java và C++, đồng thời tích hợp một số tính năng hỗ trợ dành cho Kotlin. Khi bật tính năng tối ưu hoá cho các dự án có nội dung Kotlin, tính năng đồng bộ hoá Gradle sẽ quay lại sử dụng các biến thể đầy đủ trong nội bộ.

    • Tự động tải các gói SDK bị thiếu: Chúng tôi đã mở rộng chức năng này để hỗ trợ NDK. Để tìm hiểu thêm, hãy đọc nội dung Tự động tải các gói còn thiếu bằng Gradle.

    Sửa lỗi

    • Trình bổ trợ Android cho Gradle 3.3.0 khắc phục những vấn đề sau:

      • Mặc dù đã bật Jetifier, quy trình xây dựng vẫn gọi android.support.v8.renderscript.RenderScript thay vì phiên bản AndroidX.
      • Sự cố do androidx-rs.jar gây ra bao gồm cả gói tĩnh annotation.AnyRes
      • Khi sử dụng RenderScript, bạn không còn phải thiết lập phiên bản Công cụ tạo theo cách thủ công trong các tệp build.gradle

    Phiên bản 3.2.0 (tháng 9 năm 2018)

    Phiên bản trình bổ trợ Android này yêu cầu:

    Phiên bản 3.2.1 (Tháng 10 năm 2018)

    Với bản cập nhật này, bạn không cần chỉ định phiên bản cho Công cụ tạo bản dựng của SDK. Trình bổ trợ Gradle của Android hiện sử dụng phiên bản 28.0.3 theo mặc định.

    Tính năng mới

    • Hỗ trợ dựng Android App Bundle: Gói ứng dụng là một định dạng tải lên mới bao gồm tất cả tài nguyên và mã đã biên dịch của ứng dụng, đồng thời hoãn việc tạo tệp APK và ký trên Cửa hàng Google Play. Bạn không còn phải tạo, ký và quản lý nhiều tệp APK, ngoài ra người dùng sẽ nhận được các tệp tải xuống nhỏ hơn và được tối ưu hoá cho thiết bị. Để tìm hiểu thêm, hãy đọc bài viết Giới thiệu về Android App Bundle.

    • Hỗ trợ cải thiện tốc độ tạo bản dựng gia tăng khi sử dụng trình xử lý chú giải: DSL AnnotationProcessorOptions nay mở rộng CommandLineArgumentProvider, cho phép bạn hoặc tác giả trình xử lý chú giải chú giải các đối số cho trình xử lý bằng cách sử dụng chú giải kiểu thuộc tính bản dựng gia tăng. Việc sử dụng các chú giải này sẽ cải thiện độ chính xác và hiệu suất của các bản dựng sạch gia tăng lưu trong bộ nhớ đệm. Để tìm hiểu thêm, hãy đọc nội dung Truyền đối số tới trình xử lý chú giải.

    • Công cụ di chuyển cho AndroidX: Khi sử dụng trình bổ trợ Android cho Gradle 3.2.0 với Android 3.2 trở lên, bạn có thể di chuyển các phần phụ thuộc cục bộ và Maven của dự án để sử dụng các thư viện AndroidX mới bằng cách chọn Refactor > Migrate to AndroidX (Tái cấu trúc > Di chuyển sang AndroidX) trên thanh trình đơn. Việc sử dụng công cụ di chuyển này cũng thiết lập các cờ sau thành true trong tệp gradle.properties:

      • android.useAndroidX: Khi được đặt là true, trình bổ trợ Android sẽ sử dụng thư viện AndroidX thích hợp thay vì Thư viện hỗ trợ. Khi cờ này không được chỉ định, theo mặc định trình bổ trợ sẽ thiết lập thành false.

      • android.enableJetifier: Khi được đặt thành true, trình bổ trợ Android sẽ tự động di chuyển các thư viện hiện có của bên thứ ba để sử dụng AndroidX bằng cách viết lại tệp nhị phân. Khi cờ này không được chỉ định, theo mặc định trình bổ trợ sẽ thiết lập thành false. Bạn chỉ có thể thiết lập cờ này thành true khi android.useAndroidX cũng được thiết lập thành true. Nếu không, bạn sẽ gặp lỗi bản dựng.

        Để tìm hiểu thêm, hãy đọc bài viết tổng quan về AndroidX.

    • Trình rút gọn mã mới, R8: R8 là một công cụ mới giúp rút gọn và làm rối mã thay thế ProGuard. Bạn có thể bắt đầu sử dụng phiên bản dùng thử của R8 bằng cách đưa những đoạn mã sau vào tệp gradle.properties của dự án:

              android.enableR8 = true
              
              android.enableR8 = true
              

    Thay đổi về hành vi

    • Giờ đây, tuỳ chọn đơn giản hoá (desugar) bằng D8 được bật theo mặc định.

    • AAPT2 hiện được đưa vào kho lưu trữ Maven của Google. Để sử dụng AAPT2, hãy đảm bảo bạn có phần phụ thuộc google() trong tệp build.gradle như sau:

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • Cấu hình multidex gốc hiện được bật theo mặc định. Các phiên bản trước của Android Studio đã bật chế độ multidex gốc khi triển khai phiên bản gỡ lỗi của ứng dụng cho thiết bị chạy API Android cấp 21 trở lên. Hiện tại, cho dù bạn đang triển khai một thiết bị hay xây dựng một APK để phát hành, Trình bổ trợ Android cho Gradle sẽ bật chế độ multidex gốc cho tất cả những mô-đun thiết lập minSdkVersion=21 trở lên.

    • Trình bổ trợ này thực thi phiên bản tối thiểu của trình bổ trợ protobuf (0.8.6), Kotlin trình bổ trợ (1.2.50) và trình bổ trợ Crashlytics (1.25.4).

    • Trình bổ trợ mô-đun tính năng (com.android.feature) nay chỉ thực thi việc sử dụng chữ cái, chữ số và dấu gạch dưới khi chỉ định tên mô-đun. Ví dụ: nếu tên mô-đun tính năng có dấu gạch ngang, bạn sẽ gặp lỗi bản dựng. Hành vi này khớp với hành vi của trình bổ trợ tính năng động.

    Sửa lỗi

    • JavaCompile hiện có thể lưu được vào bộ nhớ đệm trong các dự án có liên kết dữ liệu. (Vấn đề #69243050)
    • Cải thiện thao tác tránh việc biên dịch đối với những mô-đun thư viện có liên kết dữ liệu (Vấn đề #77539932)
    • Hiện bạn có thể bật lại chế độ định cấu hình theo yêu cầu nếu đã vô hiệu hoá tính năng này trong các phiên bản cũ do một số lỗi bản dựng không dự đoán được. (Vấn đề #77910727)

    3.1.0 (tháng 3 năm 2018)

    Phiên bản trình bổ trợ Android này yêu cầu:

    • Gradle 4.4 trở lên.

      Để tìm hiểu thêm, hãy đọc phần cập nhật Gradle.

    • Công cụ tạo bản dựng 27.0.3 trở lên.

      Xin lưu ý rằng bạn không cần chỉ định phiên bản cho công cụ xây dựng bằng thuộc tính android.buildToolsVersion vì theo mặc định, trình bổ trợ sẽ sử dụng phiên bản tối thiểu cần thiết.

    Trình biên dịch DEX mới: D8

    Theo mặc định, Android Studio hiện sử dụng trình biên dịch DEX mới có tên D8. Biên dịch DEX là quá trình chuyển đổi mã byte .class thành mã byte .dex cho Android Runtime (hoặc Dalvik cho các phiên bản Android cũ). So với trình biên dịch trước đây có tên DX, D8 biên dịch nhanh hơn và tạo các tệp DEX nhỏ hơn, trong khi vẫn có hiệu suất thời gian chạy ứng dụng bằng hoặc cao hơn.

    D8 sẽ không thay đổi quy trình phát triển ứng dụng hằng ngày của bạn. Tuy nhiên, nếu bạn gặp bất cứ vấn đề nào liên quan đến trình biên dịch mới, vui lòng báo cáo lỗi. Bạn có thể tạm thời vô hiệu hoá D8 và sử dụng DX bằng cách đưa đoạn mã sau vào tệp gradle.properties của dự án:

          android.enableD8=false
        

    Đối với các dự án sử dụng các tính năng ngôn ngữ Java 8, quá trình đơn giản hoá gia tăng được bật theo mặc định. Bạn có thể vô hiệu hoá tính năng này bằng cách chỉ định thông tin sau trong tệp gradle.properties của dự án:

          android.enableIncrementalDesugaring=false.
        

    Người dùng xem trước: Nếu bạn đang sử dụng phiên bản xem trước của D8, hãy lưu ý rằng phiên bản này hiện biên dịch dựa trên các thư viện được đưa vào các công cụ xây dựng SDK (không phải JDK). Vì vậy, nếu bạn đang truy cập những API có trong JDK nhưng không có trong thư viện Công cụ tạo bản dựng của SDK, bạn sẽ gặp lỗi biên dịch.

    Thay đổi về hành vi

    • Khi xây dựng nhiều APK mà mỗi APK lại nhắm mục tiêu đến một ABI khác, theo mặc định, trình bổ trợ sẽ không tạo APK cho các ABI sau đây nữa: mips, mips64armeabi.

      Nếu muốn xây dựng tệp APK nhắm đến những ABI như vậy, bạn phải sử dụng NDK r16b trở xuống và chỉ định ABI trong tệp build.gradle, như minh hoạ dưới đây:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Bộ nhớ đệm bản dựng của trình bổ trợ Android nay xoá các mục cũ tồn tại hơn 30 ngày trong bộ nhớ đệm.

    • Hoạt động truyền "auto" cho resConfig không còn tự động chọn các tài nguyên chuỗi để đóng gói vào tệp APK. Nếu bạn tiếp tục sử dụng "auto", trình bổ trợ này sẽ đóng gói tất cả tài nguyên chuỗi mà ứng dụng và các phần phụ thuộc của ứng dụng đó cung cấp. Do đó, nên chỉ định từng ngôn ngữ mà bạn muốn trình bổ trợ đóng gói cho APK.

    • Vì các mô-đun cục bộ không thể phụ thuộc vào tệp APK kiểm thử của ứng dụng, nên thao tác bổ sung các phần phụ thuộc vào kiểm thử đo lường bằng cách sử dụng cấu hình androidTestApi (thay vì androidTestImplementation) sẽ khiến Gradle đưa ra cảnh báo sau:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Sửa lỗi

    • Khắc phục vấn đề Android Studio không nhận dạng chính xác các phần phụ thuộc trong bản dựng kết hợp.
    • Sửa lỗi đồng bộ hoá dự án xảy ra khi tải Trình bổ trợ Android nhiều lần trong một bản dựng – ví dụ: khi có nhiều dự án con mà mỗi dự án đưa Trình bổ trợ Android vào trong classpath tập lệnh bản dựng.

    Phiên bản 3.0.0 (tháng 10 năm 2017)

    Trình bổ trợ Android cho Gradle 3.0.0 cung cấp nhiều thay đổi nhằm giải quyết các vấn đề hiệu suất của các dự án lớn.

    Ví dụ: trên một dự án mẫu cơ bản có khoảng 130 mô-đun và một số lượng lớn các phần phụ thuộc từ bên ngoài (nhưng không có mã hoặc tài nguyên), bạn có thể trải nghiệm các điểm cải thiện hiệu suất tương tự như sau:

    Phiên bản trình bổ trợ Android + phiên bản Gradle Trình bổ trợ Android 2.2.0 + Gradle 2.14.1 Trình bổ trợ Android 2.3.0 + Gradle 3.3 Trình bổ trợ Android 3.0.0 + Gradle 4.1
    Cấu hình (ví dụ: chạy ./gradlew --help) ~2 phút ~9 giây ~2,5 giây
    Thay đổi Java 1 dòng (thay đổi triển khai) ~2 phút 15 giây ~29 giây ~6,4 giây

    Một số thay đổi trong số này sẽ làm hỏng các bản dựng hiện hữu. Vì vậy, bạn nên cân nhắc di chuyển dự án trước khi sử dụng trình bổ trợ mới.

    Nếu bạn không thấy các điểm cải thiện hiệu suất được mô tả ở trên, vui lòng gửi báo lỗi và đính kèm dấu vết bản dựng đang sử dụng bằng Trình phân tích tài nguyên Gradle.

    Phiên bản trình bổ trợ Android này yêu cầu:

    • Gradle 4.1 trở lên. Để tìm hiểu thêm, hãy đọc phần cập nhật Gradle.
    • Công cụ tạo bản dựng của SDK 26.0.2 trở lên. Với bản cập nhật này, bạn không cần chỉ định phiên bản cho công cụ xây dựng. Theo mặc định, trình bổ trợ sử dụng phiên bản tối thiểu cần thiết. Do đó, hiện bạn có thể xoá thuộc tính android.buildToolsVersion.

    Phiên bản 3.0.1 (Tháng 11 năm 2017)

    Đây là bản cập nhật nhỏ nhằm hỗ trợ Android Studio 3.0.1, bao gồm các bản sửa lỗi chung cùng các điểm cải thiện hiệu suất.

    Tối ưu hoá

    • Cải thiện tính năng tải song song cho các dự án nhiều mô-đun thông qua biểu đồ tác vụ chi tiết.
    • Khi thực hiện thay đổi với phần phụ thuộc, Gradle sẽ tạo bản dựng nhanh hơn bằng cách không biên dịch lại những mô-đun không có quyền truy cập vào API của phần phụ thuộc đó. Bạn nên hạn chế những phần phụ thuộc làm rò rỉ API đến các mô-đun khác bằng cách sử dụng cấu hình phần phụ thuộc mới của Gradle: implementation, api, compileOnlyruntimeOnly.
    • Tốc độ bản dựng gia tăng nhanh hơn do tạo tệp DEX cho mỗi lớp. Giờ đây, mỗi lớp được biên dịch thành các tệp DEX riêng biệt và chỉ các lớp đã được sửa đổi mới được tạo lại tệp DEX. Bạn cũng nên cải thiện tốc độ bản dựng cho các ứng dụng thiết lập minSdkVersion từ 20 trở xuống và sử dụng multidex cũ.
    • Cải thiện tốc độ bản dựng bằng cách tối ưu hoá một số tác vụ để sử dụng đầu ra lưu tại bộ nhớ đệm. Để tận dụng tính năng tối ưu hoá này, trước tiên bạn cần bật bộ nhớ đệm của bản dựng Gradle.
    • Cải thiện tính năng xử lý tài nguyên gia tăng bằng AAPT2 (nay được bật theo mặc định). Nếu bạn gặp vấn đề khi sử dụng AAPT2, vui lòng báo cáo lỗi. Bạn cũng có thể vô hiệu hoá AAPT2 bằng cách thiết lập android.enableAapt2=false trong tệp gradle.properties và khởi động lại trình nền Gradle bằng cách chạy ./gradlew --stop qua dòng lệnh.

    Tính năng mới

    • Quản lý phần phụ thuộc nhận biết được biến thể. Khi tạo một biến thể nhất định của một mô-đun, trình bổ trợ nay tự động kết nối biến thể của các phần phụ thuộc mô-đun thư viện cục bộ với biến thể của mô-đun đang được tạo.
    • Tích hợp một trình bổ trợ mô-đun Tính năng (Feature) mới để hỗ trợ Ứng dụng Android tức thì và SDK Ứng dụng Android tức thì (bạn có thể tải xuống bằng trình quản lý SDK). Để tìm hiểu thêm về cách tạo mô-đun Tính năng bằng trình bổ trợ mới, hãy đọc Cấu trúc của một ứng dụng tức thì có nhiều tính năng.
    • Tích hợp tính năng hỗ trợ sử dụng các tính năng ngôn ngữ và thư viện Java 8 nhất định. Nay ngừng sử dụng Jack và không còn bắt buộc người dùng phải sử dụng Jack. Trước tiên, bạn nên vô hiệu hoá Jack để sử dụng dịch vụ hỗ trợ Java 8 được cải thiện tích hợp sẵn trong chuỗi công cụ mặc định. Để biết thêm thông tin, hãy đọc bài viết Sử dụng các tính năng ngôn ngữ Java 8.
    • Hỗ trợ thêm tính năng chạy kiểm thử bằng Android Test Orchestrator. Chương trình này cho phép bạn chạy từng bài kiểm thử của ứng dụng ngay trong lệnh gọi đo lường riêng. Vì mỗi bài kiểm thử chạy trong thực thể đo lường riêng, nên mọi trạng thái dùng chung giữa các bài kiểm thử sẽ không tích luỹ vào CPU hoặc bộ nhớ của thiết bị. Đồng thời, ngay cả khi một bài kiểm thử gặp sự cố, chỉ có thực thể đo lường của bài kiểm thử này bị gỡ bỏ. Do đó, các bài kiểm thử khác vẫn sẽ chạy.

      • Thêm testOptions.execution để xác định việc sử dụng tính năng điều phối kiểm thử trên thiết bị hay không. Nếu muốn sử dụng Android Test Orchestrator, bạn cần chỉ định ANDROID_TEST_ORCHESTRATOR như sau. Theo mặc định, việc thuộc tính này được thiết lập thành HOST sẽ vô hiệu hoá tính năng điều phối trên thiết bị và là phương thức chuẩn để chạy kiểm thử.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Cấu hình phần phụ thuộc androidTestUtil mới cho phép bạn cài đặt một tệp APK trình trợ giúp kiểm thử khác trước khi chạy kiểm thử đo lường, chẳng hạn như Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Thêm testOptions.unitTests.includeAndroidResources để hỗ trợ chương trình kiểm thử đơn vị yêu cầu tài nguyên Android, chẳng hạn như Roboelectric. Khi bạn thiết lập thuộc tính này thành true, trình bổ trợ sẽ thực hiện hợp nhất tài nguyên, tài sản và tệp kê khai trước khi chạy kiểm thử đơn vị. Sau đó, chương trình kiểm thử có thể kiểm tra com/android/tools/test_config.properties trên classpath cho các khoá sau:

      • android_merged_assets: đường dẫn tuyệt đối đến thư mục tài sản hợp nhất.

        Lưu ý: Đối với các mô-đun thư viện, tài sản hợp nhất không chứa tài sản của các phần phụ thuộc (xem Vấn đề #65550419).

      • android_merged_manifest: đường dẫn tuyệt đối đến tệp kê khai hợp nhất.

      • android_merged_resources: đường dẫn tuyệt đối đến thư mục tài nguyên hợp nhất, chứa tất cả tài nguyên và phần phụ thuộc của mô-đun.

      • android_custom_package: tên gói của lớp R cuối cùng. Nếu bạn sửa đổi mã ứng dụng một cách linh động, thì tên gói này có thể không khớp với thuộc tính package trong tệp kê khai của ứng dụng.

    • Hỗ trợ dành cho phông chữ dưới dạng tài nguyên – tính năng mới được giới thiệu trong Android 8.0 (API cấp 26).
    • Hỗ trợ tệp APK theo ngôn ngữ cụ thể bằng SDK Ứng dụng Android tức thì 1.1 trở lên.
    • Hiện bạn có thể thay đổi thư mục đầu ra cho dự án hệ thống bản dựng gốc bên ngoài như sau:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Hiện bạn có thể sử dụng CMake 3.7 trở lên khi tạo các dự án gốc trong Android Studio.
    • Cấu hình phần phụ thuộc lintChecks mới cho phép bạn tạo tệp JAR xác định các quy tắc tìm lỗi mã nguồn tuỳ chỉnh và đóng gói tệp này vào các dự án AAR và APK.

      Các quy tắc tìm lỗi mã nguồn tuỳ chỉnh phải thuộc về một dự án riêng xuất ra một tệp JAR duy nhất và chỉ bao gồm các phần phụ thuộc compileOnly. Các mô-đun thư viện và ứng dụng khác sau đó có thể phụ thuộc vào dự án tìm lỗi mã nguồn bằng cách sử dụng cấu hình lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Thay đổi về hành vi

    • Trình bổ trợ Android 3.0.0 sẽ xoá một số API nhất định và bản dựng sẽ bị hỏng nếu bạn sử dụng các API này. Ví dụ: bạn không thể dùng Variants API để truy cập vào các đối tượng outputFile() hoặc dùng processManifest.manifestOutputFile() để lấy tệp kê khai cho từng biến thể. Để tìm hiểu thêm, hãy đọc bài viết Các thay đổi về API.
    • Bạn không cần chỉ định phiên bản cho công cụ bản dựng (do đó, bạn có thể xoá thuộc tính android.buildToolsVersion). Theo mặc định, trình bổ trợ này tự động dùng phiên bản công cụ bản dựng tối thiểu bắt buộc cho phiên bản trình bổ trợ Android mà bạn đang dùng.
    • Hiện bạn có thể bật/tắt tính năng nén tệp PNG trong khối buildTypes như sau. Theo mặc định, tính năng nén tệp PNG được bật cho tất cả bản dựng ngoại trừ các bản gỡ lỗi vì các bản này sẽ tăng thời gian tạo bản dựng cho các dự án chứa nhiều tệp PNG. Vì vậy, để cải thiện thời gian tạo bản dựng cho các loại bản dựng khác, bạn nên vô hiệu hoá tính năng tự động nén PNG hoặc chuyển đổi hình ảnh thành WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Trình bổ trợ Android nay tự động tạo các mục tiêu thực thi mà bạn định cấu hình trong các dự án CMake bên ngoài.
    • Nay bạn phải thêm trình xử lý chú giải vào classpath của trình xử lý bằng cách dùng cấu hình phần phụ thuộc annotationProcessor.
    • Việc sử dụng ndkCompile không dùng nữa hiện đã bị hạn chế hơn. Thay vào đó, bạn nên chuyển sang dùng CMake hoặc ndk-build để biên dịch mã gốc mà bạn muốn đóng gói vào tệp APK. Để tìm hiểu thêm, hãy đọc bài viết Di chuyển từ ndkcompile.

    Phiên bản 3.0.0 (tháng 10 năm 2017)

    Trình bổ trợ Android cho Gradle 3.0.0 cung cấp nhiều thay đổi nhằm giải quyết các vấn đề hiệu suất của các dự án lớn.

    Ví dụ: trên một dự án mẫu cơ bản có khoảng 130 mô-đun và một số lượng lớn các phần phụ thuộc từ bên ngoài (nhưng không có mã hoặc tài nguyên), bạn có thể trải nghiệm các điểm cải thiện hiệu suất tương tự như sau:

    Phiên bản trình bổ trợ Android + phiên bản Gradle Trình bổ trợ Android 2.2.0 + Gradle 2.14.1 Trình bổ trợ Android 2.3.0 + Gradle 3.3 Trình bổ trợ Android 3.0.0 + Gradle 4.1
    Cấu hình (ví dụ: chạy ./gradlew --help) ~2 phút ~9 giây ~2,5 giây
    Thay đổi Java 1 dòng (thay đổi triển khai) ~2 phút 15 giây ~29 giây ~6,4 giây

    Một số thay đổi trong số này sẽ làm hỏng các bản dựng hiện hữu. Vì vậy, bạn nên cân nhắc di chuyển dự án trước khi sử dụng trình bổ trợ mới.

    Nếu bạn không thấy các điểm cải thiện hiệu suất được mô tả ở trên, vui lòng gửi báo lỗi và đính kèm dấu vết bản dựng đang sử dụng bằng Trình phân tích tài nguyên Gradle.

    Phiên bản trình bổ trợ Android này yêu cầu:

    • Gradle 4.1 trở lên. Để tìm hiểu thêm, hãy đọc phần cập nhật Gradle.
    • Công cụ tạo bản dựng của SDK 26.0.2 trở lên. Với bản cập nhật này, bạn không cần chỉ định phiên bản cho công cụ xây dựng. Theo mặc định, trình bổ trợ sử dụng phiên bản tối thiểu cần thiết. Do đó, hiện bạn có thể xoá thuộc tính android.buildToolsVersion.

    Phiên bản 3.0.1 (Tháng 11 năm 2017)

    Đây là bản cập nhật nhỏ nhằm hỗ trợ Android Studio 3.0.1, bao gồm các bản sửa lỗi chung cùng các điểm cải thiện hiệu suất.

    Tối ưu hoá

    • Cải thiện tính năng tải song song cho các dự án nhiều mô-đun thông qua biểu đồ tác vụ chi tiết.
    • Khi thực hiện thay đổi với phần phụ thuộc, Gradle sẽ tạo bản dựng nhanh hơn bằng cách không biên dịch lại những mô-đun không có quyền truy cập vào API của phần phụ thuộc đó. Bạn nên hạn chế những phần phụ thuộc làm rò rỉ API đến các mô-đun khác bằng cách sử dụng cấu hình phần phụ thuộc mới của Gradle: implementation, api, compileOnlyruntimeOnly.
    • Tốc độ bản dựng gia tăng nhanh hơn do tạo tệp DEX cho mỗi lớp. Giờ đây, mỗi lớp được biên dịch thành các tệp DEX riêng biệt và chỉ các lớp đã được sửa đổi mới được tạo lại tệp DEX. Bạn cũng nên cải thiện tốc độ bản dựng cho các ứng dụng thiết lập minSdkVersion từ 20 trở xuống và sử dụng multidex cũ.
    • Cải thiện tốc độ bản dựng bằng cách tối ưu hoá một số tác vụ để sử dụng đầu ra lưu tại bộ nhớ đệm. Để tận dụng tính năng tối ưu hoá này, trước tiên bạn cần bật bộ nhớ đệm của bản dựng Gradle.
    • Cải thiện tính năng xử lý tài nguyên gia tăng bằng AAPT2 (nay được bật theo mặc định). Nếu bạn gặp vấn đề khi sử dụng AAPT2, vui lòng báo cáo lỗi. Bạn cũng có thể vô hiệu hoá AAPT2 bằng cách thiết lập android.enableAapt2=false trong tệp gradle.properties và khởi động lại trình nền Gradle bằng cách chạy ./gradlew --stop qua dòng lệnh.

    Tính năng mới

    • Quản lý phần phụ thuộc nhận biết được biến thể. Khi tạo một biến thể nhất định của một mô-đun, trình bổ trợ nay tự động kết nối biến thể của các phần phụ thuộc mô-đun thư viện cục bộ với biến thể của mô-đun đang được tạo.
    • Tích hợp một trình bổ trợ mô-đun Tính năng (Feature) mới để hỗ trợ Ứng dụng Android tức thì và SDK Ứng dụng Android tức thì (bạn có thể tải xuống bằng trình quản lý SDK). Để tìm hiểu thêm về cách tạo mô-đun Tính năng bằng trình bổ trợ mới, hãy đọc Cấu trúc của một ứng dụng tức thì có nhiều tính năng.
    • Tích hợp tính năng hỗ trợ sử dụng các tính năng ngôn ngữ và thư viện Java 8 nhất định. Nay ngừng sử dụng Jack và không còn bắt buộc người dùng phải sử dụng Jack. Trước tiên, bạn nên vô hiệu hoá Jack để sử dụng dịch vụ hỗ trợ Java 8 được cải thiện tích hợp sẵn trong chuỗi công cụ mặc định. Để biết thêm thông tin, hãy đọc bài viết Sử dụng các tính năng ngôn ngữ Java 8.
    • Hỗ trợ thêm tính năng chạy kiểm thử bằng Android Test Orchestrator. Chương trình này cho phép bạn chạy từng bài kiểm thử của ứng dụng ngay trong lệnh gọi đo lường riêng. Vì mỗi bài kiểm thử chạy trong thực thể đo lường riêng, nên mọi trạng thái dùng chung giữa các bài kiểm thử sẽ không tích luỹ vào CPU hoặc bộ nhớ của thiết bị. Đồng thời, ngay cả khi một bài kiểm thử gặp sự cố, chỉ có thực thể đo lường của bài kiểm thử này bị gỡ bỏ. Do đó, các bài kiểm thử khác vẫn sẽ chạy.

      • Thêm testOptions.execution để xác định việc sử dụng tính năng điều phối kiểm thử trên thiết bị hay không. Nếu muốn sử dụng Android Test Orchestrator, bạn cần chỉ định ANDROID_TEST_ORCHESTRATOR như sau. Theo mặc định, việc thuộc tính này được thiết lập thành HOST sẽ vô hiệu hoá tính năng điều phối trên thiết bị và là phương thức chuẩn để chạy kiểm thử.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Cấu hình phần phụ thuộc androidTestUtil mới cho phép bạn cài đặt một tệp APK trình trợ giúp kiểm thử khác trước khi chạy kiểm thử đo lường, chẳng hạn như Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Thêm testOptions.unitTests.includeAndroidResources để hỗ trợ chương trình kiểm thử đơn vị yêu cầu tài nguyên Android, chẳng hạn như Roboelectric. Khi bạn thiết lập thuộc tính này thành true, trình bổ trợ sẽ thực hiện hợp nhất tài nguyên, tài sản và tệp kê khai trước khi chạy kiểm thử đơn vị. Sau đó, chương trình kiểm thử có thể kiểm tra com/android/tools/test_config.properties trên classpath cho các khoá sau:

      • android_merged_assets: đường dẫn tuyệt đối đến thư mục tài sản hợp nhất.

        Lưu ý: Đối với các mô-đun thư viện, tài sản hợp nhất không chứa tài sản của các phần phụ thuộc (xem Vấn đề #65550419).

      • android_merged_manifest: đường dẫn tuyệt đối đến tệp kê khai hợp nhất.

      • android_merged_resources: đường dẫn tuyệt đối đến thư mục tài nguyên hợp nhất, chứa tất cả tài nguyên và phần phụ thuộc của mô-đun.

      • android_custom_package: tên gói của lớp R cuối cùng. Nếu bạn sửa đổi mã ứng dụng một cách linh động, thì tên gói này có thể không khớp với thuộc tính package trong tệp kê khai của ứng dụng.

    • Hỗ trợ dành cho phông chữ dưới dạng tài nguyên – tính năng mới được giới thiệu trong Android 8.0 (API cấp 26).
    • Hỗ trợ tệp APK theo ngôn ngữ cụ thể bằng SDK Ứng dụng Android tức thì 1.1 trở lên.
    • Hiện bạn có thể thay đổi thư mục đầu ra cho dự án hệ thống bản dựng gốc bên ngoài như sau:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Hiện bạn có thể sử dụng CMake 3.7 trở lên khi tạo các dự án gốc trong Android Studio.
    • Cấu hình phần phụ thuộc lintChecks mới cho phép bạn tạo tệp JAR xác định các quy tắc tìm lỗi mã nguồn tuỳ chỉnh và đóng gói tệp này vào các dự án AAR và APK.

      Các quy tắc tìm lỗi mã nguồn tuỳ chỉnh phải thuộc về một dự án riêng xuất ra một tệp JAR duy nhất và chỉ bao gồm các phần phụ thuộc compileOnly. Các mô-đun thư viện và ứng dụng khác sau đó có thể phụ thuộc vào dự án tìm lỗi mã nguồn bằng cách sử dụng cấu hình lintChecks:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Thay đổi về hành vi

    • Trình bổ trợ Android 3.0.0 sẽ xoá một số API nhất định và bản dựng sẽ bị hỏng nếu bạn sử dụng các API này. Ví dụ: bạn không thể dùng Variants API để truy cập vào các đối tượng outputFile() hoặc dùng processManifest.manifestOutputFile() để lấy tệp kê khai cho từng biến thể. Để tìm hiểu thêm, hãy đọc bài viết Các thay đổi về API.
    • Bạn không cần chỉ định phiên bản cho công cụ bản dựng (do đó, bạn có thể xoá thuộc tính android.buildToolsVersion). Theo mặc định, trình bổ trợ này tự động dùng phiên bản công cụ bản dựng tối thiểu bắt buộc cho phiên bản trình bổ trợ Android mà bạn đang dùng.
    • Hiện bạn có thể bật/tắt tính năng nén tệp PNG trong khối buildTypes như sau. Theo mặc định, tính năng nén tệp PNG được bật cho tất cả bản dựng ngoại trừ các bản gỡ lỗi vì các bản này sẽ tăng thời gian tạo bản dựng cho các dự án chứa nhiều tệp PNG. Vì vậy, để cải thiện thời gian tạo bản dựng cho các loại bản dựng khác, bạn nên vô hiệu hoá tính năng tự động nén PNG hoặc chuyển đổi hình ảnh thành WebP.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Trình bổ trợ Android nay tự động tạo các mục tiêu thực thi mà bạn định cấu hình trong các dự án CMake bên ngoài.
    • Nay bạn phải thêm trình xử lý chú giải vào classpath của trình xử lý bằng cách dùng cấu hình phần phụ thuộc annotationProcessor.
    • Việc sử dụng ndkCompile không dùng nữa hiện đã bị hạn chế hơn. Thay vào đó, bạn nên chuyển sang dùng CMake hoặc ndk-build để biên dịch mã gốc mà bạn muốn đóng gói vào tệp APK. Để tìm hiểu thêm, hãy đọc bài viết Di chuyển từ ndkcompile.

    Phiên bản 2.3.0 (tháng 2 năm 2017)

    Phiên bản 2.3.3 (tháng 6 năm 2017)

    Đây là một bản cập nhật nhỏ bổ sung khả năng tương thích với Android Studio 2.3.3.

    Phiên bản 2.3.2 (tháng 5 năm 2017)

    Đây là một bản cập nhật nhỏ bổ sung khả năng tương thích với Android Studio 2.3.2.

    Phiên bản 2.3.1 (tháng 4 năm 2017)

    Đây là bản cập nhật nhỏ Plugin Android 2.3.0 sửa sự cố một số thiết bị Android thực tế không hoạt động ổn định khi dùng Tính năng Chạy tức thì (xem Vấn đề #235879).

    Phần phụ thuộc:
    Mới:
    • Sử dụng Gradle 3.3, trong đó có các điểm cải thiện hiệu suất và tính năng mới. Để biết thêm thông tin chi tiết, hãy xem ghi chú phát hành của Gradle.
    • Bộ nhớ đệm bản dựng: lưu trữ đầu ra tạo bởi trình bổ trợ Android khi tạo dự án (chẳng hạn như các tệp AAR (đề xuất được tự động áp dụng) chưa đóng gói và các phần phụ thuộc từ xa đã được chuyển sang định dạng .dex). Hệ thống bản dựng chỉ cần sử dụng những tệp đã lưu vào bộ nhớ đệm trong các lần tiếp theo thay vì tạo lại. Do đó, trong lúc sử dụng bộ nhớ đệm, bản dựng sạch sẽ hoạt động nhanh hơn. Các dự án dùng Trình bổ trợ Android 2.3.0 trở lên dùng bộ nhớ đệm bản dựng theo mặc định. Để tìm hiểu thêm, hãy đọc bài viết Cải thiện tốc độ bản dựng bằng bộ nhớ đệm.
    Các thay đổi:

    Phiên bản 2.2.0 (tháng 9 năm 2016)

    Phần phụ thuộc:
    Mới:
    • Sử dụng Gradle 2.14.1, trong đó có các điểm cải thiện hiệu suất và tính năng mới, đồng thời khắc phục một lỗ hổng bảo mật cho phép đẩy báo cáo đặc quyền cục bộ lên khi sử dụng trình nền Gradle. Để biết thêm chi tiết, hãy xem Ghi chú phát hành Gradle.
    • Nhờ có DSL externalNativeBuild {}, Gradle hiện cho phép bạn liên kết đến các nguồn gốc và biên dịch thư viện gốc bằng CMake hoặc ndk-build. Sau khi xây dựng các thư viện gốc, Gradle sẽ đóng gói vào APK. Để tìm hiểu thêm về cách sử dụng CMake và ndk-build bằng Gradle, hãy đọc bài viết Bổ sung mã C và C++ vào dự án.
    • Khi bạn chạy một bản dựng từ dòng lệnh, Gradle hiện sẽ cố gắng tự động tải mọi thành phần hoặc bản cập nhật SDK bị thiếu mà dự án đang cần. Để tìm hiểu thêm, hãy đọc phần Tự động tải các gói còn thiếu bằng Gradle.
    • Tính năng thử nghiệm mới của hoạt động lưu vào bộ nhớ đệm cho phép Gradle tăng tốc thời gian xây dựng khi chuyển sang định dạng .dex, lưu trữ và tái sử dụng những phiên bản chuyển sang định dạng .dex của thư viện. Để tìm hiểu thêm về cách sử dụng tính năng thử nghiệm này, hãy đọc hướng dẫn Bộ nhớ đệm bản dựng.
    • Cải thiện hiệu suất bản dựng bằng cách sử dụng một quy trình đóng gói mặc định mới có khả năng nén, ký và căn chỉnh nén trong một tác vụ. Bạn có thể quay lại sử dụng các công cụ đóng gói cũ bằng cách bổ sung android.useOldPackaging=true vào tệp gradle.properties. Khi sử dụng công cụ đóng gói mới, bạn không thể thực hiện tác vụ zipalignDebug. Tuy nhiên, bạn có thể tự tạo tác vụ này bằng cách gọi phương thức createZipAlignTask(String taskName, File inputFile, File outputFile).
    • Tính năng ký APK hiện sử dụng Lược đồ chữ ký APK phiên bản 2 cùng tính năng ký JAR truyền thống. Tất cả các nền tảng Android đều chấp nhận APK được tạo từ tính năng trên. Mọi thay đổi đối với những APK này sau khi ký sẽ làm mất hiệu lực chữ ký phiên bản 2 và ngăn không cho cài đặt trên thiết bị. Để vô hiệu hoá tính năng này, hãy thêm đoạn mã sau vào tệp build.gradle cấp mô-đun:

      Groovy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Đối với các bản dựng multidex, hiện bạn có thể sử dụng quy tắc ProGuard để xác định các lớp Gradle nên tổng hợp thành tệp DEX chính của ứng dụng. Do hệ thống Android tải tệp DEX chính trước khi khởi động ứng dụng, bạn có thể ưu tiên một số lớp nhất định khi khởi động bằng cách biên dịch các tệp này thành tệp DEX chính. Sau khi bạn tạo tệp cấu hình ProGuard dành riêng cho tệp DEX chính, hãy truyền đường dẫn của tệp cấu hình đến Gradle bằng buildTypes.multiDexKeepProguard. Thao tác sử dụng DSL này khác với việc sử dụng buildTypes.proguardFiles (cung cấp quy tắc ProGuard chung cho ứng dụng) và không chỉ định các lớp cho tệp DEX chính.
    • Hỗ trợ thêm tính năng cho cờ android:extractNativeLibs, giúp giảm kích thước ứng dụng khi bạn cài đặt trên thiết bị. Khi bạn thiết lập cờ này thành false trong phần tử <application> của tệp kê khai ứng dụng, các gói Gradle sẽ đóng gói các phiên bản điều chỉnh và không nén của thư viện gốc bằng APK. Thao tác này ngăn PackageManager sao chép các thư viện gốc từ APK sang hệ thống tệp của thiết bị trong quá trình cài đặt và bổ sung lợi ích rút gọn cập nhật delta ứng dụng.
    • Hiện bạn có thể chỉ định versionNameSuffixapplicationIdSuffix cho các phiên bản sản phẩm. (Vấn đề 59614)
    Các thay đổi:
    • getDefaultProguardFile hiện trả về các tệp ProGuard mặc định mà Trình bổ trợ Android cho Gradle cung cấp và không còn dùng các tệp này trong SDK Android.
    • Cải thiện hiệu suất và các tính năng của trình biên dịch Jack:
      • Jack hiện hỗ trợ phạm vi kiểm thử của Jacoco khi thiết lập testCoverageEnabled thành true.
      • Cải thiện tính năng hỗ trợ cho trình xử lý chú giải. Trình xử lý chú giải trên classpath, chẳng hạn như bất kỳ phần phụ thuộc compile nào, sẽ tự động được áp dụng cho bản dựng. Bạn cũng có thể chỉ định trình xử lý chú giải trong bản dựng và truyền các đối số bằng cách sử dụng DSL javaCompileOptions.annotationProcessorOptions {} trong tệp build.gradle cấp mô-đun:

        Groovy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        Nếu bạn muốn áp dụng trình xử lý chú giải vào thời gian biên dịch nhưng không đưa tính năng này vào APK, hãy sử dụng phạm vi phần phụ thuộc annotationProcessor:

        Groovy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • Đối với danh sách các thông số bạn có thể thiết lập, hãy chạy lệnh sau từ dòng lệnh:

        java -jar /build-tools/jack.jar --help-properties
        
      • Theo mặc định, nếu kích thước vùng nhớ khối xếp của trình nền Gradle tối thiểu là 1.5 GB, thì giờ đây, Jack sẽ chạy theo quy trình tương tự như Gradle. Để điều chỉnh kích thước vùng nhớ khối xếp trình nền, hãy thêm nội dung sau vào tệp gradle.properties:

    2.1.0 (tháng 4 năm 2016)

    2.1.3 (tháng 8 năm 2016)

    Bản cập nhật này yêu cầu Gradle 2.14.1 trở lên. Gradle 2.14.1 bao gồm những điểm cải thiện hiệu suất, các tính năng mới và một bản sửa lỗi bảo mật quan trọng. Để biết thêm chi tiết, hãy xem Ghi chú phát hành Gradle.

    Phần phụ thuộc:
    Mới:
    • Hỗ trợ thêm tính năng Bản dùng thử cho nhà phát triển N, JDK 8 và các tính năng trong ngôn ngữ Java 8 sử dụng chuỗi công cụ Jack. Để tìm hiểu thêm, hãy đọc Hướng dẫn dùng thử N.

      Lưu ý: Tính năng Chạy tức thì hiện không hoạt động với Jack và sẽ bị vô hiệu hoá khi bạn sử dụng chuỗi công cụ mới. Bạn chỉ cần sử dụng Jack nếu đang phát triển Bản dùng thử N và muốn sử dụng các tính năng trong ngôn ngữ Java 8 được hỗ trợ.

    • Thêm tính năng hỗ trợ mặc định cho chức năng biên dịch Java gia tăng để giảm thời gian biên dịch trong quá trình phát triển. Công cụ này thực hiện bằng cách chỉ biên dịch lại các phần của nguồn đã thay đổi hoặc cần được biên dịch lại. Để vô hiệu hoá tính năng này, hãy bổ sung mã sau vào tệp build.gradle ở cấp mô-đun:

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Hỗ trợ thêm tính năng tạo tệp dex trong quy trình xây dựng, giúp thực hiện thao tác tạo tệp dex trong quy trình trên thay vì trong các quy trình máy ảo riêng biệt bên ngoài. Tính năng này không chỉ giúp các bản dựng gia tăng hoạt động nhanh hơn mà còn tăng tốc toàn bộ các bản dựng. Tính năng tạo tệp dex trong quy trình xây dựng được bật theo mặc định đối với các dự án đã thiết lập kích thước vùng nhớ khối xếp tối đa của trình nền Gradle thành 2048 MB tối thiểu. Bạn có thể sử dụng bằng cách đưa nội dung sau vào tệp gradle.properties của dự án:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      Nếu đã xác định giá trị cho javaMaxHeapSize trong tệp build.gradle ở cấp mô-đun, bạn cần thiết lập org.gradle.jvmargs thành giá trị của javaMaxHeapSize + 1024 MB. Ví dụ: nếu đã thiết lập javaMaxHeapSize là "2048m", bạn cần bổ sung đoạn mã sau vào tệp gradle.properties của dự án:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      Để vô hiệu hoá tính năng tạo tệp dex trong quy trình xây dựng, hãy thêm mã sau vào tệp build.gradle cấp mô-đun:

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (tháng 4 năm 2016)

    Phần phụ thuộc:
    Mới:
    • Bật tính năng Chạy tức thì bằng cách hỗ trợ tính năng chèn mã byte, đồng thời đẩy nhanh các bản cập nhật mã và tài nguyên vào ứng dụng đang chạy trên trình mô phỏng hoặc thiết bị thực tế.
    • Thêm tính năng hỗ trợ các bản dựng gia tăng, ngay cả khi ứng dụng không chạy. Cải thiện thời gian tạo bản dựng đầy đủ bằng cách đẩy những thay đổi gia tăng qua Cầu gỡ lỗi Android đến thiết bị được kết nối.
    • Bổ sung maxProcessCount để điều khiển số lượng trình chạy quy trình dex có thể được sinh ra cùng lúc. Mã sau đây trong tệp build.gradle ở cấp mô-đun thiết lập số lượng quy trình đồng thời tối đa thành 4:

      Groovy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Groovy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }
      

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
      
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Thay đổi hành vi
    • Khi bạn thiết lập minSdkVersion thành phiên bản 18 trở lên, tính năng ký APK sẽ sử dụng SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Vấn đề đã khắc phục:
    • Khắc phục vấn đề gây trùng lặp các phần phụ thuộc AAR trong cả cấu hình bản dựng kiểm thử lẫn cấu hình bản dựng chính.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.5.0 (tháng 11 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Tích hợp trình bổ trợ Liên kết dữ liệu vào trình bổ trợ Android cho Gradle. Để bật trình bổ trợ, hãy bổ sung mã sau vào mỗi tệp build.gradle cho từng dự án sử dụng Trình bổ trợ Android cho Gradle:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Thêm một Transform API (API Biến đổi) mới để cho phép các trình bổ trợ bên thứ ba sử dụng các tệp .class đã biên dịch trước khi chúng được chuyển đổi thành tệp .dex. Transform API đơn giản hoá việc chèn các lớp tuỳ chỉnh, đồng thời cung cấp thêm lựa chọn linh hoạt về những thao tác bạn có thể sử dụng. Để chèn một phép biến đổi vào bản dựng, hãy tạo một lớp mới triển khai một trong các giao diện Transform và đăng ký lớp đó bằng android.registerTransform(theTransform) hoặc android.registerTransform(theTransform, dependencies). Bạn không cần phải nối các tác vụ với nhau. Hãy lưu ý những thông tin sau về Transform API:
      • Phép biến đổi có thể áp dụng cho một hoặc nhiều mục sau đây: dự án hiện tại, các dự án con và các thư viện bên ngoài.
      • Một phép biến đổi phải được đăng ký ở mọi nơi và sẽ áp dụng cho tất cả biến thể.
      • Chế độ xử lý mã nội bộ, thông qua Thư viện mức độ sử dụng mã Java (JaCoCo), ProGuard và MultiDex, nay sử dụng Transform API. Tuy nhiên, Bộ công cụ biên dịch Android của Java (Jack) không dùng API này mà chỉ đường dẫn mã javac/dx mới sử dụng.
      • Gradle sẽ thực thi những phép biến đổi theo thứ tự sau: JaCoCo, các trình bổ trợ bên thứ ba, ProGuard. Thứ tự thực thi trình bổ trợ bên thứ ba khớp với thứ tự bổ sung phép biến đổi do trình bổ trợ bên thứ ba thực hiện; các nhà phát triển trình bổ trợ bên thứ ba không thể điều khiển thứ tự thực thi của phép biến đổi thông qua API.
    • Ngưng dùng phương thức getter của dex trong lớp ApplicationVariant. Bạn không thể truy cập vào tác vụ Dex thông qua API biến thể nữa vì thao tác này hiện đã được thực hiện thông qua một phép biến đổi. Hiện tại, không có phương pháp thay thế khác để điều khiển quá trình tạo tệp dex.
    • Sửa tính năng hỗ trợ gia tăng cho tài sản.
    • Cải thiện tính năng hỗ trợ MultiDex bằng cách phát hành cho các dự án kiểm thử. Hiện các kiểm thử sẽ tự động sở hữu phần phụ thuộc com.android.support:multidex-instrumentation.
    • Thêm khả năng ngưng hoạt động bản dựng Gradle một cách chính xác và báo cáo nguyên nhân cơ bản về lỗi xảy ra khi bản dựng Gradle gọi các tác vụ không đồng bộ dẫn đến quá trình của trình chạy không thể hoạt động.
    • Hỗ trợ thêm tính năng thao tác định cấu hình Giao diện nhị phân của ứng dụng (ABI) cụ thể trong các biến thể chứa nhiều ABI.
    • Thêm tính năng hỗ trợ danh sách được phân tách bằng dấu phẩy các số sê-ri thiết bị dành cho biến môi trường ANDROID_SERIAL khi cài đặt hoặc chạy kiểm thử.
    • Khắc phục lỗi cài đặt trên các thiết bị chạy Android 5.0 (API cấp 20) trở lên khi tên APK chứa dấu cách.
    • Sửa các vấn đề khác nhau liên quan đến đầu ra lỗi Công cụ đóng gói tài nguyên Android (AAPT).
    • Thêm tính năng hỗ trợ khả năng đo lường gia tăng JaCoCo để các bản dựng gia tăng hoạt động nhanh hơn. Hiện Plugin của Android dành cho Gradle sẽ gọi trực tiếp trình đo lường JaCoCo. Để buộc sử dụng phiên bản mới của trình đo lường JaCoCo, bạn cần bổ sung phiên bản này dưới dạng một phần phụ thuộc tập lệnh bản dựng.
    • Sửa tính năng hỗ trợ JaCoCo để bỏ qua các tệp không phải lớp.
    • Thêm tuỳ chọn hỗ trợ vectơ vẽ được nhằm tạo PNG ở thời gian xây dựng để đạt khả năng tương thích ngược. Plugin của Android dành cho Gradle sẽ tạo ra các tệp PNG cho mọi vectơ vẽ được tìm thấy trong thư mục tài nguyên không chỉ định phiên bản API, hay chỉ định thuộc tính android:minSdkVersion của 20 trở xuống trong phần tử <uses-sdk> trong tệp kê khai ứng dụng. Bạn có thể thiết lập mật độ PNG bằng cách sử dụng thuộc tính generatedDensities trong các mục defaultConfig hoặc productFlavor của tệp build.gradle.
    • Thêm tính năng chia sẻ android.jar mô phỏng mà trình bổ trợ chỉ tạo một lần và sử dụng nhằm kiểm thử đơn vị. Nhiều mô-đun, chẳng hạn như applib, hiện chia sẻ tính năng đó. Hãy xoá $rootDir/build để tạo lại tính năng này.
    • Thay đổi quá trình xử lý các tài nguyên Java để quá trình này diễn ra trước các tác vụ làm rối mã nguồn thay vì trong quá trình đóng gói APK. Thay đổi này sẽ giúp các tác vụ làm rối mã nguồn có cơ hội điều chỉnh tài nguyên Java sau khi làm rối mã nguồn các gói.
    • Sửa vấn đề sử dụng mã Giao diện gốc Java (JNI) trong trình bổ trợ thư viện thử nghiệm.
    • Thêm khả năng thiết lập riêng phiên bản nền tảng với thuộc tính android:compileSdkVersion trong trình bổ trợ thư viện thử nghiệm.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.3.1 (tháng 8 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Sửa tác vụ ZipAlign để tiêu thụ đúng đầu ra của tác vụ trước khi sử dụng tên tệp tuỳ chỉnh.
    • Sửa thông tin đóng gói Renderscript bằng NDK.
    • Duy trì khả năng hỗ trợ tác vụ tạo bản dựng createDebugCoverageReport.
    • Sửa tính năng hỗ trợ sử dụng thuộc tính archiveBaseName tuỳ chỉnh trong tệp bản dựng build.gradle.
    • Sửa cảnh báo Invalid ResourceType tìm lỗi mã nguồn do thao tác tra cứu chú giải phương thức thông số gây ra khi chạy tìm lỗi mã nguồn bên ngoài Android Studio.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.3.0 (tháng 7 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Thêm tính năng hỗ trợ cho thuộc tính com.android.build.threadPoolSize để điều khiển kích thước nhóm luồng tác vụ Android từ tệp gradle.properties hoặc dòng lệnh. Ví dụ sau đây đặt giá trị thuộc tính này là 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Đặt hành vi mặc định của bản dựng để loại trừ các tệp LICENSELICENSE.txt khỏi APK. Để đưa những tệp này vào APK, hãy xoá chúng khỏi thuộc tính packagingOptions.excludes trong tệp build.gradle. Ví dụ:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • Bổ sung tác vụ của sourceSets để kiểm tra tập hợp các nhóm tài nguyên có sẵn.
    • Hỗ trợ nâng cao bài kiểm thử đơn vị để nhận ra các thư mục nguồn đa phiên bản và thư mục nguồn biến thể bản dựng. Ví dụ: để kiểm thử một ứng dụng có nhiều phiên bản flavor1flavorA bằng loại bản dựng Debug, thì các nhóm tài nguyên kiểm thử sẽ là:
      • test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Các kiểm thử Android đã nhận dạng được các thư mục nguồn nhiều phiên bản.

    • Cải thiện khả năng hỗ trợ kiểm thử đơn vị cho:
      • Hãy chạy javac trên các nguồn chính và nguồn kiểm thử, ngay cả khi thuộc tính useJack được thiết lập thành true trong tệp bản dựng.
      • Nhận dạng chính xác các phần phụ thuộc cho từng loại bản dựng.
    • Hỗ trợ thêm tính năng chỉ định đối số chạy kiểm thử đo lường từ dòng lệnh. Ví dụ:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • Hỗ trợ thêm các thông số bổ sung tuỳ ý của Công cụ đóng gói tài nguyên Android (AAPT) trong tệp build.gradle. Ví dụ:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Hỗ trợ thêm mô-đun APK kiểm thử dưới dạng mô-đun kiểm thử riêng biệt, sử dụng các thuộc tính targetProjectPathtargetVariant để đặt đường dẫn APK và biến thể mục tiêu.

      Lưu ý: Mô-đun APK kiểm thử không hỗ trợ phiên bản sản phẩm và chỉ có thể nhắm mục tiêu một biến thể duy nhất. Ngoài ra, Jacoco chưa được hỗ trợ.

    • Bổ sung tính năng xác thực tên tài nguyên trước khi hợp nhất các tài nguyên.
    • Khi xây dựng gói AAR (Android ARchive) cho các mô-đun thư viện, bạn không nên cung cấp phần giữ chỗ @{applicationId} tự động trong cài đặt trình hợp nhất tệp kê khai. Thay vào đó, hãy sử dụng một phần giữ chỗ khác, chẳng hạn như @{libApplicationId} và cung cấp giá trị cho phần giữ chỗ đó nếu bạn muốn đưa các mã ứng dụng vào thư viện lưu trữ.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.2.0 (tháng 4 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Hỗ trợ nâng cao tính năng chạy kiểm thử đơn vị cùng Gradle.
      • Hỗ trợ thêm tính năng để đưa các tài nguyên kiểu Java vào classpath khi chạy kiểm thử đơn vị trực tiếp dựa trên Gradle.
      • Thêm tính năng hỗ trợ phần phụ thuộc kiểm thử đơn vị cho các cấu phần phần mềm Lưu trữ Android (AAR).
      • Thêm tính năng hỗ trợ cho thuộc tính unitTestVariants để có thể điều khiển các biến thể kiểm thử đơn vị bằng tệp build.gradle.
      • Bổ sung khối mã unitTest.all trong testOptions để định cấu hình các tác vụ tuỳ chỉnh cho kiểm thử đơn vị. Mã mẫu sau đây hướng dẫn cách thêm các cài đặt cấu hình kiểm thử đơn vị bằng chế độ mới này:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Khắc phục phương pháp xử lý các enum và trường thực thể công khai trong quá trình đóng gói của tệp mockable-android.jar.
      • Sửa các phần phụ thuộc tác vụ của dự án thư viện để các lớp kiểm thử biên dịch lại sau khi thay đổi.
    • Thêm thuộc tính testProguardFile để áp dụng các tệp ProGuard khi rút gọn tệp APK kiểm thử.
    • Thêm thuộc tính timeOut vào khối mã adbOptions để thiết lập thời gian ghi tối đa cho bản ghi màn hình Cầu gỡ lỗi Android.
    • Thêm tính năng hỗ trợ cho tài nguyên 280 dpi.
    • Cải thiện hiệu suất trong quá trình đánh giá dự án.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.1.3 (tháng 3 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Sửa vấn đề các phần phụ thuộc bị trùng lặp trên một ứng dụng kiểm thử kích hoạt lỗi ProGuard.
    • Sửa lỗi triển khai Trình so sánh không tuân thủ hợp đồng với Trình so sánh JDK và tạo ra lỗi JDK 7.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.1.2 (tháng 2 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Đường dẫn được chuẩn hoá khi tạo tệp JAR có thể mô phỏng cho quá trình kiểm thử đơn vị.
    • Khắc phục chế độ cài đặt archivesBaseName trong tệp build.gradle.
    • Sửa lỗi phần giữ chỗ chưa được giải quyết trong trình hợp nhất tệp kê khai khi tạo ứng dụng kiểm thử thư viện.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.1.1 (tháng 2 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Sửa đổi các biến thể xây dựng để chỉ những biến thể đóng gói một ứng dụng Wear mới kích hoạt các tác vụ xây dựng dành riêng cho Wear.
    • Thay đổi các vấn đề liên quan đến phần phụ thuộc không hoạt động tại thời gian xây dựng thay vì khi gỡ lỗi. Hành vi này cho phép bạn chạy các tác vụ chẩn đoán (chẳng hạn như "phần phụ thuộc") để giúp giải quyết xung đột.
    • Sửa phương thức android.getBootClasspath() để trả về một giá trị.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.1.0 (tháng 2 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 trở lên.
    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Bổ sung tính năng hỗ trợ kiểm thử đơn vị mới
      • Bật kiểm thử đơn vị để chạy trên JVM cục bộ dựa trên phiên bản đặc biệt của tệp android.jar tương thích với các khung mô phỏng phổ biến, ví dụ: Mockito.
      • Bổ sung các tác vụ thử nghiệm mới testDebug, testReleasetestMyFlavorDebug khi sử dụng phiên bản sản phẩm.
      • Bổ sung các thư mục nguồn mới được công nhận dưới dạng kiểm thử đơn vị: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Bổ sung các cấu hình mới trong tệp build.gradle để khai báo các phần phụ thuộc chỉ dành cho kiểm thử, ví dụ: testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        Lưu ý: Các phần phụ thuộc chỉ dành cho mục đích kiểm thử hiện không tương thích với Jack (Bộ trình biên dịch Android Java).

      • Bổ sung tuỳ chọn android.testOptions.unitTests.returnDefaultValues để điều khiển hoạt động của tệp android.jar có thể mô phỏng.
    • Thay thế Test trong tên tác vụ kiểm thử bằng AndroidTest. Ví dụ: tác vụ assembleDebugTest hiện là tác vụ assembleDebugAndroidTest. Những tác vụ kiểm thử đơn vị vẫn có UnitTest trong tên mình, ví dụ: assembleDebugUnitTest.
    • Sửa đổi các tệp cấu hình ProGuard để không còn áp dụng cho APK kiểm thử. Nếu bạn bật tính năng rút gọn, ProGuard sẽ xử lý APK kiểm thử và chỉ áp dụng tệp ánh xạ được tạo khi rút gọn APK chính.
    • Cập nhật tính năng quản lý phần phụ thuộc
      • Sửa các vấn đề khi sử dụng phạm vi providedpackage.

        Lưu ý: Các phạm vi này không tương thích với gói AAR (Android Archive), khiến bản dựng chứa các gói AAR không thể hoạt động.

      • Sửa đổi độ phân giải phần phụ thuộc để so sánh các phần phụ thuộc của một ứng dụng đang kiểm thử với ứng dụng kiểm thử. Nếu cấu phần phần mềm cùng phiên bản được phát hiện ở cả hai ứng dụng, thì cấu phần phần mềm đó sẽ không được đưa vào ứng dụng kiểm thử và chỉ được tích hợp kèm theo ứng dụng đang kiểm thử. Nếu cấu phần phần mềm phiên bản khác được tìm thấy cho cả hai ứng dụng, thì bản dựng sẽ không thể hoạt động.
    • Bổ sung tính năng hỗ trợ cho anyDpibộ hạn định tài nguyên trong trình hợp nhất tài nguyên.
    • Cải thiện tốc độ đánh giá và đồng bộ hoá IDE cho các dự án chứa số lượng lớn mô-đun Android.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.0.1 (tháng 1 năm 2015)

    Phần phụ thuộc:
    • Gradle 2.2.1 lên đến 2.3.x.

      Lưu ý: Phiên bản Plugin của Android dành cho Gradle này không tương thích với Gradle 2.4 trở lên.

    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Sửa vấn đề bản dựng Gradle không hoạt động khi truy cập mô-đun extractReleaseAnnotations. (Vấn đề 81638).
    • Sửa lỗi xảy ra khi Disable chuyển chế độ cài đặt --no-optimize đến mã byte có thể thực thi Dalvik (dex). (Vấn đề 82662).
    • Sửa các vấn đề xảy ra với trình hợp nhất tệp kê khai khi nhập thư viện có targetSdkVersion thấp hơn 16.
    • Sửa vấn đề thứ tự mật độ khi sử dụng Android Studio cùng JDK 8.

    Trình bổ trợ Android cho Gradle, bản sửa đổi 1.0.0 (tháng 12 năm 2014)

    Phần phụ thuộc:
    • Gradle 2.2.1 lên đến 2.3.x.

      Lưu ý: Phiên bản Plugin của Android dành cho Gradle này sẽ không tương thích với Gradle 2.4 trở lên.

    • Công cụ tạo bản dựng 21.1.1 trở lên.
    Lưu ý chung:
    • Bản phát hành Plugin của Android dành cho Gradle đầu tiên.