Android Studio 4.1 (Tháng 8/2020)

Android Studio 4.1 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 4.1.3 (Tháng 3/2021)

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 trên blog Thông tin cập nhật về bản phát hành.

4.1.2 (Tháng 1/2021)

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2021/01/android-studio-412-available.html">
    Release Updates blog</a>.
</p>
<p><b>4.1.1 (November 2020)</b></p>

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2020/11/android-studio-411-available.html">
    Release Updates blog</a>.
</p>

Trình kiểm tra cơ sở dữ liệu mới

Kiểm tra, gửi truy vấn và sửa đổi cơ sở dữ liệu của bạn trong ứng dụng đang chạy bằng Trình kiểm tra cơ sở dữ liệu mới. Để bắt đầu, hãy triển khai ứng dụng của bạn cho một thiết bị chạy cấp độ API 26 trở lên rồi chọn View > Tool Windows > Database Inspector (Xem > Cửa sổ công cụ > Trình kiểm tra cơ sở dữ liệu) trong thanh trình đơn.

Để tìm hiểu thêm, hãy xem bài viết Gỡ lỗi cho cơ sở dữ liệu bằng Trình kiểm tra cơ sở dữ liệu.

Chạy Trình mô phỏng Android ngay trong Android Studio

Giờ đây, bạn có thể chạy Trình mô phỏng Android ngay trong Android Studio. Hãy sử dụng tính năng này để bảo toàn không gian màn hình, di chuyển nhanh giữa trình mô phỏng và cửa sổ trình chỉnh sửa bằng phím tắt, cũng như sắp xếp quy trình làm việc trên IDE và trình mô phỏng trong một cửa sổ ứng dụng duy nhất.

Trình mô phỏng chạy trong một cửa sổ công cụ trong Android Studio.

Để tìm hiểu thêm, hãy xem tài liệu về Trình mô phỏng Android.

Sử dụng mô hình TensorFlow Lite

Liên kết mô hình học máy giúp bạn dễ dàng thêm trực tiếp tệp mô hình .tflite và sử dụng các tệp đó trong các dự án của mình. Android Studio tạo ra các lớp dễ sử dụng để bạn có thể chạy mô hình của mình mà không tốn nhiều đoạn mã cũng như cải thiện mức độ an toàn về kiểu.

Mô hình được hỗ trợ

Việc triển khai Liên kết mô hình học máy hiện tại hỗ trợ việc phân loại hình ảnh và mô hình chuyển kiểu, miễn là các mô hình đó đã được nâng cấp bằng siêu dữ liệu. Theo thời gian, dịch vụ hỗ trợ sẽ được mở rộng cho các miền gặp vấn đề khác như phát hiện đối tượng, phân đoạn hình ảnh và phân loại văn bản.

Có rất nhiều mô hình luyện sẵn với siêu dữ liệu được cung cấp trên TensorFlow Hub. Bạn cũng có thể tự thêm siêu dữ liệu vào mô hình TensorFlow Lite như đã nêu trong bài viết Thêm siêu dữ liệu vào mô hình TensorFlow Lite.

Thêm một tệp mô hình

Để thêm tệp mô hình được hỗ trợ, hãy làm theo các bước sau:

  1. Mở hộp thoại thêm mô hình TensorFlow Lite trong trình đơn Tệp tại File > New> Other > TensorFlow Lite Model (Tệp > Mới > Khác > Mô hình TensorFlow Lite).
  2. Chọn tệp mô hình .tflite mà bạn đã tải xuống hoặc tạo trước đó.
  3. Nhấp vào Finish (Hoàn tất).

Thao tác này sẽ thêm tệp mô hình vào dự án của bạn và đặt tệp đó vào thư mục ml/; nếu thư mục này không tồn tại, Android Studio sẽ tự tạo thư mục đó cho bạn.

Thêm mô hình TensorFlow Lite

Xem siêu dữ liệu và mức sử dụng của mô hình

Để xem thông tin chi tiết của một mô hình đã thêm vào cũng như hướng dẫn về cách sử dụng mô hình đó trong ứng dụng, hãy nhấp đúp vào tệp mô hình trong dự án của bạn để mở trang trình xem mô hình hiển thị các nội dung như sau:

  • Modal (Mô hình) Thông tin mô tả cấp cao về mô hình
  • Tensor: Thông tin mô tả về tensor đầu vào và đầu ra
  • Mã mẫu: Ví dụ về cách tạo giao diện bằng mô hình trong ứng dụng của bạn

Dưới đây là ví dụ về cách sử dụng mobilenet_v1_0.25_160_quantized.tflite:

Như ví dụ minh hoạ, Android Studio sẽ tạo một lớp có tên là MobilenetV1025160Quantized để tương tác với mô hình.

Nếu mô hình này không có sẵn siêu dữ liệu, màn hình này sẽ chỉ cung cấp rất ít thông tin.

Các sự cố đã biết và cách giải quyết

  • Hệ thống hiện chưa hỗ trợ các mô hình TensorFlow Lite cho các miền có vấn đề ngoài việc phân loại hình ảnh và chuyển kiểu. Tuy việc thêm các tệp vào vẫn hoạt động suôn sẻ nhưng một số đầu vào và/hoặc đầu ra của mô hình lại được biểu diễn dưới dạng TensorBuffers thay vì các kiểu phổ biến hay được sử dụng. Đối với các mô hình không dùng siêu dữ liệu, tất cả các đầu vào và đầu ra của mô hình sẽ là TensorBuffers.
  • Các mô hình có loại dữ liệu Đầu vào và Đầu ra khác với DataType.UINT8 hoặc DataType.FLOAT32 sẽ không được hỗ trợ.

Tính năng này vẫn đang trong quá trình phát triển, vì vậy, vui lòng cung cấp ý kiến phản hồi hoặc báo cáo lỗi.

Trình phân tích bộ nhớ cho mã gốc

Trình phân tích bộ nhớ của Android Studio nay có thêm Trình phân tích bộ nhớ cho mã gốc dành cho các ứng dụng được triển khai trên các thiết bị thực tế chạy Android 10 trở lên. Với Trình phân tích bộ nhớ cho mã gốc, bạn có thể ghi lại các quá trình phân bổ và giải phóng bộ nhớ từ mã gốc và kiểm tra số liệu thống kê tích luỹ về các đối tượng gốc.

Bản ghi trong Trình phân tích bộ nhớ cho mã gốc

Để tìm hiểu thêm về Trình phân tích bộ nhớ cho mã gốc, hãy xem bài viết Kiểm tra mức sử dụng bộ nhớ của ứng dụng bằng Trình phân tích bộ nhớ.

Các sự cố đã biết và cách giải quyết

Trình phân tích bộ nhớ cho mã gốc trong Android Studio 4.1 không hoạt động trên các thiết bị Android 11. Hiện tại, chúng tôi đã cung cấp chức năng hỗ trợ lập hồ sơ cho thiết bị Android 11 trong bản thử nghiệm 4.2

Kể từ bản phát hành 4.1 đầu tiên, tuỳ chọn tạo hồ sơ khởi động ứng dụng đã bị tắt. Tuỳ chọn này sẽ được bật trong bản phát hành sắp tới.

Để khắc phục vấn đề này, bạn có thể sử dụng Trình phân tích dòng lệnh độc lập Perfetto để ghi lại dữ liệu phân tích trong quá trình khởi động.

Giao diện người dùng của công cụ Theo dõi hệ thống: Dễ lựa chọn hơn, có thêm thẻ phân tích mới và nhiều dữ liệu kết xuất khung hơn

Giao diện người dùng của công cụ Theo dõi hệ thống trong trình phân tích tài nguyên của Android Studio có các điểm cải tiến sau:

  • Box selection (Hộp chọn): Trong mục Threads (Luồng), giờ đây, bạn có thể kéo chuột để thực hiện thao tác chọn hộp theo vùng hình chữ nhật, bạn có thể phóng to bằng cách nhấp vào nút Zoom to Selection (Thu phóng vùng lựa chọn)Nút thu phóng vùng lựa chọn trong trình phân tích tài nguyên ở phía trên cùng bên phải (hoặc sử dụng phím tắt M). Khi kéo và thả các luồng tương tự nằm cạnh nhau, bạn có thể chọn và kiểm tra tất cả chuỗi đó cùng một lúc. Ví dụ: trong trường hợp bạn muốn thực hiện việc phân tích trên nhiều luồng worker cùng lúc.

  • Summary tab (Thẻ tóm tắt): Thẻ Summary (Tóm tắt) mới trong bảng điều khiển Analysis (Phân tích) sẽ hiển thị:

    • Dữ liệu thống kê tổng hợp cho tất cả những lần xuất hiện của một sự kiện cụ thể, chẳng hạn như số lần xuất hiện và thời lượng tối thiểu/tối đa.

    • Số liệu thống kê của sự kiện theo dõi cho lần xuất hiện đã chọn.

    • Dữ liệu về việc phân phối trạng thái chuỗi.

    • Lần xuất hiện dài nhất của sự kiện theo dõi đã chọn.

    Để chuyển đến một lần xuất hiện khác, hãy chọn một hàng khác trong bảng.

  • Display data (Hiển thị dữ liệu): Trong phần Display (Hiển thị), tiến trình mới cho SurfaceFlingerVSYNC sẽ giúp bạn điều tra sự cố hiển thị trong giao diện người dùng của ứng dụng.

