<আবেদন>

সিনট্যাক্স:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:enableOnBackInvokedCallback=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
এর মধ্যে অন্তর্ভুক্ত:
<manifest>
এতে থাকতে পারে:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
বর্ণনা:

অ্যাপ্লিকেশনটির ঘোষণা। এই উপাদানটিতে এমন উপ-উপাদান রয়েছে যা অ্যাপ্লিকেশনটির প্রতিটি উপাদানকে ঘোষণা করে এবং এতে এমন অ্যাট্রিবিউট রয়েছে যা সমস্ত উপাদানকে প্রভাবিত করতে পারে।

এই অ্যাট্রিবিউটগুলোর মধ্যে অনেকগুলো, যেমন icon , label , permission , process , taskAffinity , এবং allowTaskReparenting , কম্পোনেন্ট এলিমেন্টগুলোর সংশ্লিষ্ট অ্যাট্রিবিউটগুলোর জন্য ডিফল্ট মান নির্ধারণ করে। অন্যগুলো, যেমন debuggable , enabled , description , এবং allowClearUserData , পুরো অ্যাপ্লিকেশনের জন্য মান নির্ধারণ করে এবং কম্পোনেন্টগুলো দ্বারা এগুলো ওভাররাইড হয় না।

বৈশিষ্ট্য
android:allowTaskReparenting
অ্যাপ্লিকেশন দ্বারা সংজ্ঞায়িত অ্যাক্টিভিটিগুলো, যখন পরবর্তীকালে কোনো টাস্ক সামনে আনা হয়, তখন যে টাস্ক থেকে সেগুলো শুরু হয়েছিল সেখান থেকে তাদের পছন্দের টাস্কে যেতে পারবে কি না। যদি সেগুলো যেতে পারে তবে এর "true" হবে, এবং যদি সেগুলোকে যেখান থেকে শুরু হয়েছিল সেখানেই থাকতে হয় তবে এর মান ' "false" । ডিফল্ট মান হলো "false"

<activity> এলিমেন্টের নিজস্ব allowTaskReparenting অ্যাট্রিবিউট আছে যা এখানে সেট করা মানকে ওভাররাইড করতে পারে।

android:allowBackup

অ্যাপ্লিকেশনটিকে ব্যাকআপ এবং রিস্টোর পরিকাঠামোতে অংশগ্রহণ করতে দেওয়া হবে কিনা। যদি এই অ্যাট্রিবিউটটি "false" এ সেট করা থাকে, তাহলে অ্যাপ্লিকেশনটির কোনো ব্যাকআপ বা রিস্টোর কখনোই করা হয় না, এমনকি একটি ফুল-সিস্টেম ব্যাকআপের মাধ্যমেও নয়, যা অন্যথায় adb ব্যবহার করে অ্যাপ্লিকেশনের সমস্ত ডেটা সেভ করে থাকে। এই অ্যাট্রিবিউটের ডিফল্ট মান হলো "true"

দ্রষ্টব্য: অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) বা তার উচ্চতর সংস্করণকে লক্ষ্য করে তৈরি অ্যাপগুলোর ক্ষেত্রে এই আচরণ ভিন্ন হতে পারে। কিছু ডিভাইস প্রস্তুতকারকের ডিভাইসে, আপনি আপনার অ্যাপের ফাইলগুলোর ডিভাইস-টু-ডিভাইস মাইগ্রেশন নিষ্ক্রিয় করতে পারবেন না।

তবে, আপনার অ্যাপটি অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) বা তার উচ্চতর সংস্করণকে টার্গেট করলেও, আপনি এই অ্যাট্রিবিউটটিকে "false" সেট করে আপনার অ্যাপের ফাইলগুলির ক্লাউড-ভিত্তিক ব্যাকআপ এবং রিস্টোর নিষ্ক্রিয় করতে পারেন।

আরও তথ্যের জন্য, পৃষ্ঠাটির ব্যাকআপ এবং রিস্টোর বিভাগটি দেখুন, যেখানে অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) বা তার উচ্চতর সংস্করণের জন্য তৈরি অ্যাপগুলোর আচরণগত পরিবর্তনগুলো বর্ণনা করা হয়েছে।

android:allowClearUserData

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

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

আরও তথ্যের জন্য, ডেটা ব্যাকআপ ওভারভিউ দেখুন।

android:allowNativeHeapPointerTagging

অ্যাপটি হিপ পয়েন্টার ট্যাগিং বৈশিষ্ট্যটি সক্ষম করে কিনা। এই অ্যাট্রিবিউটের ডিফল্ট মান হলো "true"

দ্রষ্টব্য: এই বৈশিষ্ট্যটি নিষ্ক্রিয় করলে অন্তর্নিহিত কোডের স্বাস্থ্যগত সমস্যার সমাধান হয় না । ভবিষ্যতের হার্ডওয়্যার ডিভাইসগুলো এই ম্যানিফেস্ট ট্যাগটি সমর্থন নাও করতে পারে।

আরও তথ্যের জন্য, ট্যাগযুক্ত নির্দেশিকা দেখুন।

android:appCategory

এই অ্যাপটির বিভাগ ঘোষণা করে। একাধিক অ্যাপকে অর্থপূর্ণ দলে একত্রিত করতে বিভাগ ব্যবহার করা হয়, যেমন ব্যাটারি, নেটওয়ার্ক বা ডিস্ক ব্যবহারের সারসংক্ষেপ করার সময়। শুধুমাত্র সেইসব অ্যাপের জন্য এই মানটি নির্ধারণ করুন যেগুলো নির্দিষ্ট বিভাগগুলোর কোনো একটিতে ভালোভাবে খাপ খায়।

নিম্নলিখিত ধ্রুবক মানগুলির মধ্যে একটি হতে হবে।

