คำเตือน: Google Play Instant จะหยุดให้บริการ ตั้งแต่เดือนธันวาคม 2025 เป็นต้นไป คุณจะเผยแพร่ Instant App ผ่าน Google Play ไม่ได้ และ Instant API ของบริการ Google Play ทั้งหมดจะหยุดทำงาน Google Play จะไม่แสดง Instant App ให้ผู้ใช้เห็นอีกต่อไปไม่ว่าจะใช้กลไกใดก็ตาม
เราทำการเปลี่ยนแปลงนี้ตามความคิดเห็นของนักพัฒนาแอปและการลงทุนอย่างต่อเนื่อง เพื่อปรับปรุงระบบนิเวศตั้งแต่เปิดตัว Google Play Instant
เราขอแนะนำให้นักพัฒนาแอปนำทางผู้ใช้ไปยัง แอปหรือเกมปกติของคุณโดยใช้ Deep Link เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังเส้นทางหรือฟีเจอร์ที่เฉพาะเจาะจงเมื่อเกี่ยวข้อง เพื่อเพิ่มประสิทธิภาพในการเพิ่มผู้ใช้อย่างต่อเนื่อง
ขั้นตอนการตั้งค่าแอปให้ทำงานบน Google Play Instant ตามที่อธิบาย ไว้ใน สร้าง Instant App แรกของคุณ จะใช้กับเกมด้วย คู่มือนี้เน้นขั้นตอนการตั้งค่าบางอย่างที่เฉพาะเจาะจงสำหรับเกม
คุณสามารถพัฒนาเกมสำหรับ Google Play Instant ได้โดยใช้ Unity (มีหรือไม่มีปลั๊กอิน Google Play Instant Unity), Cocos2D, Android Studio หรือเอนจินที่กำหนดเอง
คู่มือนี้ถือว่าคุณทราบอยู่แล้วว่าต้องการมอบประสบการณ์การเล่นเกมแบบใด หากต้องการดูไอเดียและแนวทางปฏิบัติแนะนำสำหรับการสร้าง เกมคุณภาพสูง โปรดอ่านแนวทางปฏิบัติแนะนำเกี่ยวกับ UX สำหรับเกมใน Google Play Instant
นอกจากนี้ ก่อนเผยแพร่เกมที่ทำงานบน Google Play Instant ได้ คุณควรอ่านรายการตรวจสอบข้อกำหนดทางเทคนิค
ระบุจุดเริ่มต้น
กิจกรรมที่มีตัวกรอง Intent ต่อไปนี้จะกลายเป็นจุดแรกเข้าสำหรับประสบการณ์แบบใช้งานได้ทันทีของ Google Play Instant
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
ระบบจะเปิดใช้กิจกรรมนี้เมื่อผู้ใช้แตะปุ่มลองเลย ใน Play Store หรือปุ่มเล่นทันที ในแอป Google Play Games นอกจากนี้ คุณยังเปิดใช้กิจกรรมนี้ได้โดยตรงโดยใช้ Deep Link API
กำหนดรหัสเวอร์ชันที่ถูกต้อง
รหัสเวอร์ชันของประสบการณ์แบบใช้งานได้ทันทีของเกมต้องน้อยกว่ารหัสเวอร์ชันของเกมที่ติดตั้งได้ การกำหนดเวอร์ชันแอปด้วยวิธีนี้จะช่วยให้ผู้เล่นย้ายจากประสบการณ์การใช้งาน Google Play Instant ไปดาวน์โหลดและติดตั้งเกมลงในอุปกรณ์ได้ เฟรมเวิร์ก Android ถือว่าการเปลี่ยนผ่านนี้เป็นการอัปเดตแอป
หากต้องการตรวจสอบว่าคุณใช้รูปแบบการกำหนดเวอร์ชันที่แนะนำ ให้ทำตามกลยุทธ์ใดกลยุทธ์หนึ่งต่อไปนี้
- รีสตาร์ทรหัสเวอร์ชันสำหรับประสบการณ์การใช้งาน Google Play Instant ที่ 1
- เพิ่มรหัสเวอร์ชันของแอปที่ติดตั้งได้ด้วยตัวเลขจำนวนมาก เช่น 1000 เพื่อให้มีพื้นที่เพียงพอสำหรับเพิ่มหมายเลขเวอร์ชันของประสบการณ์การใช้งาน Instant
คุณสามารถพัฒนาเกม Instant และเกมที่ติดตั้งได้ในโปรเจ็กต์ Android Studio 2 โปรเจ็กต์แยกกันได้ แต่หากทำเช่นนั้น คุณต้องทำดังต่อไปนี้เพื่อเผยแพร่เกมใน Google Play
- ใช้ชื่อแพ็กเกจเดียวกันในโปรเจ็กต์ Android Studio ทั้ง 2 โปรเจ็กต์
- ใน Google Play Console ให้อัปโหลดทั้ง 2 รูปแบบไปยังแอปพลิเคชันเดียวกัน
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าเวอร์ชันของเกมได้ที่ กำหนดเวอร์ชัน แอป
รองรับสภาพแวดล้อมการดำเนินการ
เกมใน Google Play Instant จะทำงานภายในแซนด์บ็อกซ์ที่มีข้อจำกัดในอุปกรณ์ เช่นเดียวกับแอปอื่นๆ หากต้องการรองรับสภาพแวดล้อมการดำเนินการนี้ ให้ทำตามขั้นตอนที่แสดงในส่วนต่อไปนี้
เลือกไม่ใช้การรับส่งข้อมูลแบบข้อความธรรมดา
เกมใน Google Play Instant ไม่รองรับการรับส่งข้อมูล HTTP หากเกมของคุณกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) ขึ้นไป Android จะปิดใช้การรองรับข้อความธรรมดาในเกมของคุณโดยค่าเริ่มต้น
แต่หากเกมของคุณกำหนดเป้าหมายเป็น Android 8.1 (ระดับ API 27) ลงมา คุณต้องสร้างไฟล์การกำหนดค่าความปลอดภัยของเครือข่าย
ในไฟล์นี้ ให้ตั้งค่า cleartextTrafficPermitted เป็น false ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
อัปเดตเวอร์ชันแซนด์บ็อกซ์เป้าหมาย
อัปเดตไฟล์ AndroidManifest.xml ของเกม Instant เพื่อให้กำหนดเป้าหมายเป็นสภาพแวดล้อมแซนด์บ็อกซ์ที่ Google Play Instant รองรับ คุณสามารถทำการอัปเดตนี้ได้โดยการเพิ่มแอตทริบิวต์ android:targetSandboxVersion ลงในองค์ประกอบ <manifest> ของเกม ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับ
targetSandboxVersion
แอตทริบิวต์
อย่าพึ่งพาการมีแคชหรือข้อมูลแอป
ประสบการณ์แบบใช้งานได้ทันทีของคุณจะยังคงดาวน์โหลดอยู่ในอุปกรณ์ของผู้ใช้จนกว่าจะมีการล้างแคชประสบการณ์แบบใช้งานได้ทันที ซึ่งจะเกิดขึ้นในกรณีใดกรณีหนึ่งต่อไปนี้
- ระบบจะเก็บกวาดแคชประสบการณ์แบบใช้งานได้ทันที เนื่องจากอุปกรณ์มีหน่วยความจำที่พร้อมใช้งานเหลือน้อย
- ผู้ใช้รีสตาร์ทอุปกรณ์
หากกระบวนการใดกระบวนการหนึ่งเกิดขึ้น ผู้ใช้จะต้องดาวน์โหลดประสบการณ์แบบใช้งานได้ทันทีของคุณอีกครั้งจึงจะโต้ตอบกับประสบการณ์การใช้งานดังกล่าวได้
หากระบบมีพื้นที่เก็บข้อมูลเหลือน้อยมาก ระบบอาจนำข้อมูลผู้ใช้ของประสบการณ์แบบใช้งานได้ทันทีออกจากที่จัดเก็บข้อมูลภายใน ดังนั้น เราขอแนะนำให้ซิงค์ข้อมูลผู้ใช้กับเซิร์ฟเวอร์ของเกมเป็นระยะๆ เพื่อให้ระบบเก็บรักษาความคืบหน้าของผู้ใช้ไว้
ลดขนาดแอป
เกมใน Google Play Instant มีขนาดดาวน์โหลดสูงสุด 15 MB ซึ่งแตกต่างจากแอปประเภทอื่นๆ คุณอาจต้องปรับโครงสร้างตรรกะของเกมใหม่เพื่อสร้างเกมที่มีขนาดเท่านี้ ส่วนนี้จะอธิบายเครื่องมือและเทคนิคบางอย่างที่จะช่วยเพิ่มประสิทธิภาพขนาดของเกม
เครื่องมือ
รายการเครื่องมือต่อไปนี้จะช่วยคุณระบุสิ่งที่ทำให้เกมมีขนาดใหญ่ขึ้น
- ตัววิเคราะห์ APK: แสดงภาพรวมของ เนื้อหา APK ที่คอมไพล์แล้ว มุมมองนี้จะช่วยให้คุณระบุจำนวนไบต์ที่แต่ละองค์ประกอบมีส่วนทำให้ขนาดโดยรวมใหญ่ขึ้น ใช้เครื่องมือนี้เพื่อตรวจสอบขนาดของทรัพยากร, ชิ้นงาน, ตรรกะ และไลบรารีเนทีฟที่เกมของคุณใช้ได้อย่างรวดเร็ว
- Bloaty McBloatface: แสดง โปรไฟล์ขนาดของไฟล์ไบนารี
- Android GPU Inspector: ดูผลกระทบของขนาดไฟล์ จากการลดขนาดพื้นผิวโดยไม่ต้องคอมไพล์เกมใหม่
เทคนิค
ต่อไปนี้เป็นรายการเทคนิคที่คุณใช้เพื่อลดขนาดของเกมได้
- แยกตรรกะบางส่วนของเกมและวางไว้ในโมดูล ฟีเจอร์อย่างน้อย 1 โมดูล ซึ่งจะ ไม่นับรวมในขนาดสูงสุด
- ลดความละเอียดของพื้นผิวของเกม
- พิจารณาใช้รูปแบบ WebP โดยเฉพาะอย่างยิ่งหากคุณใช้พื้นผิวที่ไม่ได้บีบอัดใน GPU รูปแบบ WebP จะสร้างรูปภาพที่มีคุณภาพเท่ากับรูปภาพ JPEG แต่มีขนาดเล็กลง 15% ถึง 30% แม้ว่าการคลายการบีบอัดรูปภาพ WebP จะใช้เวลานานกว่า แต่เวลาในการคลายการบีบอัดนี้ยังคงสั้นกว่าเวลาดาวน์โหลดพื้นผิวของเกมอย่างมาก นอกจากนี้ Google ยังได้ผสานรวมรูปแบบนี้เข้ากับเอนจินเกมโอเพนซอร์สด้วย
- บีบอัดหรือนำเสียงและเพลงกลับมาใช้ใหม่
- ใช้แฟล็กการคอมไพล์ที่แตกต่างกันเพื่อช่วยให้ไฟล์ไบนารีมีขนาดเล็กลง ดังนี้
-fvisibility=hiddenซึ่งเป็นแฟล็กที่สำคัญที่สุด ในcmakeคุณสามารถระบุแฟล็กนี้ได้ดังนี้$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Ozซึ่งมีความสำคัญต่อการลดขนาดด้วย หากคุณคอมไพล์โดยใช้gccให้ใช้-Osแทน-fltoซึ่งบางครั้งจะลดขนาดไฟล์- แฟล็ก Linker - ใช้
--gc-sectionsร่วมกับแฟล็กคอมไพเลอร์ เช่น-ffunction-sectionsและ-fdata-sections
- ใช้ Proguard เพื่อ ลดขนาดโค้ดและทรัพยากร
- ใช้ Gradle 4.4 ขึ้นไปเพื่อสร้างไฟล์ DEX ที่มีขนาดเล็กลง
- ใช้การส่งชิ้นงานผ่านระบบคลาวด์
แบ่งเกมขนาดใหญ่ออกเป็น APK หลายรายการ
การเพิ่มประสิทธิภาพประสบการณ์การใช้งาน Google Play Instant เพื่อให้เกมมีขนาดพอดีกับ APK เดียวขนาด 15 MB อาจเป็นเรื่องยาก แม้หลังจากใช้คำแนะนำในการลดขนาด APKแล้วก็ตาม คุณสามารถแบ่งเกมออกเป็น APK หลายรายการเพื่อแก้ปัญหานี้ ผู้เล่นจะเริ่มดาวน์โหลด APK หลักที่เป็นฐานก่อน จากนั้นระบบจะแสดง APK ที่แยกที่เหลือให้เกมในเบื้องหลังขณะที่ผู้เล่นเล่นเกม
ตัวอย่างเช่น APK ฐานอาจมีเอนจินเกมหลักและชิ้นงานที่จำเป็นในการแสดงหน้าจอการโหลด เมื่อ APK ฐานเปิดตัว ระบบจะแสดงหน้าจอการโหลดและขอ APK ที่แยกเพิ่มเติมซึ่งมีข้อมูลเกมและระดับทันที หลังจากที่ APK แยกดังกล่าวพร้อมใช้งานแล้ว APK จะโหลดชิ้นงานลงในเกมเอนจินและแสดงเนื้อหาที่ผู้เล่นต้องใช้เพื่อเริ่มเกม
ใช้แนวทางปฏิบัติแนะนำเกี่ยวกับ UX
หลังจากกำหนดค่าเกมให้รองรับประสบการณ์การใช้งาน Instant แล้ว ให้เพิ่มตรรกะที่แสดงในส่วนต่อไปนี้เพื่อมอบประสบการณ์การใช้งานที่ดีแก่ผู้ใช้
รองรับสถาปัตยกรรม 64 บิต
แอปที่เผยแพร่ใน Google Play ต้องรองรับสถาปัตยกรรม 64 บิต การเพิ่มแอปเวอร์ชัน 64 บิตจะช่วยเพิ่มประสิทธิภาพและเตรียมความพร้อมสำหรับอุปกรณ์ที่มีฮาร์ดแวร์ 64 บิตเท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับ 64 บิต
ตรวจสอบว่าเกมกำลังเรียกใช้ประสบการณ์แบบใช้งานได้ทันทีหรือไม่
หากตรรกะบางส่วนของเกมขึ้นอยู่กับว่าผู้ใช้มีส่วนร่วมในประสบการณ์แบบใช้งานได้ทันทีหรือไม่ ให้เรียกใช้ isInstantApp() เมธอด เมธอดนี้จะแสดงผล true หากกระบวนการที่กำลังทำงานอยู่เป็นประสบการณ์แบบใช้งานได้ทันที
แสดงข้อความแจ้งการติดตั้ง
หากคุณสร้างประสบการณ์แบบใช้งานได้ทันทีของ Google Play Instant เวอร์ชันทดลอง เกมควรแจ้งให้ผู้เล่นติดตั้งเวอร์ชันเต็มลงในอุปกรณ์เมื่อถึงจุดหนึ่ง หากต้องการทำเช่นนั้น ให้ใช้
showInstallPrompt()
เมธอดใน Google APIs for Android
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีและเวลาที่ควรแจ้งให้ผู้เล่นติดตั้งได้ที่ ดู แนวทางปฏิบัติแนะนำเกี่ยวกับ UX สำหรับเกมใน Google Play Instant
โอนข้อมูลไปยังประสบการณ์การใช้งานที่ติดตั้ง
หากผู้เล่นชื่นชอบประสบการณ์การใช้งานเวอร์ชันทดลอง ผู้เล่นอาจตัดสินใจติดตั้งเกมเวอร์ชันเต็ม การโอนความคืบหน้าของผู้เล่นจากประสบการณ์แบบใช้งานได้ทันทีไปยังเกมเวอร์ชันเต็มเป็นสิ่งสำคัญเพื่อให้ผู้ใช้ได้รับประสบการณ์ของผู้ใช้ที่ดี
หากเกมระบุ targetSandboxVersion
เป็น 2 ระบบจะโอนความคืบหน้าของผู้เล่น
ไปยังเกมเวอร์ชันเต็มโดยอัตโนมัติ ไม่เช่นนั้น คุณต้องโอนข้อมูลที่เกี่ยวข้องกับความคืบหน้าของผู้เล่นด้วยตนเอง หากต้องการทำเช่นนั้น ให้ใช้ Cookie API - แอปตัวอย่าง
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Play Instant ได้จากแหล่งข้อมูลเพิ่มเติมต่อไปนี้
- Codelab: สร้าง Instant App แรกของคุณ
- เพิ่มการรองรับ Google Play Instant ในแอปที่มีอยู่
- Codelab: สร้าง Instant App ที่มีหลายฟีเจอร์
- แยกโมดูลแอปที่มีหลายฟีเจอร์