วันศุกร์ที่ 15 พฤศจิกายน พ.ศ. 2556

Genymotion Emulator HOT!!


[Android Dev Tips] Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนา [การติดตั้งใช้งาน]


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


Genymotion เป็น  Emulator ที่สร้างขึ้นมาเพื่อนักพัฒนา
ซึ่งจะต่างจาก Emulator อย่าง BlueStack ที่สร้างขึ้นมา
เพื่อเล่นแอปฯ โดยเฉพาะแอปฯเกมบนเครื่องคอมพิวเตอร์
แต่การนำมาใช้ในการพัฒนาแอปพลิเคชัน ก็ไม่สะดวกซักเท่าไร
และสำหรับ AVD ที่มาพร้อมกับ ADT Bundle ก็ไม่ต้องพูดถึงเลย น่าจะรู้กันดี
ทั้งช้าและอืด ถึงแม้ว่าหลังๆจะพัฒนาให้เร็วขึ้นหน่อยนึงแล้วก็ตาม
แต่ก็ยังมีปัญหาไม่รองรับการทำการหลายๆอย่าง เช่น Google Maps v2
ที่เจ้าของบล็อกเคยทำบทความไว้แล้วแจ้งไว้ว่ารันบน AVD ไม่ได้
เพราะ GMapsV2 จะเรียกใช้ไลบรารีที่อยู่ใน Google Play Service
แต่ AVD นั้น ไม่ได้ติดตั้งบริการที่เป็นของ Google อยู่หลายตัว
ทำให้การจะใช้ GMapsV2 ผู้ที่หลงเข้ามาอ่านจะต้องติดตั้ง
พวกบริการดังกล่าวเองเพื่อให้ใช้งานได้ ซึ่งก็ยุ่งยากพอตัว

แต่สำหรับ Genymotion จะเหมือนกับว่าคุณเล่นมือถือเครื่องหนึ่งเลย
เปิดเครื่องครั้งแรกมาคุณก็ต้องล็อกอิน Google Account เพื่อใช้งาน
Sync กับ Gmail ได้ และสามารถเข้า Play Store เพื่อโหลดแอปฯได้
และที่ชอบสุดก็คือรองรับ Google Maps Android API v2 ได้ด้วย


สามารถเข้าไปโหลดมาใช้งานได้ที่เว็ปของผู้พัฒนาเลย

แต่ต้องสมัครสมาชิกบนเว็ปก่อน ก็ไม่น่าจะมีปัญหาอะไร
เว้นแต่ว่าตอนรอจดหมายเพื่อยืนยันรหัสผู้ใช้งานรอนานมาก
รอเป็นชั่วโมงกว่าจะส่งมา ทั้งๆที่กดให้ส่งซ้ำตั้งนานแล้ว
สำหรับ Genymotion จะทำงานร่วมกับ Oracle VM Virtual Box
ดังนั้นจึงต้องติดตั้งโปรแกรมด้วยกันสองตัว เพื่อใช้งาน

• เมื่อติดตั้งเสร็จและเปิดโปรแกรมขึ้นมา โปรแกรมก็จะแจ้ง
ว่ายังไม่มี Virtual Device หรือก็คือตัว Emulator นั่นเอง
ให้ทำการกดปุ่ม Yes เพื่อทำการสร้าง Virtual Device 


• สำหรับการสร้าง Virtual Device จะไม่มีการกำหนดสเปคเหมือน AVD
แต่ Genymotion จะมีเซิฟเวอร์ที่เก็บ Virtual Device ของตัวหลักๆไว้อยู่แล้ว
การจะนำมาใช้งานจึงต้องล็อกอินก่อน รหัสเดียวกับที่ใช้สมัครเพื่อโหลด


