הגדרה של פיתוח באמצעות Cast Application Framework (CAF) ל-Android

דרישות מוקדמות

‫Google Cast SDK ל-Android הוא חלק מ-Google Play Services SDK, ואין צורך להוריד אותו בנפרד.

הערה: Google Play Services נותנת לכם גישה למגוון ממשקי API ליצירת מודעות, לאיסוף ניתוחים, לאימות משתמשים, לשילוב מפות ועוד. מידע נוסף זמין במאמר סקירה כללית של Google Play Services. חשוב לוודא שמותקן במכשיר של המשתמש קובץ ה-APK הנכון של Google Play Services, כי יכול להיות שהעדכונים לא יגיעו לכל המשתמשים באופן מיידי.

הוספת Google Play Services לפרויקט

בוחרים את סביבת הפיתוח הרלוונטית ומוסיפים את Google Play Services לפרויקט לפי השלבים הבאים.

Android Studio

כדי שממשקי ה-API של Google Play Services יהיו זמינים לאפליקציה:

  1. פותחים את הקובץ build.gradle בספריית המודולים של האפליקציה.

    הערה: פרויקטים ב-Android Studio מכילים קובץ build.gradle ברמה העליונה וקובץ build.gradle לכל מודול. חשוב לערוך את הקובץ של מודול האפליקציה. מידע נוסף על Gradle זמין במאמר בניית הפרויקט באמצעות Gradle.

  2. מוודאים שהערך google() נכלל ב-repositories שמופיע ברשימה.
    repositories {
        google()
    }
  3. מוסיפים כלל build חדש בקובץ dependencies לגרסה העדכנית של play-services. לדוגמה:
    apply plugin: 'com.android.application'
        ...
    
        dependencies {
            implementation 'androidx.appcompat:appcompat:1.3.1'
            implementation 'androidx.mediarouter:mediarouter:1.2.5'
            implementation 'com.google.android.gms:play-services-cast-framework:23.0.0'
        }

    חשוב לעדכן את מספר הגרסה הזה בכל פעם שמעדכנים את Google Play Services.

    הערה: אם מספר ההפניות לשיטות באפליקציה חורג מהמגבלה של 65,000, יכול להיות שהאפליקציה לא תעבור קומפילציה. כדי לצמצם את הבעיה הזו, אפשר לציין בזמן הידור האפליקציה רק את ממשקי ה-API הספציפיים של Google Play Services שבהם האפליקציה משתמשת, במקום את כולם. למידע נוסף, קראו את המאמר הידור סלקטיבי של ממשקי API לקובץ ההפעלה.

  4. שומרים את השינויים ולוחצים על Sync Project with Gradle Files (סנכרון הפרויקט עם קובצי Gradle) בסרגל הכלים.

סביבת פיתוח משולבת (IDE) אחרת

כדי שממשקי ה-API של Google Play Services יהיו זמינים לאפליקציה:

  1. מעתיקים את פרויקט הספרייה ב-<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ למיקום שבו אתם שומרים את הפרויקטים של האפליקציות ל-Android.
  2. בפרויקט של האפליקציה, מפנים לפרויקט הספרייה של Google Play Services. למידע נוסף על אופן הביצוע, ראו הפניה לפרויקט ספרייה בשורת הפקודה.

    הערה: צריך להפנות לעותק של הספרייה שהעתקתם לסביבת העבודה לפיתוח, ולא ישירות לספרייה ב-Android SDK.

  3. אחרי שמוסיפים את ספריית Google Play Services כתלות בפרויקט של האפליקציה, פותחים את קובץ המניפסט של האפליקציה ומוסיפים את התג הבא כצאצא של הרכיב <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

אחרי שמגדירים את הפרויקט כך שיפנה לפרויקט הספרייה, אפשר להתחיל לפתח תכונות באמצעות ממשקי ה-API של Google Play Services.

יצירת חריג ב-Proguard

כדי למנוע מ-ProGuard להסיר מחלקות נדרשות, מוסיפים את השורות הבאות לקובץ /proguard-project.txt:

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames class * implements android.os.Parcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <methods>;
}

-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep public @com.google.android.gms.common.util.DynamiteApi class * {
  public <fields>;
  public <methods>;
}

-dontwarn android.security.NetworkSecurityPolicy