মূল্য বর্ণনা
accessibility যে অ্যাপগুলো মূলত অ্যাক্সেসিবিলিটি অ্যাপ, যেমন স্ক্রিন-রিডার।
audio যেসব অ্যাপ প্রধানত অডিও বা সঙ্গীত নিয়ে কাজ করে, যেমন মিউজিক প্লেয়ার।
game যে অ্যাপগুলো মূলত গেম।
image যেসব অ্যাপ প্রধানত ছবি বা ফটো নিয়ে কাজ করে, যেমন ক্যামেরা বা গ্যালারি অ্যাপ।
maps যে অ্যাপগুলো মূলত মানচিত্র-ভিত্তিক, যেমন নেভিগেশন অ্যাপ।
news যে অ্যাপগুলো মূলত সংবাদভিত্তিক, যেমন সংবাদপত্র, ম্যাগাজিন বা খেলাধুলার অ্যাপ।
productivity যে অ্যাপগুলো মূলত উৎপাদনশীলতার জন্য ব্যবহৃত হয়, যেমন ক্লাউড স্টোরেজ বা কর্মক্ষেত্রের অ্যাপ।
social যে অ্যাপগুলো মূলত সামাজিক অ্যাপ, যেমন মেসেজিং, যোগাযোগ, ইমেল বা সোশ্যাল নেটওয়ার্ক অ্যাপ।
video যেসব অ্যাপ প্রধানত ভিডিও বা সিনেমা নিয়ে কাজ করে, যেমন স্ট্রিমিং ভিডিও অ্যাপ।

android:backupAgent
অ্যাপ্লিকেশনটির ব্যাকআপ এজেন্ট বাস্তবায়নকারী ক্লাসের নাম, যা BackupAgent এর একটি সাবক্লাস। অ্যাট্রিবিউটের মান হলো একটি সম্পূর্ণ ক্লাস নাম, যেমন "com.example.project.MyBackupAgent" । তবে, সংক্ষিপ্ত রূপ হিসেবে, যদি নামের প্রথম অক্ষরটি একটি পিরিয়ড (.) হয়, উদাহরণস্বরূপ, ".MyBackupAgent" , তাহলে এটি <manifest> এলিমেন্টে নির্দিষ্ট করা প্যাকেজ নামের সাথে যুক্ত করা হয়।

কোনো পূর্বনির্ধারিত বিকল্প নেই। নামটি অবশ্যই সুনির্দিষ্ট হতে হবে।

android:backupInForeground
এটি নির্দেশ করে যে, অ্যাপটি ফোরগ্রাউন্ড-সমতুল্য অবস্থায় থাকলেও এতে অটো ব্যাকআপ অপারেশন চালানো যাবে। অটো ব্যাকআপ অপারেশনের সময় সিস্টেম অ্যাপটি বন্ধ করে দেয়, তাই এই অ্যাট্রিবিউটটি সতর্কতার সাথে ব্যবহার করুন। এই ফ্ল্যাগটিকে "true" তে সেট করলে অ্যাপটি সক্রিয় থাকাকালীন এর আচরণ প্রভাবিত হতে পারে।

ডিফল্ট মান হলো "false" , যার অর্থ হলো, অ্যাপটি যখন ফোরগ্রাউন্ডে চলে, তখন অপারেটিং সিস্টেম সেটির ব্যাকআপ নেওয়া এড়িয়ে চলে। যেমন, একটি মিউজিক অ্যাপ যা startForeground() অবস্থায় কোনো সার্ভিস ব্যবহার করে সক্রিয়ভাবে গান বাজাচ্ছে।

android:banner
একটি ড্রয়েবল রিসোর্স যা এর সংশ্লিষ্ট আইটেমের জন্য একটি বর্ধিত গ্রাফিক্যাল ব্যানার প্রদান করে। সমস্ত অ্যাপ্লিকেশন অ্যাক্টিভিটির জন্য একটি ডিফল্ট ব্যানার সরবরাহ করতে এটি <application> ট্যাগের সাথে অথবা একটি নির্দিষ্ট অ্যাক্টিভিটির জন্য ব্যানার সরবরাহ করতে <activity> ট্যাগের সাথে ব্যবহার করুন।

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

এই অ্যাট্রিবিউটটি ইমেজ ধারণকারী একটি ড্রয়েবল রিসোর্সের রেফারেন্স হিসেবে সেট করা হয়, যেমন "@drawable/banner" । কোনো ডিফল্ট ব্যানার নেই।

আরও তথ্যের জন্য, ‘হোম স্ক্রিন ব্যানার প্রদান করুন’ দেখুন।

android:dataExtractionRules

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

XML ফাইলের ফরম্যাট সম্পর্কে জানতে, ব্যাকআপ ও রিস্টোর দেখুন।

android:debuggable
ইউজার মোডে ডিভাইসে চলার সময়েও অ্যাপ্লিকেশনটি ডিবাগ করা যাবে কি না। যদি করা যায় তবে এর মান "true" এবং না গেলে "false" । ডিফল্ট মান হলো "false"
android:description
অ্যাপ্লিকেশন সম্পর্কিত ব্যবহারকারী-পাঠযোগ্য লেখা, যা অ্যাপ্লিকেশন লেবেলের চেয়ে দীর্ঘতর এবং অধিক বর্ণনামূলক। এর মান একটি স্ট্রিং রিসোর্সের রেফারেন্স হিসেবে সেট করা হয়। লেবেলের মতো এটি একটি র স্ট্রিং হতে পারে না। এর কোনো ডিফল্ট মান নেই।
android:enabled
অ্যান্ড্রয়েড সিস্টেম অ্যাপ্লিকেশনটির কম্পোনেন্টগুলো ইনস্ট্যানশিয়েট করতে পারবে কি না। পারলে এর মান "true" এবং না পারলে "false" । যদি মানটি "true" হয়, তবে প্রতিটি কম্পোনেন্টের ' enabled ' অ্যাট্রিবিউট নির্ধারণ করে যে কম্পোনেন্টটি সক্রিয় থাকবে কি না। যদি মানটি "false" হয়, তবে এটি কম্পোনেন্ট-নির্দিষ্ট মানগুলোকে ওভাররাইড করে এবং সমস্ত কম্পোনেন্ট নিষ্ক্রিয় হয়ে যায়।

