ওপেন সোর্স বিজ্ঞপ্তি অন্তর্ভুক্ত করুন

Google Play পরিষেবা SDK-তে কখনও কখনও ওপেন সোর্স লাইব্রেরি অন্তর্ভুক্ত থাকে বা এটি সেগুলির উপর নির্ভর করে। ওপেন সোর্স লাইব্রেরির লাইসেন্স সংক্রান্ত প্রয়োজনীয়তা মেনে চলার জন্য, আপনি একজন ডেভেলপার হিসেবে, আপনার অ্যাপ ব্যবহার করে এমন ওপেন সোর্স লাইব্রেরির বিজ্ঞপ্তি যথাযথভাবে দেখানোর জন্য দায়ী।

Google Play পরিষেবায় এমন কিছু টুলের সেট অন্তর্ভুক্ত থাকে যা ডেভেলপারদের তাদের অ্যাপে ব্যবহৃত লাইব্রেরির ওপেন সোর্স সফ্টওয়্যার (OSS) বিজ্ঞপ্তি প্রকাশ করার একটি সহজ উপায় প্রদান করার জন্য ডিজাইন করা হয়েছে। oss-licenses-plugin এবং Google Play পরিষেবা oss-licenses SDK অন্তর্ভুক্ত লাইব্রেরি থেকে লাইসেন্সের শর্তাবলী সংগ্রহ করে, যেমনটি তাদের POM ফাইলে ঘোষণা করা হয়েছে এবং একটি অ্যাক্টিভিটি তৈরি করে যা এই শর্তাবলী দেখানোর জন্য ব্যবহার করা যেতে পারে। টুল কীভাবে লাইসেন্স সংক্রান্ত তথ্য খুঁজে পায় ও প্যাকেজ করে সেই সম্পর্কে আরও জানুন।

Gradle প্লাগ-ইন যোগ করুন

আপনার প্রোজেক্ট সেটিংসের pluginManagement-এ, নিম্নলিখিত কাজগুলি করুন:

  1. Google Maven repository অন্তর্ভুক্ত করুন।
  2. PluginManagement-এ oss-licenses প্লাগ-ইন সংক্রান্ত সমস্যার সমাধান করুন।

নিচের কোড স্নিপেটে এই ধাপগুলি দেখানো হয়েছে:

Kotlin DSL

settings.gradle.kts

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

Groovy DSL

build.gradle

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

আপনার অ্যাপ-লেভেল বিল্ড ফাইলে, ফাইলের উপরে com.android.application প্লাগ-ইনের আগে থেকে থাকা ঘোষণার নিচে নিম্নলিখিত লাইন যোগ করে প্লাগ-ইন প্রয়োগ করুন:

Kotlin DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

Groovy DSL

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

আপনি GitHub-এ এই প্লাগ-ইনের কোড দেখতে পাবেন।

আপনার অ্যাপে play-services-oss-licenses লাইব্রেরি যোগ করুন

আপনার অ্যাপ-লেভেল বিল্ড ফাইলের dependencies বিভাগে, play-services-oss-licenses লাইব্রেরির উপর নির্ভরতা যোগ করুন:

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.5.2")

Groovy DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.5.2'

লাইসেন্স সংক্রান্ত তথ্য দেখান

আপনার অ্যাপ তৈরি করার সময়, Gradle প্লাগ-ইন লাইসেন্স প্রসেস করে এবং সেগুলি আপনার অ্যাপের রিসোর্সে যোগ করে। লাইসেন্স সহজে দেখাতে, আপনি এমন অ্যাক্টিভিটি লঞ্চ করতে পারেন যা আপনার অ্যাপের উপযুক্ত পয়েন্টে play-services-oss-licenses লাইব্রেরি প্রদান করে, যেমন নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

// When the user selects an option to see the licenses:
startActivity(new Intent(this, OssLicensesMenuActivity.class));

অ্যাক্টিভিটি চালু হলে, এটি আপনার অ্যাপে কম্পাইল করা ওপেন সোর্স লাইব্রেরির একটি তালিকা দেখায়, যার মধ্যে অ্যাপের ব্যবহার করা লাইব্রেরিও অন্তর্ভুক্ত থাকে, যেমনটি চিত্র ১-এ দেখানো হয়েছে। ব্যবহারকারী কোনও লাইব্রেরির নাম ট্যাপ করে সেই লাইব্রেরির অতিরিক্ত লাইসেন্স সংক্রান্ত তথ্য দেখতে পারেন।

প্রতিটি এলিমেন্টে ওপেন সোর্স লাইব্রেরির নাম সহ তালিকা ভিউ

ছবি ১. লাইসেন্স মেনু অ্যাক্টিভিটি থেকে ওপেন সোর্স লাইব্রেরির একটি তালিকা দেখা যায়, যেখান থেকে বেছে নেওয়া যায়। কোনও অ্যাপ এই লাইব্রেরি ব্যবহার করে।

অ্যাক্টিভিটির নাম সেট করা

ডিফল্ট হিসেবে, দেখানো অ্যাক্টিভিটির শীর্ষক হল "ওপেন সোর্স লাইসেন্স"। আপনি setActivityTitle() কল করে অ্যাক্টিভিটির শীর্ষক কাস্টমাইজ করতে পারবেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

অ্যাক্টিভিটিতে থিম প্রয়োগ করা

OssLicensesMenuActivity-এ থিম প্রয়োগ করার বিভিন্ন উপায় আছে, আপনার অ্যাপ Material 3 নাকি XML-ভিত্তিক থিম ব্যবহার করে তার উপর নির্ভর করে।

Material 3 ব্যবহার করে এমন অ্যাপ

যেসব অ্যাপ Material 3 ব্যবহার করে, সেগুলির ক্ষেত্রে, অ্যাক্টিভিটিতে কাস্টম থিম প্রয়োগ করতে, আপনি setTheme() মেথড কল করতে পারবেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography)
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography);
startActivity(new Intent(this, OssLicensesMenuActivity.class));

XML থিম ব্যবহার করে এমন অ্যাপ

XML থিম ব্যবহার করে এমন অ্যাপের জন্য, আপনি ম্যানিফেস্টে অ্যাক্টিভিটিতে একটি থিম প্রয়োগ করতে পারেন যাতে আপনার অ্যাপের অন্যান্য অ্যাক্টিভিটিতে ব্যবহৃত থিমের সাথে মেলে। এটি করতে, আপনার অ্যাপের ম্যানিফেস্ট ফাইলের মধ্যে <activity> এলিমেন্টে ওপেন সোর্স লাইসেন্স অ্যাক্টিভিটি অন্তর্ভুক্ত করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

<application android:theme="@style/AppTheme" ...>
    <activity
        android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity"
        tools:replace="android:theme"
        android:theme="@style/AppTheme" />
</application>

লাইসেন্সের তালিকা কীভাবে নির্ধারণ করা হয়

কম্পাইল করার সময়, Gradle প্লাগ-ইন আপনার অ্যাপের প্রোজেক্টের POM ডিপেন্ডেন্সি স্ক্যান করে। অ্যাপের সরাসরি ডিপেন্ডেন্সির জন্য Maven POM থাকলে, প্লাগ-ইন প্রতিটি <licenses> এলিমেন্ট প্রসেস করে এবং আপনার অ্যাপের সাথে অন্তর্ভুক্ত Android অ্যাসেটে প্রতিটি লাইসেন্সের লিঙ্ক ও শীর্ষক এম্বেড করে।