Cộng đồng

Now in Android #121

9 phút đọc
Xem hồ sơ của Daniel Galpin
Daniel Galpin Người hỗ trợ nhà phát triển

Chào mừng bạn đến với Now in Android, hướng dẫn liên tục về những thông tin mới và đáng chú ý trong thế giới phát triển Android.

Hãy đọc tiếp để tìm hiểu về Android 16 QPR2 beta 1, bản cập nhật tính năng Narwhal của Android Studio, Jetpack Compose 1.9, Media 3 1.8, Biến đổi hình dạng và Tự động điền trong Compose, cùng nhiều nội dung khác.

Bạn có thể xem bản tóm tắt video:

 

 

Chúng tôi cũng có một kênh podcast.

Tuy nhiên, bài đăng này có thông tin chi tiết nhất, vì vậy, hãy đọc tiếp!

Android 16 QPR2 Beta 1 đã ra mắt ✨

Bản beta đầu tiên của Android 16 QPR2 hiện đã ra mắt. Đây là bản phát hành Android đầu tiên có phiên bản SDK phụ của Android. Các phiên bản SDK nhỏ có thể bao gồm các API mới giúp mở rộng tính năng của nền tảng nhưng không thể đưa ra các thay đổi về hành vi có kiểm soát targetSdkVersion, giúp giảm thiểu số lần bạn cần kiểm thử ứng dụng của mình.

sdk-release-graph.webp

Bạn có thể gọi các API mới bằng cách kiểm tra SDK_INT_FULL dựa trên enum VERSION_CODES_FULL:

if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) {
  // Call new APIs from the Android 16 QPR2 release
}

Không thể sử dụng VERSION_CODES_FULL trong các thuộc tính tệp kê khai uses-sdk.

Sau đây là một số điểm cập nhật quan trọng trong bản QPR2 Beta 1.

Giao diện người dùng, trải nghiệm hệ thống và hỗ trợ tiếp cận:

  • Lựa chọn giao diện tối mở rộng sẽ đảo ngược màu sắc của các ứng dụng sáng một cách thông minh cho những người dùng thích giao diện tối.
  • Hệ thống có thể tạo biểu tượng ứng dụng theo giao diện tự động nếu ứng dụng của bạn không cung cấp lớp đơn sắc.
  • Phiên bộ chọn tương tác giúp giao diện người dùng của ứng dụng luôn hoạt động trong khi trang chia sẻ đang mở, bằng cách sử dụng ChooserManager và ChooserSession.
  • API Chuyển dữ liệu mới giúp di chuyển dữ liệu giữa Android và iOS một cách đáng tin cậy và an toàn hơn, đồng thời yêu cầu bạn cập nhật XML quy tắc trích xuất dữ liệu của ứng dụng và triển khai BackupAgent.
  • Gói android.graphics.pdf đã được mở rộng để hỗ trợ chú thích và chỉnh sửa tài liệu PDF thông qua PdfRenderer.Page.
  • Giá trị ViewConfiguration hiện được điều chỉnh cho phù hợp với từng thiết bị ảo; hãy di chuyển sang ViewConfiguration.get(context) cho các trường hợp nhiều màn hình.
  • Bạn có thể kiểm soát phản hồi xúc giác chi tiết hơn bằng cách chỉ định VibrationAttributes bằng View.performHapticFeedback(HapticFeedbackRequest)
  • Giờ đây, bạn có thể chỉ định ô Cài đặt nhanh cho các danh mục được xác định trước trong tệp AndroidManifest.xml.

Nội dung nghe nhìn và âm thanh:

  • Giải mã phần mềm cho Định dạng và mô hình âm thanh sống động (IAMF), một định dạng âm thanh không gian mở.
  • Tính năng Chia sẻ âm thanh cá nhân cho các thiết bị âm thanh Bluetooth Âm thanh năng lượng thấp được tích hợp trực tiếp vào Nút chuyển đầu ra của hệ thống.
  • Người dùng có thể điều chỉnh độ sáng của HDR bằng thanh trượt độ sáng HDR/SDR
  • Các tính năng bổ sung của Công cụ chọn ảnh có thể làm nổi bật các album hoặc cụm từ tìm kiếm cụ thể.