ডিফল্ট মান হলো "true"

android:enableOnBackInvokedCallback

এই ফ্ল্যাগটি আপনাকে অ্যাপ পর্যায়ে ভবিষ্যদ্বাণীমূলক সিস্টেম অ্যানিমেশন বন্ধ করার সুযোগ দেয়।

অ্যাপ লেভেলে প্রেডিক্টিভ ব্যাক অ্যানিমেশন বন্ধ করতে এবং OnBackInvokedCallback প্ল্যাটফর্ম API-তে করা কল উপেক্ষা করার জন্য সিস্টেমকে নির্দেশ দিতে android:enableOnBackInvokedCallback=false সেট করুন।

android:extractNativeLibs

AGP 4.2.0 থেকে শুরু করে, useLegacyPackaging ডিএসএল অপশনটি extractNativeLibs ম্যানিফেস্ট অ্যাট্রিবিউটকে প্রতিস্থাপন করে। নেটিভ লাইব্রেরির কম্প্রেশন আচরণ কনফিগার করতে, ম্যানিফেস্ট ফাইলে extractNativeLibs এর পরিবর্তে আপনার অ্যাপের build.gradle ফাইলে useLegacyPackaging ব্যবহার করুন। আরও তথ্যের জন্য, "Use the DSL to package compressed native libraries" রিলিজ নোটটি দেখুন।

এই অ্যাট্রিবিউটটি নির্দেশ করে যে প্যাকেজ ইনস্টলার APK থেকে নেটিভ লাইব্রেরিগুলো ফাইল সিস্টেমে এক্সট্র্যাক্ট করবে কি না। যদি এটি "false" সেট করা থাকে, তাহলে আপনার নেটিভ লাইব্রেরিগুলো APK-এর মধ্যেই অসংকুচিত অবস্থায় সংরক্ষিত থাকে। যদিও আপনার APK-টি আকারে বড় হতে পারে, আপনার অ্যাপ্লিকেশনটি দ্রুত লোড হয়, কারণ রানটাইমে লাইব্রেরিগুলো সরাসরি APK থেকে লোড হয়।

extractNativeLibs এর ডিফল্ট মান minSdkVersion এবং আপনার ব্যবহৃত AGP-এর সংস্করণের উপর নির্ভর করে। বেশিরভাগ ক্ষেত্রে, ডিফল্ট আচরণটিই সম্ভবত আপনার কাম্য, এবং আপনাকে এই অ্যাট্রিবিউটটি স্পষ্টভাবে সেট করতে হবে না।

android:fullBackupContent
এই অ্যাট্রিবিউটটি একটি XML ফাইলকে নির্দেশ করে, যেটিতে অটো ব্যাকআপের জন্য সম্পূর্ণ ব্যাকআপ নিয়মাবলী থাকে। এই নিয়মগুলো নির্ধারণ করে কোন ফাইলগুলো ব্যাকআপ করা হবে। আরও তথ্যের জন্য, অটো ব্যাকআপের XML কনফিগারেশন সিনট্যাক্স দেখুন।

এই অ্যাট্রিবিউটটি ঐচ্ছিক। এটি নির্দিষ্ট করা না থাকলে, ডিফল্টরূপে অটো ব্যাকআপ আপনার অ্যাপের বেশিরভাগ ফাইল অন্তর্ভুক্ত করে। আরও তথ্যের জন্য, ‘ব্যাকআপ করা ফাইলসমূহ’ দেখুন।

android:fullBackupOnly
এই অ্যাট্রিবিউটটি নির্দেশ করে যে, যেসব ডিভাইসে অটো ব্যাকআপ সুবিধা রয়েছে, সেখানে এটি ব্যবহার করা হবে কি না। যদি এটি "true" তে সেট করা থাকে, তাহলে আপনার অ্যাপটি অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩) বা তার উচ্চতর সংস্করণে চালিত কোনো ডিভাইসে ইনস্টল করা হলে অটো ব্যাকআপ সম্পাদন করবে। পুরোনো ডিভাইসগুলোতে, আপনার অ্যাপ এই অ্যাট্রিবিউটটি উপেক্ষা করবে এবং কী/ভ্যালু ব্যাকআপ সম্পাদন করবে।

ডিফল্ট মান হলো "false"

android:gwpAsanMode
এই অ্যাট্রিবিউটটি নির্দেশ করে যে GWP-ASan ব্যবহার করা হবে কিনা; GWP-ASan হলো একটি নেটিভ মেমরি অ্যালোকেটর ফিচার যা use-after-free এবং heap-buffer-overflow বাগ খুঁজে বের করতে সাহায্য করে।

ডিফল্ট মান হলো "never"

android:hasCode
অ্যাপ্লিকেশনটিতে কোনো DEX কোড আছে কিনা—অর্থাৎ, কোটলিন বা জাভা প্রোগ্রামিং ভাষা ব্যবহার করে লেখা কোড। যদি থাকে তবে এর মান "true" এবং না থাকলে "false" । যখন মানটি "false" হয়, তখন সিস্টেম কম্পোনেন্ট চালু করার সময় কোনো অ্যাপ্লিকেশন কোড লোড করার চেষ্টা করে না। ডিফল্ট মান হলো "true"

যদি অ্যাপ্লিকেশনটিতে নেটিভ (C/C++) কোড থাকে, কিন্তু কোনো DEX কোড না থাকে, তবে এটিকে "false" সেট করতে হবে। APK-তে কোনো DEX কোড না থাকা সত্ত্বেও যদি এটিকে "true" সেট করা হয়, তাহলে অ্যাপটি লোড হতে ব্যর্থ হতে পারে।

