অ্যান্ড্রয়েড বিল্ড স্ট্রাকচার, অ্যান্ড্রয়েড বিল্ড স্ট্রাকচার

আপনার অ্যাপ্লিকেশন উত্স এবং সংস্থানগুলিকে সংগঠিত করতে Android প্রকল্পগুলিতে অনেকগুলি বিল্ড-সম্পর্কিত ফাইল এবং ডিরেক্টরি কাঠামো রয়েছে৷ কনফিগারেশনের বিশদ বিবরণে ডুব দেওয়ার আগে, আমরা সামগ্রিক কাঠামো এবং প্রতিটি অংশে কী রয়েছে তার মূল বিষয়গুলি একবার দেখে নেব৷

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

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

ফোল্ডার/ফাইল

ব্যবহার করুন

.gradle/

Gradle প্রজেক্ট ক্যাশে ডিরেক্টরি

Gradle দ্বারা পরিচালিত এবং ডাউনলোড করা Gradle ডিস্ট্রিবিউশন, প্রোজেক্ট ক্যাশে এবং কনফিগারেশন ফাইল রয়েছে।

এই ডিরেক্টরিতে ফাইল পরিবর্তন করবেন না!

.idea/

অ্যান্ড্রয়েড স্টুডিও প্রকল্প মেটাডেটা

এই ডিরেক্টরিতে ফাইল পরিবর্তন করবেন না!

build.gradle(.kts)

রুট বিল্ড ফাইল

সাবপ্রজেক্ট জুড়ে একটি সাধারণ প্লাগইন ক্লাসপাথ সেট আপ করার জন্য শুধুমাত্র প্লাগইন ঘোষণা থাকা উচিত।

অন্যান্য কোড সেটিংস বা নেস্টেড-প্রকল্প-স্তরের বিল্ড ফাইলগুলিতে থাকা উচিত।

gradle.properties

গ্রেডল এক্সিকিউশন কনফিগারেশন

Gradle বৈশিষ্ট্যগুলি ধারণ করে, Gradle বিল্ড এনভায়রনমেন্টের দিকগুলি যেমন হিপ সাইজ, ক্যাশিং এবং সমান্তরাল এক্সিকিউশন নিয়ন্ত্রণ করে।

কিছু অস্থায়ী অ্যান্ড্রয়েড বৈশিষ্ট্য এখানে সংজ্ঞায়িত করা হয়েছে, এজিপি ডিএসএল-এ পরিবর্তনগুলিকে কমাতে যেহেতু সেগুলি যোগ করা হয়েছে এবং পরে সরানো হয়েছে৷

gradlew (লিনাক্স, ম্যাক)

gradlew.bat (উইন্ডোজ)

গ্রেডল র্যাপার ফাইল

একটি Gradle ডিস্ট্রিবিউশন ডাউনলোড করে এবং তারপরে কমান্ড ফরোয়ার্ড করে আপনার বিল্ড বুটস্ট্র্যাপ করে। এটি আপনাকে Gradle পূর্ব-ইন্সটল না করেই বিল্ডগুলি চালাতে দেয়।

local.properties

স্থানীয় মেশিন কনফিগারেশন

স্থানীয় মেশিনের সাথে সম্পর্কিত বৈশিষ্ট্য রয়েছে, যেমন Android SDK-এর অবস্থান।

উৎস নিয়ন্ত্রণ থেকে এই ফাইল বাদ!

settings.gradle(.kts)

গ্রেডল বিল্ড ইনিশিয়ালাইজেশন

গ্রেডল ইনিশিয়ালাইজেশন এবং প্রোজেক্ট কনফিগারেশনের জন্য গ্লোবাল বিল্ড তথ্য রয়েছে, যেমন

  • প্রকল্পের নাম
  • এই বিল্ডে অন্তর্ভুক্ত করার জন্য উপ-প্রকল্পের তালিকা
  • প্লাগইন এবং নির্ভরতা সনাক্ত করতে সংগ্রহস্থলের স্পেসিফিকেশন
  • বাহ্যিক সংস্করণ ক্যাটালগ আমদানি।

গ্রেডল/

↳ libs.versions.toml

সংস্করণ ক্যাটালগ

নির্ভরতা এবং আপনার বিল্ডের ভিতরে ব্যবহৃত প্লাগইনগুলির জন্য ভেরিয়েবল সংজ্ঞায়িত করে। আপনার প্রকল্পের সমস্ত সাবপ্রজেক্ট জুড়ে সামঞ্জস্য নিশ্চিত করে আপনি এখানে কোন সংস্করণগুলি ব্যবহার করতে চান তা নির্দিষ্ট করুন৷

