Sau đây là các tính năng mới trong Android Studio Iguana.
Phát hành bản vá
Dưới đây là danh sách các bản vá đã phát hành trong Android Studio Iguana và trình bổ trợ Android cho Gradle 8.3.
Android Studio Iguana | 2023.2.1 Bản vá 2 và AGP 8.3.2 (tháng 4 năm 2024)
Bản cập nhật nhỏ này sửa các lỗi này.
Android Studio Iguana | 2023.2.1 Bản vá 1 và AGP 8.3.1 (tháng 3 năm 2024)
Bản cập nhật nhỏ này sửa các lỗi này.
Bản cập nhật nền tảng IntelliJ IDEA 2023.2
Android Studio Iguana có các bản cập nhật IntelliJ IDEA 2023.2, giúp cải thiện trải nghiệm IDE Studio. Để biết thông tin chi tiết về những thay đổi này, hãy xem ghi chú phát hành IntelliJ IDEA 2023.2.
Tích hợp hệ thống quản lý phiên bản trong App Quality Insights
App Quality Insights hiện cho phép bạn di chuyển từ dấu vết ngăn xếp Crashlytics đến mã liên quan tại thời điểm xảy ra sự cố. AGP sẽ đính kèm dữ liệu hàm băm git cam kết vào báo cáo sự cố, giúp Android Studio di chuyển đến mã của bạn và cho thấy trạng thái trong phiên bản xảy ra vấn đề. Khi xem báo cáo sự cố trong phần Thông tin chi tiết về chất lượng ứng dụng, bạn có thể chọn chuyển đến dòng mã trong bản kiểm tra git hiện tại hoặc xem sự khác biệt giữa bản kiểm tra hiện tại và phiên bản cơ sở mã đã tạo ra sự cố.
Để tích hợp hệ thống quản lý phiên bản với App Quality Insights, bạn cần đáp ứng các yêu cầu tối thiểu sau:
- Phiên bản Canary mới nhất của Android Studio Iguana
- Phiên bản Alpha mới nhất của Trình bổ trợ Android cho Gradle 8.3
- Crashlytics SDK phiên bản 18.3.7 (hoặc Bảng kê khai thành phần trên Android của Firebase phiên bản 32.0.0)
Để sử dụng tính năng tích hợp kiểm soát phiên bản cho một loại bản dựng có thể gỡ lỗi, hãy bật cờ vcsInfo
trong tệp bản dựng cấp mô-đun. Đối với các bản phát hành (không gỡ lỗi được), cờ này được bật theo mặc định.
Kotlin
android { buildTypes { getByName("debug") { vcsInfo { include = true } } } }
Groovy
android { buildTypes { debug { vcsInfo { include true } } } }
Giờ đây, khi bạn tạo bản dựng ứng dụng và phát hành lên Google Play, báo cáo sự cố sẽ bao gồm dữ liệu cần thiết để IDE có thể liên kết với các phiên bản trước của ứng dụng từ dấu vết ngăn xếp.
Xem các biến thể sự cố Crashlytics trong App Quality Insights
Để giúp bạn phân tích nguyên nhân gốc gây ra sự cố, giờ đây, bạn có thể sử dụng Thông tin chi tiết về chất lượng ứng dụng để xem các sự kiện theo biến thể của vấn đề hoặc nhóm các sự kiện có cùng dấu vết ngăn xếp. Để xem các sự kiện trong mỗi biến thể của báo cáo sự cố, hãy chọn một biến thể trong trình đơn thả xuống. Để tổng hợp thông tin cho tất cả biến thể, hãy chọn Tất cả.
Kiểm tra giao diện người dùng Compose
Để giúp nhà phát triển xây dựng giao diện người dùng thích ứng và dễ tiếp cận hơn trong Jetpack Compose, Android Studio Iguana Canary 5 đã ra mắt một chế độ Kiểm tra giao diện người dùng mới trong Bản xem trước Compose. Tính năng này hoạt động tương tự như tính năng Tìm lỗi mã nguồn trực quan và Tích hợp tính năng kiểm tra hỗ trợ tiếp cận cho thành phần hiển thị. Khi bạn kích hoạt chế độ Kiểm tra giao diện người dùng Compose, Android Studio sẽ tự động kiểm tra giao diện người dùng Compose và kiểm tra các vấn đề về khả năng thích ứng và hỗ trợ tiếp cận trên nhiều kích thước màn hình, chẳng hạn như văn bản bị kéo giãn trên màn hình lớn hoặc độ tương phản màu thấp. Chế độ này làm nổi bật các vấn đề phát hiện được trong nhiều cấu hình xem trước và liệt kê các vấn đề đó trong bảng điều khiển vấn đề.
Hãy dùng thử tính năng này ngay hôm nay bằng cách nhấp vào nút Kiểm tra giao diện người dùng trên Bản xem trước Compose rồi gửi ý kiến phản hồi:
Các vấn đề đã biết về Chế độ kiểm tra giao diện người dùng:
- Vấn đề đã chọn trong bảng điều khiển vấn đề có thể mất tiêu điểm
- "Bỏ qua quy tắc" không hoạt động
Hiển thị từng phần cho tính năng Xem trước trong Compose
Android Studio Iguana Canary 3 ra mắt tính năng Kết xuất tăng dần trong Bản xem trước Compose. Trong nỗ lực không ngừng nhằm tăng hiệu quả cho các bản xem trước, giờ đây, đối với mọi bản xem trước nằm ngoài khung hiển thị, chúng tôi chủ ý giảm chất lượng kết xuất để tiết kiệm bộ nhớ đã sử dụng.
Tính năng này được phát triển với mục tiêu cải thiện hơn nữa khả năng hữu dụng của Bản xem trước bằng cách có thể xử lý nhiều bản xem trước cùng một lúc trong một tệp. Hãy dùng thử ngay hôm nay và gửi ý kiến phản hồi.
Trình hướng dẫn mô-đun Hồ sơ cơ sở
Kể từ Android Studio Iguana, bạn có thể tạo Hồ sơ cơ sở cho ứng dụng của mình bằng cách sử dụng mẫu Trình tạo hồ sơ cơ sở trong trình hướng dẫn mô-đun mới (File > New > New Module (Tệp > Mới > Mô-đun mới)).
Mẫu này thiết lập dự án của bạn để có thể hỗ trợ Hồ sơ cơ sở. Công cụ này sử dụng trình bổ trợ Gradle mới cho Hồ sơ cơ sở, giúp tự động hoá quy trình thiết lập dự án của bạn theo cách cần thiết bằng một tác vụ Gradle.
Mẫu này cũng tạo một cấu hình chạy cho phép bạn tạo Hồ sơ cơ sở chỉ bằng một lần nhấp trong danh sách thả xuống Chọn cấu hình chạy/gỡ lỗi.
Kiểm thử các thay đổi về cấu hình bằng Espresso Device API
Sử dụng API Thiết bị Espresso để kiểm thử ứng dụng khi thiết bị trải qua các thay đổi về cấu hình phổ biến, chẳng hạn như xoay và mở màn hình. API Thiết bị Espresso cho phép bạn mô phỏng các thay đổi về cấu hình này trên một thiết bị ảo và thực thi các kiểm thử một cách đồng bộ, vì vậy, chỉ một hành động hoặc xác nhận trên giao diện người dùng xảy ra tại một thời điểm và kết quả kiểm thử của bạn sẽ đáng tin cậy hơn. Tìm hiểu thêm về cách viết kiểm thử giao diện người dùng bằng Espresso.
Để sử dụng Espresso Device API, bạn cần có:
- Android Studio Iguana trở lên
- Trình bổ trợ Android cho Gradle 8.3 trở lên
- Trình mô phỏng Android 33.1.10 trở lên
- Thiết bị Android ảo chạy API cấp 24 trở lên
Thiết lập dự án cho Espresso Device API
Để thiết lập dự án sao cho dự án hỗ trợ Espresso Device API (API Thiết bị Espresso), hãy làm như sau:
Để cho phép kiểm thử truyền lệnh đến thiết bị kiểm thử, hãy thêm quyền
INTERNET
vàACCESS_NETWORK_STATE
vào tệp kê khai trong nhóm tài nguyênandroidTest
:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
Bật cờ thử nghiệm
enableEmulatorControl
trong tệpgradle.properties
:android.experimental.androidTest.enableEmulatorControl=true
Bật tuỳ chọn
emulatorControl
trong tập lệnh bản dựng cấp mô-đun:Kotlin
testOptions { emulatorControl { enable = true } }
Groovy
testOptions { emulatorControl { enable = true } }
Trong tập lệnh bản dựng cấp mô-đun, hãy nhập thư viện Thiết bị Espresso vào dự án:
Kotlin
dependencies { androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1") }
Groovy
dependencies { androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1' }
Kiểm thử với các thay đổi phổ biến về cấu hình
Espresso Device API có nhiều hướng màn hình và trạng thái có thể gập lại mà bạn có thể sử dụng để mô phỏng các thay đổi về cấu hình thiết bị.
Kiểm thử dựa trên tính năng xoay màn hình
Dưới đây là ví dụ về cách kiểm thử những gì sẽ xảy ra với ứng dụng của bạn khi màn hình thiết bị xoay:
Trước tiên, để có trạng thái khởi động nhất quán, hãy đặt thiết bị ở chế độ dọc:
import androidx.test.espresso.device.action.ScreenOrientation import androidx.test.espresso.device.rules.ScreenOrientationRule ... @get:Rule val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
Tạo một chương trình kiểm thử đặt thiết bị thành hướng ngang trong quá trình thực thi kiểm thử:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) ... }
Sau khi màn hình xoay, hãy kiểm tra để đảm bảo giao diện người dùng thích ứng với bố cục mới như mong đợi:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist() }
Kiểm thử đối với thao tác mở màn hình
Dưới đây là ví dụ về cách kiểm thử điều gì sẽ xảy ra với ứng dụng của bạn nếu ứng dụng đó chạy trên một thiết bị có thể gập lại và màn hình mở ra:
Trước tiên, hãy kiểm thử với thiết bị ở trạng thái gập bằng cách gọi
onDevice().setClosedMode()
. Đảm bảo bố cục của ứng dụng thích ứng với chiều rộng màn hình thu gọn:@Test fun myUnfoldedTest() { onDevice().setClosedMode() composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed() composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist() ... }
Để chuyển sang trạng thái mở hoàn toàn, hãy gọi
onDevice().setFlatMode()
. Kiểm tra để đảm bảo bố cục của ứng dụng thích ứng với lớp kích thước mở rộng:@Test fun myUnfoldedTest() { onDevice().setClosedMode() ... onDevice().setFlatMode() composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist() }
Chỉ định những thiết bị mà kiểm thử của bạn cần
Nếu bạn đang chạy một chương trình kiểm thử thực hiện các thao tác gập trên một thiết bị không gập được, thì kiểm thử đó thường không thành công. Để chỉ thực thi các kiểm thử liên quan đến thiết bị đang chạy, hãy sử dụng chú thích @RequiresDeviceMode
. Trình chạy kiểm thử sẽ tự động bỏ qua việc chạy kiểm thử trên các thiết bị không hỗ trợ cấu hình đang được kiểm thử. Bạn có thể thêm quy tắc yêu cầu về thiết bị vào từng bài kiểm thử hoặc toàn bộ lớp kiểm thử.
Ví dụ: để chỉ định rằng một kiểm thử chỉ nên chạy trên các thiết bị hỗ trợ mở ra cấu hình phẳng, hãy thêm mã @RequiresDeviceMode
sau vào kiểm thử:
@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
...
}