Android 17 đã chính thức đạt được độ ổn định của nền tảng từ hôm nay với phiên bản Beta 3. Điều đó có nghĩa là giao diện API đã được khoá; bạn có thể tiến hành kiểm thử khả năng tương thích lần cuối và đẩy các ứng dụng nhắm đến Android 17 lên Cửa hàng Play. Ngoài ra, Beta 3 còn mang đến nhiều chức năng mới giúp bạn tạo ra những ứng dụng tốt hơn, an toàn hơn và có mức độ tích hợp cao.
Hãy chuẩn bị sẵn sàng các ứng dụng, thư viện, công cụ và công cụ trò chơi của bạn!
Nếu phát triển SDK, thư viện, công cụ hoặc công cụ phát triển trò chơi, thì việc chuẩn bị mọi bản cập nhật cần thiết ngay bây giờ còn quan trọng hơn nữa để ngăn chặn các nhà phát triển ứng dụng và trò chơi cấp dưới gặp phải vấn đề về khả năng tương thích, đồng thời cho phép họ nhắm đến các tính năng mới nhất của SDK. Vui lòng cho các nhà phát triển cấp dưới biết nếu cần cập nhật để hỗ trợ đầy đủ Android 17.
Thử nghiệm bao gồm việc cài đặt ứng dụng phát hành công khai hoặc ứng dụng thử nghiệm sử dụng thư viện hoặc công cụ của bạn bằng Google Play hoặc các phương tiện khác trên một thiết bị hoặc trình mô phỏng chạy Android 17 Beta 3. Thực hiện tất cả quy trình của ứng dụng và tìm các vấn đề về chức năng hoặc giao diện người dùng. Xem xét những thay đổi về hành vi để tập trung vào việc kiểm thử. Mỗi bản phát hành Android đều có những thay đổi về nền tảng giúp cải thiện quyền riêng tư, bảo mật và trải nghiệm người dùng nói chung. Những thay đổi này có thể ảnh hưởng đến ứng dụng của bạn. Sau đây là một số thay đổi cần tập trung vào:
- Khả năng đổi kích thước trên màn hình lớn: Sau khi nhắm đến Android 17, bạn sẽ không thể chọn không duy trì các ràng buộc về hướng, khả năng đổi kích thước và tỷ lệ khung hình trên màn hình lớn.
- Tải mã động: Nếu ứng dụng của bạn nhắm đến Android 17 trở lên, thì tính năng bảo vệ Tải mã động (DCL) an toàn hơn được giới thiệu trong Android 14 cho các tệp DEX và JAR hiện đã mở rộng sang các thư viện gốc. Tất cả các tệp gốc được tải bằng System.load() đều phải được đánh dấu là chỉ đọc. Nếu không, hệ thống sẽ gửi UnsatisfiedLinkError.
- Bật CT theo mặc định: Tính minh bạch của chứng chỉ (CT) được bật theo mặc định. (Trên Android 16, CT có sẵn nhưng các ứng dụng phải chọn sử dụng.)
- Các biện pháp bảo vệ mạng cục bộ: Theo mặc định, các ứng dụng nhắm đến Android 17 trở lên sẽ bị chặn quyền truy cập vào mạng cục bộ. Chuyển sang sử dụng các trình chọn bảo đảm quyền riêng tư nếu có thể và sử dụng ACCESS_LOCAL_NETWORK mới để có quyền truy cập rộng rãi và liên tục.
Các điểm cải tiến về nội dung nghe nhìn và camera
Các lựa chọn tuỳ chỉnh của Bộ chọn ảnh
Giờ đây, Android cho phép bạn điều chỉnh cách trình bày trực quan của công cụ chọn ảnh để bổ sung tốt hơn cho giao diện người dùng của ứng dụng. Bằng cách tận dụng API PhotoPickerUiCustomizationParams mới, bạn có thể sửa đổi tỷ lệ khung hình của chế độ xem lưới từ tỷ lệ vuông 1:1 tiêu chuẩn thành tỷ lệ dọc 9:16. Tính linh hoạt này áp dụng cho cả ý định ACTION_PICK_IMAGES và công cụ chọn ảnh nhúng, cho phép bạn duy trì tính thẩm mỹ nhất quán khi người dùng tương tác với nội dung nghe nhìn.
Đây là một phần trong nỗ lực của chúng tôi nhằm giúp công cụ chọn ảnh của Android (một công cụ đảm bảo quyền riêng tư) phù hợp một cách liền mạch với trải nghiệm trong ứng dụng của bạn. Tìm hiểu thêm về cách nhúng trực tiếp công cụ chọn ảnh vào ứng dụng để có trải nghiệm tự nhiên nhất.
val params = PhotoPickerUiCustomizationParams.Builder() .setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16) .build() val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply { putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params) } startActivityForResult(intent, REQUEST_CODE)
Hỗ trợ định dạng hình ảnh RAW14: Android 17 hỗ trợ định dạng hình ảnh RAW14 (tiêu chuẩn công nghiệp trên thực tế cho nhiếp ảnh kỹ thuật số cao cấp) thông qua hằng số ImageFormat.RAW14 mới. RAW14 là một định dạng 14 bit trên mỗi pixel, một kênh sử dụng bố cục được đóng gói dày đặc, trong đó cứ 4 pixel liên tiếp sẽ được đóng gói thành 7 byte.
Tiện ích camera do nhà cung cấp xác định: Android 17 bổ sung các tiện ích do nhà cung cấp xác định để cho phép các đối tác phần cứng xác định và triển khai các chế độ tiện ích camera tuỳ chỉnh nhằm cung cấp cho bạn quyền truy cập vào các tính năng camera mới nhất và tốt nhất, chẳng hạn như "Độ phân giải siêu cao" hoặc các tính năng nâng cao tiên tiến dựa trên AI. Bạn có thể truy vấn các chế độ này bằng API isExtensionSupported(int).
API loại thiết bị camera: Các API Android 17 mới cho phép bạn truy vấn loại thiết bị cơ bản để xác định xem camera có phải là phần cứng tích hợp, webcam USB bên ngoài hay camera ảo hay không.
Hỗ trợ thiết bị trợ thính Bluetooth Âm thanh năng lượng thấp
Android hiện có một danh mục thiết bị cụ thể cho máy trợ thính Bluetooth năng lượng thấp (BLE). Khi thêm hằng số AudioDeviceInfo.TYPE_BLE_HEARING_AID, ứng dụng của bạn hiện có thể phân biệt máy trợ thính với tai nghe thông thường.
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }Định tuyến âm thanh chi tiết cho thiết bị trợ thính
Android 17 cho phép người dùng quản lý độc lập vị trí phát các âm thanh hệ thống cụ thể. Họ có thể chọn định tuyến thông báo, nhạc chuông và chuông báo đến thiết bị trợ thính được kết nối hoặc loa tích hợp của thiết bị.
Bộ mã hoá phần mềm HE-AAC mở rộng
Android 17 giới thiệu một bộ mã hoá phần mềm Extended HE-AAC do hệ thống cung cấp. Bộ mã hoá này hỗ trợ cả tốc độ bit thấp và cao bằng cách sử dụng phương thức mã hoá âm thanh và lời nói hợp nhất. Bạn có thể truy cập vào bộ mã hoá này thông qua API MediaCodec bằng tên c2.android.xheaac.encoder hoặc bằng cách truy vấn loại MIME audio/mp4a-latm.
val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)Cải thiện hiệu suất và pin
Giảm wakelock bằng tính năng hỗ trợ trình nghe cho các cảnh báo cho phép khi thiết bị ở trạng thái rảnh
Android 17 giới thiệu một biến thể mới của AlarmManager.setExactAndAllowWhileIdle chấp nhận OnAlarmListener thay vì PendingIntent. Cơ chế mới dựa trên lệnh gọi lại này là lựa chọn lý tưởng cho những ứng dụng hiện dựa vào các lệnh đánh thức liên tục để thực hiện các tác vụ định kỳ, chẳng hạn như các ứng dụng nhắn tin duy trì kết nối ổ cắm.
val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)Nội dung cập nhật về quyền riêng tư
Nút vị trí do hệ thống cung cấp
Android đang giới thiệu một nút vị trí do hệ thống kết xuất mà bạn có thể nhúng trực tiếp vào bố cục của ứng dụng bằng cách sử dụng một thư viện Android Jetpack. Khi người dùng nhấn vào nút hệ thống này, ứng dụng của bạn sẽ được cấp quyền truy cập thông tin vị trí chính xác chỉ cho phiên hiện tại. Để triển khai quyền này, bạn cần khai báo quyền USE_LOCATION_BUTTON.
Chế độ cài đặt riêng biệt về khả năng hiển thị mật khẩu cho bàn phím cảm ứng và bàn phím thực
Tính năng này chia chế độ cài đặt hệ thống "Hiện mật khẩu" hiện có thành 2 lựa chọn ưu tiên riêng biệt của người dùng: một cho thao tác nhập dựa trên cảm ứng và một cho thao tác nhập bằng bàn phím thực (phần cứng). Theo mặc định, các ký tự được nhập qua bàn phím vật lý hiện sẽ bị ẩn ngay lập tức.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
Bảo mật
Bắt buộc tải mã động chỉ có quyền đọc
Để cải thiện khả năng bảo mật trước các cuộc tấn công chèn mã, Android hiện bắt buộc các thư viện gốc được tải động phải ở chế độ chỉ đọc. Nếu ứng dụng của bạn nhắm đến Android 17 trở lên, thì tất cả các tệp gốc được tải bằng System.load() đều phải được đánh dấu là chỉ có quyền đọc từ trước.
val libraryFile = File(context.filesDir, "my_native_lib.so") // Mark the file as read-only before loading to comply with Android 17+ security requirements libraryFile.setReadOnly() System.load(libraryFile.absolutePath)
Ký APK kết hợp bằng mật mã học hậu lượng tử (PQC)
Để chuẩn bị cho những tiến bộ trong tương lai về điện toán lượng tử, Android sẽ hỗ trợ Mật mã học hậu lượng tử (PQC) thông qua Lược đồ chữ ký APK v3.2 mới. Lược đồ này sử dụng phương pháp kết hợp, kết hợp chữ ký cổ điển với chữ ký ML-DSA.
Trải nghiệm người dùng và giao diện người dùng hệ thống
Hỗ trợ tốt hơn cho các tiện ích trên màn hình ngoài
Tính năng này cải thiện tính nhất quán về hình ảnh của các tiện ích ứng dụng khi chúng xuất hiện trên màn hình bên ngoài hoặc màn hình được kết nối có mật độ pixel khác nhau bằng cách sử dụng các đơn vị DP hoặc SP.
val options = appWidgetManager.getAppWidgetOptions(appWidgetId) val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID) val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout) remoteViews.setViewPadding( R.id.container, 16f, 8f, 16f, 8f, TypedValue.COMPLEX_UNIT_DIP )
Nhãn ứng dụng bị ẩn trên màn hình chính
Android hiện cung cấp một chế độ cài đặt người dùng để ẩn tên ứng dụng (nhãn) trên không gian làm việc của màn hình chính. Đảm bảo biểu tượng ứng dụng của bạn khác biệt và dễ nhận biết.
Chế độ Hình trong hình tương tác trên máy tính
Không giống như chế độ Hình trong hình truyền thống, các cửa sổ được ghim này vẫn có thể tương tác trong khi luôn ở trên cùng các cửa sổ ứng dụng khác ở chế độ máy tính.
val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0] appTask.requestWindowingLayer( ActivityManager.AppTask.WINDOWING_LAYER_PINNED, context.mainExecutor, object : OutcomeReceiver<Int, Exception> { override fun onResult(result: Int) { if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) { // Task successfully moved to pinned layer } } override fun onError(error: Exception) {} } )
Thanh công cụ ghi màn hình được thiết kế lại
Chức năng cốt lõi
Chế độ cài đặt loại trừ ứng dụng VPN
Bằng cách sử dụng Intent ACTION_VPN_APP_EXCLUSION_SETTINGS mới, ứng dụng của bạn có thể khởi chạy màn hình Cài đặt do hệ thống quản lý, nơi người dùng có thể chọn các ứng dụng để bỏ qua đường hầm VPN.
val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) }
Nội dung cập nhật API OpenJDK 25 và 21
Bản cập nhật này mang đến nhiều tính năng và điểm cải tiến từ OpenJDK 21 và OpenJDK 25, bao gồm cả tính năng hỗ trợ Unicode mới nhất và tính năng hỗ trợ SSL nâng cao cho các nhóm được đặt tên trong TLS.
Làm quen với Android 17
Bạn có thể đăng ký mọi thiết bị Pixel được hỗ trợ hoặc sử dụng ảnh hệ thống 64 bit với Trình mô phỏng Android.
- Biên dịch dựa trên SDK mới và báo cáo vấn đề 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 và 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.
Để biết thông tin đầy đủ, hãy truy cập trang web dành cho nhà phát triển Android 17.
Tiếp tục đọc
-
Tin tức về sản phẩm
Hôm nay, chúng tôi sẽ nâng cao hoạt động phát triển Android bằng Gemma 4, mô hình nguồn mở tiên tiến mới nhất của chúng tôi, được thiết kế với khả năng suy luận phức tạp và gọi công cụ tự động.
Matthew McCullough • Đọc trong 2 phút
-
Tin tức về sản phẩm
Một trụ cột của hệ sinh thái Android là cam kết chung của chúng tôi đối với niềm tin của người dùng. Khi môi trường di động phát triển, cách chúng tôi bảo vệ thông tin nhạy cảm cũng phát triển theo.
Robert Clifford • Đọc trong 3 phút
-
Tin tức về sản phẩm
Chúng tôi muốn giúp bạn xây dựng các ứng dụng Android chất lượng cao một cách nhanh chóng và dễ dàng hơn. Một trong những cách chúng tôi giúp bạn tăng năng suất là cung cấp cho bạn AI.
Matthew McCullough • Đọc trong 2 phút
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về hoạt động phát triển trên Android trong hộp thư đến của bạn mỗi tuần.