আমি গুগল-পরিষেবাদি প্লাগইন এবং জসন সম্পর্কিত কিছুটা তদন্ত করেছি এবং এই প্লাগইনটির উত্স খুঁজে পেয়েছি।
আগেরটা আগে
গ্রেড-প্লাগইন গুগল পরিষেবাগুলি যা ক্লাসপাথ দ্বারা প্রয়োগ করা হয় এবং প্রয়োগ সহ কেবলমাত্র একটি বিল্ড-টাইম প্লাগইন! সুতরাং এটি কেবল আপনার অ্যাপ্লিকেশনটির বিল্ড-প্রক্রিয়াটিকেই প্রভাবিত করে, তবে রানটাইম-প্রক্রিয়া নয়!
এই প্লাগইনটি কেবলমাত্র আপনার অ্যাপ্লিকেশনে গুগল-পরিষেবাগুলিকে একীভূত করার জন্য কেবলমাত্র এক দ্রুতগতিতে সাহায্যকারী হিসাবে বোঝানো হয়েছে। স্পষ্টতই, প্রক্রিয়াটি কিছুটা বিশৃঙ্খলাযুক্ত এবং নথিভুক্ত নয়, তাই গুগলকে এই প্রক্রিয়াটি কী করে তা পরিষ্কার করে দেওয়া উচিত ছিল।
আসলে, আমি প্লাগইন সংস্করণ com.google.gms: google-পরিষেবাদি: 1.4.0-beta3 এর জন্য উত্স কোড খুঁজে পেয়েছি এবং অ্যাপ্লিকেশন সম্পর্কিত কোনও সুনির্দিষ্ট রেফারেন্স পাইনি এবং অ্যাপ্লিকেশন আমন্ত্রণগুলির জন্য আমি কোনও গুগল এপিআই পাইনি! (তবে সম্ভবত এটির প্রজেক্ট আইডি সহ একটি জেনেরিক এপিআই প্রকল্প ব্যবহার করা হয়েছে, আমি এটি চেষ্টা করে দেখিনি)
এর মানে কি
গুগল-পরিষেবাগুলি গ্রেড-প্লাগইন আপনার অ্যাপ্লিকেশন-মডিউলটিতে উল্লিখিত গুগল-পরিষেবাদি.জসন ফাইলের সন্ধান করে। তারপরে এটি কনফিগার করা সেটিংস যেমন প্রকল্প-আইডি এবং ট্র্যাকিং-আইডি এবং এর মতো গুগল-এপিএস বিকাশকারী কনসোল দ্বারা উত্পাদিত গুগল-পরিষেবাদি.জসন ফাইলটিতে সন্ধান করে। এটি খুঁজে পাওয়া সেটিংস থেকে, অ্যান্ড্রয়েড রিসোর্স মানগুলি নিম্নলিখিত পথে তৈরি করা হয়েছে:
$project.buildDir/generated/res/google-services/$variant.dirName/values/values.xml
উদাহরণস্বরূপ আপনার অ্যাপ্লিকেশনটির ডিবাগ-বিল্ড করার জন্য:
app/build/generated/res/google-services/debug/values/values.xml
উদাহরণস্বরূপ, আপনি যদি জিসিএম টিউটোরিয়াল অনুসরণ করেন, JSON ফাইলটি নীচের অ্যান্ড্রয়েড-সংস্থান হিসাবে এপিআই প্রকল্পের আইডি অন্তর্ভুক্ত করবে:
<string name="gcm_defaultSenderId">project-id</string>
সুতরাং এই প্লাগইন এবং জেএসওএন ফাইলটি আপনার অ্যাপ্লিকেশনটি চালানো বা প্রকাশের জন্য অপরিহার্য নয়, নির্দিষ্ট গুগল এপিআই বৈশিষ্ট্যগুলির আরও সহজ সংহতকরণের জন্য কিছু বেসিক অ্যান্ড্রয়েড-রিসোর্স ফাইল উত্পন্ন করার জন্য এটি কেবলমাত্র একটি দ্রুত কর্ম সহায়ক art
উত্স কোডটি নীচে উল্লেখ করা হয়েছে যে Google- পরিষেবাদি প্লাগইন সর্বদা আপনার অ্যাপ্লিকেশন / বিল্ড.gradle এ সংজ্ঞায়িত প্রতিটি অ্যাপ-বৈকল্পের জন্য সেই অ্যান্ড্রয়েড-সংস্থান উত্পন্ন করে Notice
আপনি যদি এটি না চান তবে আপনার তৈরি হওয়া উত্সগুলি আপনার পছন্দ মতো অ্যাপ-ভেরিয়েন্টে ব্যবহার করা উচিত এবং অন্যগুলি মুছতে হবে। অ্যাপ্লিকেশন / বিল্ড.gradle থেকে গুগল-পরিষেবা প্লাগইন অ্যাপ্লিকেশনটি অপসারণ করতে ভুলবেন না, অন্যথায় এটি সমস্ত অ্যাপ্লিকেশন-রূপগুলির জন্য পুনরায় জেনারেট করা হবে।
এটা কি না
এই প্লাগইন এবং জেএসওন-ফাইলটি আপনার অ্যাপ্লিকেশনটির জন্য গুগল-বৈশিষ্ট্যযুক্ত বৈশিষ্ট্যের অভ্যন্তরীণ কাজগুলিকে সরাসরি প্রভাবিত করে না! আপনি যদি ইতিমধ্যে কিভাবে জিসিএম বা গুগল অ্যানালিটিকগুলি সংহত করতে ডেভেলপার.অ্যান্ড্রয়েড ডটকমের পুরানো টিউটোরিয়ালগুলি অনুসরণ করে থাকেন তবে গ্রেড-প্লাগইন গুগল-পরিষেবাগুলি বা গুগল-পরিষেবাদি.জসোন ফাইলকে একীভূত করার দরকার নেই!
আমি সূত্রগুলি কোথায় খুঁজে পেয়েছি সে সম্পর্কে লক্ষ্য করুন
আপনি গুগল-পরিষেবাদি গ্রেড-প্লাগইন সংহত করার পরে এবং আপনার প্রকল্পের সিঙ্ক করার পরে, গ্রেডল স্বয়ংক্রিয়ভাবে গুগল-পরিষেবাদি নির্ভরতা এর অনুরূপ পাথের জন্য ডাউনলোড করে দেয় (উইন্ডোজে আপনাকে লিনাক্সের জন্য আপনার হোম / .গ্র্যাডাল সন্ধান করতে হবে):
C:\Users\user\.gradle\caches\modules-2\files-2.1\com.google.gms\google-services\1.4.0-beta3\f1580f62e3be313eba041ce19b64fd3f44cf8951\google-services-1.4.0-beta3-sources.jar
আপনি যদি এই জার-ফাইলটি বের করেন তবে আপনি দুটি ফাইল পাবেন:
GoogleServicesPlugin.groovy
GoogleServicesTask.java
যার মধ্যে গ্রেড-প্লাগইনটির সরল উত্স কোড রয়েছে।
GoogleServicesPlugin.groovy
অ্যাপ-ভেরিয়েন্টগুলি পরিচালনা করার এবং পাথের প্রাথমিক সংজ্ঞা ইত্যাদি অন্তর্ভুক্ত করে
GoogleServicesTask.java
প্রকৃত কার্য-সংজ্ঞা রয়েছে, এটি কী করে তা দেখার জন্য নিম্নলিখিত পদ্ধতিটির সন্ধান করুন:
@TaskAction
public void action() throws IOException {