Khả năng kết nối:

  • Các điểm cải tiến của Trình quản lý thiết bị đồng hành (CDM) cho phép bạn cung cấp biểu tượng thiết bị tuỳ chỉnh, theo dõi lệnh gọi lại EVENT_ASSOCIATION_REMOVED và bật tính năng xác minh trên nhiều ứng dụng bằng DeviceId.
  • Các bản cập nhật Bluetooth bao gồm tính năng hỗ trợ quét thụ động cho BluetoothLeScanner (ScanSettings.SCAN_TYPE_PASSIVE), lý do mất liên kết (BluetoothDevice.EXTRA_BOND_LOSS_REASON) và truy xuất trực tiếp UUID dịch vụ (BluetoothDevice.EXTRA_UUID_LE).
  • Bản cập nhật Đo khoảng cách Wi-Fi RTT (RttStationRangingParams) hỗ trợ đo khoảng cách với các trạm.
  • PhoneNumberManager mới hiện có thể phân tích cú pháp và xác thực số điện thoại từ tiêu đề URI liên kết P của IMS.
  • Những điểm cải tiến về quyền riêng tư trên mạng của MediaRouter cho phép truyền qua các phương tiện mới như Bluetooth và UWB; bạn nên sử dụng Trình chuyển đổi đầu ra của hệ thống hoặc yêu cầu quyền NEARBY_DEVICES đối với bộ chọn tuỳ chỉnh trong ứng dụng.

Quyền riêng tư và bảo mật:

  • Trạng thái bảo mật mới ở cấp hệ thống, Khoá thiết bị an toàn, sẽ khoá thiết bị và yêu cầu phương thức xác thực chính để mở khoá.
  • Một nút bật/tắt dành cho người dùng được thêm vào tính năng Bảo vệ chống trộm điện thoại để bật/tắt tính năng "Khoá khi xác thực không thành công".

Năng suất của nhà phát triển:

  • API AppWidgetManager mới cho phép bạn truy vấn các chỉ số tương tác của tiện ích.
  • Giờ đây, các ứng dụng có thể gỡ lỗi được cài đặt qua ADB sẽ nhận được cảnh báo sớm về khả năng tương thích với kích thước trang 16 KB.
  • ProfilingManager bổ sung tính năng hỗ trợ cho các điều kiện kích hoạt phân tích tài nguyên mới do hệ thống khởi tạo và requestRunningSystemTrace để ghi lại dấu vết trong nền.
  • Nút bật/tắt "Ghi nhật ký in chi tiết" trong Tùy chọn cho nhà phát triển cung cấp thêm thông tin gỡ lỗi cho Khung in của Android.
  • Các API UiAutomation mới cho ảnh chụp màn hình trên màn hình không mặc định và AccessibilityWindowInfo.refresh công khai giúp thử nghiệm hiệu quả hơn cho trải nghiệm trên máy tính và nhiều màn hình.
  • Hỗ trợ API được thêm vào thư viện androidx.core:core-backported-fixes mới.
  • Ứng dụng GUI hiện được hỗ trợ trong Terminal của Linux
  • WindowInspector.addGlobalWindowViewsListener hỗ trợ thông báo thay đổi chế độ xem gốc theo thời gian thực.

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 Beta qua mạng không dây hoặc sử dụng hình ảnh hệ thống 64 bit với Trình mô phỏng Android trong Android Studio. Nền tảng dự kiến sẽ đạt được độ ổn định vào tháng 10 năm 2025.

Bản cập nhật tính năng Narwhal của Android Studio đã ổn định — hãy bắt đầu sử dụng Chế độ tác nhân 🐳

narwhal.webp