↳ মোড়ক/

↳ gradle-wrapper.jar

গ্রেডল বুটস্ট্র্যাপিং এক্সিকিউটেবল

নির্দিষ্ট গ্রেডেল ডিস্ট্রিবিউশন ডাউনলোড করে (যদি এটি বিদ্যমান না থাকে), এবং এটি চালায়, যেকোনো আর্গুমেন্ট বরাবর পাস করে

↳ gradle-wrapper.properties

গ্রেডল র‍্যাপারের জন্য কনফিগারেশন

গ্র্যাডল ডিস্ট্রিবিউশন কোথায় ডাউনলোড করতে হবে তা নির্দিষ্ট করে (কোন সংস্করণ ব্যবহার করতে হবে সহ)।

অ্যাপ/

সাবপ্রজেক্ট ডিরেক্টরি

সাবপ্রকল্প (অ্যান্ড্রয়েড স্টুডিওতে "মডিউল" নামে পরিচিত) অ্যাপ্লিকেশন বা লাইব্রেরি তৈরি করতে পারে এবং অন্যান্য সাবপ্রজেক্ট বা বাহ্যিক নির্ভরতার উপর নির্ভর করতে পারে।

app হল একটি শীর্ষ-স্তরের অ্যাপ্লিকেশন সাবপ্রজেক্টের প্রচলিত নাম (কিন্তু প্রয়োজনীয় নাম নয়)। অন্যান্য উপ-প্রকল্পের বিভিন্ন নামের একই ধরনের কাঠামো রয়েছে।

যেকোন ডিরেক্টরি একটি সাবপ্রজেক্ট হতে পারে, এবং অন্তত একটি build.gradle(.kts) ফাইল থাকতে হবে এবং settings.gradle(.kts) ব্যবহার করে বিল্ডে অন্তর্ভুক্ত করতে হবে।

↳ build.gradle(.kts)

সাবপ্রজেক্ট-লেভেল বিল্ড ফাইল

এই সাবপ্রজেক্টটি কীভাবে তৈরি করবেন তা ঘোষণা করে। প্রতিটি সাবপ্রজেক্টের জন্য একটি পৃথক বিল্ড ফাইল প্রয়োজন এবং এটি থাকা উচিত

  • এই সাবপ্রজেক্ট তৈরি করতে ব্যবহৃত প্লাগইন
  • প্লাগইনগুলির জন্য প্রয়োজনীয় কনফিগারেশন ব্লক
  • নির্ভরতা (লাইব্রেরি এবং প্ল্যাটফর্ম) এই উপ-প্রকল্প নির্মাণ করার সময় অন্তর্ভুক্ত

আপনার বিল্ড ফাইলগুলিতে বিল্ড লজিক (যেমন কোটলিন ফাংশন সংজ্ঞা বা শর্তাবলী) বা টাস্ক ঘোষণা অন্তর্ভুক্ত করা উচিত নয়। যুক্তি তৈরি করুন এবং কাজগুলি শুধুমাত্র প্লাগইনগুলির মধ্যে থাকা উচিত

↳ src/

সাবপ্রজেক্ট সোর্স ফাইল

সোর্স ফাইলগুলিকে (অ্যাপ্লিকেশন কোড এবং রিসোর্স) সোর্স সেটে গ্রুপ করে। main সোর্স সেটে সোর্স ফাইল থাকে যা সব ভেরিয়েন্টের জন্য সাধারণ, যখন অন্য সোর্স সেটে সোর্স ফাইল থাকে যা বৈকল্পিকের জন্য অনন্য।

↳ প্রধান/

প্রধান উৎস সেট

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

↳ জাভা/

↳ কোটলিন/

কোটলিন এবং জাভা সোর্স কোড

java ডিরেক্টরিতে মিশ্র জাভা এবং কোটলিন সোর্স কোড থাকতে পারে। যদি এই সাবপ্রজেক্টে শুধুমাত্র কোটলিন কোড থাকে, তাহলে আপনি এই ডিরেক্টরিটির নাম পরিবর্তন করতে পারেন kotlin.

Android
একটি কোটলিন-প্রথম প্ল্যাটফর্ম। জাভা উৎস সমর্থিত, কিন্তু নতুন API গুলি কোটলিন ভাষাকে লক্ষ্য করে। আমরা সমস্ত নতুন কোড এবং বিদ্যমান কোডের প্রধান আপডেটের জন্য Kotlin ব্যবহার করার পরামর্শ দিই।

