แอปทีวีใช้โครงสร้างเดียวกับแอปสำหรับโทรศัพท์และแท็บเล็ต ความคล้ายคลึงนี้หมายความว่าคุณสามารถ แก้ไขแอปที่มีอยู่ให้ทำงานบนอุปกรณ์ทีวีได้ด้วย หรือสร้างแอปใหม่โดยอิงตามสิ่งที่คุณทราบอยู่แล้ว เกี่ยวกับการสร้างแอปสำหรับ 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) ขึ้นไป
ประกาศกิจกรรมทางทีวี
แอปพลิเคชันที่ตั้งใจจะเรียกใช้ในอุปกรณ์ทีวีต้องประกาศกิจกรรมของ Launcher สำหรับทีวี
ในไฟล์ Manifest โดยจะใช้ตัวกรอง CATEGORY_LEANBACK_LAUNCHERIntent
เพื่อดำเนินการนี้ ฟิลเตอร์นี้จะระบุว่าแอปของคุณเปิดใช้สำหรับทีวีและช่วยให้
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>
รายการประกาศกิจกรรมที่ 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 ภาษา คุณต้องระบุแบนเนอร์ที่มีข้อความแยกกันสำหรับแต่ละภาษาที่รองรับ
เปลี่ยนสีของ Launcher
ข้อควรระวัง: ใน Android 12 ขึ้นไป ระบบไม่รองรับภาพเคลื่อนไหวของหน้าจอแนะนําที่กําหนดเองซึ่งสร้างขึ้นโดยใช้
SplashScreen Platform API สําหรับแอป Android 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 OS
Jetpack มีไลบรารีแพ็กเกจ androidx สำหรับใช้กับแอปทีวี
Compose สำหรับ TV
Compose เป็นวิธีที่แนะนำในการสร้างแอปสำหรับ Android TV OS นอกจากไลบรารี 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 ให้เลือกโปรเจ็กต์ แล้วคลิก
Run
จากแถบเครื่องมือ - ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน เลือกอุปกรณ์ทีวี แล้วคลิกตกลง
เรียกใช้ในอุปกรณ์เสมือนจริง
AVD Manager ใน Android SDK มีคำจำกัดความของอุปกรณ์ที่ช่วยให้คุณสร้างอุปกรณ์ทีวีเสมือนเพื่อเรียกใช้และทดสอบแอปพลิเคชันได้
วิธีสร้างอุปกรณ์ทีวีเสมือน
- เริ่ม AVD Manager ดูข้อมูลเพิ่มเติมได้ที่ สร้างและจัดการอุปกรณ์เสมือน
- ในกล่องโต้ตอบ AVD Manager ให้คลิกแท็บคำจำกัดความของอุปกรณ์
- เลือกคำจำกัดความอุปกรณ์ Android TV รายการใดรายการหนึ่ง แล้วคลิกสร้าง AVD
- เลือกตัวเลือกโปรแกรมจำลอง แล้วคลิกตกลงเพื่อสร้าง AVD
หมายเหตุ: ใช้โปรแกรมจำลอง x86 เพื่อให้ได้ประสิทธิภาพที่ดีที่สุดสำหรับอุปกรณ์โปรแกรมจำลองทีวี และเปิดใช้ตัวเลือกใช้ GPU ของโฮสต์ และใช้การเร่งอุปกรณ์เสมือนจริงเมื่อพร้อมใช้งาน ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับการเร่งด้วยฮาร์ดแวร์ของโปรแกรมจำลองได้ที่ กำหนดค่าการเร่งด้วยฮาร์ดแวร์สำหรับ โปรแกรมจำลองของ Android
วิธีทดสอบแอปพลิเคชันในอุปกรณ์ทีวีเสมือน
- ใน Android Studio ให้เลือกโปรเจ็กต์ แล้วคลิก
Run
จากแถบเครื่องมือ - ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน เลือกอุปกรณ์ทีวีเสมือน แล้วคลิกตกลง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้โปรแกรมจำลองได้ที่ เรียกใช้แอปในโปรแกรมจำลองของ Android ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งานแอปจาก Android Studio ไปยังอุปกรณ์เสมือนได้ที่แก้ไขข้อบกพร่องของแอป
เปิดใช้แอป TV ให้ทำงานเป็นประสบการณ์แบบใช้งานได้ทันที
ประสบการณ์แบบใช้งานได้ทันทีช่วยให้ผู้ใช้ ลองใช้แอป TV ของคุณได้โดยไม่ต้องติดตั้ง และช่วยเพิ่มการใช้งานได้
หากต้องการตั้งค่าแอป TV ให้ทำงานเป็น Instant App ในอุปกรณ์ Android TV หรือโปรแกรมจำลอง ก่อนอื่นให้ทำตามวิธีการเพื่อสร้าง App Bundle ที่เปิดใช้ Instant App
จากนั้นใน 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 ให้พร้อมสำหรับการเผยแพร่
ดูเช็กลิสต์แอปทีวีเพื่อดูขั้นตอนถัดไป ในการเตรียมแอปทีวีสำหรับการเผยแพร่และการจัดจำหน่าย