Bản cập nhật tính năng Narwhal của Android Studio hiện đã ổn định, các tính năng mới và điểm cải tiến bao gồm:

  • Gemini trong Android Studio: Chế độ tác nhân hiện có thể xử lý các tác vụ lập trình nhiều giai đoạn
  • Quy tắc trong Thư viện câu lệnh giúp tuỳ chỉnh kết quả AI của Gemini theo nhu cầu của dự án.
  • Biến đổi giao diện người dùng bằng Gemini sử dụng giao diện người dùng bằng ngôn ngữ tự nhiên để lặp lại trên giao diện người dùng Compose.
  • Hỗ trợ phát triển trải nghiệm sống động với Trình mô phỏng Android XR được nhúng, mẫu XR mới và Layout Inspector được nhúng cho XR
  • Mở rộng quyền truy cập vào thiết bị thông qua Phòng thí nghiệm thiết bị của đối tác Android trong tính năng Truyền trực tuyến thiết bị Android.
  • Cải thiện bản xem trước trong Compose bằng cách cải thiện tính năng điều hướng mã và Bộ chọn bản xem trước mới trong Compose
  • Trình biên dịch K2 Kotlin được bật theo mặc định để tăng hiệu suất bản dựng
  • Công cụ kích thước trang 16 KB có cảnh báo tìm lỗi mã nguồn, phân tích và trình mô phỏng để giúp bạn chuẩn bị cho các thiết bị có kích thước trang 16 KB sắp ra mắt.

Tính năng Truyền trực tuyến trên thiết bị Android, do Firebase cung cấp

device-streaming.webp

Tính năng Truyền trực tuyến thiết bị Android (do Firebase cung cấp) đã ra mắt dịch vụ hỗ trợ ổn định cho Phòng thí nghiệm thiết bị của đối tác Android, cho phép bạn kết nối từ xa với các thiết bị Android thực do các đối tác OEM lưu trữ, bao gồm cả Samsung, Xiaomi, OPPO, OnePlus và vivo.

Đẩy nhanh tiến độ phát triển bằng các bản phát hành hằng tháng cho Android Studio – phát hành thường xuyên hơn gấp đôi so với trước đây

accelarating-releases.webp

Android Studio đang chuyển sang chu kỳ phát hành bản ổn định hằng tháng để giúp bạn nhanh chóng nhận được các tính năng mới và bản sửa lỗi quan trọng. Mặc dù Android Studio IDE sẽ cập nhật hằng tháng, nhưng các phiên bản nền tảng IntelliJ mới sẽ được ra mắt vài tháng một lần, trong đó Feature Drop sẽ lấp đầy các bản phát hành ổn định tạm thời. Trình mô phỏng Android và Trình bổ trợ Android cho Gradle sẽ tiếp tục được cập nhật riêng sau mỗi hai tháng. Lịch phát hành nhanh này được hỗ trợ nhờ các khoản đầu tư dài hạn vào cơ sở hạ tầng kiểm thử.

Tính năng mới trong bản phát hành Jetpack Compose tháng 8 năm 2025 🚀

jetpack-compose.webp

Bản phát hành Jetpack Compose tháng 8 năm 2025 (phiên bản 1.9) hiện đã ổn định. Bản phát hành này ra mắt Modifier.dropShadow và Modifier.innerShadow để kết xuất hiệu ứng đổ bóng hộp. Đối tượng sửa đổi onVisibilityChanged và onFirstVisible mới cho phép bạn theo dõi chế độ hiển thị của phần tử để cập nhật giao diện người dùng hoặc ghi nhật ký lượt hiển thị. Bạn có thể áp dụng kiểu đa dạng thức trong OutputTransformation bằng cách sử dụng TextFieldBuffer.addStyle để biến đổi văn bản.

Các thành phần của LazyLayout hiện đã ổn định và bạn có thể xác định LazyLayoutCacheWindow để cải thiện hiệu suất của Danh sách tải từng phần và Lưới bằng tính năng tìm nạp trước nâng cao. Scrollable2D cho phép cuộn hai chiều, bao gồm cả thao tác vuốt và cuộn lồng nhau, cùng nhiều điểm cải tiến cho khả năng tương tác cuộn và cuộn lồng nhau với Khung hiển thị. Một API chọn sử dụng (Composer.setDiagnosticStackTraceEnabled) cung cấp thông tin chi tiết hơn về vị trí xảy ra sự cố trong dấu vết ngăn xếp, chỉ nên dùng cho các bản gỡ lỗi. Các chú thích @RememberInComposition và @FrequentlyChangingValue mới, cùng với các quy trình kiểm tra tìm lỗi mã nguồn liên quan, có sẵn trong thư viện chú thích thời gian chạy mới. Bạn có thể tuỳ chỉnh trình đơn theo bối cảnh bằng Modifier.appendTextContextMenuComponents và Modifier.filterTextContextMenuComponents. Giờ đây, bạn phải sử dụng Trình bổ trợ Android cho Gradle (AGP) / Lint phiên bản 8.8.2 trở lên.

