অ্যান্ড্রয়েডের জন্য মাস্টারিং গ্রেডল: গ্রেডল টাস্ক এবং কোটলিন

লেখক: Lewis Jackson
সৃষ্টির তারিখ: 11 মে 2021
আপডেটের তারিখ: 1 জুলাই 2024
Anonim
Kotlin এর সাথে একটি সহজ Android অ্যাপ তৈরি করুন
ভিডিও: Kotlin এর সাথে একটি সহজ Android অ্যাপ তৈরি করুন

কন্টেন্ট


জাভা, এক্সএমএল বা কোটলিনের পরিবর্তে এই গ্র্যাডল বিল্ড ফাইলগুলি গ্রোভি ভিত্তিক ডোমেন-নির্দিষ্ট ভাষা (ডিএসএল) ব্যবহার করে। আপনি যদি গ্রোভির সাথে পরিচিত না হন, তবে আমরা এই প্রতিটি গ্র্যাডল বিল্ড ফাইলগুলিতে একের পর এক লাইন দেখব, সুতরাং এই নিবন্ধের শেষে আপনি সাধারণ গ্রোভি কোডটি পড়তে এবং লিখতে স্বাচ্ছন্দ্য বোধ করবেন।

গ্রেডলের লক্ষ্য আপনার জীবনকে আরও সহজ করার জন্য, আপনি প্রায়শই ন্যূনতম ম্যানুয়াল কনফিগারেশন দিয়ে ব্যবহার করতে পারেন এমন একটি সেট সরবরাহ করে - যখন আপনি আপনার প্রকল্পটি তৈরির জন্য প্রস্তুত হন, কেবল অ্যান্ড্রয়েড স্টুডিওর "রান" বোতাম টিপুন এবং গ্রেডল বিল্ডিং প্রক্রিয়া শুরু করবে তোমার জন্য.

গ্রেডলের "কনফিগারেশন ওভার কনফিগারেশন" পদ্ধতির সত্ত্বেও, যদি এর ডিফল্ট সেটিংস আপনার প্রয়োজনীয়তা পুরোপুরি পূরণ না করে, তবে আপনি বিল্ড প্রক্রিয়াটি কাস্টমাইজ করতে, কনফিগার করতে এবং প্রসারিত করতে পারেন, এবং খুব নির্দিষ্ট কার্য সম্পাদন করার জন্য গ্রেডল সেটিংসটিকেও সামঞ্জস্য করতে পারেন।


যেহেতু গ্রেডল স্ক্রিপ্টগুলি তাদের নিজস্ব ফাইলগুলিতে রয়েছে তাই আপনি নিজের অ্যাপ্লিকেশনটির উত্স কোডটি স্পর্শ না করে যে কোনও সময় আপনার অ্যাপ্লিকেশনটির বিল্ড প্রক্রিয়াটি পরিবর্তন করতে পারেন। এই টিউটোরিয়ালে, আমরা স্বাদ ব্যবহার করে বিল্ড প্রক্রিয়াটি সংশোধন করব, রূপগুলি তৈরি করব এবং একটি কাস্টম গ্রেডল টাস্ক - সবই ছাড়াই চিরকাল আমাদের অ্যাপ্লিকেশন কোড স্পর্শ।

গ্রেডল বিল্ড ফাইলগুলি অন্বেষণ করা

প্রতিবার আপনি যখন কোনও প্রকল্প তৈরি করেন, অ্যান্ড্রয়েড স্টুডিও একই ধরণের গ্রেডল বিল্ড ফাইলগুলি তৈরি করে। এমনকি আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে বিদ্যমান প্রকল্পটি আমদানি করেন তবে তা হয়ে যাবে এখনো এই ঠিক একই গ্রেডল ফাইলগুলি তৈরি করুন এবং এগুলি আপনার প্রকল্পে যুক্ত করুন।

গ্রেডল এবং গ্রোভির সিনট্যাক্স সম্পর্কে আরও ভাল ধারণা পেতে শুরু করতে, আসুন অ্যান্ড্রয়েডের প্রতিটি গ্র্যাডল বিল্ড ফাইলগুলি এক এক করে লাইন দেখে নেওয়া যাক।

1. settings.gradle

সেটিংস.gradle ফাইলটি যেখানে আপনি নিজের নাম প্রয়োগ করে অ্যাপ্লিকেশনটির সমস্ত মডিউলকে "অন্তর্ভুক্ত" কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করবেন। উদাহরণস্বরূপ, যদি আপনার কাছে একটি "অ্যাপ" এবং একটি "সেকেন্ডমডুল" সমন্বিত একটি প্রকল্প থাকে, তবে আপনার সেটিংস.gradle ফাইলটি এর মতো দেখতে পাবেন:


অন্তর্ভুক্ত: অ্যাপ্লিকেশন:: দ্বিতীয় মডুল রুটপ্রজেক্ট.নাম = মাইপ্রজেক্ট

আপনার প্রকল্পের আকারের উপর নির্ভর করে এই ফাইলটি যথেষ্ট দীর্ঘ হতে পারে।

