Hỗ trợ ứng dụng trên thiết bị ChromeOS

Bạn có thể dùng Cửa hàng Google Play để cài đặt các ứng dụng Android trên một số Chromebook của Google. Tài liệu này mô tả những Chromebook, Chromebox và Chromebase mà bạn có thể cài đặt ứng dụng Android.

Tổng quan

Hầu hết điện thoại Android đều có chipset ARM. Tuy nhiên, nhiều thiết bị ChromeOS sử dụng chip x86. Sự khác biệt này không quan trọng đối với các ứng dụng cơ bản được viết bằng Kotlin hoặc Java. Tuy nhiên, đối với các ứng dụng được viết bằng mã C/C++, kể cả những ứng dụng được tạo bằng công cụ trò chơi, thì chipset trong thiết bị có thể là một mối lo ngại quan trọng.

Lý tưởng nhất là tất cả ứng dụng và trò chơi có mã C/C++ đều đi kèm với cả 4 ABI (Giao diện nhị phân ứng dụng) chính của Android: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) và x86_64. Điều này giúp mang lại hiệu suất tốt nhất và mức tiêu thụ pin thấp nhất cho mỗi thiết bị. Ví dụ: tệp build.gradle dựa trên cmake có thể chứa:

Groovy

externalNativeBuild {
    cmake {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

Kích thước của Gói ứng dụng Android (APK)

Mỗi ABI trong một APK nguyên khối sẽ làm tăng kích thước của APK đó. Điều này có thể ảnh hưởng đến mức sử dụng ổ đĩa của người dùng, kích thước tải ứng dụng xuống và việc ứng dụng có chịu ảnh hưởng của giới hạn kích thước trên Cửa hàng Play hay không. Cách tốt nhất để tránh điều này là sử dụng Android App Bundle.

App Bundle cho phép bạn gói cả 4 ABI trong Android Studio mà không làm tăng kích thước tải xuống cho người dùng. Các tính năng này cũng giúp bạn tận dụng Dynamic Delivery, cho phép người dùng chỉ tải nội dung trò chơi có kích thước lớn xuống khi được yêu cầu. Nếu không thể sử dụng Gói ứng dụng, bạn có thể dùng nhiều APK cũ để có hành vi tương tự.

Bản dựng 32 bit và 64 bit

Tất cả ứng dụng Android đều phải cung cấp phiên bản bản dựng 64 bit. Bản dựng 32 bit là không bắt buộc đối với cả thiết bị ARM và x86. Hãy xem bài viết Android 64 bit⁠ để biết thêm thông tin.

Mặc dù chỉ cung cấp bản dựng 64 bit giúp giảm số lượng mục tiêu bản dựng cần thiết và bề mặt kiểm thử, nhưng việc này cũng hạn chế các loại thiết bị có thể chạy trò chơi của bạn. Ví dụ: do các hạn chế khác về phần cứng, nhiều Chromebook cũ chỉ có thể chạy các ứng dụng Android 32 bit, mặc dù có CPU 64 bit. Để đảm bảo ứng dụng của bạn có thể chạy trên các thiết bị này, hãy thêm cả tính năng hỗ trợ 32 bit và 64 bit.

Bản dịch tiếng ARM

Chromebook x86 cố gắng dịch mã ARM bất cứ khi nào có thể, nhưng quá trình dịch sẽ làm giảm hiệu suất và tăng mức sử dụng pin. Để mang lại trải nghiệm tốt nhất cho người dùng, hãy cung cấp bản dựng x86. Nếu không, hãy thêm cả ABI arm32 và arm64 vào bản dựng của bạn, vì một số Chromebook x86 có thể không dịch được mã arm64. Ví dụ: do các hạn chế khác về phần cứng, nhiều Chromebook cũ chỉ có thể chạy các ứng dụng Android 32 bit, mặc dù có CPU 64 bit. Để giúp ứng dụng chạy trên các thiết bị này, hãy thêm cả tính năng hỗ trợ 32 bit và 64 bit.

Mặc dù mọi Chromebook có thể chạy ứng dụng Android đều có thể dịch arm32, nhưng không phải Chromebook nào cũng có thể dịch mã arm64. Điều này có nghĩa là nếu trò chơi của bạn chỉ có các mục tiêu bản dựng arm64, thì trò chơi đó sẽ không có trên nhiều thiết bị ChromeOS. Nếu không thể phân phối các tệp nhị phân x86, hãy thêm cả ABI arm32 và arm64 vào bản dựng.

ABI đi kèm Hỗ trợ ChromeOS
arm64 Kém
arm32 và arm64 OK (có bản dịch)
arm32, arm64, x86_32 và x86_64 Tốt nhất