Media3 1.8.0 — Tính năng mới 🚀

media3.webp

Media3 1.8.0 hiện đã ra mắt, mang đến một số tính năng và điểm cải tiến mới. ExoPlayer có chế độ kéo để tua cho các thao tác tua thường xuyên do người dùng thực hiện. Bạn có thể bật chế độ này thông qua ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader hiện hỗ trợ các sự kiện phát trực tiếp để chèn quảng cáo do máy chủ hướng dẫn.

MetadataRetriever đã được cập nhật để cho phép bạn truy xuất thời lượng của mục nội dung nghe nhìn mà không cần phát. Đối với Transformer, bản phát hành này giới thiệu các thao tác cắt nhanh hơn bằng cách sử dụng danh sách chỉnh sửa MP4 với experimentalSetMp4EditListTrimEnabled và các tính năng tối ưu hoá bộ mã hoá dành riêng cho chipset thông qua CodecDbLite, được bật bằng cách gọi setEnableCodecDbLite trên DefaultEncoderFactory.Builder.

Các bản cập nhật khác bao gồm tính năng hỗ trợ tải xuống một phần trong Downloader bằng PreCacheHelper, định tuyến âm thanh XR tự động trong ExoPlayer và các hoạt động tương tác MediaCodec hiệu quả hơn. Mô-đun MediaSession hiện giữ thông báo hiển thị lâu hơn theo mặc định và ứng dụng minh hoạ phiên phát nội dung nghe nhìn sẽ giới thiệu chức năng tiếp tục phát. Một ứng dụng minh hoạ mới về Composition, được xây dựng bằng Kotlin và Compose, minh hoạ tính năng chỉnh sửa video nhiều thành phần nâng cao.

Bài viết 📚

#WeArePlay: Gặp gỡ những người đang lập trình một thế giới bền vững hơn

weareplay.webp

Sáng kiến #WeArePlay tôn vinh các ứng dụng Android và trò chơi giúp giải quyết các thách thức về môi trường. Trò chơi BoRa — Iguaçu National Park do Mayla, Flávia, Andréia và Ariane phát triển, mang đến trải nghiệm tương tác dễ tiếp cận và được thiết kế như một trò chơi để giáo dục về thiên nhiên trong các chuyến tham quan công viên. Ứng dụng CyberTracker của Louis và Justin giúp những người theo dõi bản địa không biết chữ ghi lại dữ liệu về đa dạng sinh học thông qua giao diện dựa trên biểu tượng, hỗ trợ các nỗ lực bảo tồn. Cuối cùng, Earth5R (do Bharati và Saurabh đồng sáng lập) cung cấp kiến thức về môi trường, đồng thời kết nối người dùng với các cơ hội thực tập và dự án để phát triển kỹ năng cho nền kinh tế xanh.

HDR là gì? 🌟

hdr.webp

Dải động cao (HDR) giúp tăng độ sáng tối đa vượt mức Dải động tiêu chuẩn (SDR) cho nhà phát triển Android, mang lại độ chân thực cao hơn cho hình ảnh. Android hỗ trợ HDR cho video và hình ảnh, bao gồm cả các công nghệ như UltraHDR để có khả năng tương thích ngược.

Tìm hiểu về màu sắc bao gồm ba thành phần:

  • Độ sâu bit: Xác định độ chính xác của việc thể hiện màu sắc, trong đó độ sâu bit càng cao thì quá trình chuyển đổi càng mượt mà.
  • Hàm truyền: Ánh xạ các giá trị điểm ảnh dạng số thành độ sáng hoặc màu sắc hiển thị, điều chỉnh cho phù hợp với phản ứng thị giác phi tuyến tính của con người. Ví dụ: sRGB, HLG và PQ.
  • Gam màu: Thể hiện dải màu mà một thiết bị có thể tái tạo.

