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

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

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

গ্রেডল প্লাগইন যোগ করুন

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

  1. গুগল মেভেন রিপোজিটরি অন্তর্ভুক্ত করুন।
  2. PluginManagementoss-licenses প্লাগইনটি সমাধান করুন।

নিম্নলিখিত কোড স্নিপেটটি এই ধাপগুলো দেখায়:

কোটলিন ডিএসএল

সেটিংস.গ্রেডল.কেটিএস

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.11.0")
      }
    }
  }
}

গ্রুভি ডিএসএল

বিল্ড.গ্রেডল

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.11.0")
      }
    }
  }
}

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

কোটলিন ডিএসএল

অ্যাপ/বিল্ড.গ্রেডল.কেটিএস

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

গ্রুভি ডিএসএল

অ্যাপ/বিল্ড.গ্রেডল

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

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

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

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

কোটলিন ডিএসএল

build.gradle.kts

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

গ্রুভি ডিএসএল

বিল্ড.গ্রেডল

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

লাইসেন্সের তথ্য প্রদর্শন করুন

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

কোটলিন

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))

জাভা

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));

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

তালিকা দৃশ্য যার প্রতিটি উপাদানে একটি ওপেন সোর্স লাইব্রেরির নাম রয়েছে।

চিত্র ১। লাইসেন্স মেনু অ্যাক্টিভিটিটি একটি অ্যাপে ব্যবহৃত ওপেন সোর্স লাইব্রেরিগুলোর একটি নির্বাচনযোগ্য তালিকা প্রদর্শন করে।

কার্যকলাপের শিরোনাম সেট করুন

ডিফল্টরূপে, প্রদর্শিত অ্যাক্টিভিটিটির শিরোনাম থাকে "Open source licenses"। আপনি setActivityTitle() কল করে অ্যাক্টিভিটিটির শিরোনাম কাস্টমাইজ করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

কোটলিন

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

জাভা

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

কার্যক্রমে একটি বিষয়বস্তু প্রয়োগ করুন।

আপনার অ্যাপের অন্যান্য অ্যাক্টিভিটিতে ব্যবহৃত থিমের সাথে মিলিয়ে আপনি অ্যাক্টিভিটিতে একটি থিম প্রয়োগ করতে পারেন। এটি করার জন্য, নিম্নলিখিত কোড স্নিপেটে দেখানো অনুযায়ী আপনার অ্যাপের ম্যানিফেস্ট ফাইলের মধ্যে একটি <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>

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

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