Google Play services में कभी-कभी ओपन सोर्स लाइब्रेरी शामिल होती हैं या उन पर निर्भर होता है. ओपन सोर्स लाइब्रेरी के लाइसेंस की ज़रूरी शर्तों का पालन करने के लिए, डेवलपर के तौर पर आपके पास उन ओपन सोर्स लाइब्रेरी के लिए सूचनाएं सही तरीके से दिखाने की ज़िम्मेदारी होती है जिनका इस्तेमाल आपके ऐप्लिकेशन में किया जाता है.
Google Play services में ऐसे टूल का एक सेट शामिल है जिसे डेवलपर के लिए डिज़ाइन किया गया है. इससे, वे अपने ऐप्लिकेशन में इस्तेमाल की गई लाइब्रेरी के ओपन सोर्स सॉफ़्टवेयर की सूचनाएं आसानी से दे सकते हैं. इनमें से एक टूल, Gradle प्लग इन है. यह शामिल की गई लाइब्रेरी से लाइसेंस की शर्तें इकट्ठा करता है. इन शर्तों के बारे में, लाइब्रेरी की POM फ़ाइलों में बताया गया होता है. साथ ही, यह एक ऐसी गतिविधि बनाता है जिसका इस्तेमाल इन शर्तों को दिखाने के लिए किया जा सकता है. टूल, लाइसेंस की जानकारी कैसे ढूंढता है और पैकेज करता है, इस बारे में ज़्यादा जानें.
Gradle प्लग इन जोड़ना
रूट-लेवल की बिल्ड फ़ाइल में, ये काम करें:
- Google Maven रिपॉज़िटरी शामिल करें.
- अपनी डिपेंडेंसी में
oss-licenses
प्लग इन जोड़ें.
यहां दिए गए कोड स्निपेट में ये चरण दिखाए गए हैं:
Kotlin डीएसएल
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
Groovy DSL
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
अपनी ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, प्लग इन लागू करें. इसके लिए, फ़ाइल के सबसे ऊपर मौजूद com.android.application
प्लग इन के मौजूदा एलान के नीचे, यह लाइन जोड़ें:
Kotlin डीएसएल
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
GitHub पर इस प्लग इन का कोड देखा जा सकता है.
लाइब्रेरी को अपने ऐप्लिकेशन में जोड़ना
अपने ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल के dependencies
सेक्शन में, oss-licenses
लाइब्रेरी पर डिपेंडेंसी जोड़ें:
Kotlin डीएसएल
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Groovy DSL
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
लाइसेंस की जानकारी दिखाना
जब आपका ऐप्लिकेशन बनता है, तो Gradle प्लग इन लाइसेंस को प्रोसेस करता है और उन्हें आपके ऐप्लिकेशन के संसाधनों में जोड़ता है. लाइसेंस को आसानी से दिखाने के लिए, अपने ऐप्लिकेशन में सही जगह पर play-services-oss-licenses
लाइब्रेरी से मिली गतिविधि को लॉन्च किया जा सकता है. इस बारे में नीचे दिए गए कोड स्निपेट में बताया गया है:
Kotlin
import com.google.android.gms.oss.licenses.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.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
लॉन्च होने पर, यह गतिविधि उन ओपन सोर्स लाइब्रेरी की सूची दिखाती है जिन्हें आपके ऐप्लिकेशन में संकलित किया गया है. इसमें Google Play की सेवाओं का हिस्सा बनी लाइब्रेरी भी शामिल हैं, जैसा कि पहले चित्र में दिखाया गया है. उपयोगकर्ता किसी लाइब्रेरी के नाम पर टैप करके, उस लाइब्रेरी के लाइसेंस की ज़्यादा जानकारी देख सकते हैं.
पहली इमेज. लाइसेंस मेन्यू गतिविधि, ओपन सोर्स लाइब्रेरी की ऐसी सूची दिखाती है जिन्हें ऐप्लिकेशन इस्तेमाल करता है.
गतिविधि का टाइटल सेट करना
डिफ़ॉल्ट रूप से, दिखाई गई गतिविधि का टाइटल "ओपन सोर्स लाइसेंस" होता है. 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.OssLicensesMenuActivity" android:theme="@style/AppTheme" /> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesActivity" android:theme="@style/AppTheme" /> </application>
लाइसेंस की सूची कैसे तय की जाती है
कंपाइल करने के समय, Gradle प्लग इन आपके ऐप्लिकेशन के प्रोजेक्ट की POM डिपेंडेंसी को स्कैन करता है. जब ऐप्लिकेशन की सीधी डिपेंडेंसी के लिए Maven POM मौजूद होता है, तो प्लग इन हर <licenses>
एलिमेंट को प्रोसेस करता है. साथ ही, हर लाइसेंस के लिंक और टाइटल को उस Android ऐसेट में एम्बेड करता है जो आपके ऐप्लिकेशन में शामिल होती है.