Quan niệm sai lầm phổ biến về HDR:

  • Màu sắc rực rỡ: Các gam màu rộng hơn như Display P3 và Adobe RGB đã có trước HDR và hầu hết màn hình vẫn cắt bớt thành P3, ngay cả với nội dung BT.2020.
  • Độ tương phản cao hơn/chi tiết màu đen rõ hơn: HDR vốn không mang lại màu đen tối hơn SDR trên cùng một màn hình. Màn hình OLED mang lại độ tương phản vô hạn cho cả hai. Mặc dù PQ phân bổ nhiều bit hơn cho các vùng tối, nhưng đây không phải là tính năng HDR phổ biến.
  • Độ sâu bit cao hơn: Mặc dù một số hồ sơ video HDR (ví dụ: HDR10) sử dụng luồng 10 hoặc 12 bit, nhưng điều này chỉ áp dụng cho các hồ sơ đó chứ không phải là đặc điểm vốn có của HDR; độ sâu bit cao hơn cũng phổ biến ở các định dạng hình ảnh khác.

HDR chủ yếu biểu thị độ sáng tối đa cao hơn. "Khoảng không HDR" này được định nghĩa là một vùng nổi tương ứng với SDR. Mặc dù video HDR truyền thống thường mã hoá khoảng không cố định, nhưng màn hình hiện đại sử dụng khoảng không động, điều này có thể dẫn đến sự khác biệt về chất lượng. Các công nghệ như Ultra HDR và bản đồ khuếch đại cung cấp các giải pháp thay thế với mức sử dụng bit hiệu quả. Bộ công cụ giao diện người dùng của Android sử dụng API extendedRangeBrightness để mang đến trải nghiệm HDR, ngay cả với RGBA_8888.

Video 📹

Thành phần dùng chung nâng cao có khả năng biến đổi hình dạng | Mẹo về Jetpack Compose

Jetpack Compose hiện hỗ trợ các hiệu ứng chuyển đổi phần tử dùng chung nâng cao, biến đổi hình dạng phức tạp và ảnh động hiển thị. Nhà phát triển có thể định cấu hình SharedTransitionLayout ở cấp cao nhất của ứng dụng và sử dụng Modifier.sharedBounds để liên kết các phần tử.

Biến đổi hình dạng là một tính năng mới quan trọng, được thực hiện bằng cách tận dụng thư viện hình dạng đồ hoạ AndroidX của Material 3. Quá trình này bao gồm việc tạo một đối tượng Morph có hình dạng bắt đầu/kết thúc được xác định, thúc đẩy tiến trình của đối tượng đó bằng animateFloat (từ AnimatedVisibilityScope) và áp dụng đối tượng đó dưới dạng một đoạn video thông qua OverlayClip tuỳ chỉnh. Hiệu ứng hiển thị sử dụng skipToLookaheadSize và skipToLookaheadPosition. Tất cả các ảnh động nâng cao này cũng tương thích với xem trước thao tác quay lại.

Gemini đa phương thức trong Android Studio: Phát triển giao diện người dùng bằng AI

AI của Gemini trong Android Studio hỗ trợ phát triển giao diện người dùng bằng cách tạo mã từ thiết kế (bao gồm cả chuyển đổi hình ảnh thành mã), tạo Bản xem trước trong Compose bằng dữ liệu tổng hợp và tinh chỉnh giao diện người dùng hiện có thông qua các lệnh trực tiếp.

Sử dụng SDK kích hoạt bởi thời gian chạy

Android 14 ra mắt Thời gian chạy SDK, một công nghệ mới giúp tách biệt các SDK của bên thứ ba trong một hộp cát quy trình riêng biệt và an toàn để tăng cường quyền riêng tư và bảo mật.

Dành cho nhà phát triển:

  • SDK kích hoạt bởi thời gian chạy (RE) sẽ thực thi trong quy trình riêng biệt này.
  • SDK nhận biết thời gian chạy (RA) đóng vai trò là bên trung gian trong ứng dụng của bạn.
  • Tải RE SDK bằng SdkSandboxManagerCompat, tuân thủ các quy tắc ràng buộc (ví dụ: chạy trên nền trước, tải một lần).
  • Công cụ Shim đơn giản hoá hoạt động giao tiếp liên quy trình cấp thấp.
  • Hiển thị giao diện người dùng từ RE SDK bằng SandboxedSdkView và SandboxedUiAdapter.
  • Chạy các hoạt động từ Thời gian chạy SDK bằng SdkActivityLauncher.

Biến đổi hình dạng Material 3 trên WearOS | Mẹo về Jetpack Compose

