গ্রেডল আমার কাছে কিছুটা বিভ্রান্তিকর, এবং যে কোনও নতুন অ্যান্ড্রয়েড বিকাশকারীকেও। অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল কী এবং এর উদ্দেশ্য কী তা কী কেউ ব্যাখ্যা করতে পারেন? কেন এটি অ্যান্ড্রয়েড স্টুডিওতে অন্তর্ভুক্ত করা হয়েছে?
গ্রেডল আমার কাছে কিছুটা বিভ্রান্তিকর, এবং যে কোনও নতুন অ্যান্ড্রয়েড বিকাশকারীকেও। অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল কী এবং এর উদ্দেশ্য কী তা কী কেউ ব্যাখ্যা করতে পারেন? কেন এটি অ্যান্ড্রয়েড স্টুডিওতে অন্তর্ভুক্ত করা হয়েছে?
উত্তর:
গ্রেডল একটি বিল্ড সিস্টেম।
অ্যান্ড্রয়েড স্টুডিওর আগে আপনি আপনার বিকাশের উদ্দেশ্যে Eclipse ব্যবহার করছিলেন, এবং সম্ভাবনা হ'ল, আপনি কীভাবে Eclipse ছাড়া আপনার Android APK বানাবেন তা জানেন না।
আপনি কমান্ড লাইনে এটি করতে পারেন, তবে আপনাকে শিখতে হবে প্রতিটি সরঞ্জাম (ডিএক্স, অপট) এসডিকে কী করে। গ্রহনটি আমাদের নিজস্ব বিল্ড সিস্টেমটি দিয়ে আমাদেরকে এই নিম্ন স্তরের তবে গুরুত্বপূর্ণ, মৌলিক বিবরণ থেকে বাঁচায়।
এখন, আপনি কি কখনও ভেবে দেখেছেন কেন res
ফোল্ডারটি আপনার src
ফোল্ডারের মতো একই ডিরেক্টরিতে রয়েছে ?
এখানেই বিল্ড সিস্টেমটি প্রবেশ করে। বিল্ড সিস্টেমটি স্বয়ংক্রিয়ভাবে সমস্ত উত্স ফাইলগুলি ( .java
বা .xml
) নেয়, তারপরে উপযুক্ত সরঞ্জাম প্রয়োগ করে (উদাহরণস্বরূপ java
শ্রেণি ফাইলগুলি নেয় এবং সেগুলিকে dex
ফাইলগুলিতে রূপান্তর করে ), এবং তাদের সকলকে একটি সংকোচিত ফাইলে, আমাদের প্রিয় এপিএকে গ্রুপ করে দেয়।
এই বিল্ড সিস্টেমটি কয়েকটি কনভেনশন ব্যবহার করে: একটির উদাহরণ হ'ল উত্স ফাইল (এক্লিপসে এটি \src
ফোল্ডার হয়) বা রিসোর্স ফাইল (এক্লিপসে এটি \res
ফোল্ডার) সমন্বিত ডিরেক্টরি নির্দিষ্ট করে।
এখন, এই সমস্ত কাজ স্বয়ংক্রিয় করতে, একটি স্ক্রিপ্ট থাকতে হবে; লিনাক্সে শেল স্ক্রিপ্টিং বা উইন্ডোতে ব্যাচ ফাইল সিনট্যাক্স ব্যবহার করে আপনি নিজের বিল্ড সিস্টেমটি লিখতে পারেন। বুঝেছি?
গ্রেডল হ'ল একটি বিল্ড সিস্টেম যা অন্যান্য বিল্ড সিস্টেমগুলির থেকে সেরা বৈশিষ্ট্যগুলি নিয়ে যায় এবং সেগুলিকে একের সাথে সংযুক্ত করে। এটি তাদের ত্রুটিগুলির ভিত্তিতে উন্নত করা হয়েছে। এটি একটি জেভিএম ভিত্তিক বিল্ড সিস্টেম , এর অর্থ হ'ল আপনি জাভাতে আপনার নিজস্ব স্ক্রিপ্ট লিখতে পারেন, যা অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে।
গ্রেড সম্পর্কে একটি দুর্দান্ত জিনিস হ'ল এটি একটি প্লাগইন ভিত্তিক সিস্টেম । এর অর্থ যদি আপনার নিজস্ব প্রোগ্রামিং ভাষা থাকে এবং আপনি উত্স থেকে কিছু প্যাকেজ (জাভার জন্য জার মতো আউটপুট) তৈরির কাজটি স্বয়ংক্রিয় করতে চান তবে আপনি জাভা বা গ্রোভিতে (বা কোটলিন, এখানে দেখুন ) একটি সম্পূর্ণ প্লাগইন লিখতে পারেন এবং এটি বিশ্বজুড়ে বিতরণ করুন।
গুগল বাজারে সর্বাধিক উন্নত বিল্ড সিস্টেমগুলির মধ্যে একটি দেখেছিল এবং বুঝতে পেরেছিল যে আপনি নিজের স্ক্রিপ্টগুলি সামান্যই শিখতে পারবেন না এবং গ্রোভি বা অন্য কোনও ভাষা না শিখিয়েই লিখতে পারবেন। সুতরাং তারা গ্র্যাডলের জন্য অ্যান্ড্রয়েড প্লাগইন লিখেছিল।
আপনি অবশ্যই build.gradle
আপনার প্রকল্পে ফাইল (গুলি) দেখেছেন । আপনি নিজের কাজগুলি স্বয়ংক্রিয় করতে স্ক্রিপ্ট লিখতে পারেন। এই ফাইলগুলিতে আপনি যে কোডটি দেখেছেন তা হ'ল গ্রোভি কোড। আপনি যদি লিখেন System.out.println("Hello Gradle!");
তবে এটি আপনার কনসোলে মুদ্রিত হবে।
একটি সাধারণ উদাহরণ হ'ল আসল বিল্ড প্রক্রিয়াটি হওয়ার আগে আপনাকে কিছু ফাইল একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে অনুলিপি করতে হবে। একটি গ্রেডল বিল্ড স্ক্রিপ্ট এটি করতে পারে।
গুগল অ্যান্ড্রয়েডের জন্য এটি ব্যবহার করতে চায় এমন নতুন বিল্ড সরঞ্জাম। এটি পিঁপড়ের চেয়ে বেশি এক্সটেনসিবল এবং দরকারী হওয়ার কারণে এটি ব্যবহৃত হচ্ছে। এটি বিকাশকারীদের অভিজ্ঞতা বাড়ানোর জন্য।
আপনি Android বিকাশকারী টিমের পক্ষ থেকে জেভিয়ার Ducrohet দ্বারা একটি আলাপ দেখতে পারেন গুগল ইনপুট / আউটপুট এখানে।
গুগল আই / ও-এর সময় জাভিয়ের এবং টর নরবয়ের অ্যান্ড্রয়েড স্টুডিওতে আরও একটি আলোচনা রয়েছে ।
গ্রেডল অ্যান্ড্রয়েড স্টুডিওতে চলমান একটি বিল্ড সিস্টেম ।
উদাহরণস্বরূপ অন্যান্য ভাষায়:
Gradle
সাথে মিলে যায় make
, আমি সবেমাত্র এর ধারণাটি পেয়েছি
এখানে কি সম্পর্কে একটি বিস্তারিত ব্যাখ্যা Gradle
অ্যান্ড্রয়েড স্টুডিওতে এটি এবং কীভাবে ব্যবহার করা যায় সে ।
গ্রেডল ফাইলগুলি অন্বেষণ করা
গ্রেডল বিল্ড ফাইল
গ্রেডল বিল্ড ফাইলগুলি Domain Specific Language or DSL
কাস্টম বিল্ড লজিক সংজ্ঞায়িত করতে এবং গ্রেডলের জন্য অ্যান্ড্রয়েড প্লাগইনের অ্যান্ড্রয়েড-নির্দিষ্ট উপাদানগুলির সাথে ইন্টারেক্ট করার জন্য একটি ব্যবহার করে।
অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলিতে 1 বা একাধিক মডিউল রয়েছে, যা এমন উপাদান যা আপনি স্বাধীনভাবে তৈরি করতে, পরীক্ষা করতে এবং ডিবাগ করতে পারেন। প্রতিটি মডিউলটির নিজস্ব বিল্ড ফাইল থাকে, সুতরাং প্রতিটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পে 2 ধরণের গ্র্যাডল বিল্ড ফাইল থাকে।
শীর্ষ স্তরের বিল্ড ফাইল: এটি এখানে আপনার কনফিগারেশন বিকল্পগুলি পাবেন যা আপনার প্রকল্পটি তৈরির সমস্ত মডিউলগুলির পক্ষে সাধারণ।
মডিউল-স্তর বিল্ড ফাইল: প্রতিটি মডিউলের নিজস্ব গ্রেডল বিল্ড ফাইল থাকে যা মডিউল-নির্দিষ্ট বিল্ড সেটিংস ধারণ করে। আপনি আপনার প্রকল্পের শীর্ষ স্তরের বিল্ড ফাইলের পরিবর্তে আপনার বেশিরভাগ সময় মডিউল-স্তরের বিল্ড ফাইল (গুলি) ব্যয় করবেন।
এগুলি একবার দেখুন build.gradle
ফাইলগুলি একবার দেখতে, অ্যান্ড্রয়েড স্টুডিওর প্রকল্প প্যানেলটি খুলুন (প্রকল্প ট্যাব নির্বাচন করে) এবং গ্রেডল স্ক্রিপ্টস ফোল্ডারটি প্রসারিত করুন। গ্রেডল স্ক্রিপ্টস ফোল্ডারে প্রথম দুটি আইটেম হ'ল প্রকল্প-স্তর এবং মডিউল স্তরের গ্রেডল বিল্ড ফাইলগুলি
শীর্ষ স্তরের গ্র্যাডল বিল্ড ফাইল
প্রতিটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পে একটি একক, শীর্ষ স্তরের গ্রেডল বিল্ড ফাইল থাকে। এই build.gradle
ফাইলটি হ'ল প্রথম আইটেম যা গ্রেডল স্ক্রিপ্টস ফোল্ডারে প্রদর্শিত হবে এবং প্রজেক্টটিকে স্পষ্টভাবে চিহ্নিত করা হয়েছে।
বেশিরভাগ সময়, আপনাকে এই ফাইলে কোনও পরিবর্তন করার দরকার হবে না তবে এটির বিষয়বস্তু এবং এটি আপনার প্রকল্পের মধ্যে কী ভূমিকা পালন করে তা বোঝার জন্য এটি দরকারী।
মডিউল স্তরের গ্রেডল বিল্ড ফাইল
প্রকল্প স্তরের গ্রেডল বিল্ড ফাইলের পাশাপাশি প্রতিটি মডিউলের নিজস্ব একটি গ্রেডল বিল্ড ফাইল থাকে। নীচে একটি মৌলিক, মডিউল স্তরের গ্রেডল বিল্ড ফাইলের একটি এনোটোটেড সংস্করণ।
অন্যান্য গ্রেডল ফাইল
বিল্ড.gradle ফাইলগুলি ছাড়াও, আপনার গ্রেডল স্ক্রিপ্টস ফোল্ডারে কিছু অন্যান্য গ্রেডল ফাইল রয়েছে। আপনি যখন আপনার প্রকল্পে কোনও প্রাসঙ্গিক পরিবর্তন করেন তখন বেশিরভাগ সময় আপনাকে ম্যানুয়ালি এই ফাইলগুলি সম্পাদনা করতে হবে না কারণ সেগুলি স্বয়ংক্রিয়ভাবে আপডেট হবে। যাইহোক, আপনার প্রকল্পের মধ্যে এই ফাইলগুলির ভূমিকা কী তা বোঝা ভাল ধারণা।
গ্রেড- Wrapper.properties (গ্রেডল সংস্করণ)
এই ফাইলটি অন্য লোকদের তাদের মেশিনে গ্র্যাডল ইনস্টল না করে থাকলেও আপনার কোড তৈরি করতে দেয়। এই ফাইলটি গ্রেডলের সঠিক সংস্করণ ইনস্টল করা আছে কিনা তা পরীক্ষা করে এবং প্রয়োজনে প্রয়োজনীয় সংস্করণটি ডাউনলোড করে।
settings.gradle
এই ফাইলটি আপনার প্রকল্পটি তৈরি করে এমন সমস্ত মডিউলগুলি উল্লেখ করে।
গ্রেড.প্রোপার্টি (প্রকল্পের সম্পত্তি)
এই ফাইলটিতে আপনার সম্পূর্ণ প্রকল্পের জন্য কনফিগারেশন তথ্য রয়েছে। এটি ডিফল্টরূপে খালি, তবে আপনি এই প্রকল্পে এগুলি যুক্ত করে আপনার প্রকল্পে বিস্তৃত বৈশিষ্ট্য প্রয়োগ করতে পারেন।
স্থানীয়.প্রপার্টি (এসডিকে অবস্থান)
এই ফাইলটি অ্যান্ড্রয়েড গ্রেডল প্লাগইনকে বলে যেখানে এটি আপনার অ্যান্ড্রয়েড এসডিকে ইনস্টলেশনটি সন্ধান করতে পারে।
দ্রষ্টব্য: local.properties
এতে অ্যান্ড্রয়েড এসডিকে স্থানীয় ইনস্টলেশন সম্পর্কিত নির্দিষ্ট তথ্য রয়েছে। এর অর্থ হ'ল আপনার এই ফাইলটি উত্স নিয়ন্ত্রণে রাখা উচিত নয়।
প্রস্তাবিত পাঠ্য - টুটস্পলাস টিউটোরিয়াল
আমি এ থেকে গ্রেড সম্পর্কে স্পষ্ট বোঝা পেয়েছি।
গ্রেডল হ'ল এক ধরণের বিল্ড টুল যা প্রোগ্রামের উত্স কোড তৈরি করে। সুতরাং এটি অ্যান্ড্রয়েড স্টুডিওর একটি গুরুত্বপূর্ণ অংশ এবং আপনার অ্যাপ্লিকেশন বিকাশ শুরু করার আগে ইনস্টল করা দরকার।
আমাদের এটি আলাদাভাবে ইনস্টল করতে হবে না, কারণ আমরা যখন প্রথম প্রকল্প করি তখন অ্যান্ড্রয়েড স্টুডিও আমাদের জন্য এটি করে।
সংজ্ঞা :: Gradle কাঠামোগত ভবন প্রক্রিয়া যেখানে এটি একটি বিকাশকারী সরঞ্জাম ও তৈরি করতে একটি প্রকল্পের সম্পদ পরিচালনা করতে নমনীয়তা তৈরী করে যে প্রদান করে বর্ণনা করা যায় smaller in size
, targeting specific requirements
নির্দিষ্ট কনফিগারেশনের নির্দিষ্ট ডিভাইসের জন্য
বেসিক কনফিগারেশন
minimumSdk
maximumSdk
targettedSdk
versionCode
versionName
লাইব্রেরি :: আমরা প্রয়োজনীয়তা অনুসারে অ্যান্ড্রয়েড লাইব্রেরি বা অন্য কোনও তৃতীয় পক্ষের লাইব্রেরি যুক্ত করতে পারি যা আগে এক ক্লান্তিকর কাজ ছিল। লাইব্রেরি যদি বিদ্যমান প্রকল্পের জন্য ফিট না করে তবে বিকাশকারীকে একটি লগ দেখানো হয় যেখানে ব্যক্তি প্রকল্পে পরিবর্তনগুলি করার জন্য একটি উপযুক্ত সমাধান খুঁজে পেতে পারে যাতে গ্রন্থাগারটি যুক্ত করা যায়। নির্ভরতার একমাত্র লাইন
বিলগুলির বিভিন্ন বৈচিত্র্য
বিল্ড ভেরিয়েন্টগুলির বিভিন্নতা পেতে বিল্ড ফ্লেভারগুলির সাথে বিল্ড প্রকারের সংমিশ্রণ করা
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
সাইজ হ্রাস
গ্রেডল অব্যবহৃত সংস্থানগুলিও সংহত গ্রন্থাগারগুলি থেকে অব্যবহৃত জিনিসগুলি অপসারণ করে উত্পন্ন বিল্ডটির আকার হ্রাস করতে সহায়তা করে
ম্যানেজিং পারমিশন
প্রয়োজনীয়তার উপর ভিত্তি করে কিছু দৃশ্যে নির্দিষ্ট অনুমতি যুক্ত করে আমরা কিছু বিল্ডগুলির জন্য নির্দিষ্ট অনুমতিগুলি নির্দিষ্ট করতে পারি
নিখুঁত ডিভাইসগুলির জন্য বিল্ডস
আমরা নির্দিষ্ট ডিভাইসগুলির জন্য নির্দিষ্ট ঘনত্ব এবং নির্দিষ্ট এপিআই স্তর অন্তর্ভুক্ত করার জন্য বিল্ড তৈরির ব্যবস্থা করতে পারি। এটি একাধিক ধরণের ডিভাইসগুলির প্রয়োজন অনুসারে অ্যাপ স্টোরে পণ্য মোতায়েন করতে সহায়তা করে
ভাল রেফারেন্স
গ্রেডল সম্পর্কে আপনার যা জানা দরকার তা আপনি এখানে পেতে পারেন: গ্রেডল প্লাগইন ব্যবহারকারী গাইড
নতুন বিল্ড সিস্টেমের লক্ষ্যগুলি
নতুন বিল্ড সিস্টেমের লক্ষ্যগুলি হ'ল:
- কোড এবং সংস্থানগুলি পুনরায় ব্যবহার করা সহজ করুন
- একাধিক-অ্যাপ্লিকেশন বিতরণের জন্য বা কোনও অ্যাপ্লিকেশনের বিভিন্ন স্বাদের জন্য কোনও অ্যাপ্লিকেশনের বিভিন্ন রূপ তৈরি করা সহজ করুন
- বিল্ড প্রক্রিয়াটি কনফিগার করা, প্রসারিত এবং কাস্টমাইজ করা সহজ করুন
- ভাল আইডিই ইন্টিগ্রেশন
গ্রেডল কেন?
গ্রেডেল একটি উন্নত বিল্ড সিস্টেমের পাশাপাশি প্লাগইনগুলির মাধ্যমে কাস্টম বিল্ড লজিক তৈরি করতে দেয় এমন একটি উন্নত বিল্ড টুলকিট।
এখানে এর কয়েকটি বৈশিষ্ট্য রয়েছে যা আমাদের গ্রেডল বেছে নিতে বাধ্য করেছে:
- বিল্ড লজিকের বর্ণনা ও পরিচালনা করতে ডোমেন নির্দিষ্ট ভাষা (ডিএসএল)
- বিল্ড ফাইলগুলি গ্রোভি ভিত্তিক এবং ডিএসএল-এর মাধ্যমে ঘোষণামূলক উপাদানগুলির মিশ্রণ এবং ডিএসএল উপাদানগুলিকে কাস্টম লজিক সরবরাহ করার জন্য কোড ব্যবহার করে মঞ্জুরি দেয়।
- মাভেন এবং / অথবা আইভির মাধ্যমে অন্তর্নির্মিত নির্ভরতা পরিচালনা।
- খুব নমনীয়। সেরা অনুশীলনগুলি ব্যবহার করার অনুমতি দেয় তবে জিনিসগুলি করার নিজস্ব পদ্ধতিতে জোর করে না।
- প্লাগইনগুলি বিল্ড ফাইলগুলি ব্যবহারের জন্য তাদের নিজস্ব ডিএসএল এবং তাদের নিজস্ব এপিআই প্রকাশ করতে পারে।
- আইডিই সংহতকরণের অনুমতি দেয় ভাল সরঞ্জামকরণ এপিআই ing
আমি উত্তর লিখতে দুই টিউটোরিয়াল পড়ুন এক , দুই
গ্রেডেল হ'ল একটি সাধারণ উদ্দেশ্য, ঘোষিত বিল্ড সরঞ্জাম। এটি সাধারণ উদ্দেশ্য কারণ এটি বিল্ড স্ক্রিপ্টে প্রয়োগ করার জন্য আপনার যত্ন নেওয়ার মতো বেশ কিছু তৈরি করতে ব্যবহার করা যেতে পারে। এটি ঘোষণামূলক কারণ যেহেতু আপনি বিল্ড ফাইলে প্রচুর কোড দেখতে চান না, যা পাঠযোগ্য এবং কম রক্ষণাবেক্ষণযোগ্য নয়। সুতরাং, যখন গ্রেডল সম্মেলনগুলির ধারণা এবং একটি সহজ এবং ঘোষিত বিল্ড প্রদান করে, এটি সরঞ্জামটিকে অভিযোজিত এবং বিকাশকারীদের প্রসারিত করার ক্ষমতাও তৈরি করে। এটি কোনও তৃতীয় পক্ষের বৈশিষ্ট্য যুক্ত করতে ডিফল্ট আচরণ এবং বিভিন্ন হুককে কাস্টমাইজ করার সহজ উপায়ও সরবরাহ করে।
গ্রেডল উভয় সরঞ্জামের ভাল অংশগুলিকে একত্রিত করে এবং অতিরিক্ত বৈশিষ্ট্য সরবরাহ করে এবং গ্রোভিকে একটি ডোমেন নির্দিষ্ট ভাষা (ডিএসএল) হিসাবে ব্যবহার করে। এটি লাইফ চক্র তৈরি এবং ব্যবহারের সহজতার মতো ম্যাভেন বৈশিষ্ট্যগুলির সাথে এন্টি সরঞ্জামের শক্তি এবং নমনীয়তা অর্জন করে।
গ্রেডল কেন? এখন কেন?
বিল্ড টুলটির প্রতিক্রিয়া হ'ল নন-স্ট্যান্ডার্ড এক্সটেনশন প্রক্রিয়ার মাধ্যমে স্ক্রিপ্টিং কার্যকারিতা যুক্ত করা। আপনি এক্সএমএল এর সাথে স্ক্রিপ্টিং কোডটি মিশ্রিত করতে বা আপনার বিল্ড যুক্তি থেকে বাহ্যিক স্ক্রিপ্টগুলি চাওয়া শুরু করেন। এটি ধারণা করা সহজ যে আপনাকে সময়ের সাথে আরও বেশি কাস্টম কোড যুক্ত করতে হবে to ফলস্বরূপ, আপনি অনিবার্যভাবে দুর্ঘটনাজনিত জটিলতার পরিচয় দেন এবং রক্ষণাবেক্ষণযোগ্যতা উইন্ডোটির বাইরে চলে যায়।
ধরা যাক আপনি যখন আপনার প্রকল্পের প্রকাশ সংস্করণটি তৈরি করছেন তখন আপনি একটি নির্দিষ্ট স্থানে একটি ফাইল অনুলিপি করতে চান। সংস্করণ সনাক্ত করতে, আপনি মেটাডাটাতে আপনার প্রকল্পের বর্ণনা দিয়ে একটি স্ট্রিং পরীক্ষা করেছেন check যদি এটি একটি নির্দিষ্ট নম্বর স্কিমের সাথে মেলে (উদাহরণস্বরূপ, 1.0-রিলেস), আপনি ফাইলটি পয়েন্ট এ থেকে পয়েন্ট বি পর্যন্ত অনুলিপি করছেন, বাইরের দৃষ্টিকোণ থেকে, এটি একটি তুচ্ছ কাজের মতো মনে হতে পারে। যদি আপনাকে এক্সএমএল-এর উপর নির্ভর করতে হয়, তবে অনেকগুলি toolsতিহ্যবাহী সরঞ্জামগুলির বিল্ড ল্যাঙ্গুয়েজ, এই সাধারণ যুক্তিটি প্রকাশ করা মোটামুটি কঠিন হয়ে যায়।
জাভা বিল্ড সরঞ্জামগুলির বিবর্তন
জাভা বিল্ড লজিকের এক্সএমএলে বর্ণনা করতে হবে। এক্সএমএল হায়ারারিকিকাল ডেটা বর্ণনা করার জন্য দুর্দান্ত তবে প্রোগ্রাম প্রবাহ এবং শর্তসাপেক্ষ যুক্তি প্রকাশের ক্ষেত্রে কম পড়ে। বিল্ড স্ক্রিপ্ট জটিলতায় বেড়ে যাওয়ার সাথে সাথে বিল্ডিং কোড বজায় রাখা দুঃস্বপ্নে পরিণত হয়।
পিঁপড়ে , আপনি জেআর লক্ষ্যটি সংকলন লক্ষ্যের উপর নির্ভর করে। কীভাবে আপনার প্রকল্পটি কীভাবে গঠন করবেন সে সম্পর্কে কোনও নির্দেশিকা দেয় না পিঁপড়া। যদিও এটি সর্বাধিক নমনীয়তার জন্য মঞ্জুরি দেয়, পিঁপড় প্রতিটি বিল্ড স্ক্রিপ্টকে অনন্য এবং বুঝতে শক্ত করে তোলে। আপনার প্রকল্পের জন্য প্রয়োজনীয় বাহ্যিক গ্রন্থাগারগুলি সাধারণত সংস্করণ নিয়ন্ত্রণে পরীক্ষা করা হয় কারণ কোনও কেন্দ্রীয় অবস্থান থেকে এগুলি টানতে কোনও স্বয়ংক্রিয় ব্যবস্থা নেই।
2004 সালের জুলাইয়ে প্রকাশিত মাভেন 1 , সেই প্রক্রিয়াটি সহজ করার চেষ্টা করেছিল। এটি একটি প্রমিত প্রকল্প এবং ডিরেক্টরি কাঠামো, পাশাপাশি নির্ভরতা পরিচালন সরবরাহ করে। দুর্ভাগ্যক্রমে, কাস্টম যুক্তি প্রয়োগ করা কঠিন
গ্রেডল সেই প্রজন্মের বিল্ড সরঞ্জামগুলির সাথে সরাসরি ফিট করে এবং আধুনিক বিল্ড সরঞ্জামগুলির অনেকগুলি প্রয়োজনীয়তা পূরণ করে (চিত্র 1)। এটি একটি অভিব্যক্তিপূর্ণ ডিএসএল, কনফিগারেশন পদ্ধতির উপর একটি সম্মেলন এবং শক্তিশালী নির্ভরতা পরিচালনার ব্যবস্থা করে। এটি এক্সএমএলকে ত্যাগ করার জন্য এবং আপনার বিল্ড যুক্তির সংজ্ঞা দেওয়ার জন্য গতিময় ভাষা গ্রোভির সাথে পরিচয় করিয়ে দেওয়ার সঠিক পদক্ষেপ করে। বাধ্য মনে হচ্ছে, তাই না?
গ্রেডল অন্যান্য বিল্ড সরঞ্জামগুলির সেরা বৈশিষ্ট্যগুলিকে একত্রিত করে।
গ্রেডেলের বাধ্যতামূলক বৈশিষ্ট্য সেট
আপনার জাভা প্রকল্পগুলি পিঁপড়া বা মাভেনের চেয়ে গ্রেডল দিয়ে কেন তৈরি করবেন?
অ্যান্ড্রয়েডের জন্য ডিফল্ট বিল্ড সরঞ্জাম (এবং জেভিএম-এ বিল্ড সরঞ্জামগুলির নতুন তারকা) জটিল, বহু-ভাষা বিল্ডগুলির স্ক্রিপ্টিং সহজ করতে ডিজাইন করা হয়েছে। আপনার কি এটিকে পরিবর্তন করা উচিত, আপনি কি পিপীলিকা বা ম্যাভেন ব্যবহার করছেন?
আপনার বিল্ড স্ক্রিপ্টের মধ্যে গ্র্যাডলের পাওয়ার বৈশিষ্ট্যগুলি আনলক করার মূল চাবিকাঠিটি এর ডোমেন মডেলটি আবিষ্কার এবং প্রয়োগের মধ্যে রয়েছে যা নীচের চিত্রটিতে দেখানো হয়েছে।
গ্রেডল আপনার এন্টারপ্রাইজ বিল্ডের সাথে সম্পর্কিত সমস্ত প্রয়োজনীয়তা জানতে পারে না। আজীবনচক্র পর্যায়ক্রমে হুকগুলি প্রকাশ করে, গ্রেডল বিল্ড স্ক্রিপ্টের সম্পাদন আচরণ পর্যবেক্ষণ এবং কনফিগার করার অনুমতি দেয়।
গ্রাডো গ্রোভিতে প্রয়োগ করা একটি ডিএসএল প্রকাশ করে তার মডেলের জন্য একটি শব্দভাণ্ডার স্থাপন করে। কোনও জটিল সমস্যা ডোমেন নিয়ে কাজ করার ক্ষেত্রে, এই ক্ষেত্রে, আপনার যুক্তি প্রকাশের জন্য একটি সাধারণ ভাষা ব্যবহার করতে সক্ষম হওয়া সফ্টওয়্যার তৈরির কাজটি একটি শক্তিশালী হাতিয়ার হতে পারে।
আরেকটি উদাহরণ হ'ল বাহ্যিক গ্রন্থাগারগুলির উপর নির্ভরতা প্রকাশের উপায়, বিল্ড সরঞ্জাম দ্বারা সমাধান করা খুব সাধারণ সমস্যা। বক্স-অফ-বাক্স গ্রেডল আপনাকে আপনার বিল্ড স্ক্রিপ্টের জন্য দুটি কনফিগারেশন ব্লক সরবরাহ করে যা আপনাকে সেগুলি থেকে পুনরুদ্ধার করতে চাইলে নির্ভরতা এবং সংগ্রহস্থলগুলি সংজ্ঞায়িত করতে দেয়। যদি স্ট্যান্ডার্ড ডিএসএল উপাদানগুলি আপনার প্রয়োজনগুলি মাপসই করে না, আপনি এমনকি গ্রেডলের সম্প্রসারণ প্রক্রিয়াটির মাধ্যমে আপনার নিজস্ব শব্দভাণ্ডার প্রবর্তন করতে পারেন।
অন্যান্য বিল্ড সরঞ্জামগুলির সাথে সংহতকরণ
গ্রেডল তার পূর্বসূরীদের 'পিঁপড়া, মাভেন এবং আইভির সাথে ভাল অভিনয় করেছে, যেমন নীচের চিত্রটিতে দেখানো হয়েছে।
বিল্ড থেকে ডিপ্লোয়মেন্ট পর্যন্ত আপনার প্রকল্পটি স্বয়ংক্রিয় করা
ছবিতে: স্থাপনার পাইপলাইনের পর্যায়গুলি।
কোড সংকলন
চলমান ইউনিট এবং ইন্টিগ্রেশন পরীক্ষা
স্ট্যাটিক কোড বিশ্লেষণ সম্পাদন করা এবং পরীক্ষার কভারেজ উত্পন্ন করা
বিতরণ তৈরি করা হচ্ছে
লক্ষ্য পরিবেশ বিধান
বিতরণযোগ্য মোতায়েন
ধোঁয়া এবং স্বয়ংক্রিয় কার্যকরী পরীক্ষা সম্পাদন করা
গ্রেডল একটি বিল্ড সিস্টেম । বিল্ড সিস্টেমগুলি সফ্টওয়্যার সরঞ্জাম যা প্রোগ্রাম সংকলনের প্রক্রিয়াটি স্বয়ংক্রিয় করতে ডিজাইন করা হয়। বিল্ড সিস্টেমগুলি বিভিন্ন রূপে আসে এবং বিভিন্ন সফ্টওয়্যার তৈরির কাজে ব্যবহৃত হয়। যদিও তাদের প্রাথমিক লক্ষ্য দক্ষতার সাথে এক্সিকিউটেবলগুলি তৈরি করা।
আরেকটি সম্পর্কিত শব্দটি বিল্ড অটোমেশন যা কোনও সফ্টওয়্যার বিল্ড তৈরি এবং এর সাথে সম্পর্কিত প্রক্রিয়াগুলি স্বয়ংক্রিয়করণের প্রক্রিয়া সহ অন্তর্ভুক্ত: কম্পিউটার উত্স কোডটি বাইনারি কোডে সংকলন, প্যাকেজিং বাইনারি কোড এবং স্বয়ংক্রিয় পরীক্ষা চালানো।
অন্যান্য ভাষার জন্য অল্প কয়েকটি বিল্ড সিস্টেম হ'ল ( এখানে সম্পূর্ণ তালিকা দেখুন ):
বিতর্কিত হওয়ার ঝুঁকিতে আমি মনে করি এর পিছনে অ্যান্ড্রয়েড স্টুডিও / গ্রেডলের অভিজ্ঞতা কেন এত খারাপ of
সাধারণ ক্লোজারের অভিজ্ঞতা:
সাধারণ অ্যান্ড্রয়েড স্টুডিও / গ্রেডল অভিজ্ঞতা:
আমি নিশ্চিত নই যে এটি গ্রেডলের দোষ ঠিক। তবে "এক্লিপস প্রকল্প থেকে আমদানি" দেখতে বেশ ফ্ল্যাঙ্ক বলে মনে হচ্ছে। গ্রেডলের সমস্ত কথিত পরিশীলন এবং একটি বিল্ড-সিস্টেমের গুণাবলী জন্য, অ্যান্ড্রয়েড স্টুডিও খুব সহজেই Eclipse থেকে বিল্ড নির্ভরতা বা বিল্ড-প্রক্রিয়াটি আমদানি করে বলে মনে হয় না।
এটি কখন নির্ভর করে না যখন এটি সম্পূর্ণ নির্ভরতা গ্রাফ আমদানি করতে ব্যর্থ হয়। অ্যান্ড্রয়েড স্টুডিও সমস্যাটি কীভাবে সমাধান করবেন সে সম্পর্কে কোনও কার্যকর সহায়তা বা টিপস দেয় না। এটি আপনাকে বলছে না যে আপনি কোথায় গ্রহন ফোল্ডারগুলিতে ম্যানুয়ালি দেখতে পারেন look কোন লাইব্রেরি অনুপস্থিত বলে মনে হচ্ছে তা আপনাকে জানায় না। বা তাদের জন্য মাভেন ইত্যাদি অনুসন্ধানে সহায়তা করুন।
২০১ 2016 সালে লেইনিঞ্জেন / ক্লোজারস, বা নোডের এনপিএম, বা পাইথনের পাইপ, বা ডেবিয়ান এপিকেজি (এবং আমি নিশ্চিত যে অন্যান্য ভাষা ও সিস্টেমের জন্য অনেকগুলি অনুরূপ প্যাকেজ ম্যানেজার) সমস্ত সুন্দর করে কাজ করে ... হারিয়ে যাওয়া নির্ভরতা অতীতের বিষয়।
অ্যান্ড্রয়েড ছাড়া। অ্যান্ড্রয়েড স্টুডিও এখন একমাত্র জায়গা যেখানে আমি এখনও নিখোঁজ-নির্ভরতা নরকের অভিজ্ঞতা অনুভব করি।
আমি বলতে চাইছি এটি গুগলের দোষ। তারা অবিশ্বাস্যরূপে রূপান্তর প্রক্রিয়া তৈরি না করেই অ্যাক্রয়েড থেকে অ্যানড্রয়েড স্টুডিও / গ্রেডলে স্থানান্তরিত করার সিদ্ধান্ত নেওয়ার সময় অ্যান্ড্রয়েড ইকোসিস্টেমটি (এবং কয়েক হাজার বিদ্যমান অ্যান্ড্রয়েড প্রকল্প / অনলাইন টিউটোরিয়াল) ভেঙে ফেলেছে। যাদের প্রকল্পগুলির গ্রহগ্রহে কাজ করে তারা এএস হিসাবে খাপ খাইয়ে নিচ্ছে না (সম্ভবত এটি তাদের জন্য ব্যথার কারণ)। এবং এএসগুলিতে এই প্রকল্পগুলি ব্যবহার করার চেষ্টা করা লোকেরা একই সমস্যাটিকে হিট করছে।
এবং যাইহোক, গ্রেডল যদি এই সুপার-পাওয়ারফুল বিল্ড সিস্টেম হয় তবে কেন আমি এখনও এসডিকে ম্যানেজারের সম্পূর্ণ অন্যান্য নির্ভরতা পরিচালনা করছি? একটি প্রকল্পের দরকার নেই কেন, বলুন, এনডিকে এটির গ্র্যাডল ফাইলে এটি নির্দিষ্ট করে যাতে এটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায় এবং যখন প্রয়োজন হয় তখন বিল্ট-বিপরীতে চলে যায়? এনডিকে বিশেষ কেন? একইভাবে লক্ষ্য প্ল্যাটফর্মের জন্য? আমি কেবল তাদের বিরুদ্ধে আমার প্রজেক্টটি পরীক্ষা না করে এবং পর্দার আড়ালে আমার জন্য এটি সাজিয়ে রাখার চেয়ে কেন আমি তাদের স্পষ্টভাবে আইডিইতে ইনস্টল করছি?
Gradle
একটি উন্নত বিল্ড সিস্টেমের পাশাপাশি প্লাগইনগুলির মাধ্যমে কাস্টম বিল্ড লজিক তৈরি করতে দেয় এমন একটি উন্নত বিল্ড টুলকিট!
সুবিধাদি:
ম্যানিফেস্ট এন্ট্রি
ডিএসএলের মাধ্যমে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রিগুলি কনফিগার করা সম্ভব:
ভেরিয়েন্ট তৈরি করুন
ডিফল্টরূপে, অ্যান্ড্রয়েড প্লাগইন অ্যাপ্লিকেশনটির একটি ডিবাগ এবং একটি প্রকাশ সংস্করণ উভয়ই স্বয়ংক্রিয়ভাবে প্রকল্পটি সেট আপ করে।
নির্ভরতা
আপনার যদি স্থানীয় ফাইল সিস্টেমে বাইনারি সংরক্ষণাগার থাকে যে কোনও মডিউল নির্ভর করে যেমন জেআর ফাইলগুলি, আপনি এই মডিউলটির জন্য বিল্ড ফাইলে এই নির্ভরতাগুলি ঘোষণা করতে পারেন।
প্রথমে সংগ্রহস্থলটিকে তালিকায় যুক্ত করতে হবে এবং তারপরে নির্ভরতা এমনভাবে ঘোষণা করতে হবে যাতে মাভেন বা আইভী তাদের শিল্পকর্মগুলি ঘোষণা করে।
গ্রেডল জাভাতে পিঁপড়া কী তা গ্রোভি জেভিএম ভাষায়। মূলত, এটি গ্রোভির বিল্ড টুল। পিঁপড়ার মতো নয়, এটি সম্পূর্ণ গ্রোভি ভাষার উপর ভিত্তি করে। আপনি উদাহরণস্বরূপ, নির্দিষ্ট ডোমেন ভাষার উপর নির্ভর না করে কিছু করার জন্য গ্র্যাডলি স্ক্রিপ্টে গ্রোভি স্ক্রিপ্ট কোড লিখতে পারেন।
আমি ইন্টেলিজির নির্দিষ্ট ইন্টিগ্রেশন জানি না, তবে আপনি গ্রোভিকে এমন "প্রসারিত" করতে পারেন যে আপনি নির্দিষ্ট "বিল্ড" ভাষার আদিম লিখতে পারেন এবং তারা কেবল গ্রোভি ভাষার অংশ হয়ে গেছে। (গ্রোভির রূপকর্মটি নিজের কাছে পুরো আলোচনার জন্য।) ইন্টেলিজ / গুগল খুব উচ্চ-স্তরের বিল্ড ল্যাঙ্গুয়েজ তৈরি করতে গ্রেডল ব্যবহার করতে পারে, তবুও, এটি একটি সম্প্রসারণযোগ্য, উন্মুক্ত মানের ভিত্তিতে একটি ভাষা নির্মাণ build
গ্রেডল অ্যান্ড্রয়েডের জন্য একটি উন্নত বিল্ড টুলকিট যা নির্ভরতা পরিচালনা করে এবং আপনাকে কাস্টম বিল্ড লজিক সংজ্ঞায়িত করতে দেয়। বৈশিষ্ট্যগুলি হ'ল
বিল্ড প্রক্রিয়াটি কাস্টমাইজ করুন, কনফিগার করুন এবং প্রসারিত করুন।
একই প্রকল্পটি ব্যবহার করে বিভিন্ন বৈশিষ্ট্য সহ আপনার অ্যাপের জন্য একাধিক APK তৈরি করুন।
কোড এবং সংস্থান পুনরায় ব্যবহার করুন।
গ্রেডেল একটি অটোমেটেড বিল্ড টুলকিট যা কেবল অ্যান্ড্রয়েড প্রকল্পের জন্যই নয় বিভিন্ন পরিবেশে একীভূত করতে পারে।
এখানে কয়েকটি জিনিস যা আপনি গ্রেডের সাথে করতে পারেন।
নতুন প্রকল্পগুলির জন্য ন্যূনতম কনফিগারেশন প্রয়োজন কারণ গ্রেডলে আপনার অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলির জন্য ডিফল্ট কনফিগারেশন রয়েছে।
নির্ভরতা ঘোষণা। আপনি স্থানীয় বা দূরবর্তী সার্ভারে হোস্ট করা নির্ভরতা জার ফাইল বা লাইব্রেরি ফাইলগুলি ঘোষণা করতে পারেন।
গ্রেডেল স্বয়ংক্রিয়ভাবে আপনার প্রকল্পের উত্স থেকে একটি পরীক্ষা ডিরেক্টরি এবং একটি পরীক্ষামূলক APK তৈরি করে।
আপনি সব প্রয়োজনীয় তথ্য, যোগ করেন তাহলে যেমন keyPassword
এবং keyAlias
, আপনার Gradle বিল্ড ফাইল জন্য, আপনাকে Gradle ব্যবহার স্বাক্ষরিত APK গুলি জেনারেট করতে পারবেন না।
গ্রেডেল একক মডিউল থেকে বিভিন্ন প্যাকেজ সহ একাধিক APK তৈরি করতে পারে এবং কনফিগারেশন তৈরি করতে পারে।
অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল হ'ল একটি কাস্টম বিল্ড টুল যা নির্ভরতা পরিচালনা করে এবং কাস্টম বিল্ড লজিক সরবরাহ করে অ্যান্ড্রয়েড প্যাকেজগুলি (এপিপি ফাইল) তৈরি করতে ব্যবহৃত হয়।
APK ফাইল (অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্যাকেজ) একটি বিশেষভাবে ফর্ম্যাট করা জিপ ফাইল যা এতে রয়েছে
একটি এপিপি ফাইল স্বাক্ষরিত হয়ে এডিবি (অ্যান্ড্রয়েড ডিবাগ ব্রিজ) ব্যবহার করে ডিভাইসে ধাক্কা দেয় যেখানে এটি কার্যকর হয়।
দ্বারা @ ব্রায়ান গার্ডনার :
গ্রেডল হ'ল প্রোগ্রামিং প্রকল্পগুলির জন্য বিস্তৃত বিল্ড সরঞ্জাম এবং নির্ভরতা পরিচালক। গ্রোভির উপর ভিত্তি করে এটির একটি ডোমেন নির্দিষ্ট ভাষা রয়েছে। গ্রেডেল জাভা, অ্যান্ড্রয়েড এবং স্কালাসহ অনেক ধরণের প্রকল্পের জন্য বিল্ড-বাই-কনভেনশন সহায়তা সরবরাহ করে।
গ্রেডলের বৈশিষ্ট্য:
গ্রেডল হ'ল জটিল অ্যান্ড্রয়েড প্রকল্পগুলির বিল্ডিংকে স্বয়ংক্রিয় করা সম্ভব করে যা একাধিক উত্স, প্রকল্পগুলি, গ্রন্থাগার ইত্যাদির মাধ্যমে কয়েক হাজার লাইনের কোডগুলিতে জড়িত থাকে এটি শর্তাধীনভাবে কনফিগারেশনের বিশদগুলির আধিক্যের ভিত্তিতে একাধিক অপ্টিমাইজড এপিপি তৈরি করতে পারে - আপনি যদি হন আগ্রহী, অন্যান্য উত্তর গ্রেডলের এই দিকটির আরও বিশদ সরবরাহ করে।
যাইহোক, যদি আপনি মামলার 99% মধ্যে উন্নয়নশীল, Gradle অ্যান্ড্রয়েড নতুন হন কি স্টপ ভবন থেকে আপনার প্রকল্পের। এটি একটি অনির্বচনীয়, জটিল সিস্টেম যা অ্যান্ড্রয়েড বিল্ড প্রক্রিয়াটিকে কার্যকরভাবে অবিস্মরণ করে এবং এটি অনভিজ্ঞ ডেভেলপারদের কাছে প্রয়োজনীয়ভাবে উপলব্ধ করে না, অর্থাত্ একটি সরল এন্ট্রি লেভেল অ্যান্ড্রয়েড অ্যাপ তৈরির জন্য সন্দেহজনক নবাগত বেশিরভাগ বিষয় অধ্যয়ন করতে পারে এবং বুঝতে পারে যে তারা দর কষাকষি করেনি did যেমন:
অ্যান্ড্রয়েড বিকাশকারীদের জানার জন্য এই সমস্ত জিনিস আকর্ষণীয় এবং দরকারী তবে এগুলি সহজ থেকে অনেক দূরে এবং এন্ট্রি করার ক্ষেত্রে একটি দুর্দান্ত বাধা উপস্থাপন করে। আমি সন্দেহ করি যে ওপিকে এই প্রশ্নটি জিজ্ঞাসা করতে অনুপ্রেরণা হ'ল হতাশার অনুভূতি যা গ্রাডল দ্বারা নিয়মিত একটি সাধারণ অ্যাপ্লিকেশন তৈরি করার চেষ্টা এবং ক্রমাগত ব্যর্থ হয়ে যাওয়ার জন্য দীর্ঘ সময় ব্যয় করার পরেও নিওফাইট বিকাশকারীকে অনিবার্যভাবে আঘাত করে। এই সমস্ত প্রযুক্তির জন্য উপলব্ধ অত্যন্ত প্রযুক্তিগত ডকুমেন্টেশনগুলির অত্যধিক পরিমাণে সমস্যাটি বিকৃতভাবে আরও বেড়েছে। বিপুল পরিমাণে বিকাশের প্রয়োজনে গ্রেডল হ'ল ওভারকিল।
বিকল্পটি হ'ল অ্যান্ড্রয়েড এসকেকে উপলব্ধ সরঞ্জামগুলি স্বয়ংক্রিয় করে নিজের প্রকল্পটি তৈরি করে এমন শেল স্ক্রিপ্ট লিখতে। এই পদ্ধতির গুণাবলী অনেকগুলি, কারণ এটি সম্ভবত বিল্ড প্রক্রিয়া এবং অ্যান্ড্রয়েড ইকোসিস্টেমটি অধ্যয়ন এবং বোঝার সর্বোত্তম উপায় এবং এটি আপনাকে কীভাবে আপনার অ্যাপ্লিকেশনটি তৈরি হয় তা সম্পূর্ণরূপে নিয়ন্ত্রণ করতে দেয়। তবে এই পদ্ধতিটি অ্যান্ড্রয়েড চেষ্টা করে অনভিজ্ঞ নুবুকের চেয়ে গভীরভাবে অদম্য টেক-হেডদের জন্য আরও উপযুক্ত।
এর অনুপস্থিতি দ্বারা কী স্পষ্টতাত্বক রয়েছে (দয়া করে যদি এমন কোনও বিষয় থাকে তবে আমাকে জানান) হ্রাস ফিচার সেট সহ লাইটওয়েট আইডিই যা অস্পষ্ট না করে একই সাথে বিল্ড প্রক্রিয়াটিকে সহজতর করে তোলে (সুতরাং নেটবিন বা গ্রহণ নয়) এটি সম্ভবত এখনও হতে পারে গ্রেডল (পিপীলিকার সাথে কী ভুল ছিল) ব্যবহার করুন। কয়েকটি সাধারণ কনফিগারেশনের সাথে সামঞ্জস্য করে এমন APKs তৈরি করা সহজ হওয়া উচিত এবং কোনও প্রকল্প কাঠামো ব্যবহার করা যেতে পারে যা কোনও অ্যান্ড্রয়েড স্টুডিও প্রকল্পে বিকশিত হতে পারে আপনি যদি সেভাবে নিয়ে যাওয়ার সিদ্ধান্ত নেন তবে।
স্পষ্ট ভাষায়, গ্রেডল দুটি গুরুত্বপূর্ণ প্রক্রিয়া বাস্তবায়নের জন্য অ্যান্ড্রয়েড স্টুডিওর সরবরাহ করা একটি সরঞ্জাম by
ওয়েব অ্যান্ড্রয়েড থেকে সন্ধান ফলাফল বৈশিষ্ট্যযুক্ত স্নিপেট | বিল্ড। gradle। গ্রেডল একটি বিল্ড সিস্টেম (ওপেন সোর্স) যা বিল্ডিং, টেস্টিং, মোতায়েন ইত্যাদি স্বয়ংক্রিয়ভাবে ব্যবহৃত হয় ... উদাহরণস্বরূপ, কিছু ফাইল এক ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে অনুলিপি করা সহজ কাজটি প্রকৃত বিল্ডের আগে গ্রেডল বিল্ড স্ক্রিপ্ট সম্পাদন করতে পারে প্রক্রিয়া ঘটে।
অ্যান্ড্রয়েড স্টুডিওতে গ্রেডল আমাদের অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রকল্পগুলি তৈরি করতে ব্যবহৃত হয়, তাই বিল্ড সিস্টেমের ভূমিকা পালন করে। অ্যানড্রয়েড স্টুডিওর আগে, অ্যাক্রিপসে আমরা কমান্ড লাইন সরঞ্জাম ব্যবহার করে অ্যাপ্লিকেশনগুলি সংকলন ও নির্মাণ করতাম যা শীঘ্রই এএনটি ব্যবহার করে অ্যানড্রয়েডে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি তৈরি এবং চালানোর জন্য জিইআই ভিত্তিক পদক্ষেপ গ্রহণ করা হয়েছিল। প্রতিটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশের সরঞ্জামকে সংস্থানগুলি, জাভা উত্স কোড, বাহ্যিক গ্রন্থাগারগুলি সংকলন করতে হবে এবং চূড়ান্ত এপিএকে একত্রিত করতে হবে।
Gradle একটি বিল্ড সিস্টেম, যা কোড সংকলন, পরীক্ষা, স্থাপনা এবং কোডটিকে .dex ফাইলে রূপান্তর করার জন্য এবং তাই ডিভাইসে অ্যাপটি চালানোর জন্য দায়ী।
অ্যান্ড্রয়েড স্টুডিও যেমন গ্রেডল সিস্টেমটি পূর্ব-ইনস্টলড নিয়ে আসে, আমাদের প্রকল্পটি তৈরি করতে অতিরিক্ত রানটাইম সফ্টওয়্যার ইনস্টল করার দরকার নেই। আপনি যখনই ক্লিক করবেন অ্যান্ড্রয়েড স্টুডিওতে বোতামে , একটি গ্রেড টাস্ক স্বয়ংক্রিয়ভাবে ট্রিগার করে এবং প্রকল্পটি তৈরি করা শুরু করে এবং গ্রেডেল তার কাজ শেষ করার পরে, অ্যাপ্লিকেশনটি এভিডি বা সংযুক্ত ডিভাইসে চলতে শুরু করে।
গ্রেডলের মতো একটি বিল্ড সিস্টেম কোনও সংকলক, লিঙ্কার ইত্যাদি নয়, তবে এটি সংকলন, ফাইলগুলির লিঙ্কিং, পরীক্ষার কেসগুলি চালানো এবং শেষ পর্যন্ত আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটির জন্য একটি এপিপি ফাইলের সাথে কোডটি বান্ডিল করে এবং পরিচালনা করে।
প্রতিটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পের জন্য দুটি বিল্ড.gradle ফাইল রয়েছে যার মধ্যে একটি অ্যাপ্লিকেশনের জন্য এবং অন্যটি প্রকল্প স্তরের (মডিউল স্তর) বিল্ড ফাইলগুলির জন্য।
বিল্ড প্রক্রিয়ায়, কম্পাইলার সোর্স কোড সম্পদ, বাহ্যিক লাইব্রেরি JAR- র ফাইল এবং লাগে Andro আইডি (যা আবেদন সম্পর্কে মেটা-ডেটা রয়েছে) তাদের মধ্যে রূপান্তর .dex (Dalvik সম্পাদনযোগ্য ফাইল) ফাইল, যার মধ্যে বাইটকোড । সেই বাইটকোডটি আপনার অ্যাপ্লিকেশনটি চালানোর জন্য সমস্ত অ্যান্ড্রয়েড ডিভাইস দ্বারা সমর্থিত। তারপরে APK ম্যানেজার একক APK ফাইলটিতে .dex ফাইল এবং অন্যান্য সমস্ত সংস্থানকে একত্রিত করে । APK প্যাকেজার স্ব স্ব ডিবাগ বা রিলিজ কীস্টোরটি ব্যবহার করে ডিবাগ বা রিলিজ apk স্বাক্ষর করে।
ডিবাগ এপিপি সাধারণত পরীক্ষার উদ্দেশ্যে ব্যবহৃত হয় বা আমরা বলতে পারি যে এটি কেবলমাত্র উন্নয়ন পর্যায়ে ব্যবহৃত হয়। যখন আপনার অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বৈশিষ্ট্য সহ সম্পূর্ণ হয়ে যায় এবং আপনি বাহ্যিক ব্যবহারের জন্য আপনার অ্যাপ্লিকেশন প্রকাশ করতে প্রস্তুত থাকেন তখন আপনার একটি রিলিজ এপিপি স্বাক্ষরিত হবে একটি রিলিজ কীস্টোর ব্যবহার করে স্বাক্ষরিত।
এবার গ্রেড ফাইলগুলিতে কিছুটা আলোকপাত করা যাক।
setting.gradle setting.gradle (Gradle সেটিং) ফাইলটি সমস্ত আপনার অ্যাপে ব্যবহৃত মডিউল উল্লেখ করতে ব্যবহৃত হয়।
build.gradle (প্রকল্প স্তর) শীর্ষ স্তর (মডিউল) build.gradle ফাইলটি প্রকল্প স্তর বিল্ড ফাইল, যা প্রকল্প স্তরে বিল্ড কনফিগারেশনগুলি সংজ্ঞায়িত করে। এই ফাইলটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রকল্পের সমস্ত মডিউলগুলিতে কনফিগারেশন প্রয়োগ করে।
build.gradle (অ্যাপ্লিকেশন স্তর) অ্যাপ্লিকেশন স্তর বিল্ড.gradle ফাইলটি অ্যান্ড্রয়েড প্রকল্পের প্রতিটি মডিউলটিতে অবস্থিত। এই ফাইলটিতে আপনার প্যাকেজের নাম অ্যাপ্লিকেশনআইডি, সংস্করণ নাম (এপিপি সংস্করণ), সংস্করণ কোড, একটি নির্দিষ্ট অ্যাপ্লিকেশন মডিউলের জন্য সর্বনিম্ন এবং টার্গেট এসডিকে অন্তর্ভুক্ত রয়েছে। আপনি যখন বাহ্যিক লাইব্রেরিগুলি (জার ফাইলগুলি নয়) অন্তর্ভুক্ত করছেন তখন অ্যাপ্লিকেশন নির্ভরতা হিসাবে আপনার প্রকল্পে এটি অন্তর্ভুক্ত করার জন্য আপনাকে অ্যাপ স্তরের গ্রেড ফাইলটিতে এটি উল্লেখ করতে হবে to
দ্রষ্টব্য: যদি কোনও নির্দিষ্ট অ্যাপ্লিকেশনটি পৃথক মডিউলগুলির মতো, স্মার্ট ফোন, ট্যাবলেট বা টিভিতে পরিবর্তিত হয়ে উন্নত হয় তবে সবার জন্য পৃথক গ্রেড ফাইলগুলি তৈরি করতে হবে। এমনকি আপনি কমান্ড লাইন সরঞ্জামের মাধ্যমে আপনার গ্রেড সিস্টেমটি শুরু করতে পারেন । নিম্নলিখিত আদেশগুলি এর জন্য ব্যবহৃত হয়:
./gradlew বিল্ড - (বিল্ড প্রকল্প)
./gradlew পরিষ্কার বিল্ড - (বিল্ড প্রকল্পের সম্পূর্ণ স্ক্র্যাচ)
./gradlew পরিষ্কার বিল্ড - (পরীক্ষা চালানো)
./gradlew মোড়কের - (সমস্ত উপলব্ধ কর্ম দেখতে)
গ্রেডল = গ্রোভি + ক্র্যাডল হ্যান্স ডকটার ফোরামের মন্তব্য
এই বিভ্রান্তিটি কিছুটা অপ্রয়োজনীয় যখন এটি স্রেফ "বিল্ড" বা অ্যান্ড্রয়েড স্টুডিওতে কিছু বলা যেতে পারে।
আমরা উন্নয়ন সম্প্রদায়ের নিজেদের জন্য জিনিসগুলিকে কঠিন করে তুলতে চাই।