↳ রেস/

অ্যান্ড্রয়েড রিসোর্স ফাইল

অ্যাপ্লিকেশন সংস্থান রয়েছে, যেমন XML ফাইল এবং ছবি। সমস্ত অ্যাপ্লিকেশন কিছু মৌলিক সম্পদ ব্যবহার করে, যেমন লঞ্চার আইকন, কিন্তু এই সম্পদগুলির অনেকগুলি, যেমন লেআউট এবং মেনু, শুধুমাত্র ভিউ-ভিত্তিক অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। রচনা অ্যাপ্লিকেশন এই ডিরেক্টরির অধীনে সংজ্ঞায়িত স্ট্রিং সংস্থান ব্যবহার করে।

↳ AndroidManifest.xml

অ্যান্ড্রয়েড অ্যাপ্লিকেশন মেটাডেটা

সিস্টেম বলতে Android প্যাকেজ ম্যানেজার দ্বারা পড়ুন

  • আপনার অ্যাপ্লিকেশন দ্বারা সংজ্ঞায়িত উপাদান
  • প্রয়োজনীয় অনুমতি
  • ডিভাইস সামঞ্জস্য
  • অ্যান্ড্রয়েড প্ল্যাটফর্মের সীমাবদ্ধতা

↳ অ্যান্ড্রয়েড টেস্ট/

ডিভাইস পরীক্ষার উৎস সেট

একটি Android-চালিত ডিভাইস বা এমুলেটরে চালানো হবে এমন পরীক্ষার জন্য উৎস রয়েছে। এই পরীক্ষাগুলির একটি বাস্তব অ্যান্ড্রয়েড পরিবেশে অ্যাক্সেস রয়েছে, তবে হোস্ট পরীক্ষার চেয়ে ধীরে ধীরে সম্পাদন করা হয়।

main সোর্স সেটের সমস্ত সোর্স ফাইল androidTest-এর অধীনে সোর্স দ্বারা ব্যবহারের জন্য উপলব্ধ

↳ পরীক্ষা/

হোস্ট পরীক্ষার উৎস সেট

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

main উৎস সেটের সমস্ত উৎস ফাইল পরীক্ষার অধীনে উৎস দ্বারা ব্যবহারের জন্য উপলব্ধ

↳ proguard-rules.pro

R8 কনফিগারেশন নিয়ম

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

,

আপনার অ্যাপ্লিকেশন উত্স এবং সংস্থানগুলিকে সংগঠিত করতে Android প্রকল্পগুলিতে অনেকগুলি বিল্ড-সম্পর্কিত ফাইল এবং ডিরেক্টরি কাঠামো রয়েছে৷ কনফিগারেশনের বিশদ বিবরণে ডুব দেওয়ার আগে, আমরা সামগ্রিক কাঠামো এবং প্রতিটি অংশে কী রয়েছে তার মূল বিষয়গুলি একবার দেখে নেব৷

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

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

ফোল্ডার/ফাইল

ব্যবহার করুন

.gradle/

Gradle প্রজেক্ট ক্যাশে ডিরেক্টরি

Gradle দ্বারা পরিচালিত এবং ডাউনলোড করা Gradle ডিস্ট্রিবিউশন, প্রোজেক্ট ক্যাশে এবং কনফিগারেশন ফাইল রয়েছে।

এই ডিরেক্টরিতে ফাইল পরিবর্তন করবেন না!

.idea/

অ্যান্ড্রয়েড স্টুডিও প্রকল্প মেটাডেটা

এই ডিরেক্টরিতে ফাইল পরিবর্তন করবেন না!

build.gradle(.kts)

রুট বিল্ড ফাইল

সাবপ্রজেক্ট জুড়ে একটি সাধারণ প্লাগইন ক্লাসপাথ সেট আপ করার জন্য শুধুমাত্র প্লাগইন ঘোষণা থাকা উচিত।

অন্যান্য কোড সেটিংস বা নেস্টেড-প্রকল্প-স্তরের বিল্ড ফাইলগুলিতে থাকা উচিত।

gradle.properties

গ্রেডল এক্সিকিউশন কনফিগারেশন

Gradle বৈশিষ্ট্যগুলি ধারণ করে, Gradle বিল্ড এনভায়রনমেন্টের দিকগুলি যেমন হিপ সাইজ, ক্যাশিং এবং সমান্তরাল এক্সিকিউশন নিয়ন্ত্রণ করে।