Wear OS Material 3 cho Compose hiện giúp đơn giản hoá việc biến đổi hình dạng. Nhà phát triển có thể dễ dàng thêm hiệu ứng thay đổi hình dạng động vào các nút tròn bằng IconButtonDefaults.animatedShapes, tạo các nhóm nút có hiệu ứng thay đổi chiều rộng bằng thành phần ButtonGroup và Modifier.animateWidth(), đồng thời tạo danh sách cuộn dọc (TransformingLazyColumn) trong đó các mục thay đổi tỷ lệ và hình dạng bằng TransformationSpec khi đến gần các cạnh màn hình.

Bản phát hành AndroidX 🚀

Sau đây là thông tin tóm tắt về các thay đổi đối với AndroidX, ưu tiên những thay đổi liên quan nhất đến nhà phát triển ứng dụng Android:

Thay đổi có tác động tổng thể đối với Thư viện Compose:

  • Mức tối thiểu mặc định minSdk được nâng lên API 23: Đối với androidx.compose animation, foundation, material, runtime và ui, phiên bản SDK tối thiểu mặc định đã được chuyển từ API 21 sang API 23. Điều này có nghĩa là nếu đang sử dụng các phiên bản alpha mới nhất của các thư viện Compose này, thì ứng dụng của bạn sẽ ngầm yêu cầu Android 6.0 (Marshmallow) trở lên.

Những thay đổi quan trọng đối với nhà phát triển Compose:

  • API giữ lại mới (Thời gian chạy trong Compose): Ra mắt một API giữ lại tương tự như rememberSaveable, nhưng dành cho các giá trị rời khỏi hệ phân cấp thành phần mà không được chuyển đổi tuần tự. Giá trị này có vòng đời ngắn hơn giá trị đã lưu và hoạt động tương tự như ViewModel, mang đến một cách mới để quản lý trạng thái cho các thành phần kết hợp có thể ra vào cấu trúc.
  • Cải thiện hiệu ứng chuyển đổi thành phần dùng chung (Ảnh động và giao diện người dùng trong Compose): Các API mới để bật/tắt thành phần dùng chung một cách linh động, tính đến các hiệu ứng chuyển đổi đang diễn ra và đặt ranh giới mục tiêu thay thế khi một thành phần dùng chung bị loại bỏ. Ngoài ra, còn có một Modifier.skipToLookaheadPosition mới để neo bố cục.
  • Cải thiện tính năng tìm nạp trước của trình chuyển trang (Compose Foundation): Chiến lược tìm nạp trước của trình chuyển trang hiện sử dụng "Cửa sổ bộ nhớ đệm" (kích thước 1 khung nhìn) thay vì một mục và tính năng tìm nạp trước ban đầu được bật theo mặc định. Các mục cũng được giữ lại lâu hơn để cuộn mượt mà hơn.
  • Xử lý tiêu điểm tinh tế hơn cho chuột/bàn di chuột (Compose Foundation và giao diện người dùng): ComposeViews hiện sẽ tự động xoá tiêu điểm khi sự kiện nhấn con trỏ (từ chuột hoặc bàn di chuột) xảy ra bên ngoài nút được lấy tiêu điểm. Bạn có thể chọn không sử dụng tính năng này.
  • Hình chữ nhật lấy tiêu điểm có thể tuỳ chỉnh (Compose Foundation): FocusProperties hiện cho phép bạn xác định vùng lấy tiêu điểm tuỳ chỉnh thay vì mặc định là hộp giới hạn, cải thiện logic truyền tải tiêu điểm và "giữ trong khung hiển thị" trong vùng chứa có thể cuộn.
  • Thành phần kết hợp LifecycleOwner (Vòng đời): Một thành phần kết hợp mới cho phép tạo các thực thể LifecycleOwner trong phạm vi ngay trong cây giao diện người dùng. Điều này đặc biệt hữu ích cho việc quản lý vòng đời của thành phần một cách độc lập và cho các thư viện như Điều hướng.
  • Hỗ trợ các loại có thể rỗng trong SavedStateHandle (Lifecycle và SavedState): Đơn giản hoá việc lưu và khôi phục các thuộc tính có thể rỗng nhờ tính năng hỗ trợ gốc trong SavedStateHandle và SavedStateRegistryOwner.
  • Mới LineHeightStyle.Mode.Tight (Compose Foundation và giao diện người dùng): Chế độ Tight mới giúp thực thi chiều cao dòng nhỏ hơn, ngay cả khi điều đó có thể cắt bớt các ký tự cao hơn, giúp kiểm soát bố cục văn bản chính xác hơn.
  • Nhấn đúp để chọn từ (Compose Foundation): Thêm tính năng hỗ trợ nhấn đúp để chọn từ trong SelectionContainer và BasicTextField.
  • Thay đổi về hành vi của WindowInsets (Giao diện người dùng Compose và Foundation):
    ◦ API WindowInsets.cutoutPath mới để lấy đường dẫn cho vết cắt trên màn hình.
    ◦ Cờ isWindowInsetsDefaultPassThroughEnabled đã bị xoá, đặt WindowInsets thành không sử dụng theo mặc định, cho phép các Khung hiển thị con nhận được các cờ đó.
  • AndroidView requestRectangleOnScreen Sửa lỗi (Compose Foundation): Các yêu cầu do AndroidViews đưa ra (ví dụ: EditText cố gắng duy trì trên màn hình) hiện được truyền đúng cách đến Compose.
  • Cải thiện tính năng cuộn bằng con lăn chuột 2D (Compose Foundation và giao diện người dùng): Hỗ trợ tốt hơn cho các sự kiện cuộn bằng con lăn chuột 2D, cùng với các API kiểm thử mới và một cờ để kiểm soát hành vi.