এই প্রপার্টিতে অবশ্যই ডিপেন্ডেন্সির মাধ্যমে অ্যাপ্লিকেশনে অন্তর্ভুক্ত কোড অন্তর্ভুক্ত থাকতে হবে। যদি অ্যাপ্লিকেশনটি জাভা/কোটলিন কোড ব্যবহারকারী কোনো AAR-এর উপর, অথবা সরাসরি কোনো JAR-এর উপর নির্ভর করে, তাহলে app:hasCode মান অবশ্যই "true" হতে হবে, অথবা এটি বাদ দেওয়া যেতে পারে, কারণ ডিফল্ট মান তাই।

উদাহরণস্বরূপ, আপনার অ্যাপ প্লে ফিচার ডেলিভারি সমর্থন করতে পারে এবং এতে এমন ফিচার মডিউল অন্তর্ভুক্ত থাকতে পারে যা কোনো DEX ফাইল তৈরি করে না; DEX হলো অ্যান্ড্রয়েড প্ল্যাটফর্মের জন্য অপ্টিমাইজ করা বাইটকোড। যদি এমন হয়, তাহলে রানটাইম ত্রুটি এড়াতে আপনাকে মডিউলের ম্যানিফেস্ট ফাইলে এই প্রপার্টিটি "false" সেট করতে হবে।

android:hasFragileUserData
ব্যবহারকারী যখন অ্যাপটি আনইনস্টল করবেন, তখন অ্যাপের ডেটা রেখে দেওয়ার জন্য তাকে কোনো প্রম্পট দেখানো হবে কি না। এর ডিফল্ট মান হলো "false"
android:hardwareAccelerated
এই অ্যাপ্লিকেশনের সমস্ত অ্যাক্টিভিটি এবং ভিউ-এর জন্য হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারিং সক্রিয় আছে কিনা। সক্রিয় থাকলে এর মান "true" এবং না থাকলে "false" । আপনি যদি minSdkVersion অথবা targetSdkVersion মান "14" বা তার বেশি সেট করেন, তাহলে এর ডিফল্ট মান "true" হবে। অন্যথায়, এর মান "false"

অ্যান্ড্রয়েড ৩.০ (এপিআই লেভেল ১১) থেকে, অনেক সাধারণ ২ডি গ্রাফিক্স অপারেশনের পারফরম্যান্স উন্নত করার জন্য অ্যাপ্লিকেশনগুলোতে একটি হার্ডওয়্যার-অ্যাক্সিলারেটেড ওপেনজিএল রেন্ডারার উপলব্ধ হয়েছে। যখন হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারারটি সক্রিয় করা হয়, তখন ক্যানভাস, পেইন্ট, এক্সফারমোড, কালারফিল্টার, শেডার এবং ক্যামেরার বেশিরভাগ অপারেশন ত্বরান্বিত হয়।

এর ফলে আরও মসৃণ অ্যানিমেশন, মসৃণ স্ক্রলিং এবং সার্বিকভাবে উন্নত রেসপন্সিভনেস পাওয়া যায়, এমনকি সেইসব অ্যাপ্লিকেশনের ক্ষেত্রেও যেগুলো ফ্রেমওয়ার্কের OpenGL লাইব্রেরিগুলো সরাসরি ব্যবহার করে না।

OpenGL-এর সব 2D অপারেশন অ্যাক্সিলারেটেড নয়। আপনি যদি হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারার সক্রিয় করেন, তবে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করে দেখুন যাতে এটি কোনো ত্রুটি ছাড়াই রেন্ডারারটি ব্যবহার করতে পারে।

আরও তথ্যের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন গাইডটি পড়ুন।

android:icon
সম্পূর্ণ অ্যাপ্লিকেশনটির জন্য একটি আইকন এবং অ্যাপ্লিকেশনটির প্রতিটি উপাদানের জন্য ডিফল্ট আইকন। <activity> , <activity-alias> , <service> , <receiver> , এবং <provider> এলিমেন্টগুলোর জন্য স্বতন্ত্র icon অ্যাট্রিবিউটগুলো দেখুন।

এই অ্যাট্রিবিউটটি ছবিটি ধারণকারী একটি ড্রয়েবল রিসোর্সের রেফারেন্স হিসেবে সেট করা হয়, যেমন "@drawable/icon" । কোনো ডিফল্ট আইকন নেই।

android:isGame
অ্যাপ্লিকেশনটি একটি গেম কিনা। সিস্টেমটি গেম হিসাবে শ্রেণীবদ্ধ অ্যাপ্লিকেশনগুলিকে একসাথে রাখতে পারে অথবা অন্যান্য অ্যাপ্লিকেশন থেকে আলাদাভাবে প্রদর্শন করতে পারে। ডিফল্ট মান হলো "false"
android:isMonitoringTool

এটি নির্দেশ করে যে এই অ্যাপ্লিকেশনটি অন্য ব্যক্তিদের উপর নজরদারি করার জন্য তৈরি করা হয়েছে।

দ্রষ্টব্য: যদি কোনো অ্যাপ তার ম্যানিফেস্টে এই অ্যাট্রিবিউটটি ঘোষণা করে, তাহলে ডেভেলপারকে গুগল প্লে-তে অ্যাপটি প্রকাশ করার জন্য স্টকারওয়্যার নীতি অনুসরণ করতে হবে।

এর কোনো ডিফল্ট মান নেই। ডেভেলপারকে অবশ্যই নিম্নলিখিত মানগুলির মধ্যে একটি নির্দিষ্ট করতে হবে:

মূল্য বর্ণনা
"parental_control" অ্যাপটি অভিভাবকীয় নিয়ন্ত্রণের সুবিধা দেয় এবং এটি বিশেষভাবে সেইসব অভিভাবকদের জন্য তৈরি করা হয়েছে যারা তাদের সন্তানদের সুরক্ষিত রাখতে চান।
"enterprise_management" এই অ্যাপটি এমন সব প্রতিষ্ঠানের জন্য তৈরি করা হয়েছে, যারা কর্মীদের দেওয়া ডিভাইসগুলো পরিচালনা ও ট্র্যাক করতে চায়।
"other" অ্যাপটি এমন একটি ব্যবহারের ক্ষেত্র পূরণ করে যা এই সারণীতে অন্যভাবে নির্দিষ্ট করা হয়নি।
android:killAfterRestore

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

