23 กรกฎาคม 2556

[Android Dev Tips] Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์



        ในตอนนี้เรียกได้ว่านักพัฒนาส่วนใหญ่น่าจะรู้จักกับ Genymotion กันแล้ว เพราะถือว่าเป็น Emulator ตัวหนึ่งที่น่าสนใจและทำงานได้ดีมากๆ ดังนั้นจึงหยิบมาแนะนำให้นักพัฒนามือใหม่หรือยังไม่รู้จักกับเจ้า Emulator ตัวนี้กันซักหน่อย



        โดยปกติแล้ว Emulator ที่นักพัฒนาส่วนใหญ่เคยลองใช้ตัวแรกสุดจะเป็น AVD (Android Virtual Device) เนอะ ซึ่งคงคุ้นเคยกับความรู้สึกขัดใจของ AVD กันมามากพอสมควร ถึงแม้ว่าตอนนี้ทาง Google จะปล่อยเวอร์ชันใหม่ออกมาในชื่อ Android Emulator 2.0 ที่สามารถทำงานได้ดีขึ้นและไวขึ้นมากกว่าเดิม แต่ถ้าเครื่องที่ใช้นั้นมีสเปคต่ำเกินไป ก็อาจจะรู้สึกว่า Genymotion ยังไวกว่าอยู่

        วีดีโอตัวอย่างนี้รัน Genymotion บน Intel Core i5 460M และ RAM 4GB ซึ่งเห็นได้ว่าลื่นไหลมากๆ (สเปคต่ำกว่านี้ก็ยังได้)


        ในการใช้งานจะต้องเข้าไปสมัครในหน้าเว็ปของ Genymotion ก่อน แล้วจึงจะสามารถดาวน์โหลดได้ ซึ่งอาจจะตกใจเพราะหาดาวน์โหลดแบบฟรีไม่เจอ แต่ทาง Genymotion จะมีแยกดาวน์โหลดสำหรับ Personal Use Only ครับ



        และในการติดตั้งจะต้องติดตั้ง VirtualBox และ Genymotion ซึ่งมีขั้นตอนไม่ยุ่งยากหรอก เหมือนการติดตั้งโปรแกรมธรรมดาๆทั่วไปนี่แหละ


ความสามารถ

        เบื้องหลังของ Genymotion นั้นคือการเอา VirtualBox มารัน Android Image นั่นเอง โดยมี Genymotion มาครอบการทำงานอีกที จึงทำให้ทำงานได้ลื่นไหล สามารถติดตั้งแอพด้วยการลากไฟล์ APK มาใส่ในหน้าจอได้เลย หรือถ้าเป็นพวก Flash Zip File ก็ได้เช่นกัน (อย่างเช่นตอนติดตั้ง Google Apps)


        มีปุ่มควบคุมพื้นฐานให้ครบไม่ว่าจะเพิ่ม/ลดเสียง, หมุนหน้าจอ, Back, Home, Recent App, Menu, Power รวมไปถึงการตั้งค่าเพื่อจำลองการทำงานของตัวเครื่อง


        สามารถจำลองสถานะของแบตเตอรีในเครื่องได้ว่าจะให้มีแบตเตอรีกี่ % และเสียบชาร์จอยู่หรือไม่ เอาไว้จำลองการทำงานในบางแอพเมื่อแบตเตอรีเปลี่ยนแปลงไป



        ในกรณีที่แอพมีการใช้งาน GPS ก็สามารถจำลองตำแหน่งของ GPS ได้ รวมไปถึง Atitude, ทิศทาง และความแม่นยำของ GPS ที่เจ้าของบล็อกชอบก็คือสามารถเปิดแผนที่เพื่อจิ้มเลือกได้เลย



        อยากจะทดสอบกล้องก็ได้นะ สามารถใช้กล้องจากเครื่องได้เลย เลือกได้ด้วยว่าจะให้เป็นกล้องหน้าหรือกล้องหลัง


        รองรับการทำงานเพื่อทดสอบแบบจริงๆจังๆอีกด้วย ไม่ว่าจะเป็น Genymotion Java API ที่สามารถควบคุมการทำงานของ Emulator ผ่านโค๊ดได้ เพื่อจำลองสถานะของเครื่อง ณ ตอนนั้นๆ, มี GMTool ำสำหรับพิมพ์ Command ควบคุมการทำงานของ Emulator, ทำ Continuous Integration (CI) บนนี้ได้เลย และรองรับการใช้งานร่วมกับ Android Studio ได้ด้วย Plugin

        นอกจากนี้ยังสามารถบันทึกหน้าจอ, สัญญาณอินเตอร์เน็ต, การโทรเข้า, รับ SMS, จำลองการทำงานของเซ็นเซอร์โดยต่อกับอุปกรณ์แอนดรอยด์จริงๆได้ แต่พวกนี้เป็น Premium Feature สำหรับแบบเสียเงินรายเดือนเท่านั้น

