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

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

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

הערה: פלטפורמת Google Play Services מספקת גישה לטווח של ממשקי API ליצירת מודעות, לאיסוף ניתוח נתונים, לאימות משתמשים שילוב מפות ועוד. מידע נוסף זמין בקטע סקירה כללית של Google Play שירותים. חשוב לוודא שה-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:21.5.0'
        }
    

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

    הערה: אם מספר ההפניות ל-methods באפליקציה שלכם חורג עד 65 אלף, יכול להיות שהאפליקציה לא תעמוד בדרישות להדר. ייתכן שתוכל להפחית את הבעיה הזו בעת הידור האפליקציה על ידי ציון ממשקי ה-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. צפייה הפניה לפרויקט Library בשורת הפקודה כדי להבין איך לעשות את זה.

    הערה: עליכם להפנות לעותק של הספרייה מועתקות לסביבת העבודה של הפיתוח — אסור להפנות לספרייה ישירות ספריית 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