راه‌اندازی برای توسعه با «چارچوب برنامه Cast» (CAF) برای Android

پیش‌نیازها

کیت توسعه نرم‌افزار Google Cast برای Android بخشی از کیت توسعه نرم‌افزار خدمات Google Play است و نیازی به بارگیری جداگانه ندارد.

توجه: خدمات Google Play به شما امکان می‌دهد به مجموعه‌ای از میاناهای برنامه‌سازی کاربردی برای ساختن آگهی، جمع‌آوری تجزیه‌وتحلیل، اصالت‌سنجی کاربران، ادغام نقشه‌ها، و موارد دیگر دسترسی داشته باشید. برای اطلاعات بیشتر، به نمای کلی خدمات Google Play مراجعه کنید. مهم است که مطمئن شوید APK صحیح خدمات Google Play در دستگاه کاربر نصب شده است، زیرا ممکن است به‌روزرسانی‌ها بلافاصله به همه کاربران نرسد.

افزودن «خدمات Google Play» به پروژه

محیط توسعه نرم‌افزار خود را در زیر انتخاب کنید و با دنبال کردن مراحل ارائه‌شده، «خدمات Google Play» را به پروژه‌تان اضافه کنید.

استودیو Android

برای دردسترس قرار دادن میاناهای برنامه‌سازی کاربردی خدمات Google Play برای برنامه‌تان:

  1. فایل build.gradle را در فهرست راهنمای واحد برنامه باز کنید.

    توجه: پروژه‌های Android Studio حاوی یک فایل build.gradle در سطح بالا و یک فایل build.gradle برای هر واحد هستند. حتماً فایل را برای واحد برنامه ویرایش کنید. برای اطلاعات بیشتر درباره Gradle، به ساختن پروژه با Gradle مراجعه کنید.

  2. تأیید کنید که google() در repositories فهرست‌شده گنجانده شده است.
    repositories {
        google()
    }
  3. قانون ساخت جدیدی در 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» به‌روز می‌شود، این شماره نسخه را به‌روز می‌کنید.

    توجه: اگر تعداد ارجاع‌های روش در برنامه‌تان از محدودیت ۶۵ هزار فراتر رود، ممکن است برنامه‌تان کامپایل نشود. شاید بتوانید این مشکل را هنگام کامپایل کردن برنامه‌تان با مشخص کردن فقط میاناهای برنامه‌سازی کاربردی خاص «خدمات Google Play» که برنامه‌تان استفاده می‌کند، به‌جای همه آن‌ها، کاهش دهید. برای کسب اطلاعات درباره نحوه انجام این کار، به کامپایل کردن انتخابی میاناهای برنامه‌سازی کاربردی در فایل اجرایی مراجعه کنید.

  4. تغییرات را ذخیره کنید و روی همگام‌سازی پروژه با فایل‌های Gradle در نوارابزار کلیک کنید.

محیط توسعه یکپارچه دیگر

برای دردسترس قرار دادن میاناهای برنامه‌سازی کاربردی خدمات Google Play برای برنامه‌تان:

  1. پروژه کتابخانه را در <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ به مکانی که پروژه‌های برنامه Android خود را نگهداری می‌کنید کپی کنید.
  2. در پروژه برنامه‌تان، به پروژه کتابخانه خدمات Google Play ارجاع دهید. برای اطلاعات بیشتر درباره نحوه انجام این کار، ارجاع به پروژه کتابخانه در خط فرمان را ببینید.

    توجه: باید به نسخه‌ای از کتابخانه که در فضای کاری توسعه‌تان کپی کرده‌اید ارجاع دهید—نباید مستقیماً از دایرکتوری Android SDK به کتابخانه ارجاع دهید.

  3. پس‌از اینکه کتابخانه خدمات Google Play را به‌عنوان وابستگی برای پروژه برنامه‌تان اضافه کردید، فایل مانیفست برنامه‌تان را باز کنید و برچسب زیر را به‌عنوان فرزند عنصر <application> اضافه کنید:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

پس‌از راه‌اندازی پروژه برای ارجاع به پروژه کتابخانه، می‌توانید توسعه ویژگی‌ها را با میاناهای برنامه‌سازی کاربردی خدمات Google Play شروع کنید.

ایجاد استثنای 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