ओपन सोर्स नोटिस शामिल करें

Google Play services SDK टूल में कभी-कभी ओपन सोर्स लाइब्रेरी शामिल होती हैं या ये उन पर निर्भर होते हैं. ओपन सोर्स लाइब्रेरी के लाइसेंस से जुड़ी ज़रूरी शर्तों का पालन करने के लिए, डेवलपर के तौर पर यह आपकी ज़िम्मेदारी है कि आप अपने ऐप्लिकेशन में इस्तेमाल की गई ओपन सोर्स लाइब्रेरी के लिए, सूचनाएं सही तरीके से दिखाएं.

Google Play services में टूल का एक सेट शामिल होता है. इसे डेवलपर को अपने ऐप्लिकेशन में इस्तेमाल की गई लाइब्रेरी के ओपन सोर्स सॉफ़्टवेयर (ओएसएस) की सूचनाएं आसानी से देने का तरीका उपलब्ध कराने के लिए डिज़ाइन किया गया है. oss-licenses-plugin और Google Play services oss-licenses SDK, शामिल की गई लाइब्रेरी से लाइसेंस की शर्तें इकट्ठा करते हैं. ये शर्तें, उनकी POM फ़ाइलों में बताई गई होती हैं. इसके बाद, ये SDK टूल एक activity बनाते हैं, जिसका इस्तेमाल इन शर्तों को दिखाने के लिए किया जा सकता है. यह टूल, लाइसेंस की जानकारी कैसे ढूंढता है और उसे पैकेज कैसे करता है, इस बारे में ज़्यादा जानें.

Gradle प्लगिन जोड़ना

प्रोजेक्ट की सेटिंग के pluginManagement में जाकर, यह तरीका अपनाएं:

  1. Google Maven repository को शामिल करें.
  2. PluginManagement में oss-licenses प्लगिन की समस्या हल करें.

यहां दिए गए कोड स्निपेट में इन चरणों को दिखाया गया है:

Kotlin डीएसएल

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

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

ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, प्लगिन लागू करने के लिए, फ़ाइल में सबसे ऊपर मौजूद com.android.application प्लगिन की मौजूदा जानकारी के नीचे यह लाइन जोड़ें:

Kotlin डीएसएल

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 डीएसएल

build.gradle.kts

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

Groovy DSL

build.gradle

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

लाइसेंस की जानकारी दिखाना

जब आपका ऐप्लिकेशन बनता है, तब 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));

गतिविधि में कोई थीम लागू करना

गतिविधि में कोई थीम लागू की जा सकती है, ताकि वह आपके ऐप्लिकेशन की अन्य गतिविधियों में इस्तेमाल की गई थीम से मेल खाए. इसके लिए, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में मौजूद <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 ऐसेट में एम्बेड करता है. यह ऐसेट आपके ऐप्लिकेशन में शामिल होती है.