বিল্ড প্রক্রিয়া চলাকালীন, গ্রেডল আপনার প্রকল্পের সেটিংস উদাহরণস্বরূপ ফাইলের সামগ্রীগুলি পরীক্ষা করবে এবং বিল্ড প্রক্রিয়াতে এটি অন্তর্ভুক্ত করার জন্য প্রয়োজনীয় সমস্ত মডিউল সনাক্ত করবে।

2. build.gradle (প্রকল্প স্তর)

প্রকল্প-স্তরের বিল্ড.gradle ফাইলটি আপনার প্রকল্পের মূল ডিরেক্টরিতে অবস্থিত এবং এতে সেটিংস রয়েছে যা প্রয়োগ করা হবে সব আপনার মডিউলগুলি (গ্রেডেল দ্বারা "প্রকল্পগুলি" হিসাবেও পরিচিত)।

আপনার অ্যান্ড্রয়েড প্রকল্প জুড়ে প্রতিটি মডিউলে প্রযোজ্য যে কোনও প্লাগইন, সংগ্রহস্থল, নির্ভরতা এবং কনফিগারেশন বিকল্পগুলি সংজ্ঞায়িত করার জন্য আপনার এই ফাইলটি ব্যবহার করা উচিত। মনে রাখবেন যে আপনি যদি প্রকল্প-স্তরের বিল্ড.gradle ফাইলের মধ্যে কোনও গ্রেডল কার্যগুলি সংজ্ঞায়িত করেন তবে পৃথক মডিউলগুলির জন্য এইগুলি সম্পাদনা করে ওভাররাইড বা প্রসারিত করা এখনও সম্ভব ’s মডিউল-স্তরের build.gradle ফাইল।

একটি আদর্শ প্রকল্প-স্তরের বিল্ড.gradle ফাইলটি এর মতো দেখতে পাবেন:

