0

Android 17 Beta 4: Chặng cuối trước khi “ra sân chính thức”

Android 17 Bản Beta 4: Cột mốc quan trọng trước thềm phát hành chính thức

Android 17 đã chính thức đạt đến phiên bản Beta 4, đây cũng là bản beta theo lịch trình cuối cùng trong chu kỳ phát hành này. Đây là một cột mốc quan trọng để kiểm tra khả năng tương thích của ứng dụng và độ ổn định của nền tảng. Cho dù bạn đang tinh chỉnh trải nghiệm người dùng, đảm bảo hiển thị tràn viền (edge-to-edge), hay khai thác các API mới nhất, Beta 4 cung cấp một môi trường "gần như hoàn thiện" để bạn tiến hành thử nghiệm.

Hãy chuẩn bị sẵn sàng cho ứng dụng, thư viện, công cụ và game engine của bạn!

Kiểm tra tương thích: Những thay đổi hành vi đáng chú ý

Nếu bạn đang phát triển SDK, thư viện hay game engine, điều quan trọng là phải cập nhật ngay để tránh việc các nhà phát triển sử dụng công cụ của bạn bị chặn do lỗi tương thích.

Bạn nên cài đặt ứng dụng sản xuất (production) hoặc ứng dụng test lên thiết bị/trình giả lập chạy Android 17 Beta 4 và kiểm tra tất cả các luồng hoạt động. Hãy đặc biệt lưu ý đến các thay đổi hành vi sau đối với các ứng dụng nhắm mục tiêu (target) Android 17:

  • Khả năng thay đổi kích thước trên màn hình lớn: Khi nhắm mục tiêu Android 17, bạn không thể chọn không tham gia (opt-out) việc duy trì hướng, khả năng thay đổi kích thước và các ràng buộc tỷ lệ khung hình trên màn hình lớn nữa.
  • Tải mã động (Dynamic code loading): Lớp bảo vệ Tải mã động an toàn (Safer DCL) từng áp dụng cho file DEX và JAR từ Android 14 nay đã mở rộng sang các thư viện gốc (native libraries). Tất cả các file gốc load bằng System.load() phải được đánh dấu là chỉ đọc (read-only), nếu không hệ thống sẽ ném ra lỗi UnsatisfiedLinkError.
  • Bật mặc định Certificate Transparency (CT): Tính năng minh bạch chứng chỉ (CT) hiện được bật mặc định (trước đây trên Android 16, ứng dụng phải chủ động opt-in).
  • Bảo vệ mạng cục bộ (Local network): Quyền truy cập mạng cục bộ bị chặn mặc định. Bạn nên chuyển sang sử dụng các bộ chọn bảo vệ quyền riêng tư nếu có thể, hoặc dùng quyền ACCESS_LOCAL_NETWORK mới cho các truy cập rộng hơn, liên tục hơn.
  • Thắt chặt âm thanh nền: Khuôn khổ âm thanh hiện thực thi các hạn chế đối với các tương tác âm thanh nền (phát lại, yêu cầu tiêu điểm âm thanh, thay đổi âm lượng).

Giới hạn bộ nhớ ứng dụng (App memory limits)

Android đang giới thiệu các giới hạn bộ nhớ ứng dụng dựa trên tổng RAM của thiết bị nhằm tạo ra một môi trường ổn định hơn. Trong Android 17, các giới hạn này được thiết lập một cách cẩn trọng để nhắm mục tiêu vào các trường hợp rò rỉ bộ nhớ nghiêm trọng và các vấn đề dị thường (trước khi chúng gây ra giật lag UI, hao pin, hoặc buộc đóng ứng dụng).

Mẹo: Trong bản triển khai hiện tại, hàm getDescription trong ApplicationExitInfo sẽ chứa chuỗi "MemoryLimiter" nếu ứng dụng của bạn bị ảnh hưởng.

Để giúp bạn tìm kiếm lỗi rò rỉ bộ nhớ, Android Studio Panda nay đã tích hợp trực tiếp công cụ LeakCanary vào Android Studio Profiler, hỗ trợ bối cảnh hóa trong IDE và kết nối sâu với mã nguồn của bạn.

Kích hoạt Profiler cho các sự cố bất thường (Anomaly Triggers)

Android 17 giới thiệu dịch vụ phát hiện bất thường trên thiết bị, theo dõi các hành vi tiêu tốn nhiều tài nguyên. Tích hợp với ProfilingManager, ứng dụng của bạn nay có thể nhận được các dữ liệu profiling khi hệ thống phát hiện sự cố.

Sử dụng TRIGGER_TYPE_ANOMALY để phát hiện các vấn đề hiệu suất như: gọi binder quá mức hoặc ngốn bộ nhớ quá nhiều. API này kích hoạt callback trước khi hệ thống thực thi hình phạt (như việc ép đóng app), cho phép bạn thu thập dữ liệu debug (như heap dumps).

val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
val triggers = ArrayList<ProfilingTrigger>()
triggers.add(ProfilingTrigger.Builder(ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
val mainExecutor: Executor = Executors.newSingleThreadExecutor()
val resultCallback = Consumer<ProfilingResult> { profilingResult ->
    if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
        // Tải kết quả profile lên server để phân tích thêm
        setupProfileUploadWorker(profilingResult.resultFilePath)
    }
}
profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
profilingManager.addProfilingTriggers(triggers)

Mật mã hậu lượng tử (PQC) trong Android Keystore

Android Keystore đã bổ sung hỗ trợ cho ML-DSA (Thuật toán chữ ký số dựa trên module mạng tinh thể) theo chuẩn NIST. Trên các thiết bị được hỗ trợ, bạn có thể tạo khóa ML-DSA và sử dụng chúng để tạo các chữ ký "an toàn lượng tử" (quantum-safe) hoàn toàn bên trong phần cứng bảo mật của thiết bị.

KeyPairGenerator generator = KeyPairGenerator.getInstance("ML-DSA-65", "AndroidKeyStore");
generator.initialize(
    new KeyGenParameterSpec.Builder(
        "my-key-alias", 
        KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY
    ).build()
);
KeyPair keyPair = generator.generateKeyPair();

Bắt đầu với Android 17

Bạn có thể đăng ký thiết bị Pixel được hỗ trợ để nhận bản cập nhật Beta qua OTA. Nếu không có thiết bị thật, hãy dùng system image 64-bit với Android Emulator trong Android Studio.

Để có trải nghiệm phát triển tốt nhất, Google khuyên dùng phiên bản preview mới nhất của Android Studio (Panda). Hãy biên dịch với SDK mới, chạy thử trong môi trường CI và gửi báo cáo lỗi nếu có!


Nguồn tham khảo: Android Developers Blog


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.