แอปทีวีใช้โครงสร้างเดียวกับแอปสำหรับโทรศัพท์และแท็บเล็ต ความคล้ายคลึงกันนี้หมายความว่าคุณสามารถ แก้ไขแอปที่มีอยู่ให้ทำงานในอุปกรณ์ทีวีได้ด้วย หรือสร้างแอปใหม่โดยอิงตามความรู้เดิมเกี่ยวกับความรู้เดิม เกี่ยวกับการสร้างแอปสำหรับ Android
สำคัญ: แอปของคุณต้องเป็นไปตามข้อกำหนดที่เฉพาะเจาะจงจึงจะมีสิทธิ์เป็นแอป Android TV ใน Google Play ดูข้อมูลเพิ่มเติมได้ในข้อกำหนดที่ระบุไว้ ใน คุณภาพของแอป TV
คู่มือนี้จะอธิบายวิธีเตรียมสภาพแวดล้อมในการพัฒนาซอฟต์แวร์สำหรับการสร้างแอป TV รวมถึงการเปลี่ยนแปลงขั้นต่ำที่จำเป็นเพื่อให้แอปทำงานในอุปกรณ์ทีวีได้
ดูข้อมูลเกี่ยวกับการออกแบบแอปสำหรับทีวีได้ที่หัวข้อ การออกแบบสำหรับ ทีวี นอกจากนี้ โปรดดูแอปตัวอย่างใน ที่เก็บ Android TV GitHub
กำหนดการรองรับรูปแบบสื่อ
ดูข้อมูลเกี่ยวกับตัวแปลงรหัส โปรโตคอล และรูปแบบที่ Android TV รองรับได้ในเอกสารต่อไปนี้
ตั้งค่าโปรเจ็กต์ทีวี
ส่วนนี้จะอธิบายวิธีตั้งค่าโปรเจ็กต์ทีวี ไม่ว่าคุณจะ แก้ไขแอป Android ที่มีอยู่ให้ทำงานในอุปกรณ์ทีวีหรือสร้าง แอป TV ใหม่ก็ตาม หากคุณมีแอป Android อยู่แล้ว การเพิ่มการรองรับ Android TV จะช่วยให้คุณออกแบบ อินเทอร์เฟซผู้ใช้สำหรับทีวีได้โดยใช้สถาปัตยกรรมแอปที่มีอยู่
มีคอมโพเนนต์หลัก 2 รายการที่คุณใช้เมื่อสร้างแอปที่ทำงานในอุปกรณ์ทีวี ได้แก่
- กิจกรรมสำหรับทีวี: ในไฟล์ Manifest ของแอปพลิเคชัน ให้ประกาศกิจกรรมที่ตั้งใจให้ทำงานในอุปกรณ์ทีวี
- คลังทีวี: คุณสามารถเลือกที่จะรวม คลัง androidx อย่างน้อย 1 รายการที่พร้อมใช้งานสำหรับอุปกรณ์ทีวี ซึ่งระบุไว้ในส่วนอื่นของคู่มือนี้ คลังเหล่านี้มีวิดเจ็ตสำหรับการสร้างอินเทอร์เฟซผู้ใช้
สิ่งที่ต้องมีก่อน
ก่อนที่จะเริ่มสร้างแอปสำหรับทีวี คุณต้องทำตามขั้นตอนต่อไปนี้
-
อัปเดตเครื่องมือ SDK เป็นเวอร์ชัน 24.0.0 ขึ้นไป
เครื่องมือ SDK ที่อัปเดตแล้วจะช่วยให้คุณสร้างและทดสอบแอปสำหรับทีวีได้ - อัปเดต SDK เป็น Android 5.0 (API 21) ขึ้นไป
แพลตฟอร์มเวอร์ชันที่อัปเดตแล้วมี API ใหม่สำหรับแอปทีวี -
สร้างหรืออัปเดตโปรเจ็กต์แอป
หากต้องการเข้าถึง API ใหม่สำหรับอุปกรณ์ทีวี ให้สร้างโปรเจ็กต์หรือแก้ไขโปรเจ็กต์ที่มีอยู่ ซึ่งกำหนดเป้าหมายเป็น Android 5.0 (ระดับ API 21) ขึ้นไป
ประกาศกิจกรรมทีวี
แอปพลิเคชันที่ตั้งใจให้ทำงานในอุปกรณ์ทีวีต้องประกาศกิจกรรมตัวเปิดใช้สำหรับทีวี
ในไฟล์ Manifest โดยใช้ตัวกรอง Intent CATEGORY_LEANBACK_LAUNCHER ตัวกรองนี้จะระบุว่าแอปของคุณเปิดใช้สำหรับทีวีแล้ว และช่วยให้ Google Play ระบุแอปของคุณเป็นแอป TV ได้ เมื่อผู้ใช้เลือกแอปของคุณในหน้าจอหลักของทีวี Intent นี้จะระบุว่าควรเปิดใช้กิจกรรมใด
ข้อมูลโค้ดต่อไปนี้แสดงวิธีรวมตัวกรอง Intent นี้ไว้ในไฟล์ Manifest
<application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> </application>
รายการไฟล์ Manifest ของกิจกรรมที่ 2 ในตัวอย่างนี้ระบุว่าเป็นกิจกรรมที่จะ เปิดใช้ในอุปกรณ์ทีวี
ข้อควรระวัง: หากคุณไม่รวมตัวกรอง Intent
CATEGORY_LEANBACK_LAUNCHER ไว้ในแอป ผู้ใช้ที่ใช้ Google Play ในอุปกรณ์ทีวีจะไม่เห็นแอปของคุณ นอกจากนี้ หากแอป
ไม่มีตัวกรองนี้เมื่อคุณใช้เครื่องมือสำหรับนักพัฒนาแอปเพื่อโหลดแอปไปยังอุปกรณ์ทีวี แอป
จะไม่ปรากฏในอินเทอร์เฟซผู้ใช้ของทีวี
อินเทอร์เฟซผู้ใช้ของแอปทีวี หรือส่วนทีวีของแอปที่มีอยู่ต้องมีการนำทางที่ใช้งานง่ายโดยใช้รีโมตคอนโทรลจากระยะ 10 ฟุต หากคุณแก้ไขแอปที่มีอยู่เพื่อใช้ในทีวี อย่าใช้เลย์เอาต์กิจกรรมเดียวกันกับที่ใช้สำหรับโทรศัพท์และแท็บเล็ต ดูหลักเกณฑ์ในการออกแบบแอปสำหรับทีวีได้ที่หัวข้อการออกแบบสำหรับทีวี
ประกาศการรองรับอุปกรณ์ทีวี
ประกาศว่าแอปของคุณสร้างขึ้นสำหรับ Android TV โดยประกาศฟีเจอร์
android.software.leanback
หากแอปทำงานได้ทั้งในอุปกรณ์เคลื่อนที่และทีวี ให้ตั้งค่าค่าแอตทริบิวต์ required เป็น
false หากตั้งค่าแอตทริบิวต์ required เป็น true,
Google Play จะแสดงแอปของคุณในระบบปฏิบัติการ Android TV เท่านั้น
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
ประกาศว่าไม่จำเป็นต้องใช้หน้าจอสัมผัส
แอปพลิเคชันที่ตั้งใจให้ทำงานในอุปกรณ์ทีวีไม่ได้อาศัยหน้าจอสัมผัสในการป้อนข้อมูล
เพื่อให้ชัดเจน ไฟล์ Manifest ของแอปทีวีต้องประกาศว่าไม่จำเป็นต้องใช้ฟีเจอร์
android.hardware.touchscreen การตั้งค่านี้จะระบุว่าแอปของคุณทำงานในอุปกรณ์ทีวีได้ และจำเป็นต้องตั้งค่านี้เพื่อให้ระบบพิจารณาว่าแอปของคุณเป็นแอป TV ใน Google Play ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรวมการประกาศไฟล์ Manifest นี้
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
ข้อควรระวัง: ในไฟล์ Manifest ของแอป คุณต้องประกาศว่าไม่จำเป็นต้องใช้หน้าจอสัมผัส ดังที่แสดงในโค้ดตัวอย่างนี้ มิฉะนั้น แอปของคุณจะไม่ปรากฏใน Google Play บนอุปกรณ์ทีวี
ระบุไอคอนและแบนเนอร์หน้าจอหลัก
แอป Android TV ต้องมีทั้งไอคอนหน้าจอหลักและรูปภาพแบนเนอร์สำหรับการแปลแต่ละภาษา ระบบจะใช้ไอคอนหรือแบนเนอร์เป็นจุดเปิดใช้แอป ที่ปรากฏในแถวแอปและเกมในหน้าจอหลัก ทั้งนี้ขึ้นอยู่กับอุปกรณ์ Android TV
หากต้องการเพิ่มไอคอนและแบนเนอร์ลงในแอป ให้อธิบายไอคอนและแบนเนอร์ในไฟล์ Manifest ดังนี้
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
ไอคอนหน้าจอหลัก
แอป Android TV ต้องมีไอคอนหน้าจอหลักเช่นเดียวกับแอป Android ทั้งหมด ดูแนวทางปฏิบัติแนะนำในการออกแบบจุดเปิดใช้ที่ยอดเยี่ยมสำหรับแอปและข้อกำหนดด้านเนื้อหาโดยละเอียดได้ที่ หลักเกณฑ์เกี่ยวกับไอคอนและแบนเนอร์ของแอป Android TV
แบนเนอร์หน้าจอหลัก
ใช้แอตทริบิวต์ android:banner
กับแท็ก <application>
เพื่อระบุแบนเนอร์เริ่มต้นสำหรับกิจกรรมทั้งหมดของแอปพลิเคชัน หรือใช้กับ
แท็ก <activity>
เพื่อระบุแบนเนอร์สำหรับกิจกรรมที่เฉพาะเจาะจง
สำหรับแบนเนอร์ ให้ใช้ทรัพยากร xhdpi ขนาด 320 x 180 พิกเซล โดยต้องมีข้อความอยู่ในรูปภาพ หากแอปของคุณพร้อมให้บริการมากกว่า 1 ภาษา คุณต้องระบุแบนเนอร์เวอร์ชันแยกต่างหากที่มีข้อความสำหรับแต่ละภาษาที่รองรับ
เปลี่ยนสีตัวเปิดใช้
ข้อควรระวัง: ใน Android 12 ขึ้นไป ระบบไม่รองรับภาพเคลื่อนไหวหน้าจอแนะนําที่กำหนดเองซึ่งสร้างขึ้นโดยใช้
SplashScreen Platform API สำหรับแอป Android TV
เมื่อแอป TV เปิดขึ้น ระบบจะแสดงภาพเคลื่อนไหวที่คล้ายกับวงกลมทึบที่ขยายออก หากต้องการปรับแต่งสีของภาพเคลื่อนไหวนี้ ให้ตั้งค่าแอตทริบิวต์ android:colorPrimary ของแอป TV หรือกิจกรรมเป็นสีที่เฉพาะเจาะจง นอกจากนี้ ให้ตั้งค่าแอตทริบิวต์การซ้อนทับการเปลี่ยนภาพ 2 รายการ
เป็น true ดังที่แสดงในข้อมูลโค้ดต่อไปนี้จากไฟล์ XML ทรัพยากรธีม
<resources> <style name="MyTheme"> <item name="android:colorPrimary">@color/primary</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> </style> </resources>
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ธีมและสไตล์ได้ที่ หัวข้อสไตล์และธีม
สร้างแอปสำหรับระบบปฏิบัติการ Android TV
Jetpack มีคลังแพ็กเกจ androidx สำหรับใช้กับแอปทีวี
Compose สำหรับ TV
Compose เป็นวิธีที่แนะนำในการสร้างแอปสำหรับระบบปฏิบัติการ Android TV คลัง Compose สำหรับทีวีมีคอมโพเนนต์เฉพาะที่ออกแบบมาเป็นพิเศษสำหรับหน้าจอขนาดใหญ่ นอกเหนือจากคลัง Compose หลัก ได้แก่
ดูวิธีสร้างแอปทีวีโดยใช้ Compose สำหรับทีวีได้ที่หัวข้อใช้ Jetpack Compose ใน Android TV
ชุดเครื่องมือ UI ของ Leanback
ชุดเครื่องมือ UI ของ Leanback มี API และวิดเจ็ตอินเทอร์เฟซผู้ใช้สำหรับอุปกรณ์ทีวี ได้แก่
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
ดูวิธีสร้างแอปทีวีโดยใช้ชุดเครื่องมือ UI ของ Leanback ได้ที่ หัวข้อสร้างแอปดูทีวี
เรียกใช้แอปทีวี
การเรียกใช้แอปเป็นส่วนสำคัญของกระบวนการพัฒนา คุณสามารถเรียกใช้แอปใน อุปกรณ์ทีวีที่กำหนดค่าให้รองรับการแก้ไขข้อบกพร่อง USB หรือใช้อุปกรณ์ทีวีเสมือน
เรียกใช้ในอุปกรณ์จริง
ตั้งค่าอุปกรณ์ทีวีดังนี้
- ใช้สาย USB เพื่อเชื่อมต่ออุปกรณ์ทีวีกับคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ หากจำเป็น โปรดดูเอกสารที่ผู้ผลิตอุปกรณ์ให้มา
- ไปที่การตั้งค่า ในอุปกรณ์ทีวี
- ในแถวอุปกรณ์ ให้เลือกเกี่ยวกับ
- เลื่อนไปที่บิลด์ แล้วเลือกบิลด์ หลายๆ ครั้งจนกว่าข้อความ "คุณอยู่ในโหมดนักพัฒนาซอฟต์แวร์แล้ว" จะปรากฏขึ้น
- กลับไปที่การตั้งค่า ในแถวค่ากำหนด ให้เลือกตัวเลือกสำหรับนักพัฒนาแอป
- เลือกการแก้ไขข้อบกพร่อง > การแก้ไขข้อบกพร่อง USB แล้วเลือกเปิด
- กลับไปที่หน้าจอหลักของทีวี
วิธีทดสอบแอปพลิเคชันในอุปกรณ์ทีวี
- ใน Android Studio ให้เลือกโปรเจ็กต์แล้วคลิก
เรียกใช้
จากแถบเครื่องมือ - ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน ให้เลือกอุปกรณ์ทีวีแล้วคลิกตกลง
เรียกใช้ในอุปกรณ์เสมือนจริง
AVD Manager ใน Android SDK มีคำจำกัดความของอุปกรณ์ที่ช่วยให้คุณสร้างอุปกรณ์ทีวีเสมือนสำหรับเรียกใช้และ ทดสอบแอปพลิเคชันได้
วิธีสร้างอุปกรณ์ทีวีเสมือน
- เริ่ม AVD Manager ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ สร้างและจัดการอุปกรณ์เสมือน
- ในกล่องโต้ตอบ AVD Manager ให้คลิกแท็บคำจำกัดความของอุปกรณ์
- เลือกคำจำกัดความของอุปกรณ์ Android TV รายการใดรายการหนึ่ง แล้วคลิกสร้าง AVD
- เลือกตัวเลือกโปรแกรมจำลอง แล้วคลิกตกลง เพื่อสร้าง AVD
หมายเหตุ: หากต้องการให้โปรแกรมจำลองอุปกรณ์ทีวีทำงานได้ดีที่สุด ให้ใช้โปรแกรมจำลอง x86 และเปิดใช้ตัวเลือก ใช้ GPU ของโฮสต์ นอกจากนี้ ให้ใช้การเร่งความเร็วของอุปกรณ์เสมือนจริงเมื่อพร้อมใช้งาน ดูข้อมูลเพิ่มเติมเกี่ยวกับการเร่งฮาร์ดแวร์ของโปรแกรมจำลองได้ที่ หัวข้อกำหนดค่าการเร่งฮาร์ดแวร์สำหรับ โปรแกรมจำลองของ Android
วิธีทดสอบแอปพลิเคชันในอุปกรณ์ทีวีเสมือน
- ใน Android Studio ให้เลือกโปรเจ็กต์แล้วคลิก
เรียกใช้
จากแถบเครื่องมือ - ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน เลือกอุปกรณ์ทีวีเสมือนแล้วคลิกตกลง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้โปรแกรมจำลองได้ที่หัวข้อ เรียกใช้แอปในโปรแกรมจำลองของ Android ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งานแอปจาก Android Studio ไปยังอุปกรณ์เสมือน ได้ที่หัวข้อแก้ไขข้อบกพร่องของแอป
เปิดใช้แอป TV ให้ทำงานเป็นประสบการณ์แบบใช้งานได้ทันที
ประสบการณ์การใช้งาน Instant ช่วยให้ผู้ใช้ ได้ลองใช้แอปทีวีโดยไม่ต้องติดตั้ง และช่วยเพิ่มการยอมรับแอปได้
หากต้องการตั้งค่าแอป TV ให้ทำงานเป็น Instant App ในอุปกรณ์ Android TV หรือโปรแกรมจำลอง ให้ทำตามวิธีการเพื่อ สร้าง App Bundle ที่เปิดใช้ Instant ก่อน
จากนั้นใน intent-filter สำหรับแอปทีวีของคุณ
MainActivity ให้ตรวจสอบว่าได้ประกาศทั้ง LAUNCHER และ
LEANBACK_LAUNCHER ใน AndroidManifest.xml แล้ว
<activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
ตอนนี้แอป TV ได้รับการกำหนดค่าให้ทำงานเป็นประสบการณ์แบบใช้งานได้ทันทีแล้ว
เตรียมแอป TV ให้พร้อมสำหรับการเผยแพร่
ดูขั้นตอนถัดไปในการเตรียมแอป TV ให้พร้อมสำหรับการเผยแพร่และการจัดจำหน่ายได้ในเช็กลิสต์แอป TV