কিছু অস্থায়ী অ্যান্ড্রয়েড বৈশিষ্ট্য এখানে সংজ্ঞায়িত করা হয়েছে, এজিপি ডিএসএল-এ পরিবর্তনগুলিকে কমাতে যেহেতু সেগুলি যোগ করা হয়েছে এবং পরে সরানো হয়েছে৷

gradlew (লিনাক্স, ম্যাক)

gradlew.bat (উইন্ডোজ)

গ্রেডল র্যাপার ফাইল

একটি Gradle ডিস্ট্রিবিউশন ডাউনলোড করে এবং তারপরে কমান্ড ফরোয়ার্ড করে আপনার বিল্ড বুটস্ট্র্যাপ করে। এটি আপনাকে Gradle পূর্ব-ইন্সটল না করেই বিল্ডগুলি চালাতে দেয়।

local.properties

স্থানীয় মেশিন কনফিগারেশন

স্থানীয় মেশিনের সাথে সম্পর্কিত বৈশিষ্ট্য রয়েছে, যেমন Android SDK-এর অবস্থান।

উৎস নিয়ন্ত্রণ থেকে এই ফাইল বাদ!

settings.gradle(.kts)

গ্রেডল বিল্ড ইনিশিয়ালাইজেশন

গ্রেডল ইনিশিয়ালাইজেশন এবং প্রোজেক্ট কনফিগারেশনের জন্য গ্লোবাল বিল্ড তথ্য রয়েছে, যেমন

  • প্রকল্পের নাম
  • এই বিল্ডে অন্তর্ভুক্ত করার জন্য উপ-প্রকল্পের তালিকা
  • প্লাগইন এবং নির্ভরতা সনাক্ত করতে সংগ্রহস্থলের স্পেসিফিকেশন
  • বাহ্যিক সংস্করণ ক্যাটালগ আমদানি।

গ্রেডল/

↳ libs.versions.toml

সংস্করণ ক্যাটালগ

নির্ভরতা এবং আপনার বিল্ডের ভিতরে ব্যবহৃত প্লাগইনগুলির জন্য ভেরিয়েবল সংজ্ঞায়িত করে। আপনার প্রকল্পের সমস্ত সাবপ্রজেক্ট জুড়ে সামঞ্জস্য নিশ্চিত করে আপনি এখানে কোন সংস্করণগুলি ব্যবহার করতে চান তা নির্দিষ্ট করুন৷

↳ মোড়ক/

↳ gradle-wrapper.jar

গ্রেডল বুটস্ট্র্যাপিং এক্সিকিউটেবল

নির্দিষ্ট গ্রেডেল ডিস্ট্রিবিউশন ডাউনলোড করে (যদি এটি বিদ্যমান না থাকে), এবং এটি চালায়, যেকোনো আর্গুমেন্ট বরাবর পাস করে

↳ gradle-wrapper.properties

গ্রেডল র‍্যাপারের জন্য কনফিগারেশন

গ্র্যাডল ডিস্ট্রিবিউশন কোথায় ডাউনলোড করতে হবে তা নির্দিষ্ট করে (কোন সংস্করণ ব্যবহার করতে হবে সহ)।

অ্যাপ/

সাবপ্রজেক্ট ডিরেক্টরি

সাবপ্রকল্প (অ্যান্ড্রয়েড স্টুডিওতে "মডিউল" নামে পরিচিত) অ্যাপ্লিকেশন বা লাইব্রেরি তৈরি করতে পারে এবং অন্যান্য সাবপ্রজেক্ট বা বাহ্যিক নির্ভরতার উপর নির্ভর করতে পারে।

app হল একটি শীর্ষ-স্তরের অ্যাপ্লিকেশন সাবপ্রজেক্টের প্রচলিত নাম (কিন্তু প্রয়োজনীয় নাম নয়)। অন্যান্য উপ-প্রকল্পের বিভিন্ন নামের একই ধরনের কাঠামো রয়েছে।

যেকোন ডিরেক্টরি একটি সাবপ্রজেক্ট হতে পারে, এবং অন্তত একটি build.gradle(.kts) ফাইল থাকতে হবে এবং settings.gradle(.kts) ব্যবহার করে বিল্ডে অন্তর্ভুক্ত করতে হবে।

↳ build.gradle(.kts)

সাবপ্রজেক্ট-লেভেল বিল্ড ফাইল

