อุปกรณ์ Android เสมือนจริงของหมึกกระดอง

Cuttlefish เป็นอุปกรณ์ Android เสมือนที่กำหนดค่าได้ ซึ่งใช้งานได้ทั้งจากระยะไกล (โดยใช้ข้อเสนอระบบคลาวด์ของบุคคลที่สาม เช่น Google Cloud Engine) และในเครื่อง (บนเครื่อง Linux x86 และ ARM64)

เป้าหมายหมึกกระดอง

  • ช่วยให้แพลตฟอร์มและนักพัฒนาแอปไม่ต้องพึ่งพาฮาร์ดแวร์ที่จับต้องได้ในการพัฒนาและตรวจสอบการเปลี่ยนแปลงโค้ด
  • ทำซ้ำลักษณะการทำงานตามเฟรมเวิร์กของอุปกรณ์จริงโดยมุ่งเน้นที่ความแม่นยำสูงโดยการรักษาความสอดคล้องอย่างใกล้ชิดกับเฟรมเวิร์กหลัก
  • รองรับ API ทุกระดับหลังจากวันที่ 28
  • กำหนดระดับฟังก์ชันการทำงานที่สอดคล้องกันในทุกระดับของ API ซึ่งสอดคล้องกับลักษณะการทำงานในฮาร์ดแวร์จริง
  • เปิดใช้การปรับขนาด:

    • ให้ความสามารถในการเรียกใช้อุปกรณ์หลายเครื่องพร้อมกัน
    • เปิดใช้การดำเนินการทดสอบพร้อมกันด้วยความแม่นยำสูงในราคาการเข้าร่วมที่ต่ำลง
  • ให้อุปกรณ์ที่กำหนดค่าได้ซึ่งสามารถปรับเปลี่ยนรูปแบบของอุปกรณ์, RAM, CPU ฯลฯ

เปรียบเทียบหมึกกระดองกับอุปกรณ์อื่นๆ

โปรแกรมจำลอง Cuttlefish และ Android

Android Emulator มีความคล้ายคลึงกันหลายอย่าง แต่ Cuttlefish ขอรับประกันว่าเฟรมเวิร์ก Android จะมีความแม่นยำอย่างเต็มที่ (ไม่ว่าจะเป็น AOSP เพียงอย่างเดียวหรือการติดตั้งที่กำหนดเองในโครงสร้างของคุณเอง) หากใช้งานในชีวิตจริง ก็หมายความว่าคุณควรคาดหวังให้ Cuttlefish ตอบสนองต่อการโต้ตอบของคุณในระดับระบบปฏิบัติการเช่นเดียวกับโทรศัพท์เป้าหมายที่สร้างขึ้นด้วยแหล่งที่มาของระบบปฏิบัติการ Android ที่ปรับแต่งเองหรืออย่างแท้จริง

Android Emulator สร้างขึ้นจากกรณีการใช้งานที่ทำให้การพัฒนาแอปง่ายดาย และมีฮุกด้านการใช้งานมากมายเพื่อดึงดูดกรณีการใช้งานของนักพัฒนาแอป Android จึงอาจเป็นเรื่องท้าทายหากต้องการสร้างโปรแกรมจำลองด้วยเฟรมเวิร์ก Android ที่ปรับแต่งเอง หากคุณต้องการอุปกรณ์เสมือนจริงที่จะเป็นตัวแทนของโค้ดแพลตฟอร์ม/เฟรมเวิร์กที่กำหนดเอง หรือ Android เฉพาะต้น Cuttlefish ก็เป็นตัวเลือกที่ยอดเยี่ยมที่สุด และเป็นอุปกรณ์ Canonical สำหรับแสดงสถานะปัจจุบันของการพัฒนา AOSP

หมึกกระดองและอุปกรณ์จริง

ความแตกต่างหลักระหว่างอุปกรณ์เสมือนของ Cuttlefish กับอุปกรณ์จริงอยู่ที่ระดับเลเยอร์ Abstraction ของฮาร์ดแวร์ (HAL) รวมถึงซอฟต์แวร์ที่โต้ตอบกับฮาร์ดแวร์ที่กำหนดเอง คุณควรคาดหวังลักษณะการทำงานที่เทียบเท่ากับฟังก์ชันการใช้งานระหว่าง Cuttlefish กับอุปกรณ์จริง ยกเว้นการใช้งานเฉพาะฮาร์ดแวร์

หมึกกระดองจะช่วยได้อย่างไร

คุณโต้ตอบกับ Cuttlefish ได้เช่นเดียวกับที่ทํากับอุปกรณ์ Android อื่นๆ ที่อาจใช้ในการแก้ไขข้อบกพร่อง อุปกรณ์จะลงทะเบียนตัวเองเป็นอุปกรณ์ปกติผ่านทาง adb และคุณสามารถโต้ตอบกับอุปกรณ์ดังกล่าวได้เหมือนอุปกรณ์จริงผ่านทางเดสก์ท็อประยะไกล กรณีการใช้งานนั้นกว้างและครอบคลุมการทดสอบแอป การทดสอบการสร้างระบบที่กำหนดเอง และอีกมากมาย

เนื่องจาก Cuttlefish มุ่งมั่นที่จะสร้างความสอดคล้องอย่างเต็มรูปแบบ จึงสามารถใช้เพื่อทดสอบการทำงานของเฟรมเวิร์กหรือแอปที่ไม่มีทรัพยากร Dependency ของฮาร์ดแวร์จริงที่ไม่สามารถจำลองได้

ปัจจุบันนิยมใช้หมึกกระดองในการทดสอบอย่างไร

ตัวอย่างการใช้งานโดยทั่วไปของ Cuttlefish เพื่อการทดสอบมีดังนี้

  • CTS
  • การปฏิบัติตามเฟรมเวิร์ก
  • การทดสอบการผสานรวมอย่างต่อเนื่อง
  • ชุดทดสอบที่กำหนดเอง

ฉันจะโฮสต์ Cuttlefish ในระบบคลาวด์ได้ไหม

ได้ Cuttlefish จะรองรับ Google Cloud อยู่แล้ว และก็มีแผนที่จะรองรับแพลตฟอร์มระบบคลาวด์อื่นๆ ด้วย

เริ่มต้นใช้งาน

ดูคำแนะนำในการสร้างอินสแตนซ์ Cuttlefish ที่อิงตาม AOSP ได้ที่ใช้ Cuttlefish