Để biết hướng dẫn sử dụng cơ bản về cách ghi lại hoạt động theo dõi hệ thống, hãy xem phần Ghi lại dấu vết trong bài viết Kiểm tra hoạt động của CPU bằng Trình phân tích CPU.

Hiện đã có trình phân tích tài nguyên độc lập

Với trình phân tích tài nguyên độc lập mới, giờ đây bạn có thể lập hồ sơ cho ứng dụng của mình mà không cần chạy toàn bộ IDE Android Studio.

Để xem hướng dẫn về cách sử dụng các trình phân tích tài nguyên độc lập, hãy xem bài viết Chạy các trình phân tích tài nguyên độc lập.

Hỗ trợ điều hướng trên Dagger

Thao tác định hướng trong IDE để điều hướng phần tử cung cấp và sử dụng Dagger

Android Studio giúp bạn dễ dàng di chuyển giữa mã liên quan đến Dagger bằng cách cung cấp các thao tác định hướng mới và mở rộng khả năng hỗ trợ trong cửa sổ Find Usages (Tìm đối tượng sử dụng).

  • New gutter actions (Thao tác định hướng mới): Đối với các dự án sử dụng Dagger, IDE cung cấp các thao tác định hướng giúp bạn thao tác giữa các mã được chú thích là Dagger. Ví dụ: khi nhấp vào thao tác định hướng bên cạnh phương thức sử dụng một loại nhất định, bạn sẽ được chuyển đến phần tử cung cấp kiểu đó. Ngược lại, khi nhấp vào thao tác định hướng , bạn sẽ được chuyển đến vị trí mà một kiểu được dùng làm phần phụ thuộc.

  • Find Usages node (Nút Tìm phần tử sử dụng): Khi bạn gọi Find Usages (Tìm phần tử sử dụng) đối với nhà cung cấp một kiểu nhất định, cửa sổ Find (Tìm) giờ đây sẽ bao gồm một nút Dependency consumer (Phần tử dùng phần phụ thuộc). Nút này sẽ liệt kê những người dùng kiểu đó. Ngược lại, khi gọi hành động này cho một người dùng phần phụ thuộc được chèn Dagger, cửa sổ Find (Tìm) sẽ hiển thị cho bạn thấy phần tử cung cấp phần phụ thuộc đó.

Thành phần thiết kế Material Design: Cập nhật giao diện và kiểu trong mẫu dự án mới

Ảnh động: Tạo một dự án trong Android Studio bằng các thuộc tính mới của Material Design.

Các mẫu của Android Studio trong hộp thoại Create New Project (Tạo dự án mới) hiện sử dụng Thành phần thiết kế Material Design (MDC) và tuân theo hướng dẫn cập nhật dành cho các giao diện và kiểu theo mặc định. Nội dung cập nhật bao gồm:

  • MDC: Các dự án phụ thuộc vào com.google.android.material:material trong build.gradle Giao diện của ứng dụng cơ sở sử dụng Theme.MaterialComponents.* từ phần tử mẹ và ghi đè các thuộc tính màu và thuộc tính "bật" được cập nhật của MDC.

  • Color resources (Tài nguyên màu): Tài nguyên màu trong colors.xml sử dụng tên của các giá trị cố định (ví dụ: purple_500 thay vì colorPrimary).

  • Theme resources (Tài nguyên giao diện): Tài nguyên giao diện có trong themes.xml (thay vì styles.xml) dùng tên Theme.<var><var>.

  • Dark theme (Giao diện tối): Giao diện của ứng dụng cơ sở sử dụng phần tử mẹ của DayNight và được phân tách giữa res/valuesres/values-night.

  • Theme attributes (Thuộc tính giao diện): Tài nguyên màu được tham chiếu ở dạng thuộc tính giao diện (ví dụ: ?attr/colorPrimary) trong bố cục và kiểu để tránh các màu được cố định giá trị trong mã.

IntelliJ IDEA 2020.1

IDE Android Studio chính được cập nhật với những điểm cải tiến từ IntelliJ IDEA thông qua bản phát hành 2020.1, trong đó có cửa sổ Commit (Cam kết) mới cho phép thực hiện hoạt động kiểm soát phiên bản và bật chế độ Zen mới có thể bật/tắt bằng cách chọn View > Appearance > Enter Distraction Free Mode (Xem > Giao diện > Chuyển sang Chế độ không làm mất tập trung).

Để tìm hiểu thêm về những điểm cải tiến trong phiên bản 2020.1, hãy xem IDEA 2020.1.

Thay đổi thư mục cấu hình của IDE

Vị trí của các thư mục cấu hình người dùng đã được thay đổi như sau:

Windows

Cú pháp: %APPDATA%\Google&lt;product><version>

Ví dụ: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

Cú pháp: ~/Library/Application Support/Google/<product><version>

Ví dụ: ~/Library/Application Support/Google/AndroidStudio4.1

Linux

Cú pháp: ~/.config/Google/<product><version>