อุปกรณ์แอนดรอยด์ที่มีให้ใช้งาน

        ถึงแม้ว่าจะอัพเดทไวไม่เท่า AVD แต่ก็บอกเลยว่าทีม Genymotion ออกอัพเดท Emulator เวอร์ชันใหม่ได้ไวมากๆ


        และไม่ได้มีแค่ตระกูล Nexus เท่านั้น แต่ยังมี Device ค่ายอื่นๆอีกด้วย แต่ว่าตัว ROM ก็ยังเป็น AOSP นะ แต่ว่าการตั้งค่าต่างๆพวกหน้าจอจะอิงตามแต่ละรุ่นนั่นเอง


        หรือจะเลือกตามเวอร์ชันแอนดรอยด์ก็ได้เช่นกันนะ มีตั้งแต่ 2.3.7 แน่ะ

        เวลาสร้าง Device ใหม่ๆเพิ่มเข้ามาก็จะเป็นการโหลด Image จากทาง Genymotion มาลงไว้ ดังนั้นถ้าสร้าง Device ตัวเดิมๆก็ไม่ต้องโหลดใหม่ แต่ถ้าสร้าง Device หลากหลายก็จะต้องโหลดและเปลืองพื้นที่มากพอสมควร

        และการตั้งค่าอุปกรณ์ก็จะมีเพียงเล็กน้อยเท่านั้น



สรุป

        ถือว่าเป็น Emulator ตัวหนึ่งที่น่าสนใจไม่น้อยเมื่อเทียบกับบรรดา Emulator ทั้งหลาย เพราะรองรับทุก Platform ทำงานได้ไหลลื่น และทำขึ้นมาเพื่อใช้สำหรับการพัฒนาแอพแอนดรอยด์โดยเฉพาะ จึงทำให้มีเครื่องมือต่างๆที่อำนวยความสะดวกแก่นักพัฒนา

        แต่สิ่งที่ควรตะหนักไว้ก็คือควรใช้งานแบบ Personal Use เท่านั้นถ้าโหลดมาใช้งานฟรีๆ แต่ถ้าใช้ทำงานเขียนแอพจริงๆจังๆก็จะต้องซื้อเป็น Premium แทนนะครับ

บทความที่เกี่ยวข้อง

        • Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์
        • ติดตั้ง Google Apps ให้กับ Genymotion
        • ติดตั้ง Plugin ของ Genymotion ให้กับ Android Studio
        • ปัญหา Google Text-to-speech Engine บน Genymotion หยุดทำงาน
        • การนำไฟล์ไปใส่ใน Genymotion [Copy file to Genymotion]
        • ปัญหา INSTALL_FAILED_CPU_ABI_INCOMPATIBLE บน Genymotion
        • การติดตั้ง Genymotion บน Mac OS X
        • ช่วยด้วย! Emulator พิมพ์ภาษาไทยไม่ได้!!



เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium