Android 17 đã ra mắt

Đọc trong 13 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 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 chờ đón những thiết bị mới chạy Android 17 trong những tháng tới.

AfD-Android-17.gif

Android 17 đánh dấu sự khởi đầu của quá trình chuyển đổi sang một hệ thống thông minh, đặt các ứng dụng của bạn vào trung tâm. Android đang chuyển sang các tiêu chuẩn phát triển ưu tiên khả năng thích ứng bằng cách giới thiệu khả năng đổi kích thước bắt buộc trên màn hình lớn, đồng thời cung cấp quyền riêng tư, tính bảo mật, nội dung nghe nhìn, camera và hiệu suất thế hệ tiếp theo. Chúng tôi sẽ đề cập đến tất cả những điều đó trong bài đăng này, cũng như cách chúng tôi kết hợp các công cụ, thư viện và kỹ năng của tác nhân thế hệ tiếp theo để giúp các ứng dụng của bạn nắm bắt cơ hội này.

Trong suốt năm qua, từ kênh Canary đến các bản phát hành Beta, chúng tôi đã hợp tác với nhiều bạn trong cộng đồng nhà phát triển để xây dựng một nền tảng mà bạn và người dùng có thể tin tưởng. Vì vậy, thời điểm này đánh dấu việc cung cấp mã nguồn tại Dự án nguồn mở Android (AOSP). Điều này cho phép bạn kiểm tra mã nguồn để hiểu rõ hơn về cách Android hoạt động.

Hãy cùng tìm hiểu sâu hơn về Android 17.

Hệ thống thông tin tình báo

Với sự tích hợp sâu giữa phần cứng, phần mềm và AI, chúng tôi đang chuyển đổi Android từ một hệ điều hành thành một hệ thống thông minh. Điều này giúp mang đến những trải nghiệm hữu ích mới, đáp ứng nhu cầu của người dùng và mang lại nhiều cơ hội tương tác hơn với ứng dụng của bạn. Để làm được điều đó, Android 17 mở rộng các chức năng của AppFunctions, một API nền tảng có thư viện Jetpack tương ứng. Điều này cho phép bạn đóng góp các chức năng riêng biệt của ứng dụng dưới dạng "công cụ" có thể điều phối cho MCP Android, tương đương với Giao thức ngữ cảnh mô hình trên thiết bị. Các trợ lý và tác nhân AI (như Google Gemini) có thể khám phá và thực thi AppFunction để thực hiện quy trình thay cho người dùng bằng cách truy cập trực tiếp vào trạng thái cục bộ của ứng dụng.

Thư viện Jetpack (hiện ở giai đoạn alpha) giúp bạn dễ dàng thêm AppFunctions như chú thích một lớp và thêm nhận xét KDoc. 

/**
 *   A note app's [AppFunction]s.
 */