Ví dụ: ~/.config/Google/AndroidStudio4.1

Các vị trí mới này của thư mục phù hợp với thông tin cập nhật gần đây đối với IntelliJ IDEA (IDE mà Android Studio dựa trên).

Lưu ý: Nếu Studio không khởi động lại sau khi nâng cấp, thì bạn có thể phải xoá thư mục cấu hình khỏi phiên bản Studio cũ. Hãy xem trang các vấn đề đã biết để biết thêm thông tin.

Kotlin 1.3.72

Android Studio 4.1 tích hợp Kotlin 1.3.72, gồm một số bản sửa lỗi để cải thiện các tính năng làm nổi bật, kiểm tra và gợi ý hoàn thành mã của Kotlin. Hãy xem nhật ký thay đổi của Kotlin 1.3.72 để biết thông tin chi tiết.

Xem trước thành phần hiển thị tuỳ chỉnh

Khi tạo thành phần hiển thị tuỳ chỉnh (ví dụ: bằng cách mở rộng lớp View hoặc Button), giờ đây, Android Studio sẽ cho bạn xem trước thành phần hiển thị tuỳ chỉnh. Sử dụng trình đơn thả xuống trên thanh công cụ để chuyển đổi giữa nhiều thành phần hiển thị tuỳ chỉnh hoặc nhấp vào các nút để xuống dòng theo chiều dọc hoặc chiều ngang tuỳ theo nội dung.

Xem trước thành phần hiển thị tuỳ chỉnh trong IDE.

Lưu ý: Nếu bạn không thấy thay đổi của mình trong bản xem trước, hãy chọn Build > Make Project (Xây dựng > Tạo dự án) trên thanh trình đơn.

Quá trình thay thế bằng biểu tượng đối với báo cáo lỗi trong mã gốc

Khi một sự cố hoặc lỗi ANR xảy ra trong mã gốc, hệ thống sẽ tạo ra một dấu vết ngăn xếp. Đây là ảnh chụp nhanh về trình tự của các hàm được lồng và gọi trong chương trình của bạn cho tới thời điểm xảy ra sự cố. Các ảnh chụp nhanh này có thể giúp bạn xác định và khắc phục mọi vấn đề trong nguồn, nhưng trước tiên, các ảnh chụp nhanh đó phải được thay thế bằng biểu tượng để dịch các địa chỉ máy lại thành tên hàm mà con người có thể đọc được.

Nếu dùng mã gốc như C++ để phát triển ứng dụng hoặc trò chơi, bạn nay có thể tải các tệp biểu tượng gỡ lỗi lên Play Console cho từng phiên bản của ứng dụng. Play Console sử dụng các tệp biểu tượng gỡ lỗi này để thực hiện quá trình thay thế bằng biểu tượng cho dấu vết ngăn xếp của ứng dụng. Nhờ đó, bạn có thể dễ dàng phân tích các sự cố và lỗi ANR hơn. Để tìm hiểu cách tải tệp biểu tượng gỡ lỗi lên, hãy xem bài viết Hỗ trợ cho trục trặc mã gốc.

Áp dụng thay đổi

Để giúp bạn làm việc hiệu quả hơn khi thực hiện thao tác lặp lại trên ứng dụng, chúng tôi đã thực hiện các cải tiến sau đây để áp dụng các thay đổi cho thiết bị chạy Android 11 Bản dùng thử cho nhà phát triển 3 trở lên:

Tăng tốc độ triển khai

Chúng tôi đã đầu tư mạnh vào việc tối ưu hoá tốc độ lặp lại bằng cách phát triển một phương thức để triển khai và duy trì các thay đổi trên thiết bị mà không cần cài đặt ứng dụng. Sau lần triển khai đầu tiên, các lần triển khai tiếp theo cho thiết bị Android 11 sử dụng tuỳ chọn Apply Code Changes (Áp dụng các thay đổi mã) Biểu tượng Áp dụng thay đổi mã hoặc Apply Changes and Restart Activity (Áp dụng các thay đổi và khởi động lại hoạt động) Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động giờ đây sẽ nhanh hơn đáng kể.

Để tìm hiểu thêm về sự khác biệt giữa 2 hành động này, hãy xem bài viết Áp dụng các thay đổi.

Hỗ trợ cho các thay đổi khác về mã

Đối với các thiết bị chạy Android 11 Bản dùng thử cho nhà phát triển 3 trở lên, giờ đây, bạn có thể thêm các phương thức rồi triển khai các thay đổi đó cho ứng dụng đang chạy của mình bằng cách nhấp vào biểu tượng tuỳ chọn Apply Code Changes (Áp dụng các thay đổi mã) Biểu tượng Áp dụng thay đổi mã hoặc Apply Changes and Restart Activity (Áp dụng các thay đổi và khởi động lại hoạt động) Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động.