אפליקציות לטלוויזיה משתמשות באותה מבנה כמו אפליקציות לטלפונים ולטאבלטים. הדמיון הזה מאפשר לכם לשנות את האפליקציות הקיימות כך שיפעלו גם במכשירי טלוויזיה, או ליצור אפליקציות חדשות על סמך הידע שכבר יש לכם לגבי פיתוח אפליקציות ל-Android.
חשוב: כדי שהאפליקציה תעמוד בדרישות ותיחשב כאפליקציית Android TV ב-Google Play, היא צריכה לעמוד בדרישות ספציפיות. מידע נוסף זמין במאמר בנושא איכות אפליקציות לטלוויזיה.
במדריך הזה מוסבר איך להכין את סביבת הפיתוח ליצירת אפליקציות לטלוויזיה, ומהם השינויים המינימליים שצריך לבצע כדי שאפליקציה תוכל לפעול במכשירי טלוויזיה.
מידע על עיצוב אפליקציות לטלוויזיה זמין במאמר עיצוב לטלוויזיה. אפשר גם לעיין באפליקציות לדוגמה במאגר Android TV GitHub.
איך בודקים אם פורמט המדיה נתמך
במסמכים הבאים מפורטים הקודקים, הפרוטוקולים והפורמטים שנתמכים ב-Android TV:
הגדרת פרויקט לטלוויזיה
בקטע הזה נסביר איך להגדיר פרויקט לטלוויזיה, בין אם אתם משנים אפליקציית Android קיימת כדי להפעיל אותה במכשירי טלוויזיה או יוצרים אפליקציה חדשה לטלוויזיה. אם יש לכם אפליקציית Android קיימת, הוספת תמיכה ב-Android TV מאפשרת לכם לעצב ממשק משתמש לטלוויזיה תוך שימוש חוזר בארכיטקטורת האפליקציה הקיימת.
יש שני רכיבים עיקריים שמשמשים ליצירת אפליקציה שפועלת במכשירי טלוויזיה:
- פעילות לטלוויזיה: בקובץ המניפסט של האפליקציה, מגדירים פעילות שמיועדת להרצה במכשירי טלוויזיה.
- ספריות לטלוויזיות: אפשר לכלול אחת או יותר מספריות androidx שזמינות למכשירי טלוויזיה, שמפורטות בקטע אחר במדריך הזה. הספריות האלה מספקות ווידג'טים ליצירת ממשקי משתמש.
דרישות מוקדמות
לפני שמתחילים לפתח אפליקציה לטלוויזיה, צריך לבצע את השלבים הבאים:
-
מעדכנים את כלי ה-SDK לגרסה 24.0.0 ואילך.
הכלים המעודכנים של ה-SDK מאפשרים לכם ליצור ולבדוק אפליקציות לטלוויזיה. - צריך לעדכן את ה-SDK ל-Android 5.0 (API 21) ומעלה.
גרסת הפלטפורמה המעודכנת מספקת ממשקי API חדשים לאפליקציות לטלוויזיה. -
יוצרים או מעדכנים את פרויקט האפליקציה.
כדי לגשת לממשקי API חדשים למכשירי טלוויזיה, צריך ליצור פרויקט או לשנות פרויקט קיים שמטרגט ל-Android 5.0 (רמת API 21) ומעלה.
הצהרה על פעילות בטלוויזיה
אפליקציה שמיועדת להרצה במכשירי טלוויזיה צריכה להצהיר על פעילות של מרכז האפליקציות לטלוויזיה במניפסט שלה. לצורך זה, הוא משתמש במסנן CATEGORY_LEANBACK_LAUNCHER intent. המסנן הזה מזהה את האפליקציה שלכם כאפליקציה שמופעלת בטלוויזיה, ומאפשר ל-Google Play לזהות אותה כאפליקציה לטלוויזיה. כשמשתמש בוחר את האפליקציה שלכם במסך הבית של הטלוויזיה, ה-intent הזה מזהה איזו פעילות להפעיל.
בקטע הקוד הבא מוצג איך לכלול את מסנן Intent הזה במניפסט:
<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>
רשומה שנייה במניפסט הפעילות בדוגמה הזו מציינת שזו הפעילות להפעלה במכשיר טלוויזיה.
שימו לב: אם לא תכללו את מסנן Intent CATEGORY_LEANBACK_LAUNCHER באפליקציה, היא לא תהיה גלויה למשתמשים שמפעילים את Google Play במכשירי טלוויזיה. בנוסף, אם לאפליקציה שלכם אין את המסנן הזה כשאתם משתמשים בכלי פיתוח כדי לטעון אותה במכשיר טלוויזיה, האפליקציה לא תופיע בממשק המשתמש של הטלוויזיה.
ממשק המשתמש של אפליקציית הטלוויזיה, או החלק של הטלוויזיה באפליקציה הקיימת, צריך לספק ניווט אינטואיטיבי באמצעות שלט רחוק ממרחק של 3 מטרים. אם אתם משנים אפליקציה קיימת לשימוש בטלוויזיה, אל תשתמשו באותו פריסת פעילות לטלוויזיה שבה אתם משתמשים לטלפונים ולטאבלטים. הנחיות לעיצוב אפליקציה לטלוויזיה מופיעות במאמר עיצוב לטלוויזיה.
הצהרה על תמיכה במכשירי טלוויזיה
צריך להצהיר שהאפליקציה מיועדת ל-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>
הצהרה על כך שלא נדרש מסך מגע
אפליקציות שמיועדות להפעלה במכשירי טלוויזיה לא מסתמכות על מסכי מגע לקלט.
כדי להבהיר את זה, צריך להצהיר בקובץ המניפסט של אפליקציית הטלוויזיה שהתכונה android.hardware.touchscreen לא נדרשת. ההגדרה הזו מזהה את האפליקציה שלך כאפליקציה שיכולה לפעול במכשיר טלוויזיה, והיא נדרשת כדי שהאפליקציה שלך תיחשב כאפליקציית טלוויזיה ב-Google Play. בדוגמת הקוד הבאה אפשר לראות איך כוללים את הצהרת המניפסט הזו:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
שימו לב: בקובץ מניפסט של אפליקציה, אתם צריכים להצהיר שלא נדרש מסך מגע, כפי שמוצג בקטע הקוד לדוגמה הזה. אחרת, האפליקציה לא תופיע ב-Google Play במכשירי טלוויזיה.
הוספת סמל ורצועת באנר למסך הבית
אפליקציות ל-Android TV חייבות לספק גם סמל למסך הבית וגם תמונת באנר לכל לוקליזציה. בהתאם למכשיר Android TV, הסמל או הבאנר משמשים כנקודת ההפעלה של האפליקציה שמופיעה במסך הבית בשורות של האפליקציות והמשחקים.
כדי להוסיף אותם לאפליקציה, צריך לתאר את הסמל והבאנר במניפסט באופן הבא:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
סמל במסך הבית
אפליקציות ל-Android TV, כמו כל האפליקציות ל-Android, חייבות לספק סמל למסך הבית. שיטות מומלצות לעיצוב נקודת הפעלה מצוינת לאפליקציה ודרישות מפורטות לגבי נכסים מפורטות בהנחיות לגבי סמל האפליקציה ובאנר של אפליקציה ל-Android TV.
באנר במסך הבית
משתמשים במאפיין android:banner
עם התג <application>
כדי לספק באנר ברירת מחדל לכל הפעילויות באפליקציה, או עם התג <activity>
כדי לספק באנר לפעילות ספציפית.
לבאנר, צריך להשתמש במשאב xhdpi בגודל 320x180 פיקסלים. הטקסט חייב להיות חלק מהתמונה. אם האפליקציה שלכם זמינה ביותר משפה אחת, אתם צריכים לספק גרסאות נפרדות של הבאנר עם טקסט לכל שפה נתמכת.
שינוי הצבע של מרכז האפליקציות
שימו לב: ב-Android 12 ואילך, אין תמיכה באנימציות מותאמות אישית של מסכי פתיחה שנוצרו באמצעות SplashScreen platform API באפליקציות ל-Android TV.
כשמפעילים אפליקציה לטלוויזיה, המערכת מציגה אנימציה שנראית כמו עיגול מלא שמתרחב. כדי לשנות את הצבע של האנימציה הזו, צריך להגדיר את מאפיין android:colorPrimary
של אפליקציית הטלוויזיה או הפעילות לצבע ספציפי. בנוסף, מגדירים שני מאפייני חפיפה של מעברים לערך 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 for TV
פיתוח נייטיב הוא הדרך המומלצת ליצור אפליקציות ל-Android TV OS. בנוסף לספריות הליבה של Compose, ספריות Compose for TV מספקות רכיבים ייעודיים שנועדו במיוחד למסך הגדול:
במאמר שימוש ב-Jetpack פיתוח נייטיב ב-Android TV מוסבר איך ליצור אפליקציה לטלוויזיה באמצעות פיתוח נייטיב לטלוויזיה.
ערכת כלים לממשק משתמש של Leanback
ערכת הכלים Leanback UI מספקת ממשקי API ווידג'טים של ממשק משתמש למכשירי טלוויזיה:
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
במאמר יצירת אפליקציות להפעלת תוכן בטלוויזיה מוסבר איך ליצור אפליקציה לטלוויזיה באמצעות ערכת הכלים Leanback UI.
הפעלת אפליקציות טלוויזיה
הרצת האפליקציה היא חלק חשוב בתהליך הפיתוח. אתם יכולים להריץ את האפליקציה במכשירי טלוויזיה שהוגדרו לתמיכה בניפוי באגים ב-USB, או להשתמש במכשירי טלוויזיה וירטואליים.
הרצה במכשיר פיזי
מגדירים את מכשיר הטלוויזיה באופן הבא:
- משתמשים בכבל USB כדי לחבר את מכשיר הטלוויזיה למכונת הפיתוח. אם צריך, אפשר להיעזר במסמכי התיעוד שהיצרן של המכשיר מספק.
- במכשיר הטלוויזיה, עוברים אל הגדרות.
- בשורה מכשיר, בוחרים באפשרות מידע.
- גוללים אל Build (גרסת Build) ולוחצים על Build (גרסת Build) כמה פעמים עד שמופיעה ההודעה: "You are now a developer!" (מצב הפיתוח הופעל).
- חוזרים אל ההגדרות. בשורה העדפות, בוחרים באפשרות אפשרויות למפתחים.
- בוחרים באפשרות ניפוי באגים > ניפוי באגים ב-USB ולוחצים על הפעלה.
- חוזרים למסך הבית של הטלוויזיה.
כדי לבדוק את האפליקציה במכשיר טלוויזיה:
- ב-Android Studio, בוחרים את הפרויקט ולוחצים על Run (הפעלה)
בסרגל הכלים. - בחלון Select Deployment Target (בחירת יעד פריסה), בוחרים את מכשיר הטלוויזיה ולוחצים על OK (אישור).
הרצה במכשיר וירטואלי
הכלי AVD Manager ב-Android SDK מספק הגדרות של מכשירים שמאפשרות ליצור מכשירי טלוויזיה וירטואליים להרצה ולבדיקה של האפליקציות.
כדי ליצור מכשיר טלוויזיה וירטואלי:
- מפעילים את AVD Manager. מידע נוסף מופיע במאמר בנושא יצירה וניהול של מכשירים וירטואליים.
- בתיבת הדו-שיח AVD Manager, לוחצים על הכרטיסייה Device Definitions (הגדרות מכשיר).
- בוחרים אחת מההגדרות של מכשיר Android TV ולוחצים על Create AVD (יצירת מכשיר וירטואלי).
- בוחרים את האפשרויות של האמולטור ולוחצים על אישור כדי ליצור את ה-AVD.
הערה: כדי לקבל את הביצועים הכי טובים במכשיר האמולטור לטלוויזיה, צריך להשתמש באמולטור x86 ולהפעיל את האפשרות Use Host GPU. כדאי גם להשתמש בהאצת מכשיר וירטואלי כשהיא זמינה. מידע נוסף על האצת החומרה של אמולטור Android זמין במאמר בנושא הגדרת האצת חומרה עבור אמולטור Android.
כדי לבדוק את האפליקציה במכשיר הטלוויזיה הווירטואלי:
- ב-Android Studio, בוחרים את הפרויקט ולוחצים על Run (הפעלה)
בסרגל הכלים. - בחלון Select Deployment Target (בחירת יעד פריסה), בוחרים את מכשיר הטלוויזיה הווירטואלי ולוחצים על OK (אישור).
מידע נוסף על השימוש באמולטורים זמין במאמר הרצת אפליקציות באמולטור Android. מידע נוסף על פריסת אפליקציות מ-Android Studio למכשירים וירטואליים זמין במאמר בנושא ניפוי באגים באפליקציה.
הפעלת האפשרות להפעיל את אפליקציית הטלוויזיה כחוויית שימוש מיידי
התנסויות מיידיות מאפשרות למשתמשים לנסות את האפליקציה לטלוויזיה בלי להתקין אותה, ויכולות לעזור להגדיל את מספר המשתמשים.
כדי להגדיר את אפליקציית הטלוויזיה כך שתפעל כאפליקציה ללא התקנה במכשיר Android TV או באמולטור, קודם צריך לפעול לפי ההוראות ליצירת קובץ AAB גרסה ללא התקנה.
לאחר מכן, בקובץ 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>
אפליקציית הטלוויזיה מוגדרת עכשיו להפעלה כחוויית שימוש מיידי.
הכנת אפליקציית הטלוויזיה לפרסום
כדי להכין את האפליקציה לטלוויזיה לפרסום ולהפצה, כדאי לעיין ברשימת המשימות לאפליקציות לטלוויזיה ולפעול לפי השלבים הבאים.