Tin tức về sản phẩm

Bản thử nghiệm thứ hai của Android 17

Đọc trong 6 phút
Matthew McCullough
Phó chủ tịch phụ trách bộ phận Quản lý sản phẩm, Nhà phát triển Android

Hôm nay, chúng tôi phát hành phiên bản beta thứ hai của Android 17, tiếp tục nỗ lực xây dựng một nền tảng ưu tiên quyền riêng tư, tính bảo mật và hiệu suất tinh tế.Bản cập nhật này mang đến nhiều khả năng mới, bao gồm cả EyeDropper API và Trình chọn danh bạ bảo đảm quyền riêng tư. Chúng tôi cũng sẽ bổ sung các API chuyển giao nhiều thiết bị và đo khoảng cách nâng cao, cùng nhiều API khác.

Bản phát hành này tiếp tục thay đổi nhịp độ phát hành của chúng tôi, theo đó, sau bản phát hành SDK lớn hằng năm này trong quý 2, chúng tôi sẽ phát hành một bản cập nhật SDK nhỏ.

Trải nghiệm người dùng và giao diện người dùng hệ thống

Bong bóng

Bong bóng là một tính năng chế độ cửa sổ, mang đến trải nghiệm giao diện người dùng nổi mới tách biệt với API bong bóng nhắn tin. Người dùng có thể tạo bong bóng ứng dụng trên điện thoại, thiết bị có thể gập lại hoặc máy tính bảng bằng cách nhấn và giữ biểu tượng ứng dụng trên trình chạy. Trên màn hình lớn, có một thanh bong bóng trong thanh Taskbar. Tại đây, người dùng có thể sắp xếp, di chuyển giữa các bong bóng, cũng như di chuyển bong bóng đến và đi từ các điểm cố định trên màn hình.

Bubbles.gif

Bạn nên tuân theo các nguyên tắc hỗ trợ chế độ nhiều cửa sổ để đảm bảo ứng dụng hoạt động chính xác dưới dạng bong bóng.

Bong bóng chưa được bật hoàn toàn trong phiên bản Beta 2. Bạn có thể tìm thấy những tính năng này trong bản dựng Android 17 sau này.

EyeDropper API

EyeDropper API cấp hệ thống mới cho phép ứng dụng của bạn yêu cầu một màu từ bất kỳ pixel nào trên màn hình mà không cần có quyền chụp màn hình nhạy cảm.

Eyedropper_Tester.webp
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Use the picked color in your app
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}

Trình chọn người liên hệ

Trình chọn người liên hệ mới ở cấp hệ thống thông qua ACTION_PICK_CONTACTS chỉ cấp quyền đọc tạm thời dựa trên phiên cho các trường dữ liệu cụ thể mà người dùng yêu cầu, giảm nhu cầu sử dụng các quyền READ_CONTACTS trên diện rộng. Tính năng này cũng cho phép chọn từ hồ sơ cá nhân hoặc hồ sơ công việc trên thiết bị.

android-17-contact-picker.gif
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val uri = it.data?.data ?: return@rememberLauncherForActivityResult
        // Handle result logic
        processContactPickerResults(uri)
    }
}

val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
    putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
    putExtra(EXTRA_ALLOW_MULTIPLE, true)
    putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}

contactPicker.launch(intent)

Khả năng tương thích khi chụp con trỏ dễ dàng hơn với bàn di chuột

Trước đây, khi một ứng dụng đã ghi lại con trỏ, các bàn di chuột sẽ báo cáo sự kiện theo cách rất khác so với chuột, báo cáo vị trí của các ngón tay trên bàn di chuột thay vì các chuyển động tương đối mà chuột sẽ báo cáo. Điều này khiến việc hỗ trợ bàn di chuột đúng cách trong các trò chơi góc nhìn thứ nhất trở nên khá khó khăn. Giờ đây, theo mặc định, hệ thống sẽ nhận dạng chuyển động của con trỏ và cử chỉ cuộn khi bàn di chuột được ghi lại, đồng thời báo cáo các cử chỉ đó giống như các sự kiện chuột. Bạn vẫn có thể yêu cầu dữ liệu vị trí ngón tay cũ, chi tiết bằng cách yêu cầu chụp một cách rõ ràng ở chế độ "tuyệt đối" mới. 

// To request the new default relative mode (mouse-like events)
// This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()

