المتطلّبات الأساسية
- ثبِّت أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android باستخدام مدير حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- ثبِّت أحدث إصدار من مكتبات AndroidX appcompat وmediarouter من خلال إدارة حزم تطوير البرامج (SDK) لنظام التشغيل Android.
- ثبِّت أحدث إصدار من حزمة تطوير البرامج (SDK) للبثّ في "خدمات Google Play" من خلال "إدارة حِزم تطوير البرامج (SDK) لنظام التشغيل Android".
تعتبر حزمة SDK لـ Google Cast لنظام Android جزءًا من حزمة SDK لخدمات Google Play ولا تحتاج إلى تنزيلها بشكل منفصل.
ملاحظة: تتيح لك خدمات Google Play الوصول إلى مجموعة من واجهات برمجة التطبيقات لإنشاء الإعلانات وجمع الإحصاءات ومصادقة المستخدمين ودمج الخرائط وغير ذلك الكثير. للحصول على مزيد من المعلومات، يمكنك الاطلاع على نظرة عامة على خدمات Google Play. من المهم بالنسبة إليك التأكّد من تثبيت حِزمة APK الصحيحة لخدمات Google Play على جهاز المستخدم لأنّ التحديثات قد لا تصل إلى جميع المستخدمين على الفور.
إضافة "خدمات Google Play" إلى مشروعك
اختَر بيئة التطوير أدناه وأضِف "خدمات Google Play" إلى مشروعك من خلال اتّباع الخطوات الموضّحة.
استوديو Android
لإتاحة واجهات برمجة التطبيقات لخدمات Google Play في تطبيقك، اتّبِع الخطوات التالية:
- افتح ملف
build.gradle
داخل دليل وحدة التطبيق.ملاحظة: تتضمّن مشاريع "استوديو Android" ملف
build.gradle
ذي مستوى أعلى وملفbuild.gradle
لكل وحدة. تأكد من تحرير الملف الخاص بوحدة التطبيق لديك. راجع إنشاء مشروعك باستخدام Gradle للحصول على مزيد من المعلومات حول Gradle. - تأكَّد من أنّ
google()
مدرَج فيrepositories
المدرَج.repositories {
- أضِف قاعدة إصدار جديدة ضمن
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".
ملاحظة: إذا تجاوز عدد مراجع الطُرق في تطبيقك الحد الأقصى البالغ 65 ألفًا، قد يتعذّر على التطبيق تجميع البيانات. قد تتمكن من الحد من هذه المشكلة عند تجميع تطبيقك من خلال تحديد واجهات برمجة التطبيقات المحددة لخدمات Google Play التي يستخدمها تطبيقك فقط، بدلاً من جميع واجهات برمجة التطبيقات. للحصول على معلومات حول كيفية إجراء ذلك، يُرجى الاطّلاع على التجميع الانتقائي لواجهات برمجة التطبيقات في تطبيقك القابل للتنفيذ.
- احفظ التغييرات وانقر على مزامنة المشروع مع ملفات Gradle في شريط الأدوات.
بيئة تطوير متكاملة (IDE) أخرى
لإتاحة واجهات برمجة التطبيقات لخدمات Google Play في تطبيقك، اتّبِع الخطوات التالية:
- انسخ مشروع المكتبة في
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
إلى المكان الذي تحتفظ فيه بمشاريع تطبيقات Android. - في مشروع تطبيقك، يُرجى الإشارة إلى مشروع مكتبة "خدمات Google Play". يُرجى الاطّلاع على
إنشاء نسخة من مشروع المكتبة على سطر الأوامر للحصول على مزيد من المعلومات حول كيفية إجراء ذلك.
ملاحظة: يجب الإشارة إلى نسخة من المكتبة التي نسختها إلى مساحة عمل التطوير، ويجب عدم الرجوع إلى المكتبة مباشرةً من دليل حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- بعد إضافة مكتبة "خدمات Google Play" بصفتها تابعة لمشروع تطبيقك،
افتح ملف البيان لتطبيقك وأضِف العلامة التالية كعنصر ثانوي للعنصر
<application>
:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
بعد إعداد مشروعك للإشارة إلى مشروع المكتبة، يمكنك البدء في تطوير الميزات باستخدام واجهات برمجة التطبيقات لخدمات Google Play.
إنشاء استثناء Proguard
لمنع
ProGuard من إزالة الفئات المطلوبة،
أضِف الأسطر التالية في
ملف
:
-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