এই পৃষ্ঠাটি মডিউল-স্তরের build.gradle.kts
ফাইলে দরকারী অ্যাপ সেটিংস বর্ণনা করে। build.gradle.kts
ফাইলে সেট করা গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির একটি ওভারভিউ দেওয়ার পাশাপাশি, কীভাবে করবেন তা শিখুন:
- বিভিন্ন বিল্ড কনফিগারেশনের জন্য অ্যাপ্লিকেশন আইডি পরিবর্তন করুন।
- অ্যাপ্লিকেশান আইডি থেকে স্বাধীনভাবে নামস্থানটি নিরাপদে সামঞ্জস্য করুন।
অ্যাপ্লিকেশন আইডি সেট করুন
প্রতিটি অ্যান্ড্রয়েড অ্যাপের একটি অনন্য অ্যাপ্লিকেশন আইডি থাকে যা দেখতে জাভা বা কোটলিন প্যাকেজ নামের মতো, যেমন com.example.myapp । এই আইডিটি ডিভাইসে এবং Google Play স্টোরে আপনার অ্যাপটিকে অনন্যভাবে শনাক্ত করে।
আপনার অ্যাপ্লিকেশন আইডি আপনার মডিউলের build.gradle.kts
ফাইলের applicationId
বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত করা হয়েছে, যেমনটি এখানে দেখানো হয়েছে। আপনার অ্যাপের আইডি দিয়ে com.example.myapp
প্রতিস্থাপন করে applicationId
এর মান আপডেট করুন:
কোটলিন
android { defaultConfig { applicationId = "com.example.myapp" minSdk = 15 targetSdk = 24 versionCode = 1 versionName = "1.0" } ... }
গ্রোভি
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ... }
যদিও অ্যাপ্লিকেশন আইডিটি একটি প্রথাগত কোটলিন বা জাভা প্যাকেজের নামের মতো দেখাচ্ছে, তবে অ্যাপ্লিকেশন আইডির নামকরণের নিয়মগুলি একটু বেশি সীমাবদ্ধ:
- এটিতে কমপক্ষে দুটি সেগমেন্ট (এক বা একাধিক বিন্দু) থাকতে হবে।
- প্রতিটি সেগমেন্ট একটি অক্ষর দিয়ে শুরু করা আবশ্যক।
- সমস্ত অক্ষর অবশ্যই আলফানিউমেরিক বা একটি আন্ডারস্কোর হতে হবে [a-zA-Z0-9_]।
আপনি যখন অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করেন , তখন applicationId
স্বয়ংক্রিয়ভাবে সেটআপের সময় আপনার বেছে নেওয়া প্যাকেজ নামটি বরাদ্দ করা হয়। তারপর থেকে আপনি প্রযুক্তিগতভাবে দুটি বৈশিষ্ট্য স্বাধীনভাবে টগল করতে পারেন, তবে এটি সুপারিশ করা হয় না।
অ্যাপ্লিকেশন আইডি সেট করার সময় আপনাকে নিম্নলিখিতগুলি করার পরামর্শ দেওয়া হচ্ছে:
- অ্যাপ্লিকেশন আইডি নামস্থানের মতোই রাখুন। দুটি বৈশিষ্ট্যের মধ্যে পার্থক্যটি কিছুটা বিভ্রান্তিকর হতে পারে, তবে আপনি যদি সেগুলি একই রাখেন তবে আপনার চিন্তা করার কিছু নেই।
- আপনি আপনার অ্যাপ প্রকাশ করার পরে অ্যাপ্লিকেশন আইডি পরিবর্তন করবেন না। আপনি এটি পরিবর্তন করলে, Google Play Store পরবর্তী আপলোডটিকে একটি নতুন অ্যাপ হিসাবে বিবেচনা করে।
- স্পষ্টভাবে অ্যাপ্লিকেশন আইডি সংজ্ঞায়িত করুন. যদি অ্যাপ্লিকেশন আইডিটি
applicationId
বৈশিষ্ট্য ব্যবহার করে স্পষ্টভাবে সংজ্ঞায়িত না করা হয় তবে এটি স্বয়ংক্রিয়ভাবে নেমস্পেসের মতো একই মান গ্রহণ করে। এর অর্থ হল নামস্থান পরিবর্তন করলে অ্যাপ্লিকেশন আইডি পরিবর্তন হয়, যা সাধারণত আপনি যা চান তা নয়।
পরীক্ষার জন্য অ্যাপ্লিকেশন আইডি পরিবর্তন করুন
ডিফল্টরূপে, বিল্ড টুলগুলি .test
এর সাথে সংযুক্ত প্রদত্ত বিল্ড ভেরিয়েন্টের জন্য অ্যাপ্লিকেশন আইডি ব্যবহার করে আপনার ইন্সট্রুমেন্টেশন টেস্ট APK-এ একটি অ্যাপ্লিকেশন আইডি প্রয়োগ করে। উদাহরণ স্বরূপ, com.example.myapp .free
বিল্ড ভেরিয়েন্টের জন্য একটি টেস্ট APK এর অ্যাপ্লিকেশন ID com.example.myapp .free.test
আছে।
যদিও এটির প্রয়োজন হবে না, আপনি আপনার defaultConfig
বা productFlavor
ব্লকে testApplicationId
প্রপার্টি নির্ধারণ করে অ্যাপ্লিকেশন আইডি পরিবর্তন করতে পারেন।
নামস্থান সেট করুন
প্রতিটি অ্যান্ড্রয়েড মডিউলের একটি নামস্থান রয়েছে, যা তার জেনারেট করা R
এবং BuildConfig
ক্লাসের জন্য কোটলিন বা জাভা প্যাকেজ নাম হিসাবে ব্যবহৃত হয়।
আপনার নামস্থানটি আপনার মডিউলের build.gradle.kts
ফাইলের namespace
বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত করা হয়েছে, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। আপনি যখন আপনার প্রকল্প তৈরি করেন তখন namespace
প্রাথমিকভাবে আপনার চয়ন করা প্যাকেজ নামের সাথে সেট করা হয়।
কোটলিন
android { namespace = "com.example.myapp" ... }
গ্রোভি
android { namespace "com.example.myapp" ... }
আপনার অ্যাপটিকে চূড়ান্ত অ্যাপ্লিকেশন প্যাকেজে (APK) তৈরি করার সময়, Android বিল্ড টুলগুলি আপনার অ্যাপের জেনারেট করা R
ক্লাসের জন্য নামস্থান হিসাবে নামস্থান ব্যবহার করে, যা আপনার অ্যাপ সংস্থানগুলি অ্যাক্সেস করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, পূর্ববর্তী বিল্ড ফাইলে, com.example.myapp .R
এ R
ক্লাস তৈরি করা হয়েছে।
আপনি build.gradle.kts
ফাইলের namespace
সম্পত্তির জন্য যে নামটি সেট করেছেন তা সর্বদা আপনার প্রকল্পের বেস প্যাকেজ নামের সাথে মেলে, যেখানে আপনি আপনার কার্যকলাপ এবং অন্যান্য অ্যাপ কোড রাখেন। আপনার প্রকল্পে আপনার অন্যান্য সাব-প্যাকেজ থাকতে পারে, তবে সেই ফাইলগুলিকে অবশ্যই namespace
সম্পত্তি থেকে নামস্থান ব্যবহার করে R
ক্লাস আমদানি করতে হবে।
একটি সহজ কর্মপ্রবাহের জন্য, আপনার নামস্থানটি আপনার অ্যাপ্লিকেশন আইডির মতোই রাখুন, যেমনটি ডিফল্টরূপে থাকে।
নামস্থান পরিবর্তন করুন
বেশিরভাগ ক্ষেত্রে, আপনার নামস্থান এবং অ্যাপ্লিকেশন আইডি একই রাখা উচিত, যেমনটি ডিফল্টরূপে থাকে। যাইহোক, যদি আপনি আপনার কোড পুনর্বিন্যাস করছেন বা নামস্থানের সংঘর্ষ এড়াতে আপনার নামস্থান পরিবর্তন করতে হতে পারে।
এই ক্ষেত্রে, আপনার মডিউলের build.gradle.kts
ফাইলে namespace
বৈশিষ্ট্য আপডেট করে নামস্থান পরিবর্তন করুন অ্যাপ্লিকেশন আইডি থেকে স্বাধীন। আপনি এটি করার আগে, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশন আইডি স্পষ্টভাবে সংজ্ঞায়িত করা হয়েছে, যাতে নামস্থান পরিবর্তন করলেও অ্যাপ্লিকেশন আইডি পরিবর্তন না হয়। নামস্থান কীভাবে অ্যাপ্লিকেশন আইডিকে প্রভাবিত করতে পারে সে সম্পর্কে আরও তথ্যের জন্য, অ্যাপ্লিকেশন আইডি সেট করুন দেখুন।
যদি আপনার namespace
এবং Gradle applicationId
জন্য আলাদা নাম থাকে, তাহলে বিল্ড টুলগুলি বিল্ডের শেষে আপনার অ্যাপের চূড়ান্ত ম্যানিফেস্ট ফাইলে অ্যাপ্লিকেশন আইডি কপি করে। সুতরাং আপনি যদি একটি বিল্ড করার পরে আপনার AndroidManifest.xml
ফাইলটি পরীক্ষা করেন, package
বৈশিষ্ট্যটি অ্যাপ্লিকেশন আইডিতে সেট করা হয়। মার্জ করা ম্যানিফেস্টের package
অ্যাট্রিবিউটটি হল যেখানে Google Play Store এবং Android প্ল্যাটফর্ম আসলে আপনার অ্যাপ সনাক্ত করতে দেখায়।
পরীক্ষার জন্য নামস্থান পরিবর্তন করুন
androidTest
এবং test
সোর্স সেটের জন্য ডিফল্ট নামস্থান হল প্রধান নামস্থান, যার শেষে .test
যোগ করা হয়। উদাহরণস্বরূপ, যদি build.gradle
ফাইলের namespace
বৈশিষ্ট্যটি com.example.myapp
হয়, তবে পরীক্ষার নামস্থানটি ডিফল্টরূপে com.example.myapp .test
এ সেট করা থাকে। পরীক্ষার জন্য নামস্থান পরিবর্তন করতে, testNamespace
বৈশিষ্ট্যটি ব্যবহার করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:
কোটলিন
android { namespace = "com.example.myapp" testNamespace = "com.example.mytestapp" ... }
গ্রোভি
android { namespace "com.example.myapp" testNamespace "com.example.mytestapp" ... }
সতর্কতা: testNamespace
এবং namespace
একই মান সেট করবেন না, অন্যথায় নামস্থান সংঘর্ষ ঘটবে।
পরীক্ষা সম্পর্কে আরও জানতে, Android-এ পরীক্ষা অ্যাপগুলি দেখুন।