Cuttlefish เป็นอุปกรณ์ Android เสมือนที่กำหนดค่าได้ซึ่งใช้งานทั้งจากระยะไกลได้ (ใช้ข้อเสนอระบบคลาวด์ของบุคคลที่สาม เช่น Google Cloud Engine) และในเครื่อง (ใน เครื่อง Linux x86 และ ARM64)
เป้าหมายของ Cuttlefish
- ช่วยให้นักพัฒนาแพลตฟอร์มและแอปไม่ต้องพึ่งพาฮาร์ดแวร์จริงในการพัฒนาและตรวจสอบการเปลี่ยนแปลงโค้ด
- จำลองลักษณะการทำงานตามเฟรมเวิร์กของอุปกรณ์จริงโดยเน้นที่ความถูกต้องสูงด้วยการคงแนวเดียวกับเฟรมเวิร์กหลัก
- รองรับ API ทุกระดับหลังจากวันที่ 28
- ให้ฟังก์ชันการทำงานในระดับที่สอดคล้องกันในทุกระดับ API โดยสอดคล้องกับลักษณะการทำงานบนฮาร์ดแวร์จริง
เปิดใช้การปรับขนาด:
- ช่วยให้สามารถเรียกใช้อุปกรณ์หลายเครื่องพร้อมกันได้
- เปิดใช้การทดสอบแบบพร้อมกันที่ให้ความเที่ยงตรงสูงโดยมีต้นทุนการเริ่มต้นใช้งานต่ำ
ให้อุปกรณ์ที่กำหนดค่าได้พร้อมความสามารถในการปรับรูปแบบของอุปกรณ์, RAM, CPU เป็นต้น
เปรียบเทียบหมึกกระดองกับอุปกรณ์อื่นๆ
Cuttlefish และโปรแกรมจำลอง Android
Cuttlefish มีความคล้ายคลึงกับโปรแกรมจำลอง Android หลายประการ แต่ Cuttlefish รับประกันความถูกต้องสมบูรณ์กับเฟรมเวิร์ก Android (ไม่ว่าจะเป็น AOSP ล้วนๆ หรือการติดตั้งใช้งานที่กําหนดเองในต้นไม้ของคุณเอง) การใช้งานจริง ซึ่งหมายความว่าคุณควรคาดหวังว่า Cuttlefish จะตอบสนองกับ การโต้ตอบต่างๆ ในระดับระบบปฏิบัติการเช่นเดียวกับเป้าหมายโทรศัพท์จริงที่สร้างด้วย แหล่งที่มาของระบบปฏิบัติการ Android เพียงอย่างเดียวหรือที่กำหนดเอง
โปรแกรมจำลอง Android สร้างขึ้นเพื่อรองรับ Use Case ในการพัฒนาแอปให้ง่ายขึ้น และมีฮุกฟังก์ชันการทำงานมากมายเพื่อดึงดูด Use Case ของนักพัฒนาแอป Android อาจมีความท้าทายเกิดขึ้นในกรณีที่คุณต้องการ เพื่อสร้างโปรแกรมจำลองด้วยเฟรมเวิร์ก Android ที่คุณกำหนดเอง หากคุณต้องการ อุปกรณ์เสมือนที่จะเป็นตัวแทนของแพลตฟอร์ม/เฟรมเวิร์กที่คุณกำหนดเอง กับ Android แล้ว Cuttlefish ก็ถือเป็นตัวเลือกที่ยอดเยี่ยมที่สุด ใช่เลย อุปกรณ์ Canonical สำหรับแสดงถึงสถานะปัจจุบันของการพัฒนา AOSP
Cuttlefish และอุปกรณ์จริง
ความแตกต่างหลักระหว่างอุปกรณ์เสมือน Cuttlefish กับอุปกรณ์จริงอยู่ที่ระดับเลเยอร์การแยกแยะฮาร์ดแวร์ (HAL) รวมถึงซอฟต์แวร์ใดๆ ที่โต้ตอบกับฮาร์ดแวร์ที่กำหนดเอง คุณควรคาดหวังว่า Cuttlefish และอุปกรณ์จริงจะทำงานได้อย่างเท่าเทียมกัน ยกเว้นการติดตั้งใช้งานเฉพาะฮาร์ดแวร์
หมึกกระดองจะช่วยได้อย่างไร
คุณสามารถโต้ตอบกับ Cuttlefish ได้เช่นเดียวกับอุปกรณ์ Android เครื่องอื่นๆ ที่คุณอาจใช้แก้ไขข้อบกพร่อง โดยจะลงทะเบียนตัวเองตามปกติ อุปกรณ์ผ่านทาง adb และคุณจะสามารถโต้ตอบกับอุปกรณ์ได้เหมือนกับอุปกรณ์จริงผ่านรีโมต บนเดสก์ท็อป Use Case นี้ครอบคลุมและอาจครอบคลุมการทดสอบแอป การทดสอบบิลด์ระบบที่กำหนดเอง และอื่นๆ
เนื่องจาก Cuttlefish มุ่งมั่นที่จะทําให้เฟรมเวิร์กมีความถูกต้องสมบูรณ์ จึงสามารถใช้เพื่อทดสอบฟังก์ชันการทํางานของเฟรมเวิร์กหรือแอปที่ไม่มีข้อกําหนดของฮาร์ดแวร์จริงซึ่งจําลองไม่ได้
Cuttlefish มักใช้ในการทดสอบอย่างไรในปัจจุบัน
ตัวอย่างการใช้งานทั่วไปของ Cuttlefish เพื่อการทดสอบมีดังนี้
- CTS
- การปฏิบัติตามข้อกำหนดของเฟรมเวิร์ก
- การทดสอบการผสานรวมอย่างต่อเนื่อง
- ชุดทดสอบที่กำหนดเอง
ฉันจะโฮสต์ Cuttlefish ในระบบคลาวด์ได้ไหม
ใช่ Cuttlefish รองรับ Google Cloud โดยกำเนิดและเราวางแผนที่จะรองรับแพลตฟอร์มระบบคลาวด์อื่นๆ ด้วย
เริ่มต้นใช้งาน
ดูคำแนะนำในการสร้างอินสแตนซ์ Cuttlefish โดยอิงตาม AOSP ได้ที่ ใช้หมึกกระดอง