إعداد التطوير باستخدام إطار عمل تطبيق Cast (CAF) لنظام التشغيل Android

المتطلبات الأساسية

تكون حزمة تطوير البرامج (SDK) الخاصة بـ Google Cast لنظام التشغيل Android جزءًا من حزمة SDK لخدمات 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 لكل وحدة. تأكد من تعديل ملف وحدة التطبيق. اطّلِع على القسم Building Project with 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:21.3.0'
        }
    

    احرص على تحديث رقم الإصدار هذا في كل مرة يتم فيها تحديث "خدمات Google Play".

    ملاحظة: إذا تجاوز عدد مراجع الطرق في تطبيقك الحد الأقصى البالغ 65 ألف، قد يتعذّر تجميع تطبيقك. قد تتمكّن من الحدّ من هذه المشكلة عند تجميع تطبيقك من خلال تحديد واجهات برمجة التطبيقات المحدّدة التي يستخدمها تطبيقك على 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