বিল্ডস্ক্রিপ্ট {ভান্ডারগুলি {গুগল () জেনসিটার ()} নির্ভরতা {শ্রেণিপথ com.android.tools.build:gradle:3.5.0-alpha06 // দ্রষ্টব্য: আপনার অ্যাপ্লিকেশন নির্ভরতা এখানে রাখবেন না; তারা // স্বতন্ত্র মডিউলে বিল্ডড্র্যাডল ফাইল}} সমস্ত প্রকল্প jects সংগ্রহস্থল {গুগল () জেনসিটার ()}} টাস্ক ক্লিন (টাইপ: মোছা) root রুটপ্রজেক্ট.বিল্ডডির মোছা belong

এই প্রকল্প-স্তরের বিল্ড.gradle ফাইলটি নিম্নলিখিত ব্লকগুলিতে বিভক্ত:

  • Buildscript। এটিতে এমন সেটিংস রয়েছে যা বিল্ড সম্পাদন করতে হবে।
  • সংগ্রহস্থল। গ্রেডল আপনার প্রকল্পের নির্ভরতাগুলি সনাক্ত করতে এবং সেগুলি আপনার বিল্ডে উপলব্ধ করার জন্য দায়বদ্ধ। যাইহোক, সমস্ত নির্ভরতা একই সংগ্রহস্থল থেকে আসে না, তাই আপনার প্রকল্পের নির্ভরতা পুনরুদ্ধার করার জন্য গ্রেডলের যে সমস্ত সন্ধান করা উচিত সেগুলি আপনাকে সংজ্ঞায়িত করতে হবে।
  • নির্ভরতা। এই বিভাগে আপনার প্লাগইন নির্ভরতা রয়েছে, যা আপনার স্থানীয় ক্যাশে ডাউনলোড এবং সঞ্চয় করা হয়। তোমার উচিত না এই ব্লকের মধ্যে কোনও মডিউল নির্ভরতা নির্ধারণ করুন।
  • Allprojects। আপনি যেখানে পাওয়া উচিত সেগুলি আপনি সংরক্ষণাগারগুলি সংজ্ঞায়িত করবেন সব আপনার প্রকল্পের মডিউলগুলি।

3. build.gradle (মডিউল স্তর)

এটি মডিউল-স্তরের বিল্ড.gradle ফাইল যা আপনার প্রকল্পের প্রতিটি মডিউলে উপস্থিত। যদি আপনার অ্যান্ড্রয়েড প্রকল্পে একাধিক মডিউল থাকে, তবে এতে একাধিক মডিউল-স্তরের বিল্ড.gradle ফাইলও থাকবে।

প্রতিটি মডিউল-স্তরের বিল্ড.gradle ফাইলটিতে আপনার প্রকল্পের প্যাকেজের নাম, সংস্করণের নাম এবং সংস্করণ কোড থাকে এবং এই নির্দিষ্ট মডিউলটির জন্য সর্বনিম্ন এবং লক্ষ্য এসডিকে থাকে।

একটি মডিউল স্তরের বিল্ড.gradle ফাইলের বিল্ড নির্দেশাবলী এবং নির্ভরতাগুলির নিজস্ব অনন্য সেট থাকতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি ওয়ার ওএস উপাদান ব্যবহার করে একটি অ্যাপ্লিকেশন তৈরি করে থাকেন তবে আপনার অ্যান্ড্রয়েড স্টুডিও প্রকল্পটিতে একটি পৃথক স্মার্টফোন / ট্যাবলেট মডিউল এবং একটি পরিধান মডিউল থাকবে - যেহেতু তারা সম্পূর্ণ আলাদা ডিভাইসকে লক্ষ্য করে চলেছে, তাই এই মডিউলগুলি একেবারে আলাদা নির্ভরতা!

একটি মৌলিক মডিউল-স্তরের বিল্ড.gradle ফাইলটি সাধারণত এই জাতীয় কিছু দেখায়:

প্লাগইন প্রয়োগ করুন: com.android.application android {compileSdkVersion 28 defaultConfig {প্রয়োগপ্রেম getDefaultProguardFile (proguard-android-optize.txt), proguard-rules.pro {}} depend dependations {বাস্তবায়ন ফাইলট্রি (dir: libs, অন্তর্ভুক্ত:) বাস্তবায়ন androidx.appcompat: appcompat: 1.0.2 androidx.constraintlayout: 1.1। 3 পরীক্ষার বাস্তবায়ন জুনিট: জুনিট: 4.12 অ্যান্ড্রয়েড টেস্টআইপ্লিমেন্টেশন androidx.test.ext: জুনিট: 1.1.0 অ্যান্ড্রয়েড টেস্টিম্পিমেন্টেশন androidx.test.espresso: এসপ্রেসো-কোর: 3.1.1}

আসুন এই বিভাগগুলির প্রতিটি ঘনিষ্ঠভাবে দেখে নেওয়া যাক:

  • প্লাগইন প্রয়োগ করুন। এটি এই মডিউলটি তৈরি করতে প্রয়োজনীয় প্লাগইনগুলির একটি তালিকা। Com.android.application প্লাগইন অ্যান্ড্রয়েড-নির্দিষ্ট বিল্ড প্রক্রিয়া সেটআপ করার জন্য প্রয়োজনীয়, তাই এটি স্বয়ংক্রিয়ভাবে যুক্ত হয় is
  • অ্যান্ড্রয়েড। এটিই আপনার মডিউলের প্ল্যাটফর্ম-নির্দিষ্ট বিকল্পগুলির মধ্যে থাকা উচিত।
  • compileSdkVersion। এটি এই API স্তর যা এই মডিউলটি সংকলিত। আপনি এই মানটির চেয়ে বেশি কোনও এপিআই থেকে বৈশিষ্ট্যগুলি ব্যবহার করতে পারবেন না।
  • buildToolsVersion। এটি সংকলকটির সংস্করণ নির্দেশ করে। গ্রেডল 3.0.০.০ এবং উচ্চতর ক্ষেত্রে, বিল্ডটুলস ভার্সন optionচ্ছিক; আপনি যদি বিল্ডটুলস সংস্করণ মান নির্দিষ্ট না করে থাকেন তবে অ্যান্ড্রয়েড স্টুডিও বিল্ড সরঞ্জামগুলির সর্বশেষতম সংস্করণে ডিফল্ট হবে।
  • defaultConfig। এটিতে এমন অপশন রয়েছে যা আপনার অ্যাপের সমস্ত বিল্ড সংস্করণগুলিতে প্রয়োগ করা হবে যেমন আপনার ডিবাগ এবং রিলিজ বিল্ডগুলি।
  • আবেদন আইডি. এটি আপনার অ্যাপ্লিকেশনটির অনন্য শনাক্তকারী।
  • minSdkVersion। এই পরামিতিটি এই মডিউলটি সমর্থন করে এমন সর্বনিম্ন API স্তরের সংজ্ঞা দেয়।
  • targetSdkVersion। এটি আপনার অ্যাপ্লিকেশনটির বিরুদ্ধে পরীক্ষা করা সর্বোচ্চতম স্তরের স্তর। আদর্শভাবে, আপনার সর্বশেষতম এপিআই ব্যবহার করে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করা উচিত, যার অর্থ টার্গেটসডক ভার্সন মানটি সর্বদা সংকলনড্ডক ভার্সন মানের সমান হয়।
  • versionCode। এটি আপনার অ্যাপ্লিকেশন সংস্করণের একটি সংখ্যাসূচক মান।
  • versionName। এটি একটি ব্যবহারকারী-বান্ধব স্ট্রিং, যা আপনার অ্যাপ্লিকেশন সংস্করণ উপস্থাপন করে।
  • buildTypes। ডিফল্ট হিসাবে, অ্যান্ড্রয়েড দুটি বিল্ড প্রকারের সমর্থন করে: ডিবাগ এবং প্রকাশ release আপনার অ্যাপ্লিকেশনটির টাইপ-নির্দিষ্ট সেটিংস নির্দিষ্ট করতে আপনি "ডিবাগ" এবং "রিলিজ" ব্লক ব্যবহার করতে পারেন।
  • নির্ভরতা। আপনি এই লাইব্রেরির উপর নির্ভর করে যে কোনও লাইব্রেরি নির্ধারণ করবেন।

আপনার প্রকল্পের নির্ভরতা ঘোষণা করে: স্থানীয় লাইব্রেরি

এক বা একাধিক প্রকল্প নির্ভরতা যুক্ত করে আপনি আপনার অ্যান্ড্রয়েড প্রকল্পগুলিতে অতিরিক্ত কার্যকারিতা উপলব্ধ করতে পারেন। এই নির্ভরতা স্থানীয় হতে পারে, বা এগুলি একটি দূরবর্তী সংগ্রহস্থলে সংরক্ষণ করা যেতে পারে।

স্থানীয় জেআর ফাইলের উপর নির্ভরতা ঘোষণা করতে, আপনাকে সেই প্রকল্পের "লিবস" ডিরেক্টরিতে সেই জেআর যুক্ত করতে হবে।

তারপরে আপনি এই ফাইলটির উপর নির্ভরতা ঘোষণা করতে মডিউল-স্তরের বিল্ড.gradle ফাইলটি সংশোধন করতে পারেন। উদাহরণস্বরূপ, এখানে আমরা একটি "মাইলিবেরি" জারের উপর নির্ভরতা ঘোষণা করছি।

বাস্তবায়ন ফাইল (libs / mylibrary.jar)

বিকল্পভাবে, যদি আপনার "লিবিস" ফোল্ডারে বেশ কয়েকটি জার থাকে, তবে সহজেই বলা সহজ যে আপনার প্রকল্পটি "লিবস" ফোল্ডারের মধ্যে থাকা সমস্ত ফাইলের উপর নির্ভর করে, উদাহরণস্বরূপ:

বাস্তবায়ন ফাইলআর গাছ (dir: libs, অন্তর্ভুক্ত:)

বিল্ড নির্ভরতা যুক্ত করা হচ্ছে: দূরবর্তী সংগ্রহস্থল

যদি কোনও লাইব্রেরি কোনও দূরবর্তী সংগ্রহস্থলে অবস্থিত থাকে, তবে আপনাকে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করতে হবে:

  • এই নির্ভরতাটি অবস্থিত যেখানে সংগ্রহস্থলটি সংজ্ঞায়িত করুন।
  • স্বতন্ত্রতা নির্ভরতা ঘোষণা করুন।

দূরবর্তী সংগ্রহস্থলের সাথে সংযোগ স্থাপন করা হচ্ছে

আপনার পদক্ষেপের সমস্ত নির্ভরতা পুনরুদ্ধার করার জন্য প্রথম পদক্ষেপটি গ্র্যাডলকে বলা হচ্ছে যে কোন সংগ্রহস্থল (বা সংগ্রহশালা) এটি পরীক্ষা করা উচিত। উদাহরণ স্বরূপ:

ভান্ডারগুলি oogle গুগল () জেনসেটর ()}}

এখানে, "জেনেটর ()" লাইনটি নিশ্চিত করে যে গ্রেডল জেসিটারের সংগ্রহস্থলটি যাচাই করবে, এটি বিন্ট্রে হোস্ট করা একটি ফ্রি, পাবলিক ভান্ডার ory

বিকল্পভাবে, আপনি বা আপনার সংস্থা যদি কোনও ব্যক্তিগত ভাণ্ডার বজায় রাখেন তবে আপনার নির্ভরতা ঘোষণায় এই সংগ্রহস্থলের URL যুক্ত করা উচিত। যদি সংগ্রহশালাটি পাসওয়ার্ড-সুরক্ষিত থাকে, তবে আপনাকে আপনার লগইন সম্পর্কিত তথ্যও সরবরাহ করতে হবে, উদাহরণস্বরূপ:

সংগ্রহস্থলগুলি {mavenCentral () maven {// লক্ষ্য URL কনফিগার করুন // url "http://repo.mycompany.com/myprivaterepo" ven maven {শংসাপত্রগুলি {ইউজারনেম myUsername পাসওয়ার্ড myPassword word url "http://repo.mycompany.com / মাইপ্রাইভেটেরপো "}

যদি কোনও নির্ভরতা একাধিক ভাণ্ডারগুলির মধ্যে উপস্থিত থাকে তবে গ্রেডল এই নির্ভরতার "সেরা" সংস্করণটি বেছে নেবেন, প্রতিটি সংগ্রহস্থলের বয়স এবং স্থির সংস্করণের মতো বিষয়ের উপর ভিত্তি করে।

দূরবর্তী নির্ভরতা ঘোষণা করা

পরবর্তী পদক্ষেপটি আপনার মডিউল-স্তরের বিল্ড.gradle ফাইলের নির্ভরতা ঘোষণা করছে। আপনি নিম্নলিখিত তথ্য ব্যবহার করে "নির্ভরতা" ব্লকে এই তথ্যটি যুক্ত করুন:

  • বাস্তবায়ন. আপনি যখনই প্রকল্পটি তৈরি করেন এটি আপনার স্বাভাবিক নির্ভরতা। একটি "বাস্তবায়ন" নির্ভরতা জুড়ে উপস্থিত হবে সব আপনার বিল্ডস
  • Testimplementation। এটি এমন একটি নির্ভরতা যা আপনার অ্যাপ্লিকেশনের পরীক্ষার উত্সটি সংকলন করতে এবং JVM- ভিত্তিক পরীক্ষা চালানোর জন্য প্রয়োজনীয়। আপনি যখন "নির্ভরযোগ্যতা" হিসাবে নির্ভরতা চিহ্নিত করেন তখন গ্রেডল জানতে পারে যে কোনও সাধারণ নির্মাণের সময় এই নির্ভরতার জন্য কাজগুলি চালাতে হয় না, যা বিল্ড সময়কে হ্রাস করতে সহায়তা করে।
  • Androidtestimplementation। এটি একটি নির্ভরতা যা ডিভাইসে পরীক্ষা চালানোর সময় প্রয়োজনীয় হয়, উদাহরণস্বরূপ, এপ্রেসো ফ্রেমওয়ার্কটি একটি সাধারণ "অ্যান্ড্রয়েডস্টিপিমেন্টেশন"।

উপরোক্ত কীওয়ার্ডগুলির মধ্যে একটি ব্যবহার করে আমরা দূরবর্তী নির্ভরতা সংজ্ঞায়িত করি, তারপরে নির্ভরতার গ্রুপ, নাম এবং সংস্করণ বৈশিষ্ট্যগুলি উদাহরণস্বরূপ:

নির্ভরতা {বাস্তবায়ন ফাইলত্রী (দির: লিবস, অন্তর্ভুক্ত:) বাস্তবায়ন androidTestImplementation androidx.test.espresso: এস্প্রেসো-কোর: 3.1.1 .1

একাধিক এপিপি তৈরি হচ্ছে: বিল্ড ভেরিয়েন্টগুলি কীভাবে তৈরি করবেন

কখনও কখনও, আপনার অ্যাপ্লিকেশনটির একাধিক সংস্করণ তৈরি করতে হতে পারে। উদাহরণস্বরূপ, আপনি একটি নিখরচায় সংস্করণ এবং অর্থ প্রদানের সংস্করণ প্রকাশ করতে চাইতে পারেন, যার মধ্যে কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে।

এটি এমন একটি বিল্ড টাস্ক যা গ্রেডল আপনাকে সহায়তা করতে পারে, সুতরাং আসুন একক প্রকল্প থেকে একাধিক এপিপি তৈরির জন্য আপনি বিল্ড প্রক্রিয়াটি কীভাবে সংশোধন করবেন তা দেখুন:

  • আপনার স্ট্রিং.এক্সএমএল ফাইলটি খুলুন এবং আপনার আসল অ্যাপ্লিকেশন নামের স্ট্রিংটি মুছুন।
  • এরপরে, আপনি তৈরি করতে চান এমন প্রতিটি পণ্যের গন্ধের নাম নির্ধারণ করুন; এই উদাহরণে, আমি ব্যবহার করছি:

আমার বিনামূল্যে অ্যাপ্লিকেশন আমার প্রদত্ত অ্যাপ্লিকেশন

  • আপনার AndroidManLive.xML ফাইলটি খুলুন এবং অ্যান্ড্রয়েড প্রতিস্থাপন করুন: এর সাথে লেবেল = "@ স্ট্রিং / অ্যাপ_নাম":

অ্যান্ড্রয়েড: লেবেল = "$ {APPNAME}"

  • আপনার মডিউল-স্তরের বিল্ড.gradle ফাইলটি খুলুন এবং নিম্নলিখিতটিকে "অ্যান্ড্রয়েড" ব্লকে যুক্ত করুন:

ফ্লেভারডাইমেনশনস "মোড" প্রোডাক্টফ্লেভারস {ফ্রি-ডাইমেনশন "মোড" অ্যাপ্লিকেশনআইডসফিক্স "ree বিনামূল্যে" ম্যানিফেস্টপ্লেসোল্ডারস =} পেইড-ডাইমেনশন "মোড" অ্যাপ্লিকেশনআইডসফিক্স "p পেইড" ম্যানিফেস্টপ্লেসোল্ডারস =}}}

আসুন এখানে কী ঘটছে তা ভেঙে দেওয়া যাক:

  • flavorDimensions। অ্যান্ড্রয়েড প্লাগইন বিভিন্ন মাত্রা থেকে স্বাদ একত্রিত করে বিল্ড ভেরিয়েন্ট তৈরি করে। এখানে, আমরা আমাদের অ্যাপ্লিকেশনটির "ফ্রি" এবং "অর্থ প্রদান" সংস্করণগুলি সমন্বিত একটি স্বাদযুক্ত মাত্রা তৈরি করছি। উপরের কোডটির উপর ভিত্তি করে গ্রেডল চারটি বিল্ড ভেরিয়েন্ট উত্পন্ন করবে: পেইডডিবগ, পেইড রিলিজ, ফ্রিডিবগ এবং ফ্রি রিলিজ।
  • productFlavors। এটি স্বাদ এবং তাদের সেটিংসের একটি তালিকা নির্দিষ্ট করে, যা উপরের কোডটিতে "অর্থ প্রদান করা" এবং "বিনামূল্যে" রয়েছে।
  • নিখরচায় / প্রদেয় এগুলি আমাদের দুটি পণ্য স্বাদের নাম।
  • মাত্রা। আমাদের একটি "মাত্রা" পরামিতি মান নির্দিষ্ট করতে হবে; এই পরিস্থিতিতে, আমি "মোড" ব্যবহার করছি।
  • applicationIdSuffix। যেহেতু আমরা আমাদের অ্যাপের একাধিক সংস্করণ তৈরি করতে চাই, তাই আমাদের প্রতিটি এপিএকে একটি অনন্য অ্যাপ্লিকেশন শনাক্তকরণ দেওয়া দরকার give
  • manifestPlaceholders। প্রতিটি প্রকল্পে আপনার প্রকল্পের কনফিগারেশন সম্পর্কে গুরুত্বপূর্ণ তথ্য সম্বলিত একটি একক ম্যানিফেস্ট ফাইল থাকে। একাধিক বিল্ড ভেরিয়েন্ট তৈরি করার সময় আপনি সাধারণত বিল্ড সময় এই ম্যানিফেস্টের কয়েকটি বৈশিষ্ট্য পরিবর্তন করতে চান। আপনি প্রতিটি বিল্ড ভেরিয়েন্টের জন্য স্বতন্ত্র ম্যানিফেস্ট এন্ট্রি নির্দিষ্ট করতে গ্রেডল বিল্ড ফাইলগুলি ব্যবহার করতে পারেন, যা তারপরে বিল্ডিংয়ের সময় আপনার ম্যানিফেস্টে .োকানো হবে। উপরের কোডে, গ্র্যাডেল আমাদের অ্যাপ্লিকেশনটির বিনামূল্যে বা অর্থ প্রদানের সংস্করণ তৈরি করছে কিনা তার উপর নির্ভর করে আমরা "অ্যাপনাম" মানটি সংশোধন করছি।

একটি কাস্টম গ্রেডল টাস্ক তৈরি করা হচ্ছে

মাঝে মাঝে গ্র্যাডল ব্যবহার করে আপনার বিল্ড প্রক্রিয়াটি কাস্টমাইজ করার প্রয়োজন হতে পারে কাজ.

একটি কার্য ক্রিয়াকলাপের একটি নামযুক্ত সংগ্রহ যা গ্রেডল এটি নির্মাণের সাথে সাথে সম্পাদন করবে, উদাহরণস্বরূপ জাভাদোক তৈরি করা। গ্রেডল ডিফল্টরূপে প্রচুর কাজগুলিকে সমর্থন করে তবে আপনি কাস্টম টাস্কও তৈরি করতে পারেন, যা আপনার যদি বিল্ড নির্দেশিকাগুলির একটি নির্দিষ্ট সেট মনে রাখে তবে তা কাজে আসতে পারে।

এই বিভাগে, আমরা একটি কাস্টম গ্রেডল টাস্ক তৈরি করব যা আমাদের প্রকল্পের সমস্ত বিল্ড ভেরিয়েন্ট (পেইডব্যাগ, পেইডরিলিজ, ফ্রিডিবগ এবং ফ্রি রিলিজ) এর মাধ্যমে পুনরাবৃত্তি করবে, একটি তারিখ এবং সময় স্ট্যাম্প তৈরি করবে এবং তারপরে প্রতিটি উত্পন্ন এপিএকে এই তথ্য যুক্ত করবে।

আপনার মডিউল স্তরের বিল্ড.gradle ফাইলটি খুলুন এবং নিম্নলিখিতগুলি যুক্ত করুন:

টাস্ক অ্যাডডেটএন্ডটাইম () {// সমস্ত আউটপুট বিল্ড ভেরিয়েন্টের মাধ্যমে আইট্রেট করুন // android.applicationVariants.all {ভেরিয়েন্ট -> // সমস্ত APK ফাইলের মাধ্যমে আইট্রেট করুন // variant.outputs.all। আউটপুট -> // একটি উদাহরণ তৈরি করুন বর্তমান তারিখ এবং সময়, নির্দিষ্ট // ফর্মের তারিখআন্ডটাইম = নতুন তারিখ ()। ফর্ম্যাটে ("yYYY-MM-dd: HH-মিমি") // এই তথ্যটি APK এর ফাইল নাম // Def ফাইলের নাম = বৈকল্পিকের সাথে যুক্ত করুন। নাম + "_" + তারিখআথটাইম + ".apk" আউটপুট.আউটপুটফিলনাম = ফাইল নাম}}}

এর পরে, গ্রেডলকে আমাদের বলতে হবে কখন এটি এই টাস্ক কার্যকর করা উচিত। একটি বিল্ড চলাকালীন গ্রেডল এটি ডাউনলোড করার জন্য প্রয়োজনীয় সমস্ত কিছু এবং এটি সম্পাদন করার জন্য প্রয়োজনীয় সমস্ত কাজ সনাক্ত করে এবং সেগুলি একটি ডাইরেক্টার্ড অ্যাসাইক্লিক গ্রাফ (ডিএজি) এ সাজায়। গ্রেডেল তার ডাগে সংজ্ঞায়িত আদেশ অনুসারে এই সমস্ত কার্য সম্পাদন করবে।

আমার অ্যাপ্লিকেশনটির জন্য, আমি "কখন রেডি" পদ্ধতিটি ব্যবহার করব, যা নিশ্চিত করে যে আমাদের কাজটি ড্যাগের লোকসত্ত হওয়ার পরে বলা হবে এবং গ্রেডল তার কাজগুলি সম্পাদন শুরু করতে প্রস্তুত।

আপনার মডিউল স্তরের build.gradle ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

// এই টাস্কটি সম্পাদন করুন // গ্রেড.taskGraph.whenReady {addDateAndTime}

আসুন আমাদের কাস্টম টাস্কটি রাখি এবং গ্রেড কমান্ড ব্যবহার করে এই প্রকল্পটি তৈরি করে আমাদের পরীক্ষায় ভেরিয়েন্ট কোড তৈরি করে।

গ্রেডেল মোড়কের সাহায্যে আপনার প্রকল্পটি তৈরি করা

আপনি গ্রেডল র্যাপার ("গ্রেডলিউ") ব্যবহার করে গ্রেডল কমান্ডগুলি ইস্যু করেন। গ্রেডল বিল্ড শুরু করার জন্য এই স্ক্রিপ্টটি পছন্দের উপায়, কারণ এটি আপনার গ্রেডলের সংস্করণ থেকে বিল্ডের সম্পাদনকে স্বাধীন করে তোলে। এই বিচ্ছেদটি কার্যকর হতে পারে যদি আপনি গ্র্যাডলের একই সংস্করণটি ইনস্টল না করে থাকতে পারে এমন অন্যদের সাথে সহযোগিতা করছেন।

আপনার গ্রেডল রেপার কমান্ড জারি করার সময়, আপনি ইউনিক্স-এর মতো মেকোস সহ অপারেটিং সিস্টেমগুলির জন্য "গ্রেডলিউ" এবং উইন্ডোজের জন্য "গ্রেডলু.ব্যাট" ব্যবহার করবেন। আমার কাছে একটি ম্যাক রয়েছে তাই আমি "গ্রেডলিউ" কমান্ড ব্যবহার করব।

আপনি অ্যান্ড্রয়েড স্টুডিওর ভিতরে থেকে গ্রেডল কমান্ডগুলি জারি করতে পারেন:

  • অ্যান্ড্রয়েড স্টুডিও সরঞ্জামদণ্ডে, "দেখুন> সরঞ্জাম উইন্ডোজ> টার্মিনাল" নির্বাচন করুন This এটি আইডিই উইন্ডোর নীচে একটি টার্মিনাল প্যানেল খুলবে।
  • টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করান:

। / গ্রেডলিউ বিল্ড

অ্যান্ড্রয়েড স্টুডিওর এমন কিছু দেখা উচিত:

  • আপনার কীবোর্ডের "এন্টার" কী টিপুন। গ্রেডেল এখন আপনার প্রকল্প তৈরি করবে।

গ্রেডল আপনার প্রকল্পের অ্যাপ্লিকেশন / বিল্ড / আউটপুট / এপিকে ডিরেক্টরিতে উত্পন্ন সমস্ত APK গুলি সঞ্চয় করে তাই এই ডিরেক্টরিতে নেভিগেট করুন। "APK" ফোল্ডারে বেশ কয়েকটি ফোল্ডার এবং সাবফোল্ডার থাকা উচিত; নিশ্চিত করুন যে গ্রেডল আপনার প্রতিটি বিল্ড ভেরিয়েন্টের জন্য একটি APK তৈরি করেছে এবং প্রতিটি ফাইলে সঠিক তারিখ এবং সময় তথ্য যুক্ত করা হয়েছে।

অন্যান্য কোন গ্রেডল টাস্ক উপলব্ধ?

আপনি তৈরি করতে পারেন এমন কোনও কাস্টম টাস্ক ছাড়াও গ্রেডল বাক্সের বাইরে পূর্বনির্ধারিত টাস্কগুলির একটি তালিকা সমর্থন করে। আপনি যদি সঠিকভাবে কোন কাজগুলি উপলভ্য তা জানতে আগ্রহী হন তবে:

  • অ্যান্ড্রয়েড স্টুডিওর টার্মিনাল উইন্ডোটি খুলুন, যদি এটি ইতিমধ্যে খোলা না থাকে (অ্যান্ড্রয়েড স্টুডিও সরঞ্জামদণ্ড থেকে "ভিউ> সরঞ্জাম উইন্ডোজ> টার্মিনাল" নির্বাচন করে)।
  • টার্মিনালে নিম্নলিখিত লিখুন:

./gradlew -q কার্য

  • আপনার কীবোর্ডের "এন্টার" কী টিপুন।

এই "টাস্কগুলি" টাস্কটি এখন চলবে এবং কয়েক মুহুর্তের পরে টার্মিনাল এই প্রকল্পের জন্য উপলব্ধ সমস্ত কাজের একটি তালিকা প্রদর্শন করবে এবং প্রতিটি কাজের সংক্ষিপ্ত বিবরণ দিয়ে সম্পূর্ণ করবে।

গ্রেডল থেকে আরও বেশি পাওয়া: প্লাগইন যুক্ত করা

বেশ কয়েকটি প্লাগইন পূর্ব-ইনস্টল সহ গ্রেডল শিপস, তবে আপনি আরও নতুন প্লাগইন যুক্ত করে গ্রেডল প্রসারিত করতে পারেন। এই প্লাগইনগুলি আপনার অ্যান্ড্রয়েড প্রকল্পগুলিতে নতুন কাজগুলি উপলভ্য করে, উদাহরণস্বরূপ জাভা প্লাগইনগুলিতে এমন কাজগুলি অন্তর্ভুক্ত রয়েছে যা আপনাকে জাভা সোর্স কোডটি সংকলন করতে, ইউনিট পরীক্ষা চালাতে এবং একটি জেআর ফাইল তৈরি করতে অনুমতি দেয়, যেমন "কমপাইলজাভা," "সংকলন," "জার," "জাভাদোক," এবং "পরিষ্কার"।

একটি প্লাগইন প্রয়োগ করতে, প্লাগইনের নাম অনুসারে আপনার মডিউল-স্তরের বিল্ড.gradle ফাইলটিতে "প্লাগইন প্রয়োগ করুন" ঘোষণা যুক্ত করুন। উদাহরণস্বরূপ, আমরা এখানে জাভা প্লাগইন প্রয়োগ করছি:

প্রয়োগ প্লাগইন: জাভা

কোন প্লাগইনগুলি উপলভ্য তা যদি আপনি জানতে আগ্রহী হন তবে গ্রেডল প্লাগইন অনুসন্ধান যাচাই করুন, যা গ্রেডল প্লাগইনগুলির একটি বিস্তৃত রেজিস্ট্রি সরবরাহ করে।

গ্রেডল কোটলিন ডিএসএল

ডিফল্টরূপে, আপনি গ্রোভি ডিএসএল ব্যবহার করে আপনার গ্রেডল বিল্ড স্ক্রিপ্টগুলি লিখবেন তবে আপনি যদি এমন অনেক বিকাশকারী হয়ে থাকেন যাঁরা অ্যান্ড্রয়েড বিকাশের জন্য কোটলিনকে গৃহীত করেছেন, তবে আপনি তার পরিবর্তে কোটলিনে আপনার বিল্ড স্ক্রিপ্টগুলি লিখতে পছন্দ করতে পারেন।

গ্রোভির বিপরীতে, কোটলিন একটি স্ট্যাটিকালি টাইপড প্রোগ্রামিং ল্যাঙ্গুয়েজ, সুতরাং আপনি যদি স্যুইচটি করেন তবে আপনার বিল্ড ফাইলগুলি অ্যান্ড্রয়েড স্টুডিওর স্বতঃপূরণ এবং উত্স কোড নেভিগেশন বৈশিষ্ট্যের সাথে সামঞ্জস্যপূর্ণ। এছাড়াও, গ্রোভি থেকে কোটলিনে চলে যাওয়ার অর্থ আপনি আপনার প্রকল্পে একই প্রোগ্রামিং ভাষা ব্যবহার করবেন, যা বিকাশকে আরও সোজা করে তুলতে পারে - বিশেষ করে যদি আপনি গ্রোভির সাথে অত্যধিক পরিচিত না হন!

আপনি যদি কোটলিনে আপনার বিল্ড লজিক লেখা শুরু করতে চান, তবে আপনাকে গ্রেডল কোটলিন ডিএসএল সেটআপ করতে হবে এবং মাইগ্রেশন গাইডের নির্দেশাবলী অনুসরণ করতে হবে।

মোড়ক উম্মচন

এই নিবন্ধে, আমরা অ্যান্ড্রয়েড স্টুডিওর বিল্ড অটোমেশন এবং নির্ভরতা পরিচালন সরঞ্জামটি অন্বেষণ করেছি। আমরা পরীক্ষা করেছিলাম যে গ্রেডল কীভাবে বিল্ড প্রক্রিয়াটিকে বাক্সের বাইরে রাখে এবং কাস্টম গ্রেডল টাস্ক তৈরি করে এবং একক প্রকল্প থেকে একাধিক বিল্ড রূপগুলি জেনারেট করে আপনি কীভাবে আপনার প্রকল্পের গ্রেড বিল্ড ফাইলগুলি সম্পাদনা করে বিল্ড প্রক্রিয়াটি পরিবর্তন করতে পারেন।

আপনি অ্যান্ড্রয়েড বিল্ড প্রক্রিয়াটির অন্যান্য অংশগুলিকে স্বয়ংক্রিয় করতে গ্রেডল প্রসারিত করেছেন? নীচের মতামত আমাদের জানতে দিন!

আপডেট, 2 আগস্ট, 2019 (12:46 পিএম ইটি): পাঠানো এক বিবৃতিতেকিনারা, নেটফ্লিক্স নিশ্চিত করেছে যে এটি তার শারীরিক কার্যকলাপের ডেটা সংগ্রহ পরীক্ষা শেষ করেছে tet নেটফ্লিক্স আরও বলেছে যে তথ্য সংগ্রহের পরীক্ষা...

স্মার্ট হোমের যুগে আপনার বাড়িতে কোনও সরঞ্জামের টুকরো রাউটারের মতো গুরুত্বপূর্ণ নেই। একইভাবে, আপনার মডেম হল লিঞ্চপিন যা আপনাকে ইন্টারনেটে সংযুক্ত রাখে, তাই আপনি এটি দৃ olid় হতে চান।...

প্রশাসন নির্বাচন করুন