Chúng tôi tại ChromeOS cam kết cải thiện các công cụ và khung nhà phát triển để giúp nhà phát triển ứng dụng Android tối ưu hoá ứng dụng của họ cho Chromebook một cách liền mạch. Do đó, chúng tôi cần liên tục tìm cách cung cấp các bộ công cụ hiệu quả cho nhà phát triển để nâng cao trải nghiệm xây dựng cho màn hình lớn và ChromeOS.
ChromeOS đã phát triển qua nhiều năm khi xuất hiện những thách thức mới. Một trong những thách thức này là xác định sớm và thường xuyên các vấn đề nghiêm trọng cho kỹ sư. Quy tắc lint là cốt lõi của chất lượng, vì chúng cung cấp tín hiệu cảnh báo cho nhà phát triển về những vấn đề sẽ phát sinh nếu không được khắc phục. Các quy tắc kiểm tra cập nhật của chúng tôi giúp nhà phát triển có thêm thông tin về cách ứng dụng của họ chạy trên ChromeOS, cho thấy các vấn đề (cả phần mềm và phần cứng) chắc chắn sẽ gây ra vấn đề cho các ứng dụng Android chạy trên mọi thiết bị ChromeOS.
Để biết thêm thông tin về sự tồn tại của các quy tắc lint này và tầm quan trọng của chúng, hãy đọc bài đăng trên blog của chúng tôi.
Những quy tắc lint này ở đâu?
Chúng tôi đã tích cực phát triển tính năng này trong vài tháng qua. Theo lịch phát hành của Android Studio, một số quy tắc lint sẽ được giới thiệu trong các bản dựng Electric Eel Canary. Một số quy tắc lint này hiện cũng có trong các bản phát hành Canary của Flamingo. Chúng tôi sẽ tiếp tục nỗ lực để đưa các tính năng này vào phiên bản ổn định của Android Studio trong những tháng tới.
Một điểm quan trọng khác cần lưu ý là các quy tắc này sẽ được bật theo mặc định trong các phiên bản Android Studio mới hơn. Mục tiêu của việc này là đưa ra hướng dẫn có tính định hướng rõ ràng hơn về cách chúng tôi muốn giúp các kỹ sư xây dựng cho ChromeOS và màn hình lớn trong tương lai.
Các quy tắc lint mới (được cập nhật kể từ Flamingo Canary 3)
Hỗ trợ ABI x86/x86_64
Phần lớn Chromebook chạy trên kiến trúc Intel, do đó, chúng là một nền tảng kiến trúc chủ yếu là x86. Để ChromeOS được hỗ trợ đúng cách khi mã NDK được đưa vào dưới dạng một phần của tệp nhị phân, việc có x86 sẽ giúp tăng hiệu suất do loại bỏ quá trình dịch cần thiết từ các thư viện ARM. Do đó, bạn nên yêu cầu nhóm phát triển thêm chế độ hỗ trợ kiến trúc x86 hoặc tốt nhất là x86_64 vì đây sẽ là một lợi thế về hiệu suất cho mọi mã gốc trên ChromeOS hoặc mọi thiết bị Intel.
Biện pháp khắc phục
Nếu có thể, hãy thêm x86 và x86_64 vào bên trong abiSplits trong build.gradle. Ngoài ra, hãy đảm bảo rằng bạn đang thêm mã vào các thư mục thích hợp để hỗ trợ các ABI này. Để biết thêm thông tin, hãy tham khảo tài liệu về ABI Android và bài nói về Khả năng hỗ trợ ABI từ ADS.
Lưu ý: Đảm bảo rằng mọi thư viện bên thứ ba được đưa vào sử dụng cũng có tệp nhị phân x86 và x86_64.
Giới hạn về phần cứng của ChromeOS
Đa số thiết bị ChromeOS có ít cảm biến phần cứng và tính năng hơn so với điện thoại Android. Mục tiêu của quy tắc này là thông báo cho nhà phát triển rằng nếu bạn đang sử dụng cờ <uses-feature> với android:required=true, thì ứng dụng của bạn sẽ không có trên Cửa hàng Google Play trên ChromeOS. Bạn nên đảm bảo rằng tính năng phần cứng không bắt buộc theo mặc định để có thể truy cập vào ứng dụng trên nhiều thiết bị nhất có thể. Thay vào đó, bạn có thể thêm mã phòng thủ để kiểm tra phần cứng cụ thể tại thời gian chạy. Ví dụ:
<uses-feature android:name="android.hardware.camera" android:required="true">
Biện pháp khắc phục
Đảm bảo rằng các tính năng trong ứng dụng của bạn thực sự cần thiết. Nếu không, hãy thay đổi tham số android:required thành false và thêm lập trình phòng thủ khi cần gọi API. Để biết thêm thông tin, hãy tham khảo tài liệu về các tính năng được khai báo rõ ràng.
Các hoạt động không thể thay đổi kích thước
Theo mặc định, Môi trường thời gian chạy Android cho ChromeOS (chạy Android R trở lên trên Chromebook) sẽ khởi động một ứng dụng Android ở phiên bản ứng dụng dành cho điện thoại hoặc máy tính bảng, dựa trên trạng thái mặc định của giao diện người dùng. Tuy nhiên, có một lựa chọn thứ ba mang lại trải nghiệm tốt hơn cho người dùng ChromeOS, đó là chế độ Có thể thay đổi kích thước. Bằng cách bật cờ này trong Hoạt động, những người dùng có thể sử dụng ứng dụng của bạn trong mọi môi trường nhiều cửa sổ đều có thể tận dụng lợi thế của việc đổi kích thước ứng dụng cho phù hợp. Những thay đổi này sẽ cho phép người dùng điều chỉnh giao diện người dùng cho phù hợp với nhu cầu của họ. Sau khi thêm những thay đổi này vào Tệp kê khai, hãy kiểm thử ứng dụng của bạn với Trình mô phỏng trên máy tính được tham chiếu bên dưới.
Biện pháp khắc phục
Thêm thuộc tính resizableActivity="true" vào Hoạt động trong tệp AndroidManifest.xml. Để biết thêm thông tin, hãy tham khảo tài liệu về các hạn chế đối với màn hình lớn.
Các thay đổi về cấu hình
Một điểm hạn chế lớn đối với màn hình có thể thay đổi kích thước là mỗi khi người dùng thay đổi kích thước của ứng dụng, onConfigurationChanged() sẽ được gọi. Nếu ứng dụng của bạn đang phát hành một bản vẽ lại đầy đủ trong phương thức đó, thì sẽ có những tác động đến hiệu suất liên quan đến phương thức đó. Hiện tại, chúng tôi đang kiểm tra để đảm bảo rằng finish() không được gọi trong onConfigurationChanged, vì bạn nên xử lý savedInstanceState với độ chi tiết cao hơn thay vì thực thi việc vẽ lại toàn bộ. Chúng tôi sẽ tiếp tục tìm những trường hợp hiệu suất giảm sút và cập nhật quy tắc này cho phù hợp.
Biện pháp khắc phục
Đảm bảo rằng finish() không được gọi trong API onConfigurationChanged() trong các Hoạt động và Mảnh của bạn. Để biết thêm thông tin, hãy tham khảo tài liệu về xử lý các thay đổi về cấu hình.
Hỗ trợ bàn phím và chuột
Khi ngày càng có nhiều người sử dụng Jetpack Compose, chúng tôi muốn đảm bảo rằng việc tạo bằng các thư viện đó cũng bao gồm chức năng hỗ trợ chuột và bàn phím trong tương lai. Theo thời gian, chúng tôi sẽ tiếp tục tăng khả năng sử dụng chuột, bàn phím, bàn di chuột và các tương tác với thiết bị ngoại vi khác. Để có được trải nghiệm cơ bản, bạn phải cập nhật các phần phụ thuộc Gradle lên phiên bản tối thiểu bắt buộc.
Biện pháp khắc phục
Cập nhật androidx.compose.foundation:foundation lên phiên bản tối thiểu là 1.2. Để biết thêm thông tin, hãy tham khảo ghi chú phát hành phiên bản Compose.
Lưu ý: 90% người dùng tương tác với các ứng dụng trên Chromebook bằng bàn phím và chuột. (Nguồn: Dữ liệu nội bộ của Google năm 2022*)
Phản hồi
Nhóm này không ngừng tìm cách cải thiện những công cụ và tài liệu này liên quan đến việc tối ưu hoá cho màn hình lớn. Một bước quan trọng trong quy trình này là gửi ý kiến phản hồi cho chúng tôi về độ chính xác và tính hữu ích của các quy tắc tìm lỗi mã nguồn được triển khai trong Android Studio. Bạn có thể thực hiện việc này bằng cách cung cấp ý kiến phản hồi về quy tắc. Khi quy tắc tìm lỗi mã nguồn xuất hiện trong Android Studio, hãy nhấp vào "Gửi ý kiến phản hồi về cảnh báo này". Bạn sẽ được chuyển đến một hộp thoại tương tự như hộp thoại bên dưới. Thông tin bạn cung cấp càng chính xác và mô tả càng chi tiết thì chúng tôi càng có thể nhanh chóng lặp lại quy trình để thực hiện các thay đổi phù hợp.