class NoteFunctions(
    private val noteRepository: NoteRepository
) {
    /**
     *   Adds a new note to the app.
     *
     *   @param appFunctionContext The execution context.
     *   @param title The title of the note.
     *   @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}

Chúng tôi cũng ra mắt kỹ năng AppFunctions agent. Kỹ năng này phân tích các quy trình làm việc chính của ứng dụng, tự động tạo mã Kotlin cần thiết, tối ưu hoá KDoc cho tính năng gọi công cụ LLM và cung cấp các lệnh ADB để kiểm thử và gỡ lỗi.

Tính năng tích hợp Gemini hiện đang ở giai đoạn dùng thử riêng tư với những người kiểm thử đáng tin cậy, nhưng bạn có thể bắt đầu chuẩn bị ứng dụng của mình ngay bây giờ. Ngoài các lệnh ADB để thực thi AppFunctions, chúng tôi còn cung cấp một ứng dụng tác nhân kiểm thử có giao diện để khám phá và thực thi AppFunctions, đồng thời mô phỏng quá trình tích hợp tác nhân AI. Tham gia chương trình tiếp cận sớm để tích hợp tại goo.gle/eap-af để có cơ hội trở thành một trong những ứng dụng đầu tiên triển khai AppFunctions cho bản phát hành công khai.

Ưu tiên khả năng thích ứng

Người dùng không còn phụ thuộc vào một kiểu dáng thiết bị duy nhất; họ chuyển đổi giữa điện thoại, thiết bị có thể gập lại, máy tính bảng, máy tính xách tay, màn hình ô tô và môi trường XR sống động. Hiện tại, với hơn 580 triệu thiết bị có màn hình lớn trong tay người dùng và sắp ra mắt Google Books, thế hệ ChromeOS tiếp theo được xây dựng trên ngăn xếp Android, khả năng thích ứng không còn chỉ là một mục tiêu kỹ thuật nữa. Đây là cơ hội lớn để tiếp cận những người dùng có mức độ tương tác cao. Đây cũng là một trong những lý do khiến chúng tôi chuyển sang tiêu chuẩn phát triển ưu tiên khả năng thích ứng.

Không có hạn chế về hướng/khả năng đổi kích thước trên màn hình lớn

Để đảm bảo ứng dụng mang lại trải nghiệm cao cấp trên mọi kiểu dáng thiết bị, kể cả thiết bị di động chạy ở chế độ máy tính trên màn hình được kết nối, Android 17 (API cấp 37) sẽ loại bỏ lựa chọn không tham gia của nhà phát triển đối với các hạn chế về hướng và khả năng đổi kích thước trên thiết bị có màn hình lớn (sw > 600 dp) cho các ứng dụng nhắm đến API cấp 37. Hệ thống sẽ bỏ qua các thuộc tính tệp kê khai và API thời gian chạy cũ, bao gồm cả screenOrientation, setRequestedOrientation(), resizeableActivity=false và các ràng buộc về tỷ lệ khung hình (minAspectRatio/maxAspectRatio). Các trò chơi (dựa trên danh mục ứng dụng trong Google Play) vẫn được miễn trừ. Ứng dụng của bạn phải sẵn sàng thích ứng với mọi kích thước cửa sổ, tôn trọng tư thế thiết bị mà người dùng ưu tiên và hỗ trợ chế độ cửa sổ tuỳ ý một cách tự nhiên.

Tính năng đa nhiệm thế hệ mới: Bong bóng ứng dụng, thanh bong bóng và chế độ PiP tương tác trên máy tính

Android 17 giới thiệu các tính năng mới mạnh mẽ về cửa sổ, giúp người dùng định nghĩa lại cách họ làm nhiều việc cùng lúc, đòi hỏi ứng dụng của bạn phải có bố cục linh hoạt hơn nữa:

  • Bong bóng ứng dụng:  Ngoài API bong bóng tin nhắn, giờ đây, người dùng có thể biến bất kỳ ứng dụng nào thành một bong bóng nổi bằng cách nhấn và giữ biểu tượng của ứng dụng đó trên trình chạy. Tính năng này có trên điện thoại, thiết bị gập và máy tính bảng, cho phép bạn thực hiện đa nhiệm một cách dễ dàng cho mọi quy trình làm việc.
  • Thanh bong bóng: Trên màn hình lớn (máy tính bảng và thiết bị có thể gập lại), thanh tác vụ hệ thống hiện có một Thanh bong bóng chuyên dụng để sắp xếp, chuyển đổi và ghim các bong bóng ứng dụng nổi này.
  • Chế độ PiP tương tác trên máy tính: Trong môi trường máy tính, Android 17 giới thiệu chế độ Hình trong hình (PiP) tương tác. Không giống như các cửa sổ PiP truyền thống chỉ có thể đọc, những cửa sổ được ghim này vẫn có thể tương tác đầy đủ trong khi luôn ở trên cùng của các cửa sổ ứng dụng khác.
Bubbles (1).gif
Bong bóng ứng dụng và thanh bong bóng đang hoạt động

Thông tin cập nhật về việc tạo lại hoạt động

Để ngăn chặn tình trạng mất trạng thái gây phiền toái và giật hình, Android 17 sẽ cập nhật hành vi mặc định cho tính năng tạo lại Hoạt động. Theo mặc định, hệ thống sẽ không khởi động lại các hoạt động đối với những thay đổi về cấu hình thông thường không yêu cầu vẽ lại toàn bộ giao diện người dùng (bao gồm cả CONFIG_KEYBOARDCONFIG_KEYBOARD_HIDDENCONFIG_NAVIGATION, CONFIG_TOUCHSCREENCONFIG_COLOR_MODE).

Thay vào đó, các hoạt động đang chạy sẽ nhận được những bản cập nhật này thông qua onConfigurationChanged(), cho phép chuyển đổi mượt mà. Nếu ứng dụng của bạn hoàn toàn dựa vào việc khởi động lại hoàn toàn để tải lại tài nguyên cho những thay đổi này, thì giờ đây, bạn phải chọn sử dụng một cách rõ ràng bằng thuộc tính tệp kê khai android:recreateOnConfigChanges mới.

Tiếp tục trên

Android 17 bổ sung tính năng Tiếp tục trên để giúp người dùng chuyển đổi liền mạch một tác vụ giữa các thiết bị Android. Người dùng sẽ thấy một đề xuất cho ứng dụng được mở gần đây nhất trên thiết bị di động của họ trong thanh tác vụ của máy tính bảng, giúp họ chỉ cần nhấn một lần để khởi chạy ứng dụng và liên kết sâu đến nơi họ đã dừng lại. Tính năng Tiếp tục có thể hỗ trợ các quá trình chuyển đổi từ ứng dụng sang web, bao gồm cả việc quay lại sử dụng web nếu ứng dụng chưa được cài đặt.

Continue On.png
Đề xuất chuyển giao trên máy tính bảng
class MyHandoffActivity : Activity() {

    ...

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // Do stuff
    ...
    // Enable handoff
    setHandoffEnabled(true, null)
  }

  // Override and implement onHandoffActivityDataRequested
  override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
    // Create and return handoff data
  }
}

Ưu tiên khả năng thích ứng bằng Jetpack Compose

Để giúp bạn điều chỉnh ứng dụng cho phù hợp với các yêu cầu mới của Android 17, chúng tôi đã ra mắt kỹ năng thích ứng Jetpack Compose. Quy trình làm việc dành cho nhà phát triển dựa trên AI này giúp bạn triển khai các phương pháp thích ứng hiệu quả nhất:

  • Điều hướng thích ứng: Tự động chuyển đổi giữa các thanh điều hướng dưới cùng trên thiết bị di động và các thanh điều hướng được cố định ở cạnh trên màn hình lớn bằng cách sử dụng NavigationSuiteScaffold trong thư viện Thích ứng Material 3.
  • Bố cục nhiều ngăn: Triển khai bố cục danh sách-chi tiết và ngăn hỗ trợ một cách tự nhiên bằng cách sử dụng 3 Cảnh điều hướng (ListDetailSceneStrategy và SupportingPaneSceneStrategy) thay vì các giao dịch mảnh dễ bị lỗi.
  • API FlexBox và Grid: Tận dụng các thành phần bố cục động của Compose 1.11 để dễ dàng điều chỉnh khoảng hàng và cột ngay lập tức, đảm bảo nội dung của bạn luôn lấp đầy không gian một cách đẹp mắt.
  • Tính năng nâng cao cho thiết bị đầu vào không cảm ứng: Tận dụng khả năng hỗ trợ chuột và bàn di chuột nâng cao của Compose 1.11, bao gồm cả vòng tiêu điểm gốc và các API mới (chẳng hạn như TrackpadInjectionScope và performTrackpadInput) để dễ dàng kiểm thử và mang đến trải nghiệm "tương tự như trên máy tính xách tay" thực sự trên Google Books và Chế độ máy tính.
  • Trạng thái cửa sổ động: Tận dụng mô hình trạng thái phản ứng của Compose để điều chỉnh giao diện người dùng một cách liền mạch khi ứng dụng chuyển từ chế độ toàn màn hình sang một App Bubble nổi hoặc cửa sổ PiP tương tác trên máy tính, đảm bảo mang lại trải nghiệm cao cấp ngay cả ở kích thước tối thiểu.

Android ưu tiên Compose

Compose mang đến cách dễ dàng nhất để tạo các ứng dụng thích ứng, và đó chỉ là một trong nhiều lý do mà chúng tôi tin rằng mọi giao diện người dùng Android đều nên được tạo bằng Compose. Vì vậy, việc phát triển Android hiện ưu tiên Compose. Tất cả các API, thư viện, công cụ và hướng dẫn mới dành cho nhà phát triển Android sẽ được xây dựng dành riêng cho Jetpack Compose. Các thành phần View cũ (trong gói android.widget) và các thư viện Jetpack dựa trên View (chẳng hạn như Fragments, RecyclerViewViewPager) hiện đang ở chế độ duy trì. Các phiên bản này sẽ chỉ nhận được các bản sửa lỗi quan trọng và không có tính năng mới.


LƯU Ý Bạn đã sẵn sàng di chuyển? Sử dụng Kỹ năng di chuyển từ XML sang Compose dựa trên AI của chúng tôi để tự động phân tích bố cục View cũ và chuyển đổi bố cục đó thành mã Compose có khả năng thích ứng cao.


Hiệu suất và hiệu quả

Hiệu suất của ứng dụng có nghĩa là giao diện người dùng mượt mà, thời gian khởi động ứng dụng nhanh và khả năng đa nhiệm hiệu quả; Android 17 có những điểm cải tiến đáng kể ở tất cả các khía cạnh này. 

Giới hạn bộ nhớ ứng dụng

Mức sử dụng bộ nhớ là một trong những yếu tố thầm lặng nhưng quan trọng đối với hiệu suất tổng thể. Khi một ứng dụng hoặc dịch vụ trên nền trước tăng trưởng không kiểm soát, hoạt động quản lý bộ nhớ sẽ làm tăng mức sử dụng CPU và pin, đồng thời cuối cùng dẫn đến việc chấm dứt các ứng dụng được lưu vào bộ nhớ đệm và các công việc chạy ở chế độ nền khác, cuối cùng buộc các ứng dụng khởi động nguội chậm hơn và khả năng đa nhiệm bị suy giảm. 

Kể từ Android 17, hệ thống sẽ áp dụng các giới hạn nghiêm ngặt về bộ nhớ ứng dụng dựa trên tổng dung lượng RAM của thiết bị, đột ngột chấm dứt các quy trình vi phạm. Những điểm mới giúp bạn đáp ứng các yêu cầu chặt chẽ hơn này:

  • Trình tối ưu hoá R8:  Trình tối ưu hoá R8 giúp giảm đáng kể mức sử dụng bộ nhớ của mã byte trong ứng dụng bằng cách rút gọn các lớp, phương thức và trường thành tên ngắn hơn, đồng thời loại bỏ mã và tài nguyên không dùng đến. Sử dụng R8 ở chế độ đầy đủ cùng với trình phân tích cấu hình R8 mới để đảm bảo ứng dụng của bạn khai thác tối đa R8.
R8 Configuration Analyzer.png
Trình phân tích cấu hình R8
  • LeakCanary trong Android Studio Panda: Giờ đây, trình phân tích tài nguyên có tính năng tích hợp LeakCanary gốc dưới dạng một tác vụ chuyên dụng, được tích hợp đầy đủ với IDE và mã nguồn của bạn.
  • ApplicationExitInfo: Nếu ứng dụng của bạn bị chấm dứt do những giới hạn này, getDescription() từ ApplicationExitInfo sẽ trả về "MemoryLimiter:AnonSwap".
  • Phát hiện hoạt động bất thường trên thiết bị: Là một phần của ProfilingManager, bạn có thể tận dụng tính năng lập hồ sơ dựa trên điều kiện kích hoạt bằng cách sử dụng TRIGGER_TYPE_ANOMALY để tự động ghi lại các tệp báo lỗi khi đạt đến giới hạn bộ nhớ.
val profilingManager = applicationContext
   .getSystemService(ProfilingManager::class.java)

val triggers = ArrayList<ProfilingTrigger>().apply {
  add(ProfilingTrigger.Builder(
    ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build())
}
profilingManager.addProfilingTriggers(triggers)

Ngoài ra, chúng tôi đang nỗ lực để cung cấp cho bạn nhiều chỉ số hơn về bộ nhớ trong Google Play Console.

Thu gom rác theo thế hệ

Android 17 giới thiệu các hoạt động thu thập thế hệ trẻ thường xuyên hơn và ít tốn tài nguyên hơn cho trình thu gom rác Concurrent Mark-Compact (GC) của ART. Bằng cách tách các đối tượng tồn tại trong thời gian ngắn khỏi các đối tượng ổn định, tồn tại trong thời gian dài, hệ thống sẽ chạy các hoạt động quét "thế hệ trẻ" thường xuyên và nhẹ thay vì các hoạt động quét toàn bộ heap tốn kém, giúp giảm đáng kể mức sử dụng CPU, mức tiêu thụ điện năng và tình trạng giật giao diện người dùng. Kết quả kiểm thử của chúng tôi cho thấy những cải thiện đáng kể về sự can thiệp của GC đối với các luồng ứng dụng và việc giảm kích thước tối đa của tập hợp thường trú trong bộ nhớ (RSS). Các điểm cải tiến của ART cũng có trên hơn một tỷ thiết bị chạy Android 12 (API cấp 31) trở lên thông qua các bản cập nhật Hệ thống Google Play.

MessageQueue không khoá

Đối với các ứng dụng nhắm đến SDK 37 trở lên, android.os.MessageQueue cốt lõi hiện triển khai một cấu trúc không khoá, giúp giảm đáng kể số khung hình bị bỏ lỡ, cải thiện thời gian khởi động ứng dụng và cải thiện đáng kể hiệu suất của các hàng đợi bận trong các trường hợp đa luồng. Lưu ý: Điều này có thể làm hỏng các ứng dụng sử dụng tính năng phản chiếu trên các trường và phương thức MessageQueue riêng tư.  Các API peekWhenpoll đã được thêm vào TestLooperManager để kiểm thử đo lường mà không cần dựa vào nội bộ MessageQueue

Các trường tĩnh cuối cùng hiện thực sự là cuối cùng

Kể từ Android 17, các ứng dụng nhắm đến SDK 37 trở lên sẽ không thể sửa đổi các trường "static final", cho phép thời gian chạy áp dụng các hoạt động tối ưu hoá hiệu suất một cách tích cực hơn. Nếu bạn cố gắng làm như vậy thông qua phản chiếu (hoặc phản chiếu sâu), IllegalAccessException sẽ được truyền. 

Việc sửa đổi các phương thức này thông qua họ phương thức SetStatic<Type>Field của JNI sẽ khiến ứng dụng gặp sự cố ngay lập tức.

Các quy định hạn chế về chế độ xem thông báo tuỳ chỉnh

Để giảm mức sử dụng bộ nhớ, chúng tôi sẽ hạn chế thêm kích thước của chế độ xem thông báo tuỳ chỉnh. Bản cập nhật này sẽ đóng một lỗ hổng cho phép các ứng dụng bỏ qua các giới hạn hiện có bằng cách sử dụng URI. Hành vi này được kiểm soát theo phiên bản SDK mục tiêu và có hiệu lực đối với các ứng dụng nhắm đến API 37 trở lên.

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

Giữ vững lòng tin của người dùng là điều cốt lõi trong hệ sinh thái Android. Android 17 ra mắt các tính năng mạnh mẽ giúp bảo vệ dữ liệu nhạy cảm trong khi đơn giản hoá trải nghiệm người dùng.

Các lựa chọn bảo đảm quyền riêng tư

Trước đây, các ứng dụng cần có quyền truy cập rộng rãi và vĩnh viễn để truy cập vào những thông tin như danh bạ, vị trí chính xác và tệp đa phương tiện. Android 17 tiếp tục chuyển sang các lựa chọn bảo đảm quyền riêng tư, chỉ cấp quyền truy cập tạm thời dựa trên phiên vào dữ liệu mà người dùng chọn một cách rõ ràng:

  • Trình chọn người liên hệ ở cấp hệ thống: Khi sử dụng ACTION_PICK_CONTACTS, các ứng dụng chỉ có thể yêu cầu quyền truy cập tạm thời vào các trường cụ thể (ví dụ: email hoặc số điện thoại) do người dùng chọn, nhờ đó loại bỏ nhu cầu về quyền READ_CONTACTS trên diện rộng. Ngoài ra, ứng dụng này cũng hỗ trợ hoàn toàn việc tách biệt hồ sơ công việc/hồ sơ cá nhân.
  • Tỷ lệ khung hình có thể tuỳ chỉnh của Công cụ chọn ảnh: Khi dùng PhotoPickerUiCustomizationParams, bạn có thể tuỳ chỉnh công cụ chọn ảnh của hệ thống để hiển thị hình thu nhỏ ở chế độ dọc. Đây là lựa chọn phù hợp cho những ứng dụng luôn hiển thị ảnh và video ở chế độ dọc, chẳng hạn như ứng dụng mạng xã hội dựa trên video.
  • Nút vị trí do hệ thống kết xuất: Nút vị trí mới do hệ thống kết xuất mà bạn có thể nhúng vào ứng dụng của mình chỉ cấp quyền truy cập vị trí chính xác cho phiên hiện tại.
  • EyeDropper API: ACTION_OPEN_EYE_DROPPER là một API mới ở cấp hệ thống, cho phép ứng dụng của bạn tạo một công cụ chọn màu do hệ thống hỗ trợ, giúp người dùng chọn màu từ bất kỳ pixel nào trên màn hình. API này mang đến trải nghiệm chọn màu an toàn, bảo đảm quyền riêng tư, giúp loại bỏ nhu cầu về các quyền chụp màn hình hoặc chiếu nội dung nghe nhìn nhạy cảm trên diện rộng.
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)
}
Eyedropper Tester.webp
Chọn màu ở bất kỳ vị trí nào trên màn hình bằng công cụ EyeDropper của hệ thống

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

Giờ đây, các ứng dụng nhắm đến Android 17 đều yêu cầu quyền khi bắt đầu chạy ACCESS_LOCAL_NETWORK hoặc sử dụng các bộ chọn thiết bị do hệ thống điều phối và đảm bảo quyền riêng tư để giao tiếp với mạng cục bộ, chẳng hạn như giao tiếp với các thiết bị nhà thông minh hoặc thiết bị truyền. Vì ACCESS_LOCAL_NETWORK 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ảo vệ mã OTP qua tin nhắn SMS

Android 17 mở rộng khả năng bảo vệ mật khẩu một lần (OTP) qua SMS bằng cách trì hoãn quyền truy cập vào tin nhắn SMS trong 3 giờ:

Trường hợp ngoại lệ: Ứng dụng SMS mặc định, ứng dụng trợ lý và ứng dụng đồng hành được kết nối sẽ được miễn trừ. Các ứng dụng nên di chuyển sang API SMS Retriever hoặc SMS User Consent.

Mật mã học hậu lượng tử (PQC)

Android 17 đã sẵn sàng cho thế hệ bảo mật bằng mật mã tiếp theo:

  • Tích hợp kho khoá: Các thiết bị được hỗ trợ có thể tạo khoá ML-DSA (Thuật toán chữ ký số dựa trên mạng lưới mô-đun) trong phần cứng bảo mật để tạo chữ ký an toàn lượng tử, được hiển thị thông qua các API JCA tiêu chuẩn.
  • Ký APK kết hợp: Ra mắt Lược đồ chữ ký APK phiên bản 3.2, kết hợp chữ ký cổ điển với chữ ký ML-DSA để bảo mật việc phân phối ứng dụng.

Tải mã động gốc an toàn hơn

Nếu ứng dụng của bạn nhắm đến SDK 37 trở lên, thì tính năng bảo vệ Tải mã động (DCL) an toàn hơn ra mắt 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 ra UnsatisfiedLinkError.

Tính năng bảo vệ mật khẩu thông minh hơn cho dữ liệu đầu vào thực

Với Android 17, chúng tôi sẽ giúp bạn nhập mật khẩu, mã PIN và các thông tin bí mật khác an toàn hơn khi sử dụng bàn phím thực bằng cách không còn hiện ký tự đã nhập gần đây nhất theo mặc định.

Người dùng vẫn có thể dễ dàng tuỳ chỉnh các chế độ cài đặt hiển thị này cho phù hợp với sở thích của mình (phạm vi cung cấp có thể khác nhau tuỳ theo nhà sản xuất thiết bị).

Các biện pháp bảo vệ quyền riêng tư nâng cao này được các thành phần SDK tích hợp sẵn của Android tự động hỗ trợ và sẽ được hỗ trợ trong Compose 1.12 cho SecureTextFields
 

Hide First Letter.gif
Bảo vệ mật khẩu thông minh hơn cho dữ liệu đầu vào thực tế

Các tính năng về nội dung nghe nhìn và camera giúp nhà sáng tạo phát triển và mang đến trải nghiệm thú vị cho người dùng

Android 17 ra mắt các tính năng mới dành cho nhà sáng tạo, giúp họ có quyền truy cập vào camera và nội dung nghe nhìn chuyên nghiệp, đồng thời cải thiện trải nghiệm cho người tiêu dùng.

  • Eclipsa Video: Tiêu chuẩn video HDR dựa trên quy cách SMPTE ST 2094-50. Tiêu chuẩn này giới thiệu siêu dữ liệu mới để giúp các thiết bị điều chỉnh nội dung cho phù hợp với khoảng không hiển thị và điều kiện ánh sáng xung quanh, cũng như cải thiện khả năng hiển thị đồng thời nội dung chuẩn và nội dung HDR.
  • Định dạng hình ảnh RAW14: Tính năng hỗ trợ mới cho định dạng hình ảnh RAW14 giúp ứng dụng camera chuyên nghiệp của bạn chụp được mức độ chi tiết và độ sâu màu cao nhất từ các cảm biến camera tương thích.
  • Tiện ích camera do nhà cung cấp xác định: 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, cung cấp quyền truy cập vào các tính năng camera mới nhất và tốt nhất.
  • Bộ mã hoá phần mềm Extended HE-AAC: Bộ mã hoá phần mềm Extended HE-AAC mới do hệ thống cung cấp, 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, mang lại chất lượng âm thanh tốt hơn đáng kể cho tin nhắn thoại trong điều kiện băng thông thấp, bao gồm cả việc hỗ trợ siêu dữ liệu về độ lớn.
  • Bộ mã hoá và giải mã video linh hoạt (H.266):  Cho phép các nhà sản xuất thiết bị gốc (OEM) thêm chế độ hỗ trợ bộ mã hoá và giải mã bằng cách xác định loại MIME video/vvc trong MediaFormat, thêm các hồ sơ VVC mới trong MediaCodecInfo và tích hợp chế độ hỗ trợ vào MediaExtractor.
  • Loại thiết bị camera: Các API mới 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.
  • Chất lượng không đổi khi quay video: setVideoEncodingQuality trong MediaRecorder định cấu hình chế độ chất lượng không đổi (CQ) cho bộ mã hoá video để đảm bảo độ trung thực về hình ảnh đồng nhất trên toàn bộ video.

Hỗ trợ tốt hơn cho thiết bị trợ thính

  • Hỗ trợ thiết bị trợ thính có Bluetooth Âm thanh năng lượng thấp: Android hiện có một danh mục thiết bị cụ thể cho thiết bị trợ thính có Bluetooth Âm thanh năng lượng thấp (BLE) với hằng số AudioDeviceInfo.TYPE_BLE_HEARING_AID mới. Nhờ đó, ứng dụng của bạn có thể phân biệt thiết bị trợ thính với tai nghe thông thường để mang lại trải nghiệm phù hợp cho người dùng thiết bị trợ thính.
  • Đị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 cụ thể của hệ thống. Họ có thể chọn chuyển hướng thông báo, nhạc chuông và chuông báo đến thiết bị trợ thính đã kết nối hoặc loa tích hợp của thiết bị, giúp tránh bị gián đoạn không mong muốn trong tai mà vẫn duy trì kết nối Bluetooth cho các ứng dụng quản lý thiết bị trợ thính.

CameraX và Media3

CameraX và Media3 đã được cập nhật cho Android 17. Các API này giúp bạn xử lý những công việc phức tạp, loại bỏ các điểm bất cập trong quá trình phát triển nội dung nghe nhìn và đơn giản hoá việc xây dựng tính năng chụp ảnh đáng tin cậy bằng camera, phát nội dung nghe nhìn mượt mà cũng như mang đến trải nghiệm chỉnh sửa sáng tạo và phức tạp. 

Chúng tôi đã phát hành một kỹ năng của trợ lý có thể di chuyển các chế độ triển khai camera Android cũ (Camera1 hoặc Camera2 API thô) sang CameraX.  

Lưu ý: Bạn cần cập nhật phiên bản CameraX lên 1.5.2 hoặc 1.6.0 trở lên để tránh sự cố liên quan đến chế độ dải tương phản động được thêm vào trên các thiết bị Android 17.

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 một SDK, thư viện, công cụ hoặc công cụ phát triển trò chơi Android, thì bạn cần chuẩn bị mọi bản cập nhật cần thiết ngay bây giờ để ngăn chặn các nhà phát triển ứng dụng và trò chơi hạ nguồn 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 thông báo cho các nhà phát triển cấp dưới của bạn 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 thông qua Google Play hoặc các phương tiện khác trên thiết bị hoặc trình mô phỏng chạy Android 17 Beta 4. 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. 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; hãy xem xét những thay đổi về hành vi ảnh hưởng đến ứng dụng đối với các ứng dụng chạy trênnhắm đến Android 17 để tập trung vào hoạt động kiểm thử, bao gồm cả những thay đổi sau:

  • Khả năng đổi kích thước trên màn hình lớn: Sau khi nhắm đến Android 17 (SDK 37), 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 SDK 37 trở lên, thì tính năng bảo vệ Tải mã động (DCL) an toàn hơn ra mắt 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.)
  • Bảo vệ mạng cục bộ: Theo mặc định, các ứng dụng nhắm đến SDK 37 trở lên sẽ bị chặn quyền truy cập vào mạng cục bộ. Chuyển sang dùng bộ chọn bảo đảm quyền riêng tư nếu có thể và dùng quyền ACCESS_LOCAL_NETWORK mới để có quyền truy cập rộng rãi và liên tục.
  • Tăng cường bảo mật âm thanh ở chế độ nền: Kể từ Android 17, khung âm thanh sẽ thực thi các quy tắc hạn chế đối với hoạt động tương tác âm thanh ở chế độ nền, bao gồm cả việc phát âm thanh, yêu cầu lấy tiêu điểm âm thanh và API thay đổi âm lượng. Dựa trên ý kiến phản hồi của bạn, chúng tôi đã thực hiện một số thay đổi kể từ bản thử nghiệm 2, bao gồm cả việc hạn chế targetSDK trong quá trình thực thi FGS khi đang sử dụng và miễn trừ âm thanh báo thức. Bạn có thể xem toàn bộ thông tin chi tiết trong hướng dẫn mới.
  • Khai báo quyền truy cập vào 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ác ứng dụng sử dụng uỷ quyền LiteRT NPU, các SDK dành riêng cho nhà cung cấp, cũng như NNAPI không được dùng nữa.

Làm quen với Android 17

Thiết bị Pixel của bạn sẽ sớm nhận được Android 17 nếu bạn chưa tham gia chương trình Thử nghiệm Android. 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 hiện đang dùng Android 17 Beta 4.1 và chưa dùng Android 17 QPR1 Beta, bạn có thể chọn không tham gia chương trình. Sau đó, bạn sẽ nhận được phiên bản phát hành của Android 17 qua mạng không dây.

Tải bản thử nghiệm Android 17 trên thiết bị của đối tác

Android 17 hiện có phiên bản beta trên các kiểu dáng thiết bị như điện thoại di động, Máy tính bảng và thiết bị gập của các đối tác, bao gồm Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo và Xiaomi.

android-17-beta-partners.jpg

Để 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 dựng Canary mới nhất của Android Studio Quail. Sau khi thiết lập, bạn nên làm một số việc sau:

Một lần nữa, xin cảm ơn tất cả những người đã tham gia chương trình dùng thử và chương trình thử nghiệm beta dành cho nhà phát triển Android. Chúng tôi rất mong được thấy cách các ứng dụng của bạn tận dụng những điểm mới trong Android 17 và có kế hoạch cung cấp cho bạn các bản cập nhật với tốc độ phát hành nhanh chóng trong thời gian tới.

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

Tác giả:

Tiếp tục đọc