এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে আপনার ডেভেলপমেন্ট প্রকল্পে নেভিগেশন SDK সংহত করবেন।
আপনার প্রকল্পে নেভিগেশন SDK যোগ করুন
নেভিগেশন SDK গুগল ম্যাভেন রিপোজিটরির মাধ্যমে পাওয়া যায়। আপনি আপনার Gradle build.gradle অথবা Maven pom.xml কনফিগারেশন ব্যবহার করে আপনার প্রকল্পে SDK যোগ করতে পারেন।
আপনার Gradle অথবা Maven কনফিগারেশনে নিম্নলিখিত নির্ভরতা যোগ করুন, Android এর জন্য Navigation SDK এর পছন্দসই সংস্করণের জন্য
VERSION_NUMBERপ্লেসহোল্ডারটি প্রতিস্থাপন করুন।গ্রেডল
আপনার মডিউল-স্তরের
build.gradleএ নিম্নলিখিতটি যোগ করুন:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }মাভেন
আপনার
pom.xmlএ নিম্নলিখিতটি যোগ করুন:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>যদি আপনার কোনও নির্ভরতা থাকে যা Maps SDK ব্যবহার করে, তাহলে আপনাকে Maps SDK-এর উপর নির্ভরশীল প্রতিটি ঘোষিত নির্ভরতার মধ্যে নির্ভরতা বাদ দিতে হবে।
গ্রেডল
আপনার শীর্ষ-স্তরের
build.gradleএ নিম্নলিখিতগুলি যোগ করুন:allprojects { ... // Required: you must exclude the Google Play service Maps SDK from // your transitive dependencies to make sure there won't be // multiple copies of Google Maps SDK in your binary, as the Navigation // SDK already bundles the Google Maps SDK. configurations { implementation { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } }মাভেন
আপনার
pom.xmlএ নিম্নলিখিতটি যোগ করুন:<dependencies> <dependency> <groupId>project.that.brings.in.maps</groupId> <artifactId>MapsConsumer</artifactId> <version>1.0</version> <exclusions> <!-- Navigation SDK already bundles Maps SDK. You must exclude it to prevent duplication--> <exclusion> <!-- declare the exclusion here --> <groupId>com.google.android.gms</groupId> <artifactId>play-services-maps</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
বিল্ড কনফিগার করুন
প্রকল্পটি তৈরি করার পরে, আপনি নেভিগেশন SDK-এর সফল নির্মাণ এবং ব্যবহারের জন্য সেটিংস কনফিগার করতে পারেন।
স্থানীয় প্রপার্টি আপডেট করুন
- Gradle Scripts ফোল্ডারে ,
local.propertiesফাইলটি খুলুন এবংandroid.useDeprecatedNdk=trueযোগ করুন।
গ্রেডল বিল্ড স্ক্রিপ্ট আপডেট করুন
build.gradle (Module:app)ফাইলটি খুলুন এবং নেভিগেশন SDK-এর প্রয়োজনীয়তা পূরণের জন্য সেটিংস আপডেট করতে নিম্নলিখিত নির্দেশিকাগুলি ব্যবহার করুন এবং অপ্টিমাইজেশন বিকল্পগুলি সেট করার কথাও বিবেচনা করুন।নেভিগেশন SDK-এর জন্য প্রয়োজনীয় সেটিংস
-
minSdkVersion23 বা তার বেশিতে সেট করুন। -
targetSdkVersion34 বা তার বেশিতে সেট করুন। - একটি
dexOptionsসেটিং যোগ করুন যাjavaMaxHeapSizeবৃদ্ধি করে। - অতিরিক্ত লাইব্রেরির জন্য অবস্থান নির্ধারণ করুন।
- নেভিগেশন SDK-এর জন্য
repositoriesএবংdependenciesযোগ করুন। - নির্ভরতাগুলিতে সংস্করণ নম্বরগুলি সর্বশেষ উপলব্ধ সংস্করণগুলির সাথে প্রতিস্থাপন করুন।
নির্মাণের সময় কমাতে ঐচ্ছিক সেটিংস
- নির্ভরতা থেকে অব্যবহৃত কোড এবং রিসোর্সগুলি সরাতে R8/ProGuard ব্যবহার করে কোড সঙ্কুচিতকরণ এবং রিসোর্স সঙ্কুচিতকরণ সক্ষম করুন। যদি R8/ProGuard পদক্ষেপটি চালাতে খুব বেশি সময় নেয়, তাহলে উন্নয়ন কাজের জন্য মাল্টিডেক্স সক্ষম করার কথা বিবেচনা করুন।
- বিল্ডে অন্তর্ভুক্ত ভাষা অনুবাদের সংখ্যা হ্রাস করুন: ডেভেলপমেন্টের সময় একটি ভাষার জন্য
resConfigsসেট করুন। চূড়ান্ত বিল্ডের জন্য, আপনি যে ভাষাগুলি ব্যবহার করেন তার জন্যresConfigsসেট করুন। ডিফল্টরূপে, Gradle নেভিগেশন SDK দ্বারা সমর্থিত সমস্ত ভাষার জন্য রিসোর্স স্ট্রিং অন্তর্ভুক্ত করে।
Java8 সাপোর্টের জন্য ডিসুগারিং যোগ করুন
- যদি আপনি অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৪.০.০ বা তার বেশি ভার্সন ব্যবহার করে আপনার অ্যাপ তৈরি করেন, তাহলে প্লাগইনটি বেশ কয়েকটি জাভা ৮ ভাষার API ব্যবহারের জন্য সমর্থন প্রসারিত করে। আরও তথ্যের জন্য জাভা ৮ ডিসগারিং সাপোর্ট দেখুন। কম্পাইল এবং নির্ভরতা বিকল্পগুলির জন্য নীচের উদাহরণ বিল্ড স্ক্রিপ্ট স্নিপেটটি দেখুন।
- আমরা Gradle 8.4, Android Gradle প্লাগইন সংস্করণ 8.3.0 এবং Desugar লাইব্রেরি
com.android.tools:desugar_jdk_libs_nio:2.0.3ব্যবহার করার পরামর্শ দিচ্ছি। এই সেটআপটি Android সংস্করণ 6.0.0 এবং উচ্চতর সংস্করণের জন্য Navigation SDK এর সাথে সামঞ্জস্যপূর্ণ। -
appমডিউল এবং নেভিগেশন SDK-এর উপর সরাসরি নির্ভরশীল যেকোনো মডিউলের জন্য Desugar লাইব্রেরি সক্রিয় করতে হবে।
-
নিচে অ্যাপ্লিকেশনটির জন্য Gradle বিল্ড স্ক্রিপ্টের একটি উদাহরণ দেওয়া হল। আপডেটেড নির্ভরতা সেটের জন্য নমুনা অ্যাপগুলি পরীক্ষা করুন, কারণ আপনি যে Navigation SDK সংস্করণটি ব্যবহার করছেন তা এই ডকুমেন্টেশনের সামান্য এগিয়ে বা পিছনে থাকতে পারে।
apply plugin: 'com.android.application'
ext {
navSdk = "__NAVSDK_VERSION__"
}
android {
compileSdk 33
buildToolsVersion='28.0.3'
defaultConfig {
applicationId "<your id>"
// Navigation SDK supports SDK 23 and later.
minSdkVersion 23
targetSdkVersion 34
versionCode 1
versionName "1.0"
// Set this to the languages you actually use, otherwise you'll include resource strings
// for all languages supported by the Navigation SDK.
resConfigs "en"
multiDexEnabled true
}
dexOptions {
// This increases the amount of memory available to the dexer. This is required to build
// apps using the Navigation SDK.
javaMaxHeapSize "4g"
}
buildTypes {
// Run ProGuard. Note that the Navigation SDK includes its own ProGuard configuration.
// The configuration is included transitively by depending on the Navigation SDK.
// If the ProGuard step takes too long, consider enabling multidex for development work
// instead.
all {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
// Navigation SDK for Android and other libraries are hosted on Google's Maven repository.
google()
}
dependencies {
// Include the Google Navigation SDK.
// Note: remember to exclude Google Play service Maps SDK from your transitive
// dependencies to avoid duplicate copies of the Google Maps SDK.
api "com.google.android.libraries.navigation:navigation:${navSdk}"
// Declare other dependencies for your app here.
annotationProcessor "androidx.annotation:annotation:1.7.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}
আপনার অ্যাপে API কী যোগ করুন
এই বিভাগে বর্ণনা করা হয়েছে কিভাবে আপনার API কী সংরক্ষণ করবেন যাতে এটি আপনার অ্যাপ দ্বারা নিরাপদে রেফারেন্স করা যায়। আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে আপনার API কী পরীক্ষা করা উচিত নয়, তাই আমরা এটি secrets.properties ফাইলে সংরক্ষণ করার পরামর্শ দিচ্ছি, যা আপনার প্রকল্পের রুট ডিরেক্টরিতে অবস্থিত। secrets.properties ফাইল সম্পর্কে আরও তথ্যের জন্য, Gradle properties files দেখুন।
এই কাজটি সহজ করার জন্য, আমরা আপনাকে অ্যান্ড্রয়েডের জন্য সিক্রেটস গ্রেডল প্লাগইন ব্যবহার করার পরামর্শ দিচ্ছি।
আপনার গুগল ম্যাপস প্রজেক্টে অ্যান্ড্রয়েডের জন্য সিক্রেটস গ্রেডল প্লাগইন ইনস্টল করতে:
- অ্যান্ড্রয়েড স্টুডিওতে, আপনার শীর্ষ-স্তরের
build.gradle.ktsঅথবাbuild.gradleফাইলটি খুলুন এবংbuildscriptঅধীনেdependenciesউপাদানে নিম্নলিখিত কোডটি যুক্ত করুন।কোটলিন
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.secrets.gradle.plugin) apply false }
খাঁজকাটা
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
- আপনার মডিউল-স্তরের
build.gradle.ktsঅথবাbuild.gradleফাইলটি খুলুন এবংpluginsউপাদানে নিম্নলিখিত কোডটি যোগ করুন।কোটলিন
plugins { // ... alias(libs.plugins.secrets.gradle.plugin) }
খাঁজকাটা
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- আপনার মডিউল-স্তরের
build.gradle.ktsঅথবাbuild.gradleফাইলে, নিশ্চিত করুন যেtargetSdkএবংcompileSdk34 তে সেট করা আছে। - আপনার প্রকল্পটি Gradle এর সাথে সিঙ্ক করুন ।
- আপনার টপ-লেভেল ডিরেক্টরিতে
secrets.propertiesফাইলটি খুলুন, এবং তারপর নিম্নলিখিত কোডটি যোগ করুন।YOUR_API_KEYআপনার API কী দিয়ে প্রতিস্থাপন করুন। এই ফাইলটিতে আপনার কীটি সংরক্ষণ করুন কারণsecrets.propertiesএকটি সংস্করণ নিয়ন্ত্রণ সিস্টেমে চেক করা থেকে বাদ দেওয়া হয়।MAPS_API_KEY=YOUR_API_KEY
আপনার টপ-লেভেল ডিরেক্টরিতে
secrets.propertiesফাইলের মতো একই ফোল্ডারেlocal.defaults.propertiesফাইলটি তৈরি করুন এবং তারপর নিম্নলিখিত কোডটি যোগ করুন।MAPS_API_KEY=DEFAULT_API_KEY
এই ফাইলটির উদ্দেশ্য হল যদি
secrets.propertiesফাইলটি না পাওয়া যায়, তাহলে API কী-এর জন্য একটি ব্যাকআপ লোকেশন প্রদান করা যাতে বিল্ডগুলি ব্যর্থ না হয়। এটি ঘটতে পারে যদি আপনি এমন একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা থেকে অ্যাপটি ক্লোন করেন যাsecrets.propertiesবাদ দেয় এবং আপনি এখনও আপনার API কী প্রদানের জন্য স্থানীয়ভাবে একটিsecrets.propertiesফাইল তৈরি না করেন।- আপনার
AndroidManifest.xmlফাইলে,com.google.android.geo.API_KEYএ যান এবংandroid:value attributeআপডেট করুন। যদি<meta-data>ট্যাগটি বিদ্যমান না থাকে, তাহলে এটি<application>ট্যাগের একটি শিশু হিসাবে তৈরি করুন।<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
দ্রষ্টব্য:
com.google.android.geo.API_KEYহল API কী-এর জন্য প্রস্তাবিত মেটাডেটা নাম। এই নামের একটি কী Android প্ল্যাটফর্মে একাধিক Google Maps-ভিত্তিক API-তে প্রমাণীকরণ করতে ব্যবহার করা যেতে পারে, যার মধ্যে Android-এর জন্য Navigation SDKও অন্তর্ভুক্ত। ব্যাকওয়ার্ডস সামঞ্জস্যের জন্য, APIcom.google.android.maps.v2.API_KEYনামটিও সমর্থন করে। এই লিগ্যাসি নামটি শুধুমাত্র Android Maps API v2-তে প্রমাণীকরণের অনুমতি দেয়। একটি অ্যাপ্লিকেশন API কী মেটাডেটা নামগুলির মধ্যে শুধুমাত্র একটি নির্দিষ্ট করতে পারে। যদি দুটিই নির্দিষ্ট করা থাকে, তাহলে API একটি ব্যতিক্রম দেয়। অ্যান্ড্রয়েড স্টুডিওতে, আপনার মডিউল-লেভেল
build.gradle.ktsঅথবাbuild.gradleফাইলটি খুলুন এবংsecretsসম্পত্তিটি সম্পাদনা করুন। যদিsecretsসম্পত্তিটি বিদ্যমান না থাকে, তাহলে এটি যোগ করুন।প্লাগইনের বৈশিষ্ট্য সম্পাদনা করে
propertiesFileNameকেsecrets.propertiesএ সেট করুন,defaultPropertiesFileNamelocal.defaults.propertiesএ সেট করুন, এবং অন্য যেকোনো বৈশিষ্ট্য সেট করুন।কোটলিন
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
খাঁজকাটা
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
আপনার অ্যাপে প্রয়োজনীয় অ্যাট্রিবিউশন অন্তর্ভুক্ত করুন
আপনি যদি আপনার অ্যাপে Android এর জন্য নেভিগেশন SDK ব্যবহার করেন, তাহলে আপনার অ্যাপের আইনি বিজ্ঞপ্তি বিভাগের অংশ হিসেবে অ্যাট্রিবিউশন টেক্সট এবং ওপেন সোর্স লাইসেন্স অন্তর্ভুক্ত করতে হবে।
আপনি প্রয়োজনীয় অ্যাট্রিবিউশন টেক্সট এবং ওপেন সোর্স লাইসেন্সগুলি নেভিগেশন SDK for Android জিপ ফাইলে খুঁজে পেতে পারেন:
-
NOTICE.txt -
LICENSES.txt
আপনি যদি একজন মোবিলিটি বা ফ্লিট ইঞ্জিন ডেলিভারি গ্রাহক হন
আপনি যদি মোবিলিটি বা ফ্লিট ইঞ্জিন ডেলিভারি গ্রাহক হন, তাহলে মোবিলিটি ডকুমেন্টেশনে বিলিং সম্পর্কে জানুন। লেনদেন রেকর্ড করার বিষয়ে আরও তথ্যের জন্য, বিলিং সেট আপ করুন , বিলযোগ্য লেনদেন রেকর্ড করুন , রিপোর্টিং করুন এবং বিলযোগ্য লেনদেন রেকর্ড করুন (অ্যান্ড্রয়েড) দেখুন।