อุปกรณ์ ChromeOS เช่น Chromebook รองรับ Google Play Store และแอป Android เอกสารนี้ถือว่าคุณมีแอป Android ที่ออกแบบมาสำหรับโทรศัพท์ หรือแท็บเล็ตอยู่แล้ว และต้องการเพิ่มประสิทธิภาพสำหรับ Chromebook ดูพื้นฐานการ สร้างแอป Android ได้ที่สร้างแอป Android แอปแรก
อัปเดตไฟล์ Manifest ของแอป
หากต้องการเริ่มต้นใช้งาน ให้อัปเดตไฟล์ Manifest เพื่อพิจารณาความแตกต่างที่สำคัญบางอย่างของฮาร์ดแวร์และ ซอฟต์แวร์ระหว่าง Chromebook กับอุปกรณ์อื่นๆ ที่ใช้ Android
ตั้งแต่ ChromeOS เวอร์ชัน M53 เป็นต้นไป แอป Android ทั้งหมดที่ไม่จำเป็นต้องใช้ฟีเจอร์
android.hardware.touchscreen อย่างชัดเจนจะทำงานบนอุปกรณ์ ChromeOS ที่รองรับฟีเจอร์ android.hardware.faketouch ได้ด้วย อย่างไรก็ตาม เพื่อช่วยให้แอปทำงานได้ใน Chromebook ทุกรุ่น ให้อัปเดตไฟล์ Manifest เพื่อให้ไม่จำเป็นต้องใช้ฟีเจอร์ android.hardware.touchscreen ดังที่แสดงในตัวอย่างต่อไปนี้
<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>
อุปกรณ์ฮาร์ดแวร์แต่ละรุ่นมาพร้อมชุดเซ็นเซอร์ที่แตกต่างกัน และ Chromebook อาจไม่มีเซ็นเซอร์ทั้งหมดที่พบในอุปกรณ์ Android แบบถือ เช่น GPS และตัวตรวจวัดความเร่ง อย่างไรก็ตาม ในบางกรณี ฟังก์ชันการทำงานของ เซ็นเซอร์จะให้บริการในลักษณะอื่น ตัวอย่างเช่น Chromebook อาจไม่มีเซ็นเซอร์ GPS แต่จะให้ข้อมูลตำแหน่งตามการเชื่อมต่อ Wi-Fi ดูข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์ที่แพลตฟอร์ม Android รองรับได้ที่ ภาพรวมของเซ็นเซอร์
หากต้องการให้แอปทำงานบน Chromebook ได้โดยไม่คำนึงถึงความพร้อมใช้งานของเซ็นเซอร์ ให้อัปเดตไฟล์ Manifest เพื่อให้ไม่ต้องใช้เซ็นเซอร์
Chromebook ไม่รองรับฟีเจอร์ซอฟต์แวร์บางอย่าง ตัวอย่างเช่น ระบบไม่รองรับแอปที่ มี IME ที่กำหนดเอง วิดเจ็ตแอป วอลเปเปอร์เคลื่อนไหว และตัวเรียกใช้แอป และติดตั้งใน Chromebook ไม่ได้ ดูรายการฟีเจอร์ซอฟต์แวร์ทั้งหมดที่ Chromebook ไม่รองรับได้ที่ฟีเจอร์ซอฟต์แวร์ ที่ไม่รองรับ
อัปเดต SDK เป้าหมาย
อัปเดตแอตทริบิวต์ targetSdkVersion ของแอปเป็นระดับ API ล่าสุด
ที่พร้อมใช้งานเพื่อใช้ประโยชน์จากการปรับปรุงทั้งหมดในแพลตฟอร์ม Android
ดูการปรับปรุงในแพลตฟอร์ม Android ในเวอร์ชันต่างๆ
ตรวจสอบข้อกำหนดด้านเครือข่าย
Chromebook จะเรียกใช้ระบบปฏิบัติการ Android ทั้งหมดในคอนเทนเนอร์ ซึ่งคล้ายกับ Docker หรือ LXC ซึ่งหมายความว่า Android ไม่มีสิทธิ์เข้าถึงอินเทอร์เฟซ LAN ของระบบโดยตรง แต่การรับส่งข้อมูล IPv4 จะผ่านเลเยอร์ภายในของการแปลที่อยู่เครือข่าย (NAT) และการรับส่งข้อมูลแบบ Unicast ของ IPv6 จะกำหนดเส้นทางผ่านฮอปเพิ่มเติม
การเชื่อมต่อแบบ Unicast ขาออกจากแอป Android ไปยังอินเทอร์เน็ตส่วนใหญ่จะทำงาน ตามเดิม โดยทั่วไปแล้ว ระบบจะบล็อกการเชื่อมต่อขาเข้า ระบบจะไม่ส่งต่อแพ็กเก็ตมัลติแคสต์หรือแพ็กเก็ตบรอดแคสต์ จาก Android ไปยัง LAN ผ่านไฟร์วอลล์
ChromeOS มีบริการที่ส่งต่อการเข้าชม mDNS ระหว่าง Android กับอินเทอร์เฟซ LAN เพื่อเป็นข้อยกเว้นของข้อจำกัดแบบหลายผู้รับ ดังนั้น API การค้นพบบริการเครือข่ายมาตรฐานจึงเป็นวิธีที่แนะนำในการค้นหาอุปกรณ์อื่นๆ ในกลุ่ม LAN หลังจากค้นหาอุปกรณ์ใน LAN แล้ว แอป Android จะใช้ซ็อกเก็ต TCP หรือ UDP มาตรฐานแบบ Unicast เพื่อสื่อสารกับอุปกรณ์ได้
การเชื่อมต่อ IPv4 ที่มาจาก Android จะใช้ที่อยู่ IPv4 ของโฮสต์ ChromeOS ภายใน แอป Android จะเห็นที่อยู่ IPv4 ส่วนตัวที่กำหนดให้กับอินเทอร์เฟซเครือข่าย การเชื่อมต่อ IPv6 ที่มาจาก Android จะใช้ที่อยู่ที่แตกต่างจากโฮสต์ ChromeOS เนื่องจากคอนเทนเนอร์ Android มีที่อยู่ IPv6 สาธารณะเฉพาะ
ใช้พื้นที่เก็บข้อมูลในระบบคลาวด์และในเครื่องอย่างมีประสิทธิภาพ
Chromebook ช่วยให้ผู้ใช้ย้ายข้อมูลจากอุปกรณ์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้อย่างง่ายดาย หากผู้ใช้หยุด ใช้ Chromebook เครื่องหนึ่งและเริ่มใช้เครื่องอื่น ผู้ใช้จะต้องลงชื่อเข้าใช้เท่านั้น แล้ว แอปทั้งหมดจะปรากฏขึ้น
ฟีเจอร์นี้จึงทำให้คุณต้องสำรองข้อมูลของแอปไปยังระบบคลาวด์เพื่อเปิดใช้การซิงค์ ในอุปกรณ์ต่างๆ อย่างไรก็ตาม อย่าพึ่งพาการเชื่อมต่ออินเทอร์เน็ตเพื่อให้แอป ทํางานได้ตามปกติ แต่ให้บันทึกงานของผู้ใช้ไว้ในเครื่องเมื่ออุปกรณ์ออฟไลน์ และซิงค์กับระบบคลาวด์เมื่ออุปกรณ์กลับมาออนไลน์
นอกจากนี้ Chromebook ยังแชร์กับผู้ใช้จำนวนมากได้ด้วย เช่น ในโรงเรียน เนื่องจากพื้นที่เก็บข้อมูลในเครื่องมีจำกัด ระบบจึงอาจนำบัญชีทั้งหมดพร้อมกับพื้นที่เก็บข้อมูลออกจากอุปกรณ์ได้ทุกเมื่อ สำหรับ การตั้งค่าเพื่อการศึกษา คุณควรคำนึงถึงสถานการณ์นี้
พัฒนากรณีทดสอบใหม่สำหรับแอป
หากต้องการพัฒนาเคสทดสอบสำหรับแอปของคุณ โปรดตรวจสอบก่อนว่าคุณได้ระบุ
แฟล็ก Manifest ที่เหมาะสมแล้ว โดยเฉพาะอย่างยิ่ง ให้พิจารณาตั้งค่า
screenOrientation เป็น
unspecified หากต้องการระบุการวางแนวแนวนอน ให้พิจารณาใช้
sensorLandscape เพื่อให้มั่นใจว่าประสบการณ์การใช้งานบนแท็บเล็ตจะดีที่สุด
หากคุณมีข้อกำหนดพิเศษเกี่ยวกับขนาดหรือการวางแนวสำหรับสภาพแวดล้อมบนเดสก์ท็อป ให้พิจารณา
เพิ่มเมตาแท็กเป็นคำแนะนำเกี่ยวกับขนาดหรือการวางแนว หากต้องการระบุขนาดและวางแนวในโทรศัพท์ ให้ระบุแอตทริบิวต์เลย์เอาต์
defaultHeight
defaultWidth หรือ
minHeight แทน
หากคุณสนใจการจัดการอุปกรณ์อินพุตที่เฉพาะเจาะจงสำหรับอุปกรณ์บางหมวดหมู่ ให้ระบุ android.hardware.type.pc เพื่อปิดใช้โหมดความเข้ากันได้ของอินพุต
หากคุณใช้เครือข่ายประเภทใดก็ตาม โปรดตรวจสอบว่าแอปสามารถเชื่อมต่อเครือข่ายอีกครั้งได้หลังจากแก้ไขปัญหาการเชื่อมต่อแล้ว หรือเมื่ออุปกรณ์ออกจากโหมดสลีป
เราขอแนะนำให้ตรวจสอบรายการกรณีทดสอบสำหรับแอป Android ใน Chrome OS ซึ่งคุณสามารถใช้ในแผนการทดสอบได้ กรณีทดสอบครอบคลุมสถานการณ์ทั่วไปที่แอป Android ควรเตรียมพร้อมหากคาดว่าจะทำงานบนอุปกรณ์ ChromeOS
การเปลี่ยนแปลงหลายหน้าต่างและการวางแนว
สภาพแวดล้อมแบบหลายหน้าต่างของ ChromeOS อาจทำให้ปัญหาการคงอยู่และการเรียกคืนสถานะ
ชัดเจนยิ่งขึ้น ใช้ ViewModel เพื่อบันทึกและกู้คืนสถานะเมื่อ
เหมาะสม
หากต้องการทดสอบการคงสถานะ ให้ย่อแอปไว้สักครู่ เริ่มกระบวนการอื่นที่ใช้ทรัพยากรมาก แล้วคืนค่าแอปเพื่อยืนยันว่าแอปกลับไปอยู่ในสถานะที่คุณทิ้งไว้
ทดสอบการปรับขนาดหน้าต่างโดยกดปุ่มเต็มหน้าจอ (F4) ขยาย และ กู้คืน หากต้องการทดสอบการปรับขนาดฟรี ให้เปิดใช้ตัวเลือกนี้ในตัวเลือกสำหรับนักพัฒนาก่อน แล้ว ตรวจสอบว่าแอปปรับขนาดได้อย่างราบรื่นโดยไม่ขัดข้อง
หากอุปกรณ์ ChromeOS รองรับ ให้เปลี่ยนจากโหมดแล็ปท็อปเป็นโหมดแท็บเล็ตเพื่อตรวจสอบ ว่าทุกอย่างทำงานได้ตามที่คาดไว้หรือไม่ หมุนอุปกรณ์ 1 ครั้งในโหมดแท็บเล็ตเพื่อ ทดสอบการเปลี่ยนแปลงการวางแนว จากนั้นเปลี่ยนกลับไปใช้โหมดแล็ปท็อป ทำขั้นตอนนี้ซ้ำ 2-3 ครั้ง
ตรวจสอบว่าแถบด้านบนไม่ได้ทำให้แอปขัดข้องโดยการชดเชยองค์ประกอบ UI หรือ การป้อนข้อมูลด้วยการสัมผัสตามตำแหน่ง สำหรับอุปกรณ์ ChromeOS โปรดตรวจสอบว่าแอปของคุณ ไม่ได้วางข้อมูลสำคัญไว้ในพื้นที่แถบสถานะ
หากคุณใช้กล้องหรือฟีเจอร์ฮาร์ดแวร์อื่นๆ เช่น ปากกา โปรดตรวจสอบว่า ฟีเจอร์ดังกล่าวทำงานอย่างถูกต้องเมื่อทำการเปลี่ยนแปลงหน้าต่างและอุปกรณ์ตามที่ระบุไว้ ก่อนหน้านี้