এই সাবপ্রজেক্টটি কীভাবে তৈরি করবেন তা ঘোষণা করে। প্রতিটি সাবপ্রজেক্টের জন্য একটি পৃথক বিল্ড ফাইল প্রয়োজন এবং এটি থাকা উচিত

  • এই সাবপ্রজেক্ট তৈরি করতে ব্যবহৃত প্লাগইন
  • প্লাগইনগুলির জন্য প্রয়োজনীয় কনফিগারেশন ব্লক
  • নির্ভরতা (লাইব্রেরি এবং প্ল্যাটফর্ম) এই উপ-প্রকল্প নির্মাণ করার সময় অন্তর্ভুক্ত

আপনার বিল্ড ফাইলগুলিতে বিল্ড লজিক (যেমন কোটলিন ফাংশন সংজ্ঞা বা শর্তাবলী) বা টাস্ক ঘোষণা অন্তর্ভুক্ত করা উচিত নয়। যুক্তি তৈরি করুন এবং কাজগুলি শুধুমাত্র প্লাগইনগুলির মধ্যে থাকা উচিত

↳ src/

সাবপ্রজেক্ট সোর্স ফাইল

সোর্স ফাইলগুলিকে (অ্যাপ্লিকেশন কোড এবং রিসোর্স) সোর্স সেটে গ্রুপ করে। main সোর্স সেটে সোর্স ফাইল থাকে যা সব ভেরিয়েন্টের জন্য সাধারণ, যখন অন্য সোর্স সেটে সোর্স ফাইল থাকে যা বৈকল্পিকের জন্য অনন্য।

↳ প্রধান/

প্রধান উৎস সেট

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

↳ জাভা/

↳ কোটলিন/

কোটলিন এবং জাভা সোর্স কোড

java ডিরেক্টরিতে মিশ্র জাভা এবং কোটলিন সোর্স কোড থাকতে পারে। যদি এই সাবপ্রজেক্টে শুধুমাত্র কোটলিন কোড থাকে, তাহলে আপনি এই ডিরেক্টরিটির নাম পরিবর্তন করতে পারেন kotlin.

Android
একটি কোটলিন-প্রথম প্ল্যাটফর্ম। জাভা উৎস সমর্থিত, কিন্তু নতুন API গুলি কোটলিন ভাষাকে লক্ষ্য করে। আমরা সমস্ত নতুন কোড এবং বিদ্যমান কোডের প্রধান আপডেটের জন্য Kotlin ব্যবহার করার পরামর্শ দিই।

↳ রেস/

অ্যান্ড্রয়েড রিসোর্স ফাইল

অ্যাপ্লিকেশন সংস্থান রয়েছে, যেমন XML ফাইল এবং ছবি। সমস্ত অ্যাপ্লিকেশন কিছু মৌলিক সম্পদ ব্যবহার করে, যেমন লঞ্চার আইকন, কিন্তু এই সম্পদগুলির অনেকগুলি, যেমন লেআউট এবং মেনু, শুধুমাত্র ভিউ-ভিত্তিক অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। রচনা অ্যাপ্লিকেশন এই ডিরেক্টরির অধীনে সংজ্ঞায়িত স্ট্রিং সংস্থান ব্যবহার করে।

↳ AndroidManifest.xml

অ্যান্ড্রয়েড অ্যাপ্লিকেশন মেটাডেটা

সিস্টেম বলতে Android প্যাকেজ ম্যানেজার দ্বারা পড়ুন

  • আপনার অ্যাপ্লিকেশন দ্বারা সংজ্ঞায়িত উপাদান
  • প্রয়োজনীয় অনুমতি
  • ডিভাইস সামঞ্জস্য
  • অ্যান্ড্রয়েড প্ল্যাটফর্মের সীমাবদ্ধতা

↳ অ্যান্ড্রয়েড টেস্ট/

ডিভাইস পরীক্ষার উৎস সেট

একটি Android-চালিত ডিভাইস বা এমুলেটরে চালানো হবে এমন পরীক্ষার জন্য উৎস রয়েছে। এই পরীক্ষাগুলির একটি বাস্তব অ্যান্ড্রয়েড পরিবেশে অ্যাক্সেস রয়েছে, তবে হোস্ট পরীক্ষার চেয়ে ধীরে ধীরে সম্পাদন করা হয়।

main সোর্স সেটের সমস্ত সোর্স ফাইল androidTest-এর অধীনে সোর্স দ্বারা ব্যবহারের জন্য উপলব্ধ

↳ পরীক্ষা/

হোস্ট পরীক্ষার উৎস সেট

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

main উৎস সেটের সমস্ত উৎস ফাইল পরীক্ষার অধীনে উৎস দ্বারা ব্যবহারের জন্য উপলব্ধ

↳ proguard-rules.pro

R8 কনফিগারেশন নিয়ম

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