Android Studio 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ề Trình theo dõi thiết bị để biết hướng dẫn gọi Trình theo dõi thiết bị từ dòng lệnh và thông tin chi tiết về các công cụ có sẵn trên Trình theo dõi thiết bị.