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

Phiên bản Beta 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ư, bảo mật và hiệu suất tinh chỉnh.Bản cập nhật này cung cấp một loạt tính năng mới, bao gồm API EyeDropper và Trình chọn người liên hệ bảo đảm quyền riêng tư. Chúng tôi cũng bổ sung tính năng đo khoảng cách nâng cao, API chuyển giao trên nhiều thiết bị và nhiều tính năng 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, sau bản phát hành SDK chính hằng năm này trong Quý 2 là 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 mới về giao diện người dùng nổi tách biệt với API bong bóng tin nhắn. Người dùng có thể tạo một 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 là một phần của Taskbar, nơi người dùng có thể sắp xếp, di chuyển giữa các bong bóng và di chuyển bong bóng đến và từ các điểm neo 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 của bạn hoạt động đúng cách dưới dạng bong bóng.

Bong bóng chưa được bật đầy đủ trong Phiên bản Beta 2. Hãy tìm bong bóng trong bản dựng Android 17 trong tương lai.

API EyeDropper

API EyeDropper 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 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ệ cấp hệ thống mới thông qua ACTION_PICK_CONTACTS cấp quyền truy cập tạm thời, dựa trên phiên vào chỉ các trường dữ liệu cụ thể do người dùng yêu cầu, giảm nhu cầu về quyền READ_CONTACTS rộng rãi. 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 của 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 dễ dàng hơn với tính năng nắm bắt con trỏ bằng bàn di chuột

Trước đây, bàn di chuột báo cáo các sự kiện theo một cách rất khác so với chuột khi một ứng dụng đã nắm bắt con trỏ, 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 nắm bắt, đồng thời báo cáo các cử chỉ này 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 chi tiết cũ bằng cách yêu cầu nắm bắt 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)

Giới hạn nghỉ của Trình 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 quá trình tải dữ liệu và hình ảnh động, cho phép điều chỉnh giao diện người dùng tốt hơn.

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

Chuyển giao ứng dụng trên nhiều thiết bị

API Handoff mới cho phép bạn chỉ định trạng thái ứng dụng để 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 chọn tham gia, 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ị ở gần người dùng. Tính năng này được thiết kế để mang đến khả năng tiếp tục công việc liền mạch, cho phép người dùng tiếp tục chính xác nơi họ đã dừng lại trong quy trình làm việc trên hệ sinh thái Android của họ. Đ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 không được cài đặt trên thiết bị nhận.

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

Chúng tôi đang bổ sung tính năng hỗ trợ cho 2 công nghệ đo khoảng cách mới –

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

Các tính năng nâng cao gói dữ liệu

Để tối ưu hoá chất lượng nội dung nghe nhìn, ứng dụng của bạn hiệ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 getStreamingAppMaxDownlinkKbps và getStreamingAppMaxUplinkKbps.

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 giới thiệu quyền khi bắt đầu chạy ACCESS_LOCAL_NETWORK để bảo vệ người dùng khỏi quyền truy cập mạng cục bộ trái phép. Vì quyền này thuộc nhóm quyền NEARBY_DEVICES hiện có, nên người dùng đã cấp các quyền NEARBY_DEVICES khác 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 bộ thu truyền. Điều này ngă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. Các ứng dụng nhắm đến Android 17 trở lên hiện sẽ có 2 cách để duy trì giao tiếp với các thiết bị LAN: áp dụng trình chọn thiết bị bảo đảm quyền riêng tư, do hệ thống điều phối để 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 khi bắt đầu chạy để duy trì giao tiếp mạng cục bộ.

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

Android hiện cung cấp một ý định phát đá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ờ tiết kiệm ánh sáng ban ngày. Điều này bổ sung cho các ý định phát hiện có ACTION_TIME_CHANGED và ACTION_TIMEZONE_CHANGED, được kích hoạt khi dấu thời gian Unix thay đổi và khi mã nhận dạng múi giờ thay đổi.

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

Các ứ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ác ứng dụng sử dụng đại diện NPU LiteRT, SDK dành riêng cho nhà cung cấp, cũng như NNAPI không 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ệ OTP qua tin nhắn SMS

Android đang mở rộng tính năng bảo vệ OTP qua tin nhắn SMS bằng cách tự động trì hoãn quyền truy cập vào tin nhắn SMS có OTP. Trước đây, tính năng bảo vệ 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 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 trì hoãn. Bản cập nhật này mở rộng tính năng 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ỉ có thể truy cập sau khi trì hoãn 3 giờ để giúp ngăn chặn hành vi chiếm đoạt OTP. Thông báo SMS_RECEIVED_ACTION sẽ bị giữ lại và các truy vấn cơ sở dữ liệu nhà cung cấp SMS sẽ được lọc. Tin nhắn SMS sẽ có sẵn cho các ứng dụng này sau khi trì hoãn. 

Trì hoãn quyền 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 OTP dự kiến (theo xác minh miền), thì tin nhắn SMS ở định dạng WebOTP sẽ chỉ có thể truy cập 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 tin nhắn 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ả các ứng dụng bất kể cấp độ API mục tiêu của chúng.

Trì hoãn quyền 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, OTP SMS sẽ chỉ có thể truy cập sau 3 giờ đối với hầu hết các ứng dụng. Thay đổi này chỉ áp dụng cho các ứ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 trì hoãn.

Tất cả cá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 SMS Retriever hoặc SMS User Consent API để đảm bảo chức năng tiếp tục.

Lịch trình phát hành Android 17

Chúng tôi sẽ nhanh chóng chuyển từ Phiên bả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 cuối cùng. Kể từ thời điểm đó, ứng dụng của bạn có thể nhắm đến SDK 37 và phát hành 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 giai đoạn phát hành rộng rãi của Android 17.

Android Release Timeline.png

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

Chúng tôi dự định Android 17 sẽ tiếp tục nhận các bản cập nhật 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 các thay đổi về hành vi có thể gây lỗi cho ứng dụng theo kế hoạch. Chúng tôi dự định phát hành một SDK nhỏ trong Quý 4 với các API và tính năng bổ sung.

Android Release Timeline_2.png

Bắt đầu với Android 17

Bạn có thể đăng ký bất kỳ thiết bị Pixel được hỗ trợ nào để 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 hình ảnh hệ thống 64 bit với Trình mô phỏng Android trong Android Studio.

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

Nếu bạn có Android 26Q1 Beta và muốn sử dụng bản phát hành ổn định cuối cùng của 26Q1 và thoát khỏi Phiên bản Beta, bạn cần bỏ qua bản cập nhật qua mạng không dây lên 26Q2 Beta 2 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. Bạn gửi ý kiến phản hồi càng sớm thì chúng tôi càng có thể đưa vào công việc của mình trong bản phát hành cuối cùng.

Để 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 thực hiện một số việc sau:

  • Biên dịch dựa trên 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, cài đặt ứng dụng của bạn lên 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ẽ cập nhật thường xuyên 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 beta, 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 xem trước và Phiên bản Beta sau này.

Để biết thông tin đầy đủ, hãy truy cập 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 tới Tính ổn định của 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 kiểm thử trên Phiên bả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