পূর্বশর্ত
- Android SDK ম্যানেজার ব্যবহার করে Android SDK-এর লেটেস্ট ভার্সন ইনস্টল করুন।
- Android SDK ম্যানেজার-এর মাধ্যমে appcompat ও mediarouter AndroidX লাইব্রেরির লেটেস্ট ভার্সন ইনস্টল করুন।
- Android SDK ম্যানেজারের মাধ্যমে লেটেস্ট Google Play পরিষেবায় Cast SDK ইনস্টল করুন।
Android-এর জন্য Google Cast SDK হল Google Play পরিষেবা SDK-এর অংশ এবং এটি আলাদা করে ডাউনলোড করতে হয় না।
মনে রাখবেন: Google Play পরিষেবা আপনাকে বিজ্ঞাপন তৈরি, অ্যানালিটিক্স সংগ্রহ, ব্যবহারকারীকে যাচাইকরণ, ম্যাপ ইন্টিগ্রেট করা এবং আরও অনেক কিছুর জন্য বিভিন্ন ধরনের API অ্যাক্সেস করতে দেয়। আরও তথ্যের জন্য, Google Play পরিষেবার ওভারভিউ দেখুন। আপডেট সব ব্যবহারকারীর কাছে সঙ্গে সঙ্গে নাও পৌঁছাতে পারে, তাই কোনও ব্যবহারকারীর ডিভাইসে সঠিক Google Play পরিষেবার APK ইনস্টল করা আছে কিনা তা নিশ্চিত করা আপনার জন্য গুরুত্বপূর্ণ।
আপনার প্রোজেক্টে Google Play পরিষেবা যোগ করুন
নিচে থেকে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট বেছে নিন এবং প্রদত্ত ধাপগুলি অনুসরণ করে আপনার প্রোজেক্টে Google Play পরিষেবা যোগ করুন।
Android Studio
আপনার অ্যাপের জন্য Google Play পরিষেবা API উপলভ্য করতে:
- আপনার অ্যাপ্লিকেশন মডিউল ডিরেক্টরির মধ্যে
build.gradleফাইলটি খুলুন।মনে রাখবেন: Android Studio প্রোজেক্টে টপ-লেভেল
build.gradleফাইল এবং প্রতিটি মডিউলের জন্য একটিbuild.gradleফাইল থাকে। আপনার অ্যাপ্লিকেশন মডিউলের জন্য ফাইলটি এডিট করতে ভুলবেন না। Gradle সম্পর্কে আরও তথ্যের জন্য Gradle-এর সাহায্যে আপনার প্রোজেক্ট তৈরি করা দেখুন। repositories-এর তালিকায়google()অন্তর্ভুক্ত আছে কিনা তা যাচাই করুন।repositories {google() }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:22.3.1' }
Google Play পরিষেবা আপডেট করা হলে, এই ভার্সন নম্বরটি আপডেট করতে ভুলবেন না।
মনে রাখবেন: আপনার অ্যাপে মেথড রেফারেন্সের সংখ্যা ৬৫ হাজারের সীমা পেরিয়ে গেলে, আপনার অ্যাপ কম্পাইল করতে নাও পারে। আপনার অ্যাপ কম্পাইল করার সময়, সবকটি Google Play পরিষেবার API-এর পরিবর্তে শুধুমাত্র আপনার অ্যাপ ব্যবহার করে এমন নির্দিষ্ট API উল্লেখ করে আপনি এই সমস্যা কমাতে পারেন। এটি কীভাবে করবেন সেই বিষয়ে তথ্য পেতে, আপনার এক্সিকিউটেবল ফাইলে বেছে বেছে API কম্পাইল করা লিঙ্কটি দেখুন।
- পরিবর্তন সেভ করুন এবং টুলবারে Gradle ফাইলের সাথে প্রোজেক্ট সিঙ্ক করুন বিকল্পে ক্লিক করুন।
অন্যান্য IDE
আপনার অ্যাপের জন্য Google Play পরিষেবা API উপলভ্য করতে:
- আপনি যেখানে Android অ্যাপ প্রোজেক্ট ম্যানেজ করেন, সেখানে
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/লাইব্রেরি প্রোজেক্ট কপি করুন। - আপনার অ্যাপ প্রোজেক্টে, Google Play পরিষেবা লাইব্রেরি প্রোজেক্টের রেফারেন্স দিন। এটি কীভাবে করবেন সেই সম্পর্কে আরও তথ্য পেতে
কমান্ড লাইনে লাইব্রেরি প্রজেক্ট রেফারেন্স করা দেখুন।
মনে রাখবেন: আপনার ডেভেলপমেন্ট ওয়ার্কস্পেসে কপি করা লাইব্রেরির কপি আপনাকে রেফারেন্স করতে হবে— Android SDK ডিরেক্টরি থেকে সরাসরি লাইব্রেরি রেফারেন্স করলে চলবে না।
- আপনার অ্যাপ প্রোজেক্টের জন্য Google Play services লাইব্রেরি একটি ডিপেন্ডেন্সি হিসেবে যোগ করার পরে,
আপনার অ্যাপের মেনিফেস্ট ফাইল খুলুন এবং
<application>এলিমেন্টের চাইল্ড হিসেবে নিম্নলিখিত ট্যাগ যোগ করুন:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
লাইব্রেরি প্রজেক্টের রেফারেন্স হিসেবে আপনার প্রজেক্ট সেট-আপ করা হয়ে গেলে, আপনি Google Play পরিষেবা API-এর সাহায্যে ফিচার ডেভেলপ করা শুরু করতে পারবেন।
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