ডিফল্ট মান হলো "true" , যার অর্থ হলো, সম্পূর্ণ সিস্টেম রিস্টোরের সময় অ্যাপ্লিকেশনটি তার ডেটা প্রসেসিং শেষ করার পর বন্ধ হয়ে যায়।

android:largeHeap

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

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

রানটাইমে উপলব্ধ মেমরির আকার জানতে getMemoryClass() বা getLargeMemoryClass() মেথডগুলো ব্যবহার করুন।

android:label
সম্পূর্ণ অ্যাপ্লিকেশনটির জন্য একটি ব্যবহারকারী-পাঠযোগ্য লেবেল এবং অ্যাপ্লিকেশনটির প্রতিটি উপাদানের জন্য একটি ডিফল্ট লেবেল। <activity> , <activity-alias> , <service> , <receiver> , এবং <provider> উপাদানগুলোর জন্য স্বতন্ত্র label অ্যাট্রিবিউটগুলো দেখুন।

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

android:logo
সম্পূর্ণ অ্যাপ্লিকেশনটির জন্য একটি লোগো এবং অ্যাক্টিভিটিগুলোর জন্য ডিফল্ট লোগো। এই অ্যাট্রিবিউটটি ছবিটি ধারণকারী একটি ড্রয়েবল রিসোর্সের রেফারেন্স হিসেবে সেট করা হয়, যেমন "@drawable/logo" । কোনো ডিফল্ট লোগো নেই।
android:manageSpaceActivity
Activity সাবক্লাসের পূর্ণাঙ্গ নাম, যা সিস্টেম ব্যবহারকারীদের ডিভাইসে অ্যাপ্লিকেশন দ্বারা দখলকৃত মেমরি পরিচালনা করার সুযোগ দিতে চালু করে। এই অ্যাক্টিভিটিটি একটি <activity> এলিমেন্ট দিয়েও ডিক্লেয়ার করা হয়।
android:name
অ্যাপ্লিকেশনটির জন্য বাস্তবায়িত একটি Application সাবক্লাসের পূর্ণাঙ্গ নাম। অ্যাপ্লিকেশন প্রসেসটি শুরু হলে, অ্যাপ্লিকেশনটির যেকোনো কম্পোনেন্টের আগে এই ক্লাসটি ইনস্ট্যানশিয়েট করা হয়।

সাবক্লাস ঐচ্ছিক। বেশিরভাগ অ্যাপ্লিকেশনের এটির প্রয়োজন হয় না। সাবক্লাস না থাকলে, অ্যান্ড্রয়েড বেস Application ক্লাসের একটি ইনস্ট্যান্স ব্যবহার করে।

android:networkSecurityConfig

আপনার অ্যাপ্লিকেশনের নেটওয়ার্ক নিরাপত্তা কনফিগারেশন ধারণকারী XML ফাইলের নাম নির্দিষ্ট করে। এর মানটি হলো কনফিগারেশন ধারণকারী XML রিসোর্স ফাইলের একটি রেফারেন্স।

এই অ্যাট্রিবিউটটি এপিআই লেভেল ২৪-এ যোগ করা হয়েছিল।

android:permission
এমন একটি অনুমতির নাম যা অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করার জন্য ক্লায়েন্টদের প্রয়োজন। এই অ্যাট্রিবিউটটি এমন একটি অনুমতি সেট করার সুবিধাজনক উপায় যা অ্যাপ্লিকেশনটির সমস্ত কম্পোনেন্টের জন্য প্রযোজ্য। স্বতন্ত্র কম্পোনেন্টগুলোর permission অ্যাট্রিবিউট সেট করার মাধ্যমে এটি ওভাররাইট হয়ে যায়।

অনুমতি সম্পর্কে আরও তথ্যের জন্য, অ্যাপ ম্যানিফেস্ট ওভারভিউ এবং নিরাপত্তা টিপস- এর অনুমতি বিভাগটি দেখুন।

android:persistent
অ্যাপ্লিকেশনটি সব সময় চালু থাকবে কিনা। চালু থাকলে এর মান "true" এবং না থাকলে "false" । এর ডিফল্ট মান হলো "false" । অ্যাপ্লিকেশনগুলো সাধারণত এই ফ্ল্যাগটি সেট করে না। পার্সিস্টেন্স মোড শুধুমাত্র নির্দিষ্ট কিছু সিস্টেম অ্যাপ্লিকেশনের জন্য উদ্দিষ্ট।
android:process
একটি প্রসেসের নাম যেখানে অ্যাপ্লিকেশনটির সমস্ত উপাদান চলে। প্রতিটি উপাদান তার নিজস্ব process অ্যাট্রিবিউট সেট করার মাধ্যমে এই ডিফল্টটিকে পরিবর্তন করতে পারে।

ডিফল্টরূপে, যখন কোনো অ্যাপ্লিকেশনের প্রথম কম্পোনেন্টটি চালানোর প্রয়োজন হয়, তখন অ্যান্ড্রয়েড সেটির জন্য একটি প্রসেস তৈরি করে। এরপর সমস্ত কম্পোনেন্ট সেই প্রসেসের মধ্যেই চলে। ডিফল্ট প্রসেসের নামটি <manifest> এলিমেন্ট দ্বারা সেট করা প্যাকেজ নামের সাথে মিলে যায়।

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

