প্রকল্প ওভারভিউ

অ্যান্ড্রয়েড স্টুডিওর একটি প্রজেক্টে সোর্স কোড এবং সম্পদ থেকে শুরু করে কোড এবং কনফিগারেশন তৈরি করার জন্য আপনার কর্মক্ষেত্রকে সংজ্ঞায়িত করে এমন সবকিছুই রয়েছে।

আপনি যখন একটি নতুন প্রকল্প শুরু করেন, তখন Android Studio আপনার সমস্ত ফাইলের জন্য প্রয়োজনীয় কাঠামো তৈরি করে এবং সেগুলিকে Android স্টুডিওতে প্রজেক্ট উইন্ডোতে দৃশ্যমান করে। উইন্ডোটি খুলতে, দেখুন > টুল উইন্ডোজ > প্রকল্প নির্বাচন করুন।

এই পৃষ্ঠাটি আপনার প্রকল্পের মূল উপাদানগুলির একটি ওভারভিউ প্রদান করে।

মডিউল

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

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

আপনার প্রকল্পে একটি নতুন মডিউল যোগ করতে, ফাইল > নতুন > নতুন মডিউল ক্লিক করুন।

অ্যান্ড্রয়েড স্টুডিও কয়েকটি স্বতন্ত্র ধরনের মডিউল অফার করে:

অ্যান্ড্রয়েড অ্যাপ মডিউল
আপনার অ্যাপের সোর্স কোড, রিসোর্স ফাইল এবং অ্যাপ-লেভেল সেটিংস, যেমন মডিউল-লেভেল বিল্ড ফাইল এবং অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলের জন্য একটি ধারক প্রদান করে। আপনি যখন একটি নতুন প্রকল্প তৈরি করেন, তখন ডিফল্ট অ্যাপ মডিউলটির নাম "অ্যাপ" হয়।

অ্যান্ড্রয়েড স্টুডিও নিম্নলিখিত ধরনের অ্যাপ মডিউল অফার করে:

  • ফোন এবং ট্যাবলেট
  • স্বয়ংচালিত
  • ওএস পরুন
  • টেলিভিশন
  • বেসলাইন প্রোফাইল জেনারেটর
  • মাপকাঠি

প্রতিটি মডিউল প্রয়োজনীয় ফাইল এবং কিছু কোড টেমপ্লেট প্রদান করে যা সংশ্লিষ্ট অ্যাপ বা ডিভাইসের জন্য উপযুক্ত।

একটি মডিউল যোগ করার বিষয়ে আরও তথ্যের জন্য, একটি নতুন ডিভাইসের জন্য একটি মডিউল যুক্ত করুন পড়ুন।

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

অ্যান্ড্রয়েড স্টুডিও নিম্নলিখিত ধরনের বৈশিষ্ট্য মডিউল অফার করে:

  • ডাইনামিক ফিচার মডিউল
  • ইনস্ট্যান্ট ডাইনামিক ফিচার লাইব্রেরি মডিউল

আরও জানতে, প্লে ফিচার ডেলিভারি সম্পর্কে পড়ুন।

লাইব্রেরি মডিউল
আপনার পুনঃব্যবহারযোগ্য কোডের জন্য একটি ধারক সরবরাহ করে, যা আপনি অন্যান্য অ্যাপ্লিকেশন মডিউলগুলিতে নির্ভরতা হিসাবে ব্যবহার করতে পারেন বা অন্যান্য প্রকল্পগুলিতে আমদানি করতে পারেন৷ কাঠামোগতভাবে, একটি লাইব্রেরি মডিউল একটি অ্যাপ মডিউলের মতোই, কিন্তু যখন তৈরি করা হয়, এটি একটি APK এর পরিবর্তে একটি কোড সংরক্ষণাগার ফাইল তৈরি করে, তাই এটি একটি ডিভাইসে ইনস্টল করা যাবে না।

নতুন মডিউল তৈরি করুন উইন্ডোতে, অ্যান্ড্রয়েড স্টুডিও নিম্নলিখিত ধরণের লাইব্রেরি মডিউলগুলি অফার করে:

  • অ্যান্ড্রয়েড লাইব্রেরি: জাভা এবং কোটলিন সোর্স কোড, রিসোর্স এবং ম্যানিফেস্ট ফাইল সহ নেটিভ C++ কোড ছাড়া একটি অ্যান্ড্রয়েড প্রোজেক্টে সমর্থিত সমস্ত ফাইলের ধরন রয়েছে। বিল্ড ফলাফল হল একটি Android আর্কাইভ (AAR) ফাইল যা আপনি আপনার Android অ্যাপ মডিউলগুলির জন্য নির্ভরতা হিসাবে যোগ করতে পারেন।
  • অ্যান্ড্রয়েড নেটিভ লাইব্রেরি: অ্যান্ড্রয়েড লাইব্রেরির মতো একটি অ্যান্ড্রয়েড প্রোজেক্টে সমর্থিত সব ধরনের ফাইল রয়েছে। যাইহোক, অ্যান্ড্রয়েড নেটিভ লাইব্রেরিতে নেটিভ C++ সোর্স কোড থাকতে পারে। বিল্ড ফলাফল হল একটি Android আর্কাইভ (AAR) ফাইল যা আপনি আপনার Android অ্যাপ মডিউলগুলির জন্য নির্ভরতা হিসাবে যোগ করতে পারেন।
  • জাভা বা কোটলিন লাইব্রেরি: শুধুমাত্র কোটলিন বা জাভা সোর্স ফাইল ধারণ করে। বিল্ড ফলাফল হল একটি জাভা আর্কাইভ (JAR) ফাইল যা আপনি আপনার অ্যান্ড্রয়েড অ্যাপ মডিউল বা অন্যান্য কোটলিন বা জাভা প্রকল্পগুলির জন্য নির্ভরতা হিসাবে যোগ করতে পারেন।

মডিউলগুলিকে কখনও কখনও সাবপ্রজেক্ট হিসাবে উল্লেখ করা হয়, কারণ গ্রেডল মডিউলগুলিকে প্রকল্প হিসাবেও উল্লেখ করে।

আপনি যখন একটি লাইব্রেরি মডিউল তৈরি করেন এবং এটিকে আপনার অ্যান্ড্রয়েড অ্যাপ মডিউলে নির্ভরতা হিসাবে যুক্ত করতে চান, আপনাকে অবশ্যই এটি নিম্নরূপ ঘোষণা করতে হবে:

গ্রোভি

dependencies {
    implementation project(':my-library-module')
}

কোটলিন

dependencies {
    implementation(project(":my-library-module"))
}

প্রকল্প ফাইল

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

অ্যান্ড্রয়েড ভিউ এবং ডিস্কের কাঠামোর মধ্যে কিছু কাঠামোগত পার্থক্য হল অ্যান্ড্রয়েড ভিউ:

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

প্রতিটি অ্যান্ড্রয়েড অ্যাপ্লিকেশান মডিউলের মধ্যে, ফাইলগুলি নিম্নলিখিত গোষ্ঠীতে দেখানো হয়:

প্রকাশ করে
AndroidManifest.xml ফাইল রয়েছে।
জাভা
কোটলিন এবং জাভা সোর্স কোড ফাইল রয়েছে, প্যাকেজের নাম দ্বারা পৃথক করা হয়েছে, যার মধ্যে JUnit টেস্ট কোড রয়েছে।
res
সমস্ত নন-কোড সংস্থান রয়েছে, যেমন UI স্ট্রিং এবং বিটম্যাপ ছবি, সংশ্লিষ্ট সাবডিরেক্টরিতে বিভক্ত। সম্ভাব্য রিসোর্স প্রকার সম্পর্কে আরও তথ্যের জন্য, অ্যাপ রিসোর্স ওভারভিউ দেখুন।

প্রকল্পের দৃশ্য

অ্যান্ড্রয়েড ভিউ থেকে লুকানো সমস্ত ফাইল সহ প্রকল্পের প্রকৃত ফাইল কাঠামো দেখতে, প্রকল্প উইন্ডোর শীর্ষে থাকা মেনু থেকে প্রকল্প নির্বাচন করুন।

আপনি যখন প্রজেক্ট ভিউ নির্বাচন করেন, আপনি নিম্নলিখিতগুলি সহ আরও অনেক ফাইল এবং ডিরেক্টরি দেখতে পাবেন:

module-name /
build/
বিল্ড আউটপুট রয়েছে।
libs/
ব্যক্তিগত লাইব্রেরি রয়েছে।
src/
নিম্নলিখিত সাবডিরেক্টরিতে মডিউলের জন্য সমস্ত কোড এবং সংস্থান ফাইল রয়েছে:
androidTest/
একটি Android ডিভাইসে চালানো ইন্সট্রুমেন্টেশন পরীক্ষার জন্য কোড রয়েছে। আরও তথ্যের জন্য, অ্যান্ড্রয়েড স্টুডিওতে পরীক্ষা দেখুন।
cpp/
জাভা নেটিভ ইন্টারফেস (JNI) ব্যবহার করে নেটিভ C বা C++ কোড রয়েছে। আরও তথ্যের জন্য, Android NDK ডকুমেন্টেশন দেখুন।
main/
"প্রধান" সোর্স সেট ফাইলগুলি ধারণ করে: সমস্ত বিল্ড ভেরিয়েন্ট দ্বারা ভাগ করা Android কোড এবং সংস্থানগুলি (অন্যান্য বিল্ড ভেরিয়েন্টের ফাইলগুলি ভাইবোন ডিরেক্টরিতে থাকে, যেমন src/debug/ ডিবাগ বিল্ড টাইপের জন্য):
AndroidManifest.xml
প্রয়োগের প্রকৃতি এবং এর প্রতিটি উপাদান বর্ণনা করে। আরও তথ্যের জন্য, অ্যাপ ম্যানিফেস্ট ওভারভিউ দেখুন।
java/
আপনার অ্যাপে কোটলিন এবং জাভা সোর্স কোড উভয়ই থাকলে কোটলিন বা জাভা কোড সোর্স বা উভয়ই রয়েছে।
kotlin/
শুধুমাত্র কোটলিন কোড উৎস রয়েছে।
res/
অ্যাপ্লিকেশন সংস্থান রয়েছে, যেমন অঙ্কনযোগ্য ফাইল এবং UI স্ট্রিং ফাইল। আরও তথ্যের জন্য, অ্যাপ রিসোর্স ওভারভিউ দেখুন।
assets/
একটি APK ফাইলে কম্পাইল করার মতো ফাইলগুলি রয়েছে৷ উদাহরণস্বরূপ, টেক্সচার এবং গেম ডেটার জন্য এটি একটি ভাল অবস্থান। আপনি URI ব্যবহার করে একটি সাধারণ ফাইল সিস্টেমের মতো একইভাবে এই ডিরেক্টরিটি নেভিগেট করতে পারেন এবং AssetManager ব্যবহার করে বাইটের স্ট্রীম হিসাবে ফাইলগুলি পড়তে পারেন।
test/
আপনার হোস্ট JVM-এ চালানো স্থানীয় পরীক্ষার জন্য কোড রয়েছে।
build.gradle বা build.gradle.kts (মডিউল)
এটি মডিউল-নির্দিষ্ট বিল্ড কনফিগারেশন সংজ্ঞায়িত করে। আপনি যদি আপনার বিল্ড স্ক্রিপ্ট ভাষা হিসাবে Groovy ব্যবহার করেন তবে build.gradle সঠিক ফাইলের নাম, এবং আপনি যদি Kotlin স্ক্রিপ্ট ব্যবহার করেন তবে এটি build.gradle.kts
build.gradle বা build.gradle.kts (প্রকল্প)
এটি আপনার বিল্ড কনফিগারেশনকে সংজ্ঞায়িত করে যা সমস্ত মডিউলে প্রযোজ্য। আপনি যদি আপনার বিল্ড স্ক্রিপ্ট ভাষা হিসাবে Groovy ব্যবহার করেন তবে build.gradle সঠিক ফাইলের নাম, এবং আপনি যদি Kotlin স্ক্রিপ্ট ব্যবহার করেন তবে এটি build.gradle.kts । এই ফাইলটি প্রজেক্টের অবিচ্ছেদ্য, তাই এটিকে অন্য সব সোর্স কোডের সাথে রিভিশন কন্ট্রোলে বজায় রাখুন।