Thư viện và tiện ích mới:

  • androidx.core:core-backported-fixes (Thư viện mới): Thư viện mới này cho phép nhà phát triển kiểm tra xem các bản sửa lỗi quan trọng (ví dụ: các vấn đề ở cấp nền tảng như lỗi camera cụ thể) đã được áp dụng cho thiết bị hay chưa. Điều này cho phép cung cấp các trải nghiệm người dùng khác nhau tuỳ thuộc vào việc lỗi đã biết có được giải quyết hay không.

Các thay đổi đáng chú ý khác:

  • Hoạt động và đầu vào trò chơi: Thêm tính năng hỗ trợ mặc định cho kích thước trang 16 KB và hỗ trợ chuột cho GameActivity.
  • Vị trí chú giải công cụ Material3: Thêm nhiều nhà cung cấp vị trí cho chú giải công cụ, cho phép đặt ở phía trên, phía dưới, bên trái hoặc bên phải của điểm neo.
  • Material3 DatePicker Bản sửa lỗi: Đảm bảo DatePicker tuân thủ ngôn ngữ riêng để định dạng số và khắc phục các vấn đề về hiển thị từ phải sang trái (RTL).
  • Hỗ trợ display_override của TWA (Trình duyệt): Thêm tính năng hỗ trợ cho thuộc tính tệp kê khai display_override TWA, giúp kiểm soát tốt hơn màn hình TWA.
  • Mở URL ban đầu trong ứng dụng bên ngoài (Trình duyệt): Thêm một Ý định để cho phép mở URL ban đầu của TWA trong trình duyệt bên ngoài.

Android Developers Backstage

Android Developers Backstage đã trở lại với một tập mới.

Tính năng tự động điền trong Compose

Jetpack Compose 1.8 ra mắt các tính năng Tự động điền được cải thiện đáng kể, tận dụng hệ thống ngữ nghĩa của Compose. Giờ đây, nhà phát triển có thể dễ dàng tích hợp tính năng Tự động điền ở cấp hệ thống bằng cách gắn thẻ các trường văn bản có ngữ nghĩa loại nội dung liên quan (ví dụ: tên người dùng, mật khẩu), loại bỏ nhu cầu quản lý cây Tự động điền theo cách thủ công và cải thiện hiệu suất.

 

Giờ thì… 👋

Đó là tất cả nội dung của số này, bao gồm thông tin về Android 16 QPR2 beta 1, bản cập nhật tính năng Narwhal của Android Studio, Jetpack Compose 1.9, Media 3 1.8, Biến đổi hình dạng và Tự động điền trong Compose, cùng nhiều nội dung khác.

Hãy sớm quay lại để xem thông tin cập nhật tiếp theo về thế giới nhà phát triển Android!

Tác giả:
Tiếp tục đọc