এই অ্যাট্রিবিউটে নির্ধারিত নামটি যদি কোলন ( : দিয়ে শুরু হয়, তাহলে প্রয়োজনের সময় অ্যাপ্লিকেশনটির জন্য একটি নতুন ও ব্যক্তিগত প্রসেস তৈরি করা হয়। যদি প্রসেসের নামটি ছোট হাতের অক্ষর দিয়ে শুরু হয়, তাহলে সেই নামে একটি গ্লোবাল প্রসেস তৈরি করা হয়। একটি গ্লোবাল প্রসেস অন্যান্য অ্যাপ্লিকেশনের সাথে শেয়ার করা যেতে পারে, যা রিসোর্স ব্যবহার কমিয়ে দেয়।

android:restoreAnyVersion
এটি নির্দেশ করে যে অ্যাপ্লিকেশনটি যেকোনো ব্যাক-আপ করা ডেটা সেট পুনরুদ্ধার করার চেষ্টা করতে প্রস্তুত, এমনকি যদি ব্যাক-আপটি ডিভাইসে বর্তমানে ইনস্টল করা সংস্করণের চেয়ে নতুন কোনো সংস্করণ দ্বারা সংরক্ষণ করা হয়ে থাকে। এই অ্যাট্রিবিউটটিকে "true" তে সেট করলে ব্যাকআপ ম্যানেজারকে অনুমতি দেওয়া হয়।
  • $1
  • সংস্করণ অমিলের কারণে ডেটা অসামঞ্জস্যপূর্ণ বলে মনে হলেও রিস্টোর করার চেষ্টা করুন। সতর্কতার সাথে ব্যবহার করুন!

    এই অ্যাট্রিবিউটের ডিফল্ট মান হলো "false"

    android:requestLegacyExternalStorage

    অ্যাপ্লিকেশনটি স্কোপড স্টোরেজ থেকে বেরিয়ে আসতে চায় কিনা।

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

    android:requiredAccountType
    অ্যাপ্লিকেশনটি কাজ করার জন্য প্রয়োজনীয় অ্যাকাউন্টের ধরন নির্দিষ্ট করে। যদি আপনার অ্যাপের জন্য একটি Account প্রয়োজন হয়, তাহলে এই অ্যাট্রিবিউটের মান অবশ্যই আপনার অ্যাপ দ্বারা ব্যবহৃত অ্যাকাউন্ট অথেন্টিকেটরের ধরনের সাথে মিলতে হবে, যা AuthenticatorDescription দ্বারা সংজ্ঞায়িত, যেমন "com.google"

    ডিফল্ট মান হলো null, যা নির্দেশ করে যে অ্যাপ্লিকেশনটি কোনো অ্যাকাউন্ট ছাড়াই কাজ করতে পারে।

    যেহেতু সীমাবদ্ধ প্রোফাইল থেকে অ্যাকাউন্ট যোগ করা যায় না, তাই এই অ্যাট্রিবিউটটি নির্দিষ্ট করলে আপনার অ্যাপটি একটি সীমাবদ্ধ প্রোফাইল থেকে অনুপলব্ধ হয়ে যায়, যদি না আপনি একই মান দিয়ে android:restrictedAccountType ও ঘোষণা করেন।

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

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ১৮-এ যোগ করা হয়েছিল।

    android:resizeableActivity

    অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে কিনা তা নির্দিষ্ট করে।

    আপনি এই অ্যাট্রিবিউটটি <activity> অথবা <application> এলিমেন্টের যেকোনো একটিতে সেট করতে পারেন।

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

    এই অ্যাট্রিবিউটটিকে "true" তে সেট করলে এই নিশ্চয়তা পাওয়া যায় না যে স্ক্রিনে (যেমন পিকচার-ইন-পিকচার) বা অন্য কোনো ডিসপ্লেতে মাল্টি-উইন্ডো মোডে অন্য কোনো অ্যাপ দৃশ্যমান নেই। সুতরাং, এই ফ্ল্যাগটি সেট করার অর্থ এই নয় যে আপনার অ্যাপের রিসোর্স ব্যবহারের একচেটিয়া অধিকার রয়েছে।

    যেসব অ্যাপ এপিআই লেভেল ২৪ বা তার বেশি টার্গেট করে, সেগুলোর জন্য ডিফল্ট মান হলো "true"

    আপনার অ্যাপটি যদি এপিআই লেভেল ৩১ বা তার বেশি টার্গেট করে, তাহলে এই অ্যাট্রিবিউটটি ছোট এবং বড় স্ক্রিনে ভিন্নভাবে কাজ করে:

    • বড় স্ক্রিন (sw >= 600dp): সমস্ত অ্যাপ মাল্টি-উইন্ডো মোড সমর্থন করে। এই অ্যাট্রিবিউটটি নির্দেশ করে যে একটি অ্যাপের আকার পরিবর্তন করা যাবে কিনা, অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে কিনা তা নয়। যদি resizeableActivity="false" , তাহলে ডিসপ্লের আকারের সাথে সামঞ্জস্য রাখার জন্য প্রয়োজনে অ্যাপটিকে কম্প্যাটিবিলিটি মোডে রাখা হয়।
    • ছোট স্ক্রিন (sw < 600dp): যদি resizeableActivity="true" এবং প্রধান অ্যাক্টিভিটির সর্বনিম্ন প্রস্থ ও সর্বনিম্ন উচ্চতা মাল্টি-উইন্ডোর শর্তাবলীর মধ্যে থাকে, তাহলে অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে। যদি resizeableActivity="false" , তাহলে অ্যাক্টিভিটির সর্বনিম্ন প্রস্থ এবং উচ্চতা নির্বিশেষে অ্যাপটি মাল্টি-উইন্ডো মোড সমর্থন করে না।

    একটি টাস্কের রুট অ্যাক্টিভিটির মান সেই টাস্কের অধীনে চালু করা সমস্ত অতিরিক্ত অ্যাক্টিভিটির ক্ষেত্রে প্রযোজ্য হয়। অর্থাৎ, যদি কোনো টাস্কের রুট অ্যাক্টিভিটি রিসাইজযোগ্য হয়, তাহলে সিস্টেম সেই টাস্কের অন্য সমস্ত অ্যাক্টিভিটিকেও রিসাইজযোগ্য হিসেবে গণ্য করে। যদি রুট অ্যাক্টিভিটি রিসাইজযোগ্য না হয়, তাহলে টাস্কের অন্য অ্যাক্টিভিটিগুলোও রিসাইজযোগ্য হয় না।

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ২৪-এ যোগ করা হয়েছিল।

    android:restrictedAccountType
    এই অ্যাপ্লিকেশনটির জন্য প্রয়োজনীয় অ্যাকাউন্টের ধরন নির্দিষ্ট করে এবং নির্দেশ করে যে সীমাবদ্ধ প্রোফাইলগুলো মালিক ব্যবহারকারীর অ্যাকাউন্টগুলো অ্যাক্সেস করতে পারবে। যদি আপনার অ্যাপের জন্য একটি Account প্রয়োজন হয় এবং সীমাবদ্ধ প্রোফাইলগুলো প্রাথমিক ব্যবহারকারীর অ্যাকাউন্টগুলো অ্যাক্সেস করতে পারে , তাহলে এই অ্যাট্রিবিউটের মান অবশ্যই আপনার অ্যাপ দ্বারা ব্যবহৃত অ্যাকাউন্ট অথেন্টিকেটর ধরনের সাথে সামঞ্জস্যপূর্ণ হতে হবে, যা AuthenticatorDescription দ্বারা সংজ্ঞায়িত, যেমন "com.google"

    ডিফল্ট মান হলো null, যা নির্দেশ করে যে অ্যাপ্লিকেশনটি কোনো অ্যাকাউন্ট ছাড়াই কাজ করতে পারে।

    সতর্কতা: এই অ্যাট্রিবিউটটি নির্দিষ্ট করলে সীমাবদ্ধ প্রোফাইলগুলো মালিক ব্যবহারকারীর অ্যাকাউন্ট দিয়ে আপনার অ্যাপ ব্যবহার করতে পারবে, যা ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য প্রকাশ করতে পারে। যদি অ্যাকাউন্টটি ব্যক্তিগত বিবরণ প্রকাশ করতে পারে, তাহলে এই অ্যাট্রিবিউটটি ব্যবহার করবেন না । এর পরিবর্তে, সীমাবদ্ধ প্রোফাইলগুলোর জন্য আপনার অ্যাপকে অনুপলব্ধ করতে android:requiredAccountType অ্যাট্রিবিউটটি ঘোষণা করুন।

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ১৮-এ যোগ করা হয়েছিল।

    android:supportsRtl

    আপনার অ্যাপ্লিকেশনটি ডান থেকে বাম (RTL) লেআউট সমর্থন করতে ইচ্ছুক কিনা তা ঘোষণা করে।

    যদি এটি "true" তে সেট করা থাকে এবং targetSdkVersion 17 বা তার বেশি হয়, তাহলে সিস্টেম বিভিন্ন RTL API সক্রিয় করে ব্যবহার করে, যাতে আপনার অ্যাপ RTL লেআউট প্রদর্শন করতে পারে। যদি এটি "false" তে সেট করা থাকে অথবা targetSdkVersion 16 বা তার কম হয়, তাহলে RTL API-গুলো উপেক্ষা করা হয় বা সেগুলোর কোনো প্রভাব থাকে না, এবং ব্যবহারকারীর লোকেল পছন্দের সাথে যুক্ত লেআউটের দিক নির্বিশেষে আপনার অ্যাপ একইভাবে আচরণ করে। অর্থাৎ, আপনার লেআউটগুলো সর্বদা বাম থেকে ডানে থাকে।

    এই অ্যাট্রিবিউটের ডিফল্ট মান হলো "false"

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ১৭-এ যোগ করা হয়েছিল।

    android:taskAffinity
    একটি অ্যাফিনিটি নাম যা অ্যাপ্লিকেশনের মধ্যে থাকা সেই সমস্ত অ্যাক্টিভিটির ক্ষেত্রে প্রযোজ্য, যেগুলি তাদের নিজস্ব taskAffinity অ্যাট্রিবিউটের মাধ্যমে একটি ভিন্ন অ্যাফিনিটি সেট করে। আরও তথ্যের জন্য সেই অ্যাট্রিবিউটটি দেখুন।

    ডিফল্টরূপে, একটি অ্যাপ্লিকেশনের অন্তর্গত সমস্ত অ্যাক্টিভিটি একই অ্যাফিনিটি শেয়ার করে। সেই অ্যাফিনিটির নামটি <manifest> এলিমেন্ট দ্বারা সেট করা প্যাকেজ নামের মতোই হয়।

    android:testOnly
    এটি নির্দেশ করে যে এই অ্যাপ্লিকেশনটি শুধুমাত্র পরীক্ষার উদ্দেশ্যে তৈরি কিনা। উদাহরণস্বরূপ, এটি নিজের বাইরের কার্যকারিতা বা ডেটা প্রকাশ করতে পারে যা একটি নিরাপত্তা ঝুঁকি তৈরি করতে পারে, কিন্তু পরীক্ষার জন্য উপযোগী হতে পারে। এই ধরনের APK শুধুমাত্র adb মাধ্যমে ইনস্টল করা যায়। আপনি এটি Google Play-তে প্রকাশ করতে পারবেন না।

    আপনি রান-এ ক্লিক করলে অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে এই অ্যাট্রিবিউটটি যুক্ত করে। .

    android:theme
    একটি স্টাইল রিসোর্সের রেফারেন্স যা অ্যাপ্লিকেশনের সমস্ত অ্যাক্টিভিটির জন্য একটি ডিফল্ট থিম নির্ধারণ করে। স্বতন্ত্র অ্যাক্টিভিটিগুলো তাদের নিজস্ব theme অ্যাট্রিবিউট সেট করার মাধ্যমে ডিফল্ট থিমটিকে ওভাররাইড করতে পারে। আরও তথ্যের জন্য, স্টাইল এবং থিম দেখুন।
    android:uiOptions
    একটি অ্যাক্টিভিটির UI-এর জন্য অতিরিক্ত অপশন। মানগুলো অবশ্যই নিম্নলিখিতগুলোর মধ্যে একটি হতে হবে:
    মূল্য বর্ণনা
    "none" কোনো অতিরিক্ত UI বিকল্প নেই। এটিই ডিফল্ট।
    "splitActionBarWhenNarrow" স্ক্রিনের নীচে একটি বার যুক্ত করে, যা অ্যাপ বারের ( যা অ্যাকশন বার নামেও পরিচিত) অ্যাকশন আইটেমগুলো প্রদর্শন করে, বিশেষ করে যখন আনুভূমিক স্থানের সীমাবদ্ধতা থাকে, যেমন হ্যান্ডসেটের পোর্ট্রেট মোডে। স্ক্রিনের উপরের অ্যাপ বারে অল্প কিছু অ্যাকশন আইটেম প্রদর্শিত হওয়ার পরিবর্তে, অ্যাপ বারটি উপরের নেভিগেশন অংশ এবং অ্যাকশন আইটেমগুলোর জন্য নীচের বারে বিভক্ত হয়ে যায়। এর ফলে, অ্যাকশন আইটেমগুলোর জন্য এবং উপরের নেভিগেশন ও টাইটেল উপাদানগুলোর জন্য পর্যাপ্ত পরিমাণ জায়গা পাওয়া যায়। মেনু আইটেমগুলো দুটি বারে বিভক্ত হয় না। সেগুলো সবসময় একসাথে প্রদর্শিত হয়।

    অ্যাপ বার সম্পর্কে আরও তথ্যের জন্য, “অ্যাপ বার যোগ করুন” দেখুন।

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ১৪-এ যোগ করা হয়েছিল।

    android:usesCleartextTraffic
    অ্যাপটি ক্লিয়ারটেক্সট নেটওয়ার্ক ট্র্যাফিক, যেমন ক্লিয়ারটেক্সট HTTP, ব্যবহার করতে চায় কিনা তা নির্দেশ করে। যে অ্যাপগুলো API লেভেল ২৭ বা তার নিচের সংস্করণকে টার্গেট করে, তাদের জন্য ডিফল্ট মান হলো "true" । যে অ্যাপগুলো API লেভেল ২৮ বা তার উপরের সংস্করণকে টার্গেট করে, তাদের জন্য ডিফল্ট মান হলো "false"

    দ্রষ্টব্য: এই অ্যাট্রিবিউটটি অপ্রচলিত হয়ে যাচ্ছে এবং API লেভেল ৩৮ ও তার উপরের লেভেলের অ্যাপগুলোর জন্য এটি উপেক্ষা করা হবে। API লেভেল ২৪ ও তার উপরের লেভেলের জন্য ক্লিয়ারটেক্সট ট্র্যাফিক নিয়ন্ত্রণ করতে একটি নেটওয়ার্ক সিকিউরিটি কনফিগারেশন নির্দিষ্ট করুন। যদি আপনার অ্যাপ API লেভেল ২৩ ও তার নিচের লেভেলকে টার্গেট করে, তবে নেটওয়ার্ক সিকিউরিটি কনফিগারেশনের পাশাপাশি আপনাকে অবশ্যই android:usesCleartextTraffic নির্দিষ্ট করতে হবে।

    যখন অ্যাট্রিবিউটটির মান "false" সেট করা থাকে, তখন প্ল্যাটফর্মের উপাদানগুলো, যেমন HTTP ও FTP স্ট্যাক, DownloadManager এবং MediaPlayer , অ্যাপের ক্লিয়ারটেক্সট ট্র্যাফিক ব্যবহারের অনুরোধ প্রত্যাখ্যান করে।

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

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

    তবে, অ্যাপ্লিকেশন থেকে আসা বেশিরভাগ নেটওয়ার্ক ট্র্যাফিক উচ্চ-স্তরের নেটওয়ার্ক স্ট্যাক এবং কম্পোনেন্ট দ্বারা পরিচালিত হয়, যেগুলো ApplicationInfo.flags থেকে ফ্ল্যাগটি পড়ে অথবা NetworkSecurityPolicy.isCleartextTrafficPermitted() -এর মাধ্যমে এটিকে সম্মান করতে পারে।

    দ্রষ্টব্য: WebView এপিআই লেভেল ২৬ এবং তার চেয়ে উচ্চতর লেভেলের অ্যাপ্লিকেশনগুলোর জন্য এই অ্যাট্রিবিউটটি সমর্থন করে।

    অ্যাপ তৈরির সময়, অ্যাপ থেকে আসা যেকোনো ক্লিয়ারটেক্সট ট্র্যাফিক শনাক্ত করতে StrictMode ব্যবহার করা যেতে পারে। আরও তথ্যের জন্য, StrictMode.VmPolicy.Builder.detectCleartextNetwork() দেখুন।

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ২৩-এ যোগ করা হয়েছিল।

    অ্যান্ড্রয়েড নেটওয়ার্ক সিকিউরিটি কনফিগ থাকলে, অ্যান্ড্রয়েড ৭.০ (এপিআই লেভেল ২৪) এবং তার উপরের সংস্করণগুলিতে এই ফ্ল্যাগটি উপেক্ষা করা হয়।

    android:vmSafeMode
    অ্যাপটি ভার্চুয়াল মেশিনকে (VM) সেফ মোডে চালাতে চায় কিনা তা নির্দেশ করে। এর ডিফল্ট মান হলো "false"

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ৮-এ যোগ করা হয়েছিল, যেখানে "true" মানটি ডালভিক জাস্ট-ইন-টাইম (JIT) কম্পাইলারকে নিষ্ক্রিয় করে দিত।

    এই অ্যাট্রিবিউটটি এপিআই লেভেল ২২-এ অভিযোজিত করা হয়েছিল, যেখানে "true" মানটি ART ahead-of-time (AOT) কম্পাইলারকে নিষ্ক্রিয় করে দিত।

    এতে প্রবর্তন করা হয়েছিল:
    এপিআই স্তর ১
    আরও দেখুন:
    <activity>
    <service>
    <receiver>
    <provider>