web analytics

ลองเล่น Surface Duo Emulator

สวัสดีชาว developer ทุกท่าน วันนี้ผมเห็นข่าวใน Blognone ว่า Surface Duo SDK เปิด preview ให้นักพัฒนา Android ทดสอบแอพแล้ว ผมก็เลยอยากลองเล่นดูว่ามันจะเป็นยังไงนะ เพราะว่าความพิเศษของอุปกรณ์นี้ คือสามารถใช้งาน 2 จอ คล้ายกับเปิดสมุดได้
https://www.blognone.com/node/114300

ตัวอย่างภาพ Surface Duo ใช้ระบบปฏิบัติการ Android

ซึ่งในเว็บของ Microsoft ก็บอกวิธีการละเอียดดีแล้ว แต่ว่าผมจะขอเขียนวิธีติดตั้งไว้ในนี้ด้วย (ใน Windows) วิธีการติดตั้ง SDK ง่ายมากครับ แค่ดาวน์โหลดตัวติดตั้งมาติดตั้ง จากเว็บของ Microsoft แล้วกด Next จนเสร็จ
https://docs.microsoft.com/en-us/dual-screen/android/get-duo-sdk

เสร็จแล้วเราจะต้อง copy ไฟล์ .jar ที่ได้จากการติดตั้งไปไว้ใน Android project ของเรา โดยไฟล์ .jar นี้จะอยู่ที่ path ที่เราเลือกไว้ ปกติน่าจะอยู่ที่
C:\Users\<username>\SurfaceDuoEmulator\sdk

แล้วก็ copy ไปวางไว้ในโฟลเดอร์ app/libs แบบนี้

พอได้แล้ว ก็เพิ่ม dependencies เพื่อให้ gradle นำไฟล์ .jar ไป compile ใน project ของเรา โดยไปที่ app/build.gradle เพิ่มโค้ดด้านล่างลงไป เสร็จแล้วก็ build project 1 ครั้ง

android {
    ...

    defaultConfig {
       ...

    dependencies {
        compileOnly files('libs/com.microsoft.device.display.displaymask.jar')
    }
}

ตอนแรกผมคิดว่าเราจะสามารถเปิด emulator จากใน Android studio ได้เลย แต่จริงๆแล้วเปิดจาก shortcut ที่เขาทำไว้จาก Start Menu นะ

มาแล้ว Surface Duo Emulator

โดยเมื่อลองอ่านจากข้อมูลทางเทคนิค เจ้า Surface Duo มันจะมี Mask ช่องว่างตรงสันขนาด 34 dp

แน่นอนว่าแทบทุกแอปจะยังไม่รองรับการใช้งานแบบ จอเต็มซ้ายขวา วิธีทำให้แอปแสดงเต็ม 2 จอ จอก็ง่ายมาก แค่ลากแอปมาวางตรงสัน

โดย Microsoft บอกว่า รูปแบบการใช้งานในอุปกรณ์ประเภทนี้ แอปจะสามารถใช้งานคร่าวๆได้ 5 แบบ

โดยเท่าที่ลองอ่านโค้ดคร่าวๆ ในไฟล์ .jar ที่เราใส่ไปในนั้น ในนั้นจะมีคลาสที่สามารถเช็คได้ว่าเป็นอุปกรณ์ที่รองรับ Dual หรือไม่ หรือว่าตอนนี้อยู่ในโหมดไหน Spanned หรือ Dual Mode

Microsoft ทำ sample project ไว้เป็น Android Java สามารถเข้าไปลองเล่นกันได้ที่
https://github.com/microsoft/surface-duo-sdk-samples

สำหรับใครที่เขียน React Native หรือ Flutter ก็สามารถติดตั้ง jar ที่กล่าวไปได้เหมือนกัน และรันแอปใน Surface Duo ได้ปกติ แต่ว่าตอนนี้แค่ยังไม่มีคนทำ Plugin ใน Flutter เท่านั้นเอง ทำให้จะยังไม่สามารถ coding เพื่อเช็คว่าอุปกรณ์รองรับหน้า Dual หรือไม่ได้ (คิดว่าเดี๋ยวก็มีคนทำแน่ๆ) พอมี plugin ออกมา เท่านี้เราก็สามารถทำแอปให้รองรับ Surface Duo ได้แล้ว

สำหรับวันนี้ สวัสดีครับ (: