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

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

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

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

মডিউল

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

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

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

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

অ্যান্ড্রয়েড অ্যাপ মডিউল

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

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

  • ফোন এবং ট্যাবলেট
  • মোটরগাড়ি
  • ওএস পরুন
  • টেলিভিশন

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

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

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

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

  • গতিশীল বৈশিষ্ট্য মডিউল
  • ইনস্ট্যান্ট ডায়নামিক ফিচার লাইব্রেরি মডিউল

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

লাইব্রেরি মডিউল

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

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

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

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

খাঁজকাটা

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

কোটলিন

    dependencies {
        implementation(project(":my-library-module"))
    }
    
পরীক্ষা মডিউল

আপনার পরীক্ষাগুলিকে আপনার কোডের বাকি অংশ থেকে আলাদা রাখে। আপনি নির্দিষ্ট বিল্ড ভেরিয়েন্টগুলিকে লক্ষ্য করে পরীক্ষা মডিউলটি কনফিগার করতে পারেন।

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

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

প্রকল্প ফাইল

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

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

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

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

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

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

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

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

module-name /
build/
বিল্ড আউটপুট ধারণ করে।
libs/
ব্যক্তিগত লাইব্রেরি রয়েছে।
src/
নিম্নলিখিত সাবডিরেক্টরিতে মডিউলের জন্য সমস্ত কোড এবং রিসোর্স ফাইল রয়েছে:
androidTest/
অ্যান্ড্রয়েড ডিভাইসে চালিত ইন্সট্রুমেন্টেশন পরীক্ষার কোড রয়েছে। আরও তথ্যের জন্য, অ্যান্ড্রয়েড স্টুডিওতে পরীক্ষা দেখুন।
cpp/
জাভা নেটিভ ইন্টারফেস (JNI) ব্যবহার করে নেটিভ C অথবা C++ কোড ধারণ করে। আরও তথ্যের জন্য, Android NDK ডকুমেন্টেশন দেখুন।
main/
"প্রধান" সোর্স সেট ফাইলগুলি ধারণ করে: সমস্ত বিল্ড ভেরিয়েন্ট দ্বারা ভাগ করা অ্যান্ড্রয়েড কোড এবং রিসোর্স (অন্যান্য বিল্ড ভেরিয়েন্টের ফাইলগুলি সিবলিং ডিরেক্টরিতে থাকে, যেমন ডিবাগ বিল্ড ধরণের জন্য 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।

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