• เมื่อล็อกอินเสร็จแล้วก็จะมีรายชื่ออุปกรณ์ให้เลือกติดตั้ง มีดังนี้

                                 Galaxy Nexus - 4.1.1 - 720x1280
                                 Galaxy Nexus - 4.1.1 with Gapps - 720x1280
                                 Galaxy Nexus - 4.2.2 - 720x1280
                                 Galaxy Nexus - 4.2.2 with Gapps - 720x1280
                                 Galaxy S4/HTC One/Xperia Z - 4.2.2 - 1080x1920
                                 Galaxy S4/HTC One/Xperia Z - 4.2.2 with Gapps - 1080x1920
                                 Nexus 7 - 4.1.1 - 1280x800
                                 Nexus 7 - 4.1.1 with Gapps - 1280x800
                                 Nexus 7 - 4.2.2 - 1280x800
                                 Nexus 7 - 4.2.2 with Gapps - 1280x800
                                 Nexus One - 4.1.1 - 480x800
                                 Nexus One - 4.1.1 with Gapps - 480x800
                                 Nexus One - 4.2.2 - 480x800
                                 Nexus One - 4.2.2 with Gapps - 480x800
                                 Nexus S - 4.1.1 - 480x800
                                 Nexus S - 4.1.1 with Gapps - 480x800
                                 Nexus S - 4.2.2 - 480x800
                                 Nexus S - 4.2.2 with Gapps - 480x800
                                 WSVGA 7.0" Tablet - 4.1.1 - 1024x600
                                 WSVGA 7.0" Tablet - 4.1.1 with Gapps - 1024x600
                                 WSVGA 7.0" Tablet - 4.2.2 - 1024x600
                                 WSVGA 7.0" Tablet - 4.2.2 with Gapps - 1024x600
                                 WXGA 10.1" Tablet - 4.1.1 - 1280x800
                                 WXGA 10.1" Tablet - 4.1.1 with Gapps - 1280x800
                                 WXGA 10.1" Tablet - 4.2.2 - 1280x800
                                 WXGA 10.1" Tablet - 4.2.2 with Gapps - 1280x800

* Gapps ก็คือ Google Apps นั่นเอง เป็นเหล่าแอปพลิเคชันของ Google
**เจ้าของบล็อกแนะนำให้เลือกดาวน์โหลดแบบที่มี Google Apps ด้วย
เพื่อที่เวลาเขียนแอปฯที่เรียกใช้ไลบรารีของ Gapps จะได้ทดสอบได้
อย่างแอปฯแผนที่ GMapsV2 ก็จะทำงานไม่ได้ถ้าไม่ติดตั้ง Gapps


• เมื่อเลือกอุปกรณ์ที่ต้องการก็จะมีหน้าต่างแสดงคุณสมบัติของเครื่อง
ซึ่งในจุดนี้จะแก้ไขอะไรไม่ได้ ให้กด Next เพื่อทำการดาวน์โหลดเลย


• Virtual Device ตัวนึงจะมีขนาด 200MB กว่าๆ ก็ต้องดาวน์โหลดทุกครั้ง
ซึ่งต่างจาก AVD ที่จะทำการสร้าง Virtual Device จากในคอมพิวเตอร์เลย
(จริงๆก็คือ AVD ได้โหลดข้อมูลมาเตรียมไว้ล่วงหน้าเรียบร้อยแล้ว)


• เมื่อดาวน์โหลดเสร็จแล้วก็กด Next ได้เลย


• จากนั้นก็จะให้ทำการตั้งชื่อ Virtual Device ตัวนั้นๆ


• เมื่อเสร็จเรียบร้อยแล้วก็กดปุ่ม Finish ได้เลย


• จะเห็นรายชื่อ Virtual Device ที่ได้สร้างไว้ แสดงอยู่ที่หน้าหลัก


• สำหรับการปรับแต่ง Virtual Device จะทำได้แค่ปรับขนาดหน้าจอเท่านั้น


• ให้ไปตั้งค่าโฟลเดอร์ Android SDK ก่อน โดยไปที่ Menu > Settings 


• จะเห็นว่าโปรแกรมยังหาที่อยู่ของ Android SDK ไม่เจอ ให้กดปุ่ม Browse


• เลือกโฟลเดอร์ sdk ที่อยู่ใน ADT Bundle ของเรา


• เมื่อเลือกเสร็จแล้วก็ให้กด OK เพื่อปิดหน้าต่างนี้ได้เลย


• เมื่อเสร็จเรียบร้อยแล้วก็ดับเบิลคลิกเลือกเปิดตัวที่ต้องการได้เลย


*สำหรับผู้ที่หลงเข้ามาอ่านที่มีปัญหาใช้งาน แล้วทำตามข้างล่างไม่ได้
อาจจะเพราะว่าผู้ที่หลงเข้ามาอ่านใช้ Virtual Device แบบที่ไม่มี Google Apps
ให้ไปดาวน์โหลดแบบที่มี Google Apps ด้วย แล้วตั้งค่าให้ Virtual Device ใหม่

• จะเห็นว่าเมื่อเปิดเข้ามาก็จะพบกับหน้าตั้งค่าเครื่อง
ซึ่งเหมือนกับเครื่องจริงทั้งหมดเลย ต่างไปจากของ AVD 



