Các thiết bị ChromeOS, chẳng hạn như Chromebook, hỗ trợ Cửa hàng Google Play và các ứng dụng Android. Bài viết này giả định rằng bạn có một ứng dụng Android hiện có được thiết kế cho điện thoại hoặc máy tính bảng mà bạn muốn tối ưu hoá cho Chromebook. Để tìm hiểu kiến thức cơ bản về cách tạo ứng dụng Android, hãy xem bài viết Tạo ứng dụng Android đầu tiên.
Cập nhật tệp kê khai của ứng dụng
Để bắt đầu, hãy cập nhật tệp kê khai để tính đến một số điểm khác biệt chính về phần cứng và phần mềm giữa Chromebook và các thiết bị khác chạy Android.
Kể từ ChromeOS phiên bản M53, tất cả ứng dụng Android không yêu cầu rõ ràng tính năng android.hardware.touchscreen
cũng hoạt động trên các thiết bị ChromeOS hỗ trợ tính năng android.hardware.faketouch
. Tuy nhiên, để đảm bảo ứng dụng của bạn hoạt động trên tất cả Chromebook, hãy cập nhật tệp kê khai để không yêu cầu tính năng android.hardware.touchscreen
, như minh hoạ trong ví dụ sau.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <!-- Some Chromebooks don't support touch. Although not essential, it's a good idea to explicitly include this declaration. --> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> </manifest>
Các thiết bị phần cứng khác nhau được trang bị các bộ cảm biến khác nhau và Chromebook có thể không có tất cả cảm biến có trong các thiết bị cầm tay Android, chẳng hạn như GPS và gia tốc kế. Tuy nhiên, trong một số trường hợp, chức năng của cảm biến được cung cấp theo cách khác. Ví dụ: Chromebook có thể không có cảm biến GPS, nhưng lại cung cấp dữ liệu vị trí dựa trên kết nối Wi-Fi. Hãy xem tổng quan về cảm biến để tìm hiểu thêm về các cảm biến mà nền tảng Android hỗ trợ.
Nếu bạn muốn ứng dụng chạy trên Chromebook bất kể có cảm biến hay không, hãy cập nhật tệp kê khai để không yêu cầu cảm biến.
Một số tính năng phần mềm không được hỗ trợ trên Chromebook. Ví dụ: các ứng dụng cung cấp IME tuỳ chỉnh, tiện ích ứng dụng, hình nền động và trình chạy ứng dụng không được hỗ trợ và không thể cài đặt trên Chromebook. Để xem danh sách đầy đủ các tính năng phần mềm không được hỗ trợ trên Chromebook, hãy xem phần các tính năng phần mềm không tương thích.
Cập nhật SDK mục tiêu
Cập nhật thuộc tính targetSdkVersion
của ứng dụng lên cấp độ API mới nhất hiện có để tận dụng tất cả các điểm cải tiến trong nền tảng Android. Xem lại các điểm cải tiến trong nền tảng Android qua nhiều phiên bản.
Kiểm tra các yêu cầu về kết nối mạng
Chromebook chạy toàn bộ hệ điều hành Android trong một vùng chứa, tương tự như Docker hoặc LXC. Điều này có nghĩa là Android không có quyền truy cập trực tiếp vào giao diện LAN của hệ thống. Thay vào đó, lưu lượng truy cập IPv4 sẽ đi qua một lớp nội bộ của dịch địa chỉ mạng (NAT) và lưu lượng truy cập unicast IPv6 sẽ được định tuyến thông qua một bước nhảy bổ sung.
Các kết nối unicast đi từ một ứng dụng Android đến Internet chủ yếu hoạt động như bình thường. Nhìn chung, các kết nối đến sẽ bị chặn. Các gói phát đa hướng hoặc truyền tin từ Android không được chuyển tiếp đến LAN thông qua tường lửa.
ChromeOS chạy một dịch vụ chuyển tiếp lưu lượng truy cập mDNS giữa Android và giao diện LAN, vì vậy, các API khám phá dịch vụ mạng tiêu chuẩn là cách đề xuất để khám phá các thiết bị khác trên phân đoạn LAN. Sau khi tìm thấy một thiết bị trên mạng LAN, ứng dụng Android có thể sử dụng ổ cắm truyền tin một địa chỉ TCP hoặc UDP tiêu chuẩn để giao tiếp với thiết bị đó.
Các kết nối IPv4 bắt nguồn từ Android sử dụng địa chỉ IPv4 của máy chủ ChromeOS. Trong nội bộ, ứng dụng Android sẽ thấy một địa chỉ IPv4 riêng tư được chỉ định cho giao diện mạng. Các kết nối IPv6 bắt nguồn từ Android sử dụng một địa chỉ khác với máy chủ ChromeOS, vì vùng chứa Android có một địa chỉ IPv6 công khai chuyên dụng.
Sử dụng hiệu quả bộ nhớ trên đám mây và bộ nhớ cục bộ
Chromebook giúp người dùng dễ dàng di chuyển từ thiết bị này sang thiết bị khác. Nếu người dùng ngừng sử dụng một Chromebook và bắt đầu sử dụng một Chromebook khác, họ chỉ cần đăng nhập và tất cả ứng dụng của họ sẽ xuất hiện.
Do tính năng này, hãy sao lưu dữ liệu của ứng dụng lên đám mây để bật tính năng đồng bộ hoá trên các thiết bị. Tuy nhiên, đừng phụ thuộc vào kết nối Internet để ứng dụng hoạt động bình thường. Thay vào đó, hãy lưu công việc của người dùng trên thiết bị khi thiết bị không có kết nối mạng và đồng bộ hoá với đám mây khi thiết bị có kết nối mạng trở lại.
Nhiều người cũng có thể dùng chung Chromebook, chẳng hạn như ở trường học. Vì bộ nhớ cục bộ không phải là vô hạn, nên toàn bộ tài khoản cùng với bộ nhớ của tài khoản có thể bị xoá khỏi thiết bị bất cứ lúc nào. Đối với các chế độ cài đặt giáo dục, bạn nên lưu ý đến trường hợp này.
Phát triển các trường hợp kiểm thử mới cho ứng dụng
Để phát triển các trường hợp kiểm thử cho ứng dụng, trước tiên, hãy đảm bảo rằng bạn chỉ định đúng cờ tệp kê khai. Cụ thể, hãy cân nhắc đặt screenOrientation
thành unspecified
. Nếu bạn muốn chỉ định hướng ngang, hãy cân nhắc sử dụng sensorLandscape
để đảm bảo trải nghiệm trên máy tính bảng là tối ưu.
Nếu bạn có nhu cầu về kích thước hoặc hướng đặc biệt cho môi trường máy tính, hãy cân nhắc việc thêm thẻ meta làm gợi ý về kích thước hoặc hướng. Để thêm kích thước và hướng trên điện thoại, hãy chỉ định các thuộc tính bố cục defaultHeight
, defaultWidth
hoặc minHeight
.
Nếu bạn quan tâm đến việc xử lý thiết bị đầu vào cụ thể cho các danh mục thiết bị cụ thể, hãy chỉ định android.hardware.type.pc
để tắt chế độ tương thích đầu vào.
Nếu bạn đang sử dụng bất kỳ loại mạng nào, hãy đảm bảo rằng ứng dụng có thể kết nối lại với mạng sau khi sự cố kết nối được giải quyết hoặc thiết bị thức dậy từ chế độ ngủ.
Bạn nên kiểm tra danh sách trường hợp kiểm thử cho ứng dụng Android trên ChromeOS mà bạn có thể sử dụng trong kế hoạch kiểm thử. Các trường hợp kiểm thử này bao gồm các tình huống phổ biến mà ứng dụng Android cần được chuẩn bị nếu dự kiến sẽ chạy trên thiết bị ChromeOS.
Thay đổi về chế độ nhiều cửa sổ và hướng
Môi trường nhiều cửa sổ của ChromeOS có thể làm cho các vấn đề về trạng thái ổn định và gọi lại trở nên rõ ràng hơn. Sử dụng ViewModel
để lưu và khôi phục trạng thái khi thích hợp.
Để kiểm thử trạng thái ổn định, hãy thu nhỏ ứng dụng của bạn trong một khoảng thời gian, bắt đầu một quy trình khác tốn nhiều tài nguyên và khôi phục ứng dụng để xác nhận rằng ứng dụng đó đã trở về trạng thái mà bạn đã để lại.
Kiểm thử việc đổi kích thước cửa sổ bằng cách nhấn phím toàn màn hình (F4), mở rộng tối đa và khôi phục. Để kiểm thử tính năng đổi kích thước tự do, trước tiên, hãy bật tính năng này trong tuỳ chọn cho nhà phát triển, sau đó kiểm tra để đảm bảo ứng dụng của bạn đổi kích thước một cách trơn tru mà không gặp sự cố.
Nếu thiết bị ChromeOS của bạn hỗ trợ chế độ này, hãy chuyển từ chế độ máy tính xách tay sang chế độ máy tính bảng để kiểm tra xem mọi thứ có hoạt động như mong đợi hay không. Xoay thiết bị một lần ở chế độ máy tính bảng để kiểm thử các thay đổi về hướng, sau đó chuyển về chế độ máy tính xách tay. Lặp lại bước này vài lần.
Đảm bảo rằng thanh trên cùng không làm hỏng ứng dụng của bạn bằng cách bù các thành phần giao diện người dùng hoặc phương thức nhập bằng thao tác chạm dựa trên vị trí. Đối với thiết bị ChromeOS, hãy đảm bảo rằng ứng dụng của bạn không đặt thông tin quan trọng trong khu vực thanh trạng thái.
Nếu bạn đang sử dụng máy ảnh hoặc một tính năng phần cứng khác, chẳng hạn như bút cảm ứng, hãy đảm bảo rằng tính năng đó hoạt động đúng cách khi thực hiện các thay đổi về cửa sổ và thiết bị đã nêu trước đó.