Hôm nay, chúng tôi sẽ phát hành 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 tế. Bản cập nhật này cung cấp một loạt tính năng mới, bao gồm EyeDropper API và Trình chọn người liên hệ đảm bảo quyền riêng tư. Chúng tôi cũng sẽ bổ sung tính năng đo khoảng cách nâng cao, API chuyển giao giữa các 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à 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 của 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ị gập 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 tác vụ, 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à đi từ các điểm neo trên màn hình.
Bạn nên làm theo nguyên tắc hỗ trợ chế độ nhiều cửa sổ để đảm bảo ứng dụng hoạt động đúng cách dưới dạng bong bóng.
Bong bóng chưa được bật hoàn toàn trong Bản thử nghiệm 2. Hãy đón chờ những tính năng này trong một bản dựng Android 17 trong tương lai.
EyeDropper API
API EyeDropper mới ở cấp hệ thống cho phép ứng dụng của bạn yêu cầu 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.
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 cấp quyền đọc tạm thời, theo phiên cho chỉ những trường dữ liệu cụ thể mà người dùng yêu cầu, giúp giảm nhu cầu về quyền READ_CONTACTS rộng. Thành phần này cũng cho phép lựa chọn từ hồ sơ cá nhân hoặc hồ sơ công việc của thiết bị.
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 giữa tính năng chụp con trỏ và bàn di chuột
Trước đây, bàn di chuột báo cáo sự kiện theo cách rất khác với chuột khi ứng dụng đã thu nạp con trỏ, báo cáo vị trí của 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 cử chỉ di chuyển 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ư 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 rõ ràng việc chụp ở 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à Bộ chọn chiếm giữ sau khi hoàn tất ảnh động và tải dữ liệu, nhờ đó đ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ị
Chuyển giao ứng dụng giữa các thiết bị
API Chuyển giao 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 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ị ở gần của người dùng. Tính năng này được thiết kế để giúp người dùng tiếp tục công việc một cách liền mạch, cho phép họ tiếp tục chính xác từ nơi họ đã dừng lại trong quy trình làm việc trên hệ sinh thái Android. Quan trọng nhất là tính năng Chuyển tiếp hỗ trợ cả quá trình chuyển đổi giữa các ứng dụng gốc và dự phòng từ ứng dụng sang web, mang lại sự 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ợ thêm 2 công nghệ đo khoảng cách mới –
- 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ủ thông số kỹ thuật DL-TDOA của FIRA (Fine Ranging Consortium) 4.0 và cho phép điều hướng trong nhà đảm bảo quyền riêng tư (tránh việc thiết bị bị neo theo dõi).
- 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 thông số kỹ thuật đo khoảng cách hiện tại dựa trên Wifi Aware.
Các tính năng nâng cao của 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 truyền 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 ra mắt quyền khi bắt đầu chạy ACCESS_LOCAL_NETWORK để bảo vệ người dùng khỏi hành vi truy cập trái phép vào mạng cục bộ. Vì quyền này thuộc nhóm quyền NEARBY_DEVICES hiện có, nên những 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 thiết bị nhận truyền. Điều này ngăn các ứng dụng độc hại khai thác quyền truy cập không hạn chế vào mạng cục bộ để theo dõi người dùng và lấy 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ó hai cách để duy trì hoạt động 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à đảm bảo 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ì hoạt động giao tiếp trong 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 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 Giờ mùa hè. Điều này bổ sung cho các ý định truyền tin hiện có là ACTION_TIME_CHANGED và ACTION_TIMEZONE_CHANGED. Các ý định này được kích hoạt tương ứng khi dấu thời gian Unix thay đổi và khi mã 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 đạ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ệ 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ó OTP. Trước đây, biện pháp bảo vệ chủ yếu tập trung vào định dạng Trình truy xuất SMS, trong đó việc gửi tin nhắn chứa hàm băm của trình truy xuất SMS bị trì hoãn 3 giờ đối với hầu hết các ứng dụng. Tuy nhiên, một số ứng dụng nhất định 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 khi bị trì hoãn 3 giờ để giúp ngăn chặn hành vi chiếm đoạt 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. Tin nhắn SMS sẽ được gửi đến các ứng dụng này sau khoảng thời gian trễ.
Trì hoãn quyền truy cập vào tin nhắn SMS có đị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 quy định của quy trình xác minh miền), thì tin nhắn SMS có định dạng WebOTP sẽ chỉ truy cập được sau khi 3 giờ trôi qua. Thay đổi này nhằm cải thiện khả năng bảo mật cho người dùng bằng cách đảm bảo rằng chỉ những ứng dụng 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ả ứng dụng, bất kể cấp độ API mục tiêu của ứng dụng.
Trì hoãn quyền truy cập vào tin nhắn SMS thông thường có chứa OTP
Đối với tin nhắn SMS chứa OTP không sử dụng định dạng WebOTP hoặc SMS Retriever, hầu hết các ứng dụng chỉ có thể truy cập vào tin nhắn SMS chứa OTP sau 3 giờ. Thay đổi này chỉ áp dụng cho những ứng dụng nhắm đến Android 17 (API cấp 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 ứng dụng đồng hành cho 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 nên chuyển sang sử dụng API Trình truy xuất SMS hoặc Sự đồng ý của người dùng SMS để đảm bảo chức năng tiếp tục hoạt động.
Lịch trình phát hành Android 17
Chúng tôi sẽ nhanh chóng chuyển từ bản thử nghiệm này sang cột mốc Ổn định nền tảng, dự kiến vào tháng 3. Tại 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à phát hành lên Google Play để giúp bạn hoàn tất quá trình thử nghiệm và thu thập ý kiến phản hồi của người dùng trong vài tháng trước khi giai đoạn phát hành rộng rãi Android 17.
Một năm phát hành
Chúng tôi dự định tiếp tục cập nhật Android 17 thông qua 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 sẽ giới thiệu những thay đổi dự kiến về hành vi có thể gây lỗi cho ứng dụng. Chúng tôi dự định phát hành một bản SDK nhỏ vào quý 4, trong đó có thêm các API và tính năng.
Làm quen với Android 17
Bạn có thể đăng ký bất kỳ thiết bị Pixel nào đượ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ẽ được cung cấp bản cập nhật qua mạng không dây lên Beta 2.
Nếu đang dùng Android 26Q1 Beta và muốn chuyển sang bản phát hành chính thức cuối cùng của 26Q1 và thoát khỏi chương trình 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. 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 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 dựa trên SDK mới, thử nghiệm 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 ý kiến 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ó chịu ảnh hưởng của các thay đổi trong Android 17 hay không, đồng thời cài đặt ứng dụng vào một thiết bị hoặc trình mô phỏng chạy Android 17 rồi 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/thử nghiệm 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 xem trước và bản thử nghiệm 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 giai đoạn Ổn định nền tảng và 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 sử dụng sớm trên kênh Canary hay nhà phát triển ứng dụng đang thử nghiệm trê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.
-
Tin tức về sản phẩmHôm nay, tại Hội nghị Nhà phát triển Android, chúng tôi xin thông báo về việc cung cấp rộng rãi nhiều công cụ và API được thiết kế để loại bỏ những trở ngại hằng ngày và giúp bạn linh hoạt hơn trong việc xây dựng các ứng dụng Android tuyệt vời.
Matthew McCullough • Thời gian đọc: 4 phút -
Tin tức về sản phẩmHôm nay, chúng tôi sẽ phát hành nhóm nhiệm vụ có phạm vi kéo dài (LHT) đầu tiên. Đây là những nhiệm vụ có độ phức tạp cao, khiến một kỹ sư phải mất nhiều ngày hoặc thậm chí một tuần để hoàn thành. Chúng tôi cũng sẽ ra mắt tính năng đánh giá dựa trên tác nhân, bắt đầu từ các tác nhân của những nhà cung cấp mô hình tương ứng.
Matthew McCullough • Đọc trong 3 phút -
Tin tức về sản phẩmHôm nay, chúng tôi sẽ phát hành Android 17 và cung cấp phiên bản này trên hầu hết các thiết bị Pixel được hỗ trợ. Hãy đón chờ các thiết bị mới chạy Android 17 trong những tháng tới.
Matthew McCullough • Thời gian đọc: 13 phút
Nhận thông tin chi tiết mới nhất về hoạt động phát triển Android trong hộp thư đến của bạn hằng tuần.