المتطلبات الأساسية
- ثبِّت أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android باستخدام إدارة حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- ثبِّت أحدث إصدار من تطبيق appcompat وmediarouter AndroidX Libraries من خلال Android SDK Manager.
- ثبِّت أحدث إصدار من SDK للإرسال إلى خدمات Google Play من خلال مدير SDK لنظام التشغيل Android.
تعتبر حزمة Google Cast SDK لنظام التشغيل 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.4.0' }
احرص على تحديث رقم الإصدار هذا في كل مرة يتم فيها تحديث "خدمات Google Play".
ملاحظة: إذا تجاوز عدد مراجع الطُرق في تطبيقك الحدّ الأقصى المسموح به البالغ 65 ألف، قد يتعذّر تجميع تطبيقك. قد تتمكن من الحدّ من هذه المشكلة عند تجميع تطبيقك من خلال تحديد واجهات برمجة التطبيقات المحددة لخدمات Google Play التي يستخدمها تطبيقك فقط، بدلاً من كلها. وللحصول على معلومات حول كيفية إجراء ذلك، اطّلع على تجميع واجهات برمجة التطبيقات بشكل انتقائي في ملفك التنفيذي.
- احفظ التغييرات، وانقر على مزامنة المشروع مع ملفات Gradle في شريط الأدوات.
بيئة التطوير المتكاملة الأخرى
لإتاحة واجهات برمجة التطبيقات لخدمات Google Play في تطبيقك:
- انسخ مشروع المكتبة على
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
إلى الموقع الذي تحتفظ فيه بمشاريع تطبيقات Android. - في مشروع تطبيقك، أشِر إلى مشروع مكتبة "خدمات Google Play". راجِع
الرجوع إلى مشروع مكتبة على سطر الأوامر للحصول على مزيد من المعلومات حول كيفية إجراء ذلك.
ملاحظة: يجب أن تشير إلى نسخة من المكتبة التي نسختها إلى مساحة عمل التطوير، ويجب ألا تشير إلى المكتبة مباشرةً من دليل Android SDK.
- بعد إضافة مكتبة "خدمات 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