// To request the legacy absolute mode (raw touch coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)

Ranh giới khi không hoạt động của Bộ chọn tương tác

Bằng cách gọi getInitialRestingBounds trên ChooserSession của Android, ứng dụng của bạn có thể xác định vị trí mục tiêu mà Trình chọn chiếm giữ sau khi hoàn tất các hoạt ảnh và quá trình tải dữ liệu, cho phép điều chỉnh giao diện người dùng hiệu quả hơn.

Khả năng kết nối và tính năng trên nhiều thiết bị

Bàn giao ứng dụng giữa nhiều thiết bị

Handoff API mới cho phép bạn chỉ định trạng thái ứng dụng sẽ được tiếp tục trên một thiết bị khác, chẳng hạn như máy tính bảng Android. Khi người dùng chọn sử dụng, hệ thống sẽ đồng bộ hoá trạng thái thông qua CompanionDeviceManager và hiển thị đề xuất chuyển giao trong trình chạy của các thiết bị lân cận của người dùng. Tính năng này được thiết kế để mang đến trải nghiệm liền mạch khi tiếp tục công việc, cho phép người dùng tiếp tục đúng tại vị trí họ đang làm dở trong quy trình làm việc trên hệ sinh thái Android. Điều quan trọng là Handoff hỗ trợ cả quá trình chuyển đổi từ ứng dụng sang ứng dụng gốc và dự phòng từ ứng dụng sang web, mang lại tính linh hoạt tối đa và đảm bảo trải nghiệm hoàn chỉnh ngay cả khi ứng dụng gốc chưa được cài đặt trên thiết bị nhận.

API đo khoảng cách nâng cao

Chúng tôi sẽ hỗ trợ 2 công nghệ đo khoảng cách mới: 

  1. UWB DL-TDOA cho phép các ứng dụng sử dụng UWB để điều hướng trong nhà. Giao diện API này tuân thủ quy cách DL-TDOA 4.0 của FIRA (Fine Ranging Consortium) và cho phép điều hướng trong nhà mà vẫn đảm bảo quyền riêng tư  (tránh việc neo theo dõi thiết bị).
  2. Tính năng phát hiện thiết bị ở gần cho phép các ứng dụng sử dụng thông số kỹ thuật mới về phạm vi mà WFA (Liên minh Wi-Fi) đang áp dụng. Công nghệ này mang lại độ tin cậy và độ chính xác cao hơn so với quy cách đo khoảng cách dựa trên Wifi Aware hiện có.

Các điểm cải tiến đối với gói dữ liệu

Để tối ưu hoá chất lượng nội dung nghe nhìn, giờ đây, ứng dụng của bạn có thể truy xuất tốc độ dữ liệu tối đa do nhà mạng phân bổ cho các ứng dụng phát trực tuyến bằng cách sử dụng getStreamingAppMaxDownlinkKbpsgetStreamingAppMaxUplinkKbps.

Chức năng cốt lõi, quyền riêng tư và hiệu suất

Quyền truy cập mạng cục bộ

Android 17 ra mắt quyền khi bắt đầu chạy ACCESS_LOCAL_NETWORK để bảo vệ người dùng khỏi bị truy cập trái phép vào mạng cục bộ. Vì thuộc nhóm quyền hiện có NEARBY_DEVICES, nên những người dùng đã cấp các quyền khác NEARBY_DEVICES sẽ không được nhắc lại. Bằng cách khai báo và yêu cầu quyền này, ứng dụng của bạn có thể khám phá và kết nối với các thiết bị trên mạng cục bộ (LAN), chẳng hạn như thiết bị nhà thông minh hoặc thiết bị nhận truyền nội dung. Điều này giúp ngăn chặn các ứng dụng độc hại khai thác quyền truy cập mạng cục bộ không hạn chế để theo dõi người dùng và tạo vân tay số một cách bí mật. Giờ đây, các ứng dụng nhắm đến Android 17 trở lên sẽ có 2 cách để duy trì giao tiếp với các thiết bị LAN: sử dụng bộ chọn thiết bị do hệ thống điều phối và bảo đảm quyền riêng tư để bỏ qua lời nhắc cấp quyền hoặc yêu cầu rõ ràng quyền mới này trong thời gian chạy để duy trì giao tiếp mạng cục bộ.

