การรองรับอุปกรณ์ ChromeOS สำหรับแอป

คุณสามารถใช้ Google Play Store เพื่อติดตั้งแอป Android ใน Chromebook เอกสารนี้อธิบายเกี่ยวกับ Chromebook, Chromebox และ Chromebase ที่คุณสามารถติดตั้งแอป Android

ภาพรวม

โทรศัพท์ Android ส่วนใหญ่มีชิปเซ็ต ARM อย่างไรก็ตาม อุปกรณ์ ChromeOS จำนวนมากใช้ชิป x86 ความแตกต่างนั้นไม่สำคัญสำหรับแอปพื้นฐานที่เขียนด้วย Kotlin หรือ Java อย่างไรก็ตาม สำหรับแอปที่เขียนด้วยโค้ดแบบเนทีฟ ซึ่งรวมถึงแอปที่สร้างด้วยเกม เครื่องยนต์ ชิปเซ็ตในอุปกรณ์ อาจเป็นข้อกังวลที่สำคัญ

ตามหลักการแล้ว แอปและเกมทั้งหมดที่ใช้โค้ดแบบเนทีฟมาพร้อมกับ Android รายใหญ่ทั้ง 4 รายการ ABI (อินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน): armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) และ x86_64 ซึ่งจะให้ประสิทธิภาพที่ดีที่สุด และแบตเตอรี่ที่ต่ำที่สุดสำหรับแต่ละอุปกรณ์ เช่น build.gradle ที่อิงตาม cmake อาจมีข้อมูลต่อไปนี้

ดึงดูด

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

Kotlin

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

ขนาด Android Package Kit (APK)

ABI แต่ละรายการใน APK โมโนลิธจะมีขนาดเพิ่มขึ้น ซึ่งอาจส่งผลต่อ การใช้งานดิสก์ของผู้ใช้ ขนาดการดาวน์โหลดแอป และผลกระทบที่มีต่อแอป ตามขีดจำกัดขนาดใน Play Store วิธีที่ดีที่สุดในการหลีกเลี่ยงปัญหานี้คือการใช้ Android App Bundle

App Bundle ช่วยให้คุณรวม ABI ทั้ง 4 รายการจากภายใน Android Studio ได้อย่างง่ายดายโดยไม่ต้องเพิ่ม ขนาดการดาวน์โหลดสำหรับผู้ใช้ของคุณ และยังทำให้การใช้ประโยชน์จาก Dynamic Delivery เป็นเรื่องง่าย อนุญาตให้ผู้ใช้ดาวน์โหลดเนื้อหาเกมขนาดใหญ่เมื่อได้รับคำขอเท่านั้น หากใช้งาน App Bundle ไม่ได้ คุณสามารถใช้ APK หลายรายการเวอร์ชันเก่าสำหรับ ที่มีพฤติกรรมคล้ายกัน

บิลด์ 32 บิตและ 64 บิต

แอป Android ทั้งหมดต้องมีเวอร์ชันบิลด์ 64 บิต บิลด์ 32 บิตนั้นไม่บังคับสำหรับทั้ง ARM และ x86 โปรดดู Android 64 บิต เอกสารประกอบ⁠ เพื่อดูข้อมูลเพิ่มเติม

แม้ว่าจะมีเฉพาะบิลด์ 64 บิต ก็จะลดจำนวนเป้าหมายของบิลด์ที่จำเป็นและ ของแพลตฟอร์มการทดสอบของ Google ก็ยังจำกัดประเภทอุปกรณ์ที่เล่นเกมของคุณได้ สำหรับ เช่น เนื่องจากข้อจำกัดด้านฮาร์ดแวร์อื่นๆ Chromebook รุ่นเก่าๆ ก็ใช้ Android แบบ 32 บิตได้เท่านั้น แม้ว่าจะมี CPU แบบ 64 บิตก็ตาม ในการทำให้แอปทำงานได้ในอุปกรณ์เหล่านี้ ให้รวม ทั้งการสนับสนุน 32 บิต และ 64 บิต

การแปลด้วย ARM

Chromebook x86 จะพยายามแปลโค้ด ARM ทุกครั้งที่เป็นไปได้ แต่ จะทำให้การทำงานช้าลงและใช้พลังงานแบตเตอรี่เพิ่มขึ้น สำหรับผู้ใช้ที่ดีที่สุด ให้สร้างบิลด์ x86 หากทำไม่ได้ ให้ระบุ ABI ทั้ง arm32 และ arm64 ด้วย ของคุณ เพราะ Chromebook รุ่น x86 บางรุ่นอาจไม่แปลรหัส arm64

แม้ว่าการแปลด้วย arm32 จะมีให้บริการบน Chromebook ที่ใช้ Android ได้ทุกเครื่อง ไม่ใช่ Chromebook ทุกเครื่อง แปลรหัส arm64 ได้ หมายความว่าหากเกมของคุณมีเป้าหมายบิลด์เป็น ARM64 ไม่พร้อมใช้งานในอุปกรณ์ ChromeOS จำนวนมาก หากจัดส่งไม่ได้ ไบนารี x86 ซึ่งรวมทั้ง ABI ของ arm32 และ arm64 ในบิลด์ของคุณ

ABI ที่รวม การรองรับ ChromeOS
ARM64 แย่
arm32 และ arm64 พอใช้ (พร้อมคำแปล)
arm32, arm64, x86_32 และ x86_64 ดีที่สุด