Google Play আপনার অ্যাপের ম্যানিফেস্টে ঘোষিত <uses-sdk>
বৈশিষ্ট্যগুলি ব্যবহার করে আপনার অ্যাপ ফিল্টার করার জন্য এমন ডিভাইসগুলি থেকে যা এর প্ল্যাটফর্ম সংস্করণের প্রয়োজনীয়তা পূরণ করে না। এই বৈশিষ্ট্যগুলি সেট করার আগে, নিশ্চিত করুন যে আপনি Google Play ফিল্টারগুলি বুঝতে পেরেছেন৷
- সিনট্যাক্স:
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
- এর মধ্যে রয়েছে:
-
<manifest>
- বর্ণনা:
আপনাকে একটি API স্তরের পূর্ণসংখ্যার মাধ্যমে Android প্ল্যাটফর্মের এক বা একাধিক সংস্করণের সাথে একটি অ্যাপ্লিকেশনের সামঞ্জস্যতা প্রকাশ করতে দেয়৷ একটি অ্যাপ্লিকেশন দ্বারা প্রকাশ করা API স্তরকে একটি প্রদত্ত অ্যান্ড্রয়েড সিস্টেমের API স্তরের সাথে তুলনা করা হয়, যা বিভিন্ন Android ডিভাইসের মধ্যে পরিবর্তিত হতে পারে।
এর নাম থাকা সত্ত্বেও, এই উপাদানটি API স্তর নির্দিষ্ট করতে ব্যবহৃত হয়, সফ্টওয়্যার ডেভেলপমেন্ট কিট (SDK) বা Android প্ল্যাটফর্মের সংস্করণ নম্বর নয় । API স্তর সর্বদা একটি একক পূর্ণসংখ্যা। আপনি এর সম্পর্কিত অ্যান্ড্রয়েড সংস্করণ নম্বর থেকে এপিআই স্তরটি অর্জন করতে পারবেন না। উদাহরণস্বরূপ, এটি প্রধান সংস্করণ বা প্রধান এবং ছোট সংস্করণগুলির সমষ্টির মতো নয়৷
এটি নির্দিষ্ট করা সম্ভব নয় যে একটি অ্যাপ লক্ষ্য করে বা একটি ছোট SDK সংস্করণ প্রয়োজন।
আপনার অ্যাপ্লিকেশনগুলি সংস্করণ সম্পর্কে ডকুমেন্টটিও পড়ুন।
- গুণাবলী:
-
android:minSdkVersion
- অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় ন্যূনতম API স্তর নির্ধারণ করে একটি পূর্ণসংখ্যা। অ্যান্ড্রয়েড সিস্টেম ব্যবহারকারীকে অ্যাপ্লিকেশনটি ইনস্টল করতে বাধা দেয় যদি সিস্টেমের API স্তর এই বৈশিষ্ট্যে নির্দিষ্ট করা মানের থেকে কম হয়। সর্বদা এই বৈশিষ্ট্য ঘোষণা করুন।
সতর্কতা: আপনি যদি এই বৈশিষ্ট্যটি ঘোষণা না করেন তবে সিস্টেমটি "1" এর একটি ডিফল্ট মান ধরে নেয়, যা নির্দেশ করে যে আপনার অ্যাপ্লিকেশনটি Android এর সমস্ত সংস্করণের সাথে সামঞ্জস্যপূর্ণ। যদি এটি না হয় , এবং আপনি যথাযথ
minSdkVersion
ঘোষণা না করেন, তাহলে একটি বেমানান API স্তর সহ একটি সিস্টেমে ইনস্টল করা হলে, অনুপলব্ধ API গুলি অ্যাক্সেস করার চেষ্টা করার সময় রানটাইম চলাকালীন অ্যাপ্লিকেশনটি ক্র্যাশ হয়৷ এই কারণে,minSdkVersion
অ্যাট্রিবিউটে উপযুক্ত API স্তর ঘোষণা করতে ভুলবেন না। -
android:targetSdkVersion
- একটি পূর্ণসংখ্যা এপিআই স্তর নির্ধারণ করে যা অ্যাপ্লিকেশন লক্ষ্য করে। যদি সেট না করা হয়, ডিফল্ট মান
minSdkVersion
এ দেওয়া সমান।এই অ্যাট্রিবিউটটি সিস্টেমকে জানায় যে আপনি লক্ষ্য সংস্করণের বিরুদ্ধে পরীক্ষা করেছেন এবং সিস্টেমটি লক্ষ্য সংস্করণের সাথে আপনার অ্যাপের ফরওয়ার্ড-সামঞ্জস্য বজায় রাখার জন্য কোনো সামঞ্জস্যপূর্ণ আচরণ সক্ষম করে না। অ্যাপ্লিকেশনটি এখনও নিম্ন সংস্করণে (
minSdkVersion
পর্যন্ত) চলতে সক্ষম।অ্যান্ড্রয়েড যেমন প্রতিটি নতুন সংস্করণের সাথে বিকশিত হয়, কিছু আচরণ এবং এমনকি উপস্থিতি পরিবর্তিত হতে পারে। যাইহোক, যদি প্ল্যাটফর্মের API স্তর আপনার অ্যাপের
targetSdkVersion
দ্বারা ঘোষিত সংস্করণের চেয়ে বেশি হয়, তাহলে সিস্টেমটি সামঞ্জস্যপূর্ণ আচরণগুলি সক্ষম করতে পারে যাতে আপনার অ্যাপটি আপনার প্রত্যাশা অনুযায়ী কাজ করতে পারে৷ আপনি যে প্ল্যাটফর্মের উপর চলছে তার এপিআই স্তরের সাথে মেলেtargetSdkVersion
নির্দিষ্ট করে আপনি এই জাতীয় সামঞ্জস্যতা আচরণগুলি অক্ষম করতে পারেন।উদাহরণস্বরূপ, এই মানটিকে "11" বা উচ্চতর তে সেট করার ফলে সিস্টেমটি Android 3.0 বা উচ্চতর সংস্করণে চলাকালীন আপনার অ্যাপে Holo ডিফল্ট থিম প্রয়োগ করতে দেয় এবং বড় স্ক্রীনে চলার সময় স্ক্রিন সামঞ্জস্যতা মোড অক্ষম করে, কারণ API স্তর 11-এর জন্য সমর্থন স্পষ্টভাবে বড় স্ক্রীনগুলিকে সমর্থন করে৷
এমন অনেক সামঞ্জস্যতা আচরণ রয়েছে যা এই বৈশিষ্ট্যের জন্য আপনি যে মান নির্ধারণ করেছেন তার ভিত্তিতে সিস্টেম সক্ষম করতে পারে। এই ধরনের বেশ কিছু আচরণ
Build.VERSION_CODES
.VERSION_CODES রেফারেন্সে সংশ্লিষ্ট প্ল্যাটফর্ম সংস্করণ দ্বারা বর্ণনা করা হয়েছে।প্রতিটি অ্যান্ড্রয়েড রিলিজের সাথে আপনার অ্যাপ্লিকেশন বজায় রাখতে, সর্বশেষ API স্তরের সাথে মেলে এই বৈশিষ্ট্যের মান বাড়ান, তারপর সংশ্লিষ্ট প্ল্যাটফর্ম সংস্করণে আপনার অ্যাপ্লিকেশনটিকে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করুন।
এতে প্রবর্তন করা হয়েছে: API স্তর 4
- একটি পূর্ণসংখ্যা নির্দেশ করে যে সর্বাধিক API স্তরের উপর অ্যাপ্লিকেশনটি চালানোর জন্য ডিজাইন করা হয়েছে৷
অ্যান্ড্রয়েড 1.5, 1.6, 2.0 এবং 2.0.1 এ, একটি অ্যাপ্লিকেশন ইনস্টল করার সময় এবং একটি সিস্টেম আপডেটের পরে অ্যাপ্লিকেশনটিকে পুনরায় যাচাই করার সময় সিস্টেম এই বৈশিষ্ট্যটির মান পরীক্ষা করে। উভয় ক্ষেত্রেই, যদি অ্যাপ্লিকেশনটির
maxSdkVersion
বৈশিষ্ট্যটি সিস্টেমের দ্বারা ব্যবহৃত API স্তরের চেয়ে কম হয়, তাহলে সিস্টেমটি অ্যাপ্লিকেশনটিকে ইনস্টল করতে দেয় না। সিস্টেম আপডেটের পরে পুনরায় বৈধতার ক্ষেত্রে, এটি কার্যকরভাবে ডিভাইস থেকে আপনার অ্যাপ্লিকেশনটিকে সরিয়ে দেয়।সিস্টেম আপডেটের পরে এই বৈশিষ্ট্যটি কীভাবে আপনার অ্যাপ্লিকেশনকে প্রভাবিত করতে পারে তা বোঝাতে, নিম্নলিখিত উদাহরণটি বিবেচনা করুন:
ম্যানিফেস্টে
maxSdkVersion="5"
ঘোষণা করে একটি অ্যাপ্লিকেশন Google Play-তে প্রকাশিত হয়েছে৷ একজন ব্যবহারকারী যার ডিভাইসে Android 1.6 (API লেভেল 4) চলছে সে অ্যাপটি ডাউনলোড এবং ইনস্টল করে। কয়েক সপ্তাহ পরে, ব্যবহারকারী Android 2.0 (API স্তর 5) এ একটি ওভার-দ্য-এয়ার সিস্টেম আপডেট পান। আপডেটটি ইনস্টল করার পরে, সিস্টেমটি অ্যাপ্লিকেশনটিরmaxSdkVersion
পরীক্ষা করে এবং সফলভাবে এটিকে পুনরায় যাচাই করে৷অ্যাপ্লিকেশন স্বাভাবিক হিসাবে কাজ করে. যাইহোক, কিছু সময় পরে, ডিভাইসটি আরেকটি সিস্টেম আপডেট পায়, এইবার Android 2.0.1 (API লেভেল 6)। আপডেটের পরে, সিস্টেম আর অ্যাপ্লিকেশনটিকে পুনরায় যাচাই করতে পারবে না কারণ সিস্টেমের নিজস্ব API স্তর (6) এখন অ্যাপ্লিকেশন দ্বারা সমর্থিত সর্বাধিক (5) থেকে বেশি। সিস্টেমটি অ্যাপ্লিকেশনটিকে ব্যবহারকারীর কাছে দৃশ্যমান হতে বাধা দেয়, কার্যকরভাবে এটিকে ডিভাইস থেকে সরিয়ে দেয়।
সতর্কতা: আমরা এই বৈশিষ্ট্যটি ঘোষণা করার পরামর্শ দিই না। প্রথমত, অ্যাট্রিবিউটটিকে অ্যান্ড্রয়েড প্ল্যাটফর্মের নতুন সংস্করণে প্রকাশ করার সাথে সাথে আপনার অ্যাপ্লিকেশনের স্থাপনা ব্লক করার উপায় হিসাবে সেট করার দরকার নেই৷ ডিজাইন দ্বারা, প্ল্যাটফর্মের নতুন সংস্করণগুলি সম্পূর্ণরূপে পিছনে-সামঞ্জস্যপূর্ণ। আপনার অ্যাপ্লিকেশনটি নতুন সংস্করণে সঠিকভাবে কাজ করে, তবে এটি শুধুমাত্র আদর্শ API ব্যবহার করে এবং বিকাশের সর্বোত্তম অনুশীলনগুলি অনুসরণ করে৷ দ্বিতীয়ত, কিছু ক্ষেত্রে অ্যাট্রিবিউট ঘোষণা করার ফলে উচ্চতর API স্তরে সিস্টেম আপডেটের পরে ব্যবহারকারীদের ডিভাইস থেকে আপনার অ্যাপ্লিকেশন সরানো হতে পারে। আপনার অ্যাপ্লিকেশন ইনস্টল হওয়ার সম্ভাবনা রয়েছে এমন বেশিরভাগ ডিভাইস বাতাসে পর্যায়ক্রমিক সিস্টেম আপডেটগুলি পায়, তাই এই বৈশিষ্ট্যটি সেট করার আগে আপনার অ্যাপ্লিকেশনে তাদের প্রভাব বিবেচনা করুন।
পরিচয়: এপিআই স্তর 4
অ্যান্ড্রয়েডের কিছু সংস্করণ (অ্যান্ড্রয়েড 2.0.1 এর বাইরে) ইনস্টলেশন বা পুনরায় যাচাইকরণের সময়maxSdkVersion
অ্যাট্রিবিউট চেক বা প্রয়োগ করে না। গুগল প্লে ফিল্টার হিসাবে অ্যাট্রিবিউটটি ব্যবহার করে চলেছে, তবে ডাউনলোডের জন্য উপলব্ধ অ্যাপ্লিকেশনগুলির সাথে ব্যবহারকারীদের উপস্থাপন করার সময়।
-
- পরিচয়:
- API স্তর 1
API স্তর কি?
API স্তর হল একটি পূর্ণসংখ্যা মান যা Android প্ল্যাটফর্মের একটি সংস্করণ দ্বারা অফার করা ফ্রেমওয়ার্ক API পুনর্বিবেচনাকে অনন্যভাবে সনাক্ত করে৷
অ্যান্ড্রয়েড প্ল্যাটফর্ম একটি ফ্রেমওয়ার্ক API প্রদান করে যা অ্যাপ্লিকেশনগুলি অন্তর্নিহিত অ্যান্ড্রয়েড সিস্টেমের সাথে যোগাযোগ করতে ব্যবহার করতে পারে। ফ্রেমওয়ার্ক এপিআই রয়েছে:
- প্যাকেজ এবং ক্লাসের একটি মূল সেট
- একটি ম্যানিফেস্ট ফাইল ঘোষণা করার জন্য XML উপাদান এবং বৈশিষ্ট্যগুলির একটি সেট৷
- সম্পদ ঘোষণা এবং অ্যাক্সেস করার জন্য XML উপাদান এবং বৈশিষ্ট্যগুলির একটি সেট
- উদ্দেশ্য একটি সেট
- অনুমতিগুলির একটি সেট যা অ্যাপ্লিকেশনগুলি অনুরোধ করতে পারে, সেইসাথে সিস্টেমে অন্তর্ভুক্ত অনুমতি প্রয়োগগুলি৷
অ্যান্ড্রয়েড প্ল্যাটফর্মের প্রতিটি ধারাবাহিক সংস্করণে অ্যান্ড্রয়েড অ্যাপ্লিকেশন ফ্রেমওয়ার্ক API এর আপডেটগুলি অন্তর্ভুক্ত করতে পারে যা এটি সরবরাহ করে।
ফ্রেমওয়ার্ক API-এর আপডেটগুলি ডিজাইন করা হয়েছে যাতে নতুন API API-এর পূর্ববর্তী সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ থাকে। অর্থাৎ, এপিআই-এর বেশিরভাগ পরিবর্তনই সংযোজনকারী এবং নতুন বা প্রতিস্থাপন কার্যকারিতা প্রবর্তন করে। যেহেতু এপিআইয়ের অংশগুলি আপগ্রেড করা হয়েছে, পুরানো প্রতিস্থাপনের অংশগুলি হ্রাস করা হয়েছে তবে সরানো হয় না, যাতে বিদ্যমান অ্যাপ্লিকেশনগুলি এখনও সেগুলি ব্যবহার করতে পারে।
খুব অল্প সংখ্যক ক্ষেত্রে, API-এর অংশগুলি সংশোধন করা হয় বা সরানো হয়, যদিও সাধারণত এই ধরনের পরিবর্তনগুলি শুধুমাত্র API দৃঢ়তা এবং অ্যাপ্লিকেশন বা সিস্টেম নিরাপত্তা সমর্থন করার জন্য প্রয়োজন। পূর্ববর্তী সংশোধন থেকে অন্যান্য সমস্ত API অংশগুলি পরিবর্তন ছাড়াই এগিয়ে নেওয়া হয়।
একটি অ্যান্ড্রয়েড প্ল্যাটফর্ম যে ফ্রেমওয়ার্ক API সরবরাহ করে তা API স্তর নামক একটি পূর্ণসংখ্যা শনাক্তকারী ব্যবহার করে নির্দিষ্ট করা হয়। প্রতিটি অ্যান্ড্রয়েড প্ল্যাটফর্ম সংস্করণ ঠিক একটি API স্তর সমর্থন করে, যদিও সমর্থন সমস্ত পূর্ববর্তী API স্তরগুলির জন্য অন্তর্নিহিত (এপিআই স্তর 1 থেকে নীচে)। অ্যান্ড্রয়েড প্ল্যাটফর্মের প্রাথমিক রিলিজ API স্তর 1 প্রদান করেছে, এবং পরবর্তী রিলিজগুলি API স্তরকে বৃদ্ধি করেছে।
নিম্নলিখিত টেবিলটি Android প্ল্যাটফর্মের প্রতিটি সংস্করণ দ্বারা সমর্থিত API স্তর নির্দিষ্ট করে৷ প্রতিটি সংস্করণ চলমান ডিভাইসের আপেক্ষিক সংখ্যা সম্পর্কে তথ্যের জন্য, ডিস্ট্রিবিউশন ড্যাশবোর্ড দেখুন।
অ্যান্ড্রয়েডে এপিআই স্তরের ব্যবহার
এপিআই স্তরের শনাক্তকারী ব্যবহারকারী এবং অ্যাপ্লিকেশন বিকাশকারীদের জন্য সর্বোত্তম সম্ভাব্য অভিজ্ঞতা নিশ্চিত করতে সহায়তা করার ক্ষেত্রে মূল ভূমিকা পালন করে:
- এটি অ্যান্ড্রয়েড প্ল্যাটফর্মকে সর্বাধিক ফ্রেমওয়ার্ক এপিআই রিভিশন বর্ণনা করতে দেয় যা এটি সমর্থন করে।
- এটি অ্যাপ্লিকেশনগুলিকে তাদের প্রয়োজনীয় ফ্রেমওয়ার্ক এপিআই সংশোধন বর্ণনা করতে দেয়।
- এটি সিস্টেমটিকে ব্যবহারকারীর ডিভাইসে অ্যাপ্লিকেশনগুলির ইনস্টলেশন নিয়ে আলোচনা করতে দেয় যাতে সংস্করণ-অসঙ্গত অ্যাপ্লিকেশনগুলি ইনস্টল না হয়৷
প্রতিটি অ্যান্ড্রয়েড প্ল্যাটফর্ম সংস্করণ অভ্যন্তরীণভাবে, অ্যান্ড্রয়েড সিস্টেমেই তার API স্তর শনাক্তকারী সংরক্ষণ করে।
অ্যাপ্লিকেশনগুলি ফ্রেমওয়ার্ক API- <uses-sdk>
- দ্বারা প্রদত্ত একটি ম্যানিফেস্ট উপাদান ব্যবহার করতে পারে যার অধীনে তারা ন্যূনতম এবং সর্বাধিক API স্তরগুলি চালাতে সক্ষম হয় এবং সেইসাথে পছন্দের API স্তরগুলিকে সমর্থন করার জন্য ডিজাইন করা হয়েছে। উপাদানটি তিনটি মূল বৈশিষ্ট্য সরবরাহ করে:
-
android:minSdkVersion
: অ্যাপ্লিকেশনটি চালাতে সক্ষম ন্যূনতম এপিআই স্তর। ডিফল্ট মান হল "1"। -
android:targetSdkVersion
: API স্তর যেখানে অ্যাপ্লিকেশন চালানোর জন্য ডিজাইন করা হয়েছে। কিছু ক্ষেত্রে, এটি অ্যাপ্লিকেশনটিকে শুধুমাত্র ন্যূনতম API স্তরের জন্য সংজ্ঞায়িত ব্যবহার করার জন্য সীমাবদ্ধ না করে লক্ষ্য API স্তরে সংজ্ঞায়িত ম্যানিফেস্ট উপাদান বা আচরণগুলি ব্যবহার করতে দেয়৷ -
android:maxSdkVersion
: সর্বাধিক API স্তর যেখানে অ্যাপ্লিকেশনটি চালাতে সক্ষম। গুরুত্বপূর্ণ: এটি ব্যবহার করার আগে এই পৃষ্ঠায় এই বৈশিষ্ট্য সম্পর্কে তথ্য পড়ুন।
উদাহরণস্বরূপ, একটি অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় ন্যূনতম সিস্টেম API স্তর নির্দিষ্ট করতে, অ্যাপ্লিকেশনটি তার ম্যানিফেস্টে একটি android:minSdkVersion
অ্যাট্রিবিউট সহ একটি <uses-sdk>
উপাদান অন্তর্ভুক্ত করে। android:minSdkVersion
এর মান হল Android প্ল্যাটফর্মের প্রথমতম সংস্করণের API স্তরের সাথে সঙ্গতিপূর্ণ পূর্ণসংখ্যা যার অধীনে অ্যাপ্লিকেশনটি চলতে পারে।
যখন ব্যবহারকারী একটি অ্যাপ্লিকেশন ইনস্টল করার চেষ্টা করে, বা একটি সিস্টেম আপডেটের পরে একটি অ্যাপ্লিকেশন পুনরায় যাচাই করার সময়, Android সিস্টেম প্রথমে অ্যাপ্লিকেশনটির ম্যানিফেস্টে <uses-sdk>
বৈশিষ্ট্যগুলি পরীক্ষা করে এবং তার নিজস্ব অভ্যন্তরীণ API স্তরের সাথে মানগুলির তুলনা করে। এই শর্তগুলি পূরণ হলেই সিস্টেমটি ইনস্টলেশন শুরু করতে দেয়:
- যদি একটি
android:minSdkVersion
অ্যাট্রিবিউট ঘোষণা করা হয়, তাহলে এর মান সিস্টেমের API স্তরের পূর্ণসংখ্যার থেকে কম বা সমান। যদি ঘোষণা না করা হয়, সিস্টেমটি অনুমান করে যে অ্যাপ্লিকেশনটির জন্য API স্তর 1 প্রয়োজন। - যদি একটি
android:maxSdkVersion
অ্যাট্রিবিউট ঘোষণা করা হয়, তাহলে এর মান সিস্টেমের API স্তরের পূর্ণসংখ্যার সমান বা তার চেয়ে বেশি। যদি ঘোষণা না করা হয়, সিস্টেমটি অনুমান করে যে অ্যাপ্লিকেশনটির সর্বোচ্চ API স্তর নেই। সিস্টেম কীভাবে এটি পরিচালনা করে সে সম্পর্কে আরও তথ্যের জন্য এই বৈশিষ্ট্যটির বিবরণ পড়ুন।
যখন একটি অ্যাপ্লিকেশনের ম্যানিফেস্টে ঘোষণা করা হয়, তখন একটি <uses-sdk>
উপাদান দেখতে এইরকম হতে পারে:
<manifest> <uses-sdk android:minSdkVersion="5" /> ... </manifest>
একটি অ্যাপ্লিকেশন android:minSdkVersion
এ একটি API স্তর ঘোষণা করার প্রধান কারণ হল Android সিস্টেমকে বলা যে এটি API গুলি ব্যবহার করে যা নির্দিষ্ট API স্তরে প্রবর্তিত হয়েছিল৷
যদি অ্যাপ্লিকেশনটি কোনওভাবে নিম্ন API স্তরের একটি প্ল্যাটফর্মে ইনস্টল করে, তবে এটি রানটাইমে ক্র্যাশ হয়ে যায় যখন এটি বিদ্যমান নেই এমন APIগুলি অ্যাক্সেস করার চেষ্টা করে। লক্ষ্য ডিভাইসে প্ল্যাটফর্ম সংস্করণের চেয়ে সর্বনিম্ন API স্তরের প্রয়োজন হলে সিস্টেমটি অ্যাপ্লিকেশনটিকে ইনস্টল করতে না দিয়ে এই ফলাফলকে বাধা দেয়।
উন্নয়ন বিবেচনা
নিম্নলিখিত বিভাগগুলি API স্তর সম্পর্কিত তথ্য প্রদান করে যা আপনার অ্যাপ্লিকেশন বিকাশ করার সময় আপনাকে বিবেচনা করতে হবে।
আবেদন ফরওয়ার্ড সামঞ্জস্য
অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলি সাধারণত অ্যান্ড্রয়েড প্ল্যাটফর্মের নতুন সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ।
যেহেতু ফ্রেমওয়ার্ক এপিআই-এর প্রায় সব পরিবর্তনই সংযোজনী, তাই এপিআই-এর যে কোনো প্রদত্ত সংস্করণ ব্যবহার করে বিকাশ করা একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন, যেমন তার এপিআই স্তর দ্বারা নির্দিষ্ট করা হয়েছে, এটি অ্যান্ড্রয়েড প্ল্যাটফর্মের পরবর্তী সংস্করণ এবং উচ্চতর API স্তরগুলির সাথে সামঞ্জস্যপূর্ণ। অ্যাপ্লিকেশানটি Android প্ল্যাটফর্মের সমস্ত পরবর্তী সংস্করণে চলতে পারে, বিচ্ছিন্ন ক্ষেত্রে যেখানে অ্যাপ্লিকেশনটি API-এর একটি অংশ ব্যবহার করে যা পরে কোনো কারণে সরানো হয়।
ফরওয়ার্ড সামঞ্জস্য গুরুত্বপূর্ণ কারণ অনেক অ্যান্ড্রয়েড-চালিত ডিভাইস ওভার-দ্য-এয়ার (OTA) সিস্টেম আপডেট পায়। ব্যবহারকারী আপনার অ্যাপ্লিকেশন ইনস্টল করতে পারে এবং এটি সফলভাবে ব্যবহার করতে পারে, তারপরে Android প্ল্যাটফর্মের একটি নতুন সংস্করণে একটি OTA আপডেট পেতে পারে৷ একবার আপডেট ইনস্টল হয়ে গেলে, আপনার অ্যাপ্লিকেশনটি পরিবেশের একটি নতুন রানটাইম সংস্করণে চলে, কিন্তু যেটিতে এখনও API এবং সিস্টেমের ক্ষমতা রয়েছে যার উপর আপনার অ্যাপ্লিকেশন নির্ভর করে।
API-এর নীচের পরিবর্তনগুলি, যেমন অন্তর্নিহিত সিস্টেমে থাকা পরিবর্তনগুলি আপনার অ্যাপ্লিকেশনটিকে প্রভাবিত করতে পারে যখন এটি নতুন পরিবেশে চালিত হয়। অ্যাপ্লিকেশন বিকাশকারী হিসাবে আপনার পক্ষে প্রতিটি সিস্টেমের পরিবেশে অ্যাপ্লিকেশনটি কীভাবে দেখায় এবং আচরণ করে তা বোঝার জন্য এটি গুরুত্বপূর্ণ।
Android প্ল্যাটফর্মের বিভিন্ন সংস্করণে আপনার অ্যাপ্লিকেশন পরীক্ষা করতে সাহায্য করার জন্য, Android SDK-এ একাধিক প্ল্যাটফর্ম রয়েছে যা আপনি ডাউনলোড করতে পারেন। প্রতিটি প্ল্যাটফর্মে একটি সামঞ্জস্যপূর্ণ সিস্টেম চিত্র রয়েছে যা আপনি আপনার অ্যাপ্লিকেশন পরীক্ষা করার জন্য একটি AVD তে চালাতে পারেন।
পিছনে সামঞ্জস্যতা প্রয়োগ
অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলি যে সংস্করণের সাথে কম্পাইল করা হয়েছিল তার চেয়ে পুরানো Android প্ল্যাটফর্মের সংস্করণগুলির সাথে অগত্যা পশ্চাদপদ-সামঞ্জস্যপূর্ণ নয়৷
অ্যান্ড্রয়েড প্ল্যাটফর্মের প্রতিটি নতুন সংস্করণে নতুন ফ্রেমওয়ার্ক API অন্তর্ভুক্ত থাকতে পারে, যেমন যেগুলি অ্যাপ্লিকেশনগুলিকে নতুন প্ল্যাটফর্ম ক্ষমতাগুলিতে অ্যাক্সেস দেয় বা বিদ্যমান API অংশগুলি প্রতিস্থাপন করে। নতুন প্ল্যাটফর্মে চলাকালীন এবং প্ল্যাটফর্মের পরবর্তী সংস্করণগুলিতে চলার সময়ও API স্তর দ্বারা নির্দিষ্ট করা নতুন APIগুলি অ্যাপ্লিকেশনগুলিতে অ্যাক্সেসযোগ্য। কিন্তু যেহেতু প্ল্যাটফর্মের আগের সংস্করণে নতুন APIs অন্তর্ভুক্ত নয়, নতুন APIs ব্যবহার করে এমন অ্যাপ্লিকেশনগুলি সেই প্ল্যাটফর্মগুলিতে চলতে পারে না।
যদিও একটি অ্যান্ড্রয়েড-চালিত ডিভাইস প্ল্যাটফর্মের পূর্ববর্তী সংস্করণে ডাউনগ্রেড হওয়ার সম্ভাবনা নেই, তবে এটি উপলব্ধি করা গুরুত্বপূর্ণ যে প্ল্যাটফর্মের পূর্ববর্তী সংস্করণগুলি চালানোর ক্ষেত্রে এমন অনেক ডিভাইস থাকতে পারে। এমনকি যে ডিভাইসগুলি OTA আপডেটগুলি পায় তাদের মধ্যে, কেউ কেউ পিছিয়ে থাকতে পারে এবং একটি উল্লেখযোগ্য সময়ের জন্য আপডেট নাও পেতে পারে।
একটি প্ল্যাটফর্ম সংস্করণ এবং এপিআই স্তর নির্বাচন করুন
আপনি যখন আপনার অ্যাপ্লিকেশনটি বিকাশ করছেন, তখন আপনি প্ল্যাটফর্ম সংস্করণটি বেছে নিন যার সাথে আপনি অ্যাপ্লিকেশনটি সংকলন করবেন। সাধারণভাবে, প্ল্যাটফর্মের সর্বনিম্ন সম্ভাব্য সংস্করণের সাথে আপনার অ্যাপ্লিকেশন কম্পাইল করুন যা আপনার অ্যাপ্লিকেশন সমর্থন করতে পারে।
আপনি ক্রমাগত নিম্ন বিল্ড লক্ষ্যগুলির বিরুদ্ধে অ্যাপ্লিকেশনটি সংকলন করে সর্বনিম্ন সম্ভাব্য প্ল্যাটফর্ম সংস্করণ নির্ধারণ করতে পারেন। আপনি সর্বনিম্ন সংস্করণ নির্ধারণ করার পরে, সংশ্লিষ্ট প্ল্যাটফর্ম সংস্করণ এবং API স্তর ব্যবহার করে একটি AVD তৈরি করুন এবং আপনার অ্যাপ্লিকেশনটি সম্পূর্ণরূপে পরীক্ষা করুন৷ অ্যাপ্লিকেশানের ম্যানিফেস্টে একটি android:minSdkVersion
অ্যাট্রিবিউট ঘোষণা করা নিশ্চিত করুন এবং প্ল্যাটফর্ম সংস্করণের API স্তরে এর মান সেট করুন৷
একটি সর্বনিম্ন API স্তর ঘোষণা করুন
আপনি যদি এমন একটি অ্যাপ্লিকেশন তৈরি করেন যা সর্বশেষ প্ল্যাটফর্ম সংস্করণে প্রবর্তিত APIs বা সিস্টেম বৈশিষ্ট্যগুলি ব্যবহার করে, তাহলে সর্বশেষ প্ল্যাটফর্ম সংস্করণের API স্তরে android:minSdkVersion
অ্যাট্রিবিউট সেট করুন৷ এটি যাতে ব্যবহারকারীরা শুধুমাত্র আপনার অ্যাপ্লিকেশন ইনস্টল করতে সক্ষম হয় যদি তাদের ডিভাইসগুলি Android প্ল্যাটফর্মের একটি সামঞ্জস্যপূর্ণ সংস্করণ চালায়। পরিবর্তে, এটি নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ্লিকেশনটি তাদের ডিভাইসে সঠিকভাবে কাজ করতে পারে।
যদি আপনার অ্যাপ্লিকেশনটি সর্বশেষ প্ল্যাটফর্ম সংস্করণে প্রবর্তিত API ব্যবহার করে কিন্তু একটি android:minSdkVersion
অ্যাট্রিবিউট ঘোষণা না করে, তাহলে এটি প্ল্যাটফর্মের সর্বশেষ সংস্করণে চলমান ডিভাইসগুলিতে সঠিকভাবে চলে, কিন্তু প্ল্যাটফর্মের পূর্ববর্তী সংস্করণে চলমান ডিভাইসগুলিতে নয় ৷ পরবর্তী ক্ষেত্রে, অ্যাপ্লিকেশনটি রানটাইমে ক্র্যাশ হয়ে যায় যখন এটি এমন API ব্যবহার করার চেষ্টা করে যা আগের সংস্করণগুলিতে বিদ্যমান নেই।
উচ্চ API স্তরের বিরুদ্ধে পরীক্ষা করুন
আপনার অ্যাপ্লিকেশন কম্পাইল করার পরে, অ্যাপ্লিকেশনটির android:minSdkVersion
অ্যাট্রিবিউটে নির্দিষ্ট করা প্ল্যাটফর্মে এটি পরীক্ষা করা নিশ্চিত করুন। এটি করতে, একটি AVD তৈরি করুন যা আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় প্ল্যাটফর্ম সংস্করণ ব্যবহার করে। উপরন্তু, ফরোয়ার্ড-সামঞ্জস্যতা পরীক্ষা করতে, আপনার অ্যাপ্লিকেশন দ্বারা ব্যবহৃত একটি উচ্চতর API স্তর ব্যবহার করে এমন সমস্ত প্ল্যাটফর্মে অ্যাপ্লিকেশন চালান এবং পরীক্ষা করুন।
অ্যান্ড্রয়েড SDK-তে একাধিক প্ল্যাটফর্ম সংস্করণ রয়েছে যা আপনি ব্যবহার করতে পারেন, সর্বশেষ সংস্করণ সহ, এবং একটি আপডেটার টুল সরবরাহ করে যা আপনি প্রয়োজনে অন্যান্য প্ল্যাটফর্ম সংস্করণ ডাউনলোড করতে ব্যবহার করতে পারেন।
আপডেটার অ্যাক্সেস করতে, <sdk>/tools ডিরেক্টরিতে অবস্থিত android
কমান্ড-লাইন টুলটি ব্যবহার করুন। আপনি android sdk
কার্যকর করার মাধ্যমে SDK আপডেটার চালু করতে পারেন। এছাড়াও আপনি android.bat
(Windows) বা android
(OS X/Linux) ফাইলে ডাবল ক্লিক করতে পারেন।
এমুলেটরটিতে বিভিন্ন প্ল্যাটফর্ম সংস্করণগুলির বিরুদ্ধে আপনার অ্যাপ্লিকেশনটি চালানোর জন্য, আপনি পরীক্ষা করতে চান এমন প্রতিটি প্ল্যাটফর্ম সংস্করণের জন্য একটি এভিডি তৈরি করুন। AVD সম্পর্কে আরও তথ্যের জন্য, ভার্চুয়াল ডিভাইস তৈরি এবং পরিচালনা দেখুন। আপনি যদি পরীক্ষার জন্য একটি শারীরিক ডিভাইস ব্যবহার করেন তবে নিশ্চিত করুন যে আপনি Android প্ল্যাটফর্মের এপিআই স্তরটি জানেন। প্ল্যাটফর্ম সংস্করণ এবং তাদের API স্তরগুলির একটি তালিকার জন্য এই নথিতে টেবিলটি দেখুন৷
এপিআই স্তর দ্বারা রেফারেন্স ডকুমেন্টেশন ফিল্টার করুন
অ্যান্ড্রয়েড প্ল্যাটফর্ম রেফারেন্স ডকুমেন্টেশন পৃষ্ঠাগুলি প্রতিটি পৃষ্ঠার শীর্ষ-বাম অঞ্চলে একটি "এপিআই স্তর" নিয়ন্ত্রণ সরবরাহ করে। আপনি নিয়ন্ত্রণটি ব্যবহার করতে পারেন ডকুমেন্টেশন দেখানোর জন্য শুধুমাত্র API এর অংশগুলির জন্য যেগুলি আসলে আপনার অ্যাপ্লিকেশনে অ্যাক্সেসযোগ্য, API স্তরের উপর ভিত্তি করে যা এটি এর ম্যানিফেস্ট ফাইলের android:minSdkVersion
বৈশিষ্ট্যে নির্দিষ্ট করে৷
ফিল্টারিং ব্যবহার করতে, মেনু থেকে আপনার অ্যাপ্লিকেশন দ্বারা নির্দিষ্ট API স্তর নির্বাচন করুন। পরবর্তী API স্তরে প্রবর্তিত APIগুলি তারপর ধূসর হয়ে যায় এবং তাদের বিষয়বস্তু মাস্ক করা হয়, কারণ সেগুলি আপনার অ্যাপ্লিকেশনে অ্যাক্সেসযোগ্য নয়৷
ডকুমেন্টেশনে API স্তর দ্বারা ফিল্টারিং প্রতিটি API স্তরে নতুন বা প্রবর্তিত কি তা একটি দৃশ্য প্রদান করে না। এটি পরবর্তী API স্তরগুলিতে প্রবর্তিত API উপাদানগুলি বাদ দিয়ে একটি প্রদত্ত API স্তরের সাথে যুক্ত সমগ্র API দেখার একটি উপায় প্রদান করে।
সম্পূর্ণ ডকুমেন্টেশন দেখার জন্য ফিরে আসতে, এপিআই স্তর মেনুর শীর্ষে REL নির্বাচন করুন। ডিফল্টরূপে, API স্তরের ফিল্টারিং অক্ষম করা হয়, যাতে আপনি API স্তর নির্বিশেষে সম্পূর্ণ ফ্রেমওয়ার্ক API দেখতে পারেন৷
পৃথক এপিআই উপাদানগুলির জন্য রেফারেন্স ডকুমেন্টেশনগুলি এপিআই স্তরটি নির্দিষ্ট করে যেখানে প্রতিটি উপাদান চালু করা হয়। প্যাকেজ এবং ক্লাসের জন্য API স্তর প্রতিটি ডকুমেন্টেশন পৃষ্ঠায় বিষয়বস্তু এলাকার উপরের-ডান কোণে "Added in API স্তর" হিসাবে নির্দিষ্ট করা হয়েছে। ক্লাস সদস্যদের জন্য API স্তরটি তাদের বিশদ বিবরণ শিরোনামে, ডান মার্জিনে নির্দিষ্ট করা আছে।