Thông báo thay đổi chênh lệch múi giờ

Giờ đây, Android cung cấp một ý định truyền tin đáng tin cậy, ACTION_TIMEZONE_OFFSET_CHANGED, được kích hoạt khi độ lệch múi giờ của hệ thống thay đổi, chẳng hạn như trong quá trình chuyển đổi sang giờ mùa hè. Điều này bổ sung cho các ý định truyền tin hiện có ACTION_TIME_CHANGEDACTION_TIMEZONE_CHANGED. Các ý định này được kích hoạt khi dấu thời gian bắt đầu của hệ thống Unix thay đổi và khi mã nhận dạng múi giờ thay đổi.

Quản lý và ưu tiên NPU

Những ứng dụng nhắm đến Android 17 cần truy cập trực tiếp vào NPU phải khai báo FEATURE_NEURAL_PROCESSING_UNIT trong tệp kê khai để tránh bị chặn truy cập vào NPU. Điều này bao gồm cả những ứng dụng sử dụng delegate NPU LiteRT, các SDK dành riêng cho nhà cung cấp, cũng như NNAPI không được dùng nữa.

Hỗ trợ ICU 78 và Unicode 17

Các thư viện quốc tế hoá cốt lõi đã được cập nhật lên ICU 78, mở rộng khả năng hỗ trợ cho các tập lệnh, ký tự và khối biểu tượng cảm xúc mới, đồng thời cho phép định dạng trực tiếp các đối tượng thời gian.

Bảo vệ mã OTP qua tin nhắn SMS

Android đang mở rộng tính năng bảo vệ OTP qua SMS bằng cách tự động trì hoãn quyền truy cập vào tin nhắn SMS có chứa OTP. Trước đây, biện pháp bảo vệ này chủ yếu tập trung vào định dạng SMS Retriever, trong đó việc gửi tin nhắn chứa hàm băm SMS Retriever sẽ bị trì hoãn trong 3 giờ đối với hầu hết các ứng dụng. Tuy nhiên, đối với một số ứng dụng như ứng dụng SMS mặc định, v.v. và ứng dụng tương ứng với hàm băm sẽ được miễn áp dụng độ trễ này. Bản cập nhật này mở rộng phạm vi bảo vệ cho tất cả tin nhắn SMS có OTP. Đối với hầu hết các ứng dụng, tin nhắn SMS chứa OTP sẽ chỉ truy cập được sau 3 giờ để ngăn chặn hành vi đánh cắp OTP. Thông báo truyền tin SMS_RECEIVED_ACTION sẽ bị giữ lại và các truy vấn cơ sở dữ liệu của nhà cung cấp dịch vụ SMS sẽ được lọc. Sau khoảng thời gian trễ này, các ứng dụng này sẽ nhận được tin nhắn SMS. 

Chậm trễ khi truy cập vào tin nhắn SMS ở định dạng WebOTP

Nếu ứng dụng có quyền đọc tin nhắn SMS nhưng không phải là người nhận dự kiến của OTP (theo kết quả xác minh miền), thì tin nhắn SMS ở định dạng WebOTP sẽ chỉ truy cập được sau 3 giờ. Thay đổi này được thiết kế để cải thiện tính bảo mật cho người dùng bằng cách đảm bảo rằng chỉ những ứng dụng được liên kết với miền được đề cập trong thông báo mới có thể đọc mã xác minh theo phương thức lập trình. Thay đổi này áp dụng cho tất cả ứng dụng, bất kể cấp độ API mục tiêu của ứng dụng.

Chậm trễ khi truy cập vào tin nhắn SMS tiêu chuẩn có OTP

Đối với tin nhắn SMS chứa OTP không sử dụng định dạng WebOTP hoặc SMS Retriever, tin nhắn SMS chứa OTP sẽ chỉ truy cập được sau 3 giờ đối với hầu hết các ứng dụng. Thay đổi này chỉ áp dụng cho những ứng dụng nhắm đến Android 17 (cấp độ API 37) trở lên.

Một số ứng dụng như ứng dụng SMS mặc định, ứng dụng trợ lý, cùng với các ứng dụng đồng hành của thiết bị thông minh, v.v. sẽ được miễn áp dụng độ trễ này.

Tất cả ứng dụng dựa vào việc đọc tin nhắn SMS để trích xuất OTP đều phải chuyển sang sử dụng API SMS Retriever hoặc SMS User Consent để đảm bảo chức năng tiếp tục hoạt động.