অন্যান্য বিল্ড ফাইল সম্পর্কে তথ্যের জন্য, আপনার বিল্ড কনফিগার করুন দেখুন।

প্রকল্প কাঠামো সেটিংস

আপনার অ্যান্ড্রয়েড স্টুডিও প্রজেক্টের বিভিন্ন সেটিংস পরিবর্তন করতে, ফাইল > প্রোজেক্ট স্ট্রাকচারে ক্লিক করে প্রজেক্ট স্ট্রাকচার ডায়ালগ খুলুন। এটিতে নিম্নলিখিত বিভাগগুলি রয়েছে:

  • প্রকল্প: গ্রেডল এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন এবং সংগ্রহস্থলের অবস্থানের নামের জন্য সংস্করণ সেট করে।
  • SDK অবস্থান: JDK, Android SDK, এবং Android NDK এর অবস্থান সেট করে যা আপনার প্রকল্প ব্যবহার করে।
  • ভেরিয়েবল: আপনাকে আপনার বিল্ড স্ক্রিপ্টের মধ্যে ব্যবহৃত ভেরিয়েবলগুলি সম্পাদনা করতে দেয়।
  • মডিউল: লক্ষ্য এবং ন্যূনতম SDK, অ্যাপ স্বাক্ষর এবং লাইব্রেরি নির্ভরতা সহ আপনাকে মডিউল-নির্দিষ্ট বিল্ড কনফিগারেশন সম্পাদনা করতে দেয়। প্রতিটি মডিউলের সেটিংস পৃষ্ঠা নিম্নলিখিত ট্যাবে বিভক্ত:
    • বৈশিষ্ট্য: মডিউল কম্পাইল করতে ব্যবহার করার জন্য SDK এবং বিল্ড টুলের সংস্করণগুলি নির্দিষ্ট করে।
    • স্বাক্ষর করা: আপনার অ্যাপে স্বাক্ষর করতে ব্যবহার করার জন্য শংসাপত্রটি নির্দিষ্ট করে।
  • নির্ভরতা: এই মডিউলটির জন্য লাইব্রেরি, ফাইল এবং মডিউল নির্ভরতা তালিকাভুক্ত করে। আপনি এই ফলক থেকে নির্ভরতা যোগ করতে, সংশোধন করতে এবং মুছে ফেলতে পারেন। মডিউল নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড ভেরিয়েন্ট কনফিগার করুন দেখুন।

  • ভেরিয়েন্ট তৈরি করুন: আপনাকে আপনার প্রকল্পের জন্য বিভিন্ন স্বাদ এবং বিল্ড প্রকারগুলি কনফিগার করতে দেয়।

    • স্বাদ: আপনাকে একাধিক বিল্ড ফ্লেভার তৈরি করতে দেয়, যেখানে প্রতিটি ফ্লেভার কনফিগারেশন সেটিংসের একটি সেট নির্দিষ্ট করে, যেমন মডিউলের ন্যূনতম এবং লক্ষ্য SDK সংস্করণ এবং সংস্করণ কোড এবং সংস্করণের নাম

      উদাহরণস্বরূপ, আপনি একটি ফ্লেভার সংজ্ঞায়িত করতে পারেন যার ন্যূনতম SDK 21 এবং একটি টার্গেট SDK 29 এবং আরেকটি ফ্লেভার যার ন্যূনতম SDK 24 এবং একটি টার্গেট SDK 33।

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