• สามารถใช้งาน Play Store ได้ตามปกติ (เวอร์ชันใหม่แล้วด้วย)
แต่ใช่ว่าจะโหลดได้ทั้งหมดนะ มีบางแอปฯที่ไม่รองรับ
ซึ่งส่วนมากปัญหาคือไม่สามารถติดตั้งลงใน External Storage ได้
** ในเวอร์ชันล่าสุดติดตั้งได้เรียบร้อยแล้ว


• สำหรับกล้องยังใช้งานไม่ได้นะ คาดว่าจะทำให้ภายหลัง


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


• ถ้าไม่ทราบพิกัดก็มีปุ่มแผนที่ให้กดเพื่อเปิดแผนที่แล้วจิ้มพิกัดที่ต้องการ


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


• สำหรับแอปพลิเคชันที่ใช้งาน Google Maps Android API v2
เจ้าของบล็อกคอมเฟิร์มเลยว่าสามารถใช้งานได้จริง


• ส่วนเซนเซอร์ในเครื่อง ตอนนี้มีแค่ Accelerometer อยู่
ทางผู้พัฒนาจะทยอยเพิ่มเข้ามาให้เรื่อยๆ ในภายหลัง


• จะมีไอคอน Genymotion Configuration ให้ด้วยเอาไว้ปรับค่าเล็กๆน้อยๆ
อย่างเช่นประมวลผล OpenGL ด้วยฮาร์ดแวร์, ล็อคค่า IP ไว้
, เปลียนคีย์บอร์ดไปมาระหว่าง Physical กับ Virtual
(Physical คือปุ่ม Home Back Menu ที่อยู่นอกจอ อย่าง S3
Virtual คือปุ่ม Home Back Menu ที่อยู่ภายในจออย่าง Nexus 4)


• ตัว Virtual Device จะมีพื้นที่ให้ใช้สอย 5 GB 
(ก็กินพื้นที่จาก HDD คอมน่ะแหละ)


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

• ที่ชอบที่สุดก็คงจะเป็นปุ่ม Power ที่มีให้ใน Emulator ด้วยละมั้ง
เพราะ Emulator ทุกตัวจะไม่มีปุ่มนี้ เพื่อเอาไว้เทสเวลากดปิดหน้าจอ
ทำหน้าที่ได้เหมือนกับเครื่องจริงเลย แม้กระทั่งปิดเครื่องก็ยังได้


สามารถเช็ค LogCat ต่างๆได้ตามปกติไม่มีปัญหาอะไร
สรุปข้อดีข้อเสียได้ดังนี้

                              ข้อดี
                                 • All Platform ได้ทั้ง Windows / OSX และ Linux
                                 • ลื่นกว่า AVD มากๆ ลองทดสอบกับขนาด Tablet ก็ยังลื่น
                                 • ทำมาเพื่อให้นักพัฒนานำไปใช้โดยเฉพาะ
                                 • ปรับค่าจำพวก GPS หรือแบตเตอรีเพื่อจำลองสถานการณ์ได้
                                 • รองรับ Google Maps Android API v2
                                 • ไม่ต้องตั้งค่าโปรแกรมให้ยุ่งยาก
                                 • มีปุ่ม Power ให้ลองทดสอบกับหน้า Lock Screen ได้
                                 • ดาวน์โหลดแอปฯใน Play Store มาทดสอบได้เลย
                                 • มี Plugin เพื่อให้สามารถใช้ร่วมกับ Eclipse และ Android Studio
                                 • ให้ความรู้สึกเหมือนใช้งานกับเครื่องจริง

                              ข้อเสีย
                                 • ต้องดาวน์โหลด Virtual Device จากเซิฟเวอร์ทุกครั้ง
                                 • เวลาหมุนจอต้องรอซักนึงถึงจะหมุนให้ (รอดูว่าจะแก้ไขมั้ย)
                                 • โหลดแอปฯ บางตัวไม่ได้เพราะติดตั้งใน External Storage ไม่ได้
                                 • ตั้งค่าตัว Virtual Device ได้แค่ขนาดจอและเวอร์ชันแอนดรอยด์


ในการใช้งานร่วมกับ ADT หรือ Android Studio ต้องติดตั้ง Plugin ดังนี้

• ไปที่ Help > Install New Software...


• ที่หน้าต่าง Install ให้กดที่ปุ่ม Add.


• ที่หน้าต่าง Add Repository ให้ใส่ที่อยู่ Plugin ของ Genymotion มาติดตั้ง ดังนี้


• เมื่อกด OK แล้วกลับมาที่หน้า Install 
จะเห็นว่ามีชื่อ Tools ของ Genymotion ให้ติดตั้ง
ให้ติ๊กเครื่องหมายถูกเพื่อเลือกแล้วกด Next


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



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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น