Lịch phát hành Android 17

Chúng tôi sẽ nhanh chóng chuyển từ giai đoạn Beta này sang cột mốc Ổn định nền tảng, dự kiến vào tháng 3. Tại cột mốc này, chúng tôi sẽ cung cấp các API SDK/NDK hoàn chỉnh. Kể từ thời điểm đó, ứng dụng của bạn có thể nhắm đến SDK 37 và xuất bản lên Google Play để giúp bạn hoàn tất quá trình kiểm thử và thu thập ý kiến phản hồi của người dùng trong vài tháng trước khi Android 17 ở giai đoạn phát hành rộng rãi.

Android Release Timeline.png

Một năm phát hành

Chúng tôi dự định tiếp tục cung cấp các bản cập nhật cho Android 17 trong một loạt bản phát hành hằng quý. Bản phát hành sắp tới trong quý 2 là bản phát hành duy nhất mà chúng tôi giới thiệu những thay đổi dự kiến về hành vi làm gián đoạn ứng dụng. Chúng tôi dự định phát hành một SDK phụ vào quý 4 với các API và tính năng bổ sung.

Android Release Timeline_2.png

Làm quen với Android 17

Bạn có thể đăng ký mọi thiết bị Pixel được hỗ trợ để nhận bản cập nhật này và các bản cập nhật Android Beta trong tương lai qua mạng không dây. Nếu không có thiết bị Pixel, bạn có thể sử dụng ảnh hệ thống 64 bit với Trình mô phỏng Android trong Android Studio.

Nếu đang tham gia chương trình Thử nghiệm Android, bạn sẽ nhận được bản cập nhật lên Beta 2 qua mạng không dây.

Nếu đang dùng Android 26Q1 Beta và muốn sử dụng bản phát hành ổn định cuối cùng của 26Q1 rồi rời khỏi chương trình Beta, bạn cần bỏ qua bản cập nhật 26Q2 Beta 2 qua mạng không dây và đợi bản phát hành 26Q1.

Chúng tôi rất mong nhận được ý kiến phản hồi của bạn, vì vậy, vui lòng báo cáo vấn đề và gửi yêu cầu về tính năng trên trang phản hồi. Chúng tôi nhận được ý kiến phản hồi của bạn càng sớm thì càng có thể đưa nhiều ý kiến đó vào bản phát hành chính thức.

Để có trải nghiệm phát triển tốt nhất với Android 17, bạn nên sử dụng bản xem trước mới nhất của Android Studio (Panda). Sau khi thiết lập, bạn nên làm một số việc sau:

  • Biên dịch theo SDK mới, kiểm thử trong môi trường CI và báo cáo mọi vấn đề trong công cụ theo dõi của chúng tôi trên trang phản hồi.
  • Kiểm thử khả năng tương thích của ứng dụng hiện tại, tìm hiểu xem ứng dụng của bạn có bị ảnh hưởng bởi các thay đổi trong Android 17 hay không, đồng thời cài đặt ứng dụng của bạn vào một thiết bị hoặc trình mô phỏng chạy Android 17 và kiểm thử kỹ lưỡng.

Chúng tôi sẽ thường xuyên cập nhật hình ảnh hệ thống xem trước/beta và SDK trong suốt chu kỳ phát hành Android 17. Sau khi cài đặt bản dựng thử nghiệm, bạn sẽ tự động nhận được các bản cập nhật trong tương lai

qua mạng không dây cho tất cả các bản dùng thử và bản Beta sau này.

Để biết thông tin đầy đủ, hãy truy cập vào trang web dành cho nhà phát triển Android 17.

Tham gia cuộc trò chuyện

Khi chúng tôi tiến đến giai đoạn Ổn định nền tảng và giai đoạn phát hành rộng rãi Android 17 vào cuối năm nay, ý kiến phản hồi của bạn vẫn là tài sản quý giá nhất của chúng tôi. Cho dù bạn là người dùng sớm trên kênh Canary hay nhà phát triển ứng dụng đang thử nghiệm trên Beta 2, hãy cân nhắc tham gia cộng đồng của chúng tôi và gửi ý kiến phản hồi. Chúng tôi luôn lắng nghe.

Tác giả:

Tiếp tục đọc