যখন আপনি একটি APK আপলোড করেন, তখন সেটিকে অবশ্যই গুগল প্লে-এর নির্ধারিত এপিআই লেভেলের শর্তাবলী পূরণ করতে হবে।
২০২৫ সালের ৩১শে আগস্ট থেকে শুরু:
- Google Play-তে জমা দেওয়ার জন্য নতুন অ্যাপ এবং অ্যাপ আপডেটগুলোকে অবশ্যই Android 15 (API লেভেল 35) বা তার উচ্চতর সংস্করণকে টার্গেট করতে হবে; তবে Wear OS, Android Automotive OS, এবং Android TV অ্যাপগুলোর ক্ষেত্রে এটি প্রযোজ্য নয়, যেগুলোকে অবশ্যই Android 14 (API লেভেল 34) বা তার উচ্চতর সংস্করণকে টার্গেট করতে হবে।
- আপনার অ্যাপের টার্গেট এপিআই লেভেলের চেয়ে উচ্চতর অ্যান্ড্রয়েড ওএস চালিত ডিভাইসগুলিতে নতুন ব্যবহারকারীদের কাছে উপলব্ধ থাকার জন্য, বিদ্যমান অ্যাপগুলিকে অবশ্যই অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪) বা তার উচ্চতর সংস্করণকে টার্গেট করতে হবে। যেসব অ্যাপ অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) বা তার নিম্নতর সংস্করণকে টার্গেট করে, যার মধ্যে Wear OS এবং Android TV-এর জন্য অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) বা তার নিম্নতর সংস্করণও অন্তর্ভুক্ত, সেগুলি শুধুমাত্র সেইসব ডিভাইসে উপলব্ধ হবে যেগুলি আপনার অ্যাপের টার্গেট এপিআই লেভেলের সমান বা তার চেয়ে নিম্নতর অ্যান্ড্রয়েড ওএস চালিত।
আপনার অ্যাপ আপডেট করার জন্য আরও সময়ের প্রয়োজন হলে, আপনি ১ নভেম্বর, ২০২৫ পর্যন্ত সময় বাড়ানোর জন্য অনুরোধ করতে পারবেন। এই বছরের শেষের দিকে আপনি প্লে কনসোলে আপনার অ্যাপের সময় বাড়ানোর ফর্মগুলো অ্যাক্সেস করতে পারবেন।
এই শর্তাবলীর ব্যতিক্রমগুলো হলো:
- স্থায়ীভাবে ব্যক্তিগত অ্যাপ, যা একটি নির্দিষ্ট প্রতিষ্ঠানের ব্যবহারকারীদের জন্য সীমাবদ্ধ এবং শুধুমাত্র অভ্যন্তরীণ বিতরণের উদ্দেশ্যে তৈরি।
নতুন SDK-গুলোকে কেন টার্গেট করা হয়?
অ্যান্ড্রয়েডের প্রতিটি নতুন সংস্করণ এমন কিছু পরিবর্তন নিয়ে আসে যা নিরাপত্তা ও কর্মক্ষমতার উন্নতি ঘটায় এবং অ্যান্ড্রয়েড ব্যবহারকারীর অভিজ্ঞতাকে আরও উন্নত করে। এই পরিবর্তনগুলোর মধ্যে কিছু পরিবর্তন শুধুমাত্র সেইসব অ্যাপের ক্ষেত্রেই প্রযোজ্য, যেগুলো তাদের targetSdkVersion ম্যানিফেস্ট অ্যাট্রিবিউটের (যা টার্গেট এপিআই লেভেল নামেও পরিচিত) মাধ্যমে সুস্পষ্টভাবে সমর্থনের কথা ঘোষণা করে।
আপনার অ্যাপকে সাম্প্রতিক এপিআই লেভেল টার্গেট করে কনফিগার করলে ব্যবহারকারীরা এই উন্নতিগুলোর সুবিধা নিতে পারেন, এবং একই সাথে আপনার অ্যাপ পুরোনো অ্যান্ড্রয়েড সংস্করণগুলোতেও চলতে পারে। সাম্প্রতিক এপিআই লেভেল টার্গেট করলে আপনার অ্যাপ প্ল্যাটফর্মের সর্বশেষ ফিচারগুলোর সুবিধা নিয়ে ব্যবহারকারীদের আনন্দ দিতে পারে। এছাড়াও, অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) থেকে, ব্যবহারকারীরা প্রথমবার অ্যাপটি চালু করার সময় একটি সতর্কবার্তা দেখতে পান, যদি অ্যাপটি অ্যান্ড্রয়েড ৫.১ (এপিআই লেভেল ২২) বা তার নিচের সংস্করণ টার্গেট করে তৈরি হয়।
গুগল প্লে-এর প্রয়োজনীয়তা পূরণের জন্য আপনার টার্গেট এপিআই লেভেল আপডেট করার ক্ষেত্রে যে গুরুত্বপূর্ণ বিষয়গুলো জানা দরকার, এই ডকুমেন্টটিতে তা তুলে ধরা হয়েছে। আপনি কোন সংস্করণে মাইগ্রেট করছেন, তার উপর নির্ভর করে নিম্নলিখিত বিভাগগুলিতে দেওয়া নির্দেশাবলী দেখুন।
অ্যান্ড্রয়েড ১২ এবং তার উচ্চতর সংস্করণ (এপিআই লেভেল ৩১) থেকে আরও সাম্প্রতিক সংস্করণে মাইগ্রেট করুন।
আপনার অ্যাপটিকে অ্যান্ড্রয়েডের আরও সাম্প্রতিক সংস্করণের উপযোগী করে আপডেট করতে, প্রাসঙ্গিক আচরণগত পরিবর্তনের তালিকাটি অনুসরণ করুন:
- অ্যান্ড্রয়েড ১৩ এর আচরণগত পরিবর্তন
- অ্যান্ড্রয়েড ১৪-এর আচরণগত পরিবর্তন
- অ্যান্ড্রয়েড ১৫ এর আচরণগত পরিবর্তন
- অ্যান্ড্রয়েড ১৬ এর আচরণগত পরিবর্তন
Android 11 (API লেভেল 30) থেকে Android 12 (API লেভেল 31)-এ মাইগ্রেট করুন
নিরাপত্তা এবং অনুমতি
- ব্লুটুথ : আপনাকে অবশ্যই
BLUETOOTHএবংBLUETOOTH_ADMINপারমিশনের ডিক্লারেশনগুলোBLUETOOTH_SCAN,BLUETOOTH_ADVERTISE, অথবাBLUETOOTH_CONNECTপারমিশন দিয়ে প্রতিস্থাপন করতে হবে। ব্লুটুথ অপারেশনের জন্য আপনাকে আরLOCATIONরানটাইম পারমিশন রিকোয়েস্ট করতে হবে না। - অবস্থান: ব্যবহারকারীরা অ্যাপগুলিকে শুধুমাত্র আনুমানিক অবস্থানের তথ্য পুনরুদ্ধার করার জন্য অনুরোধ করতে পারেন। যখনই আপনি
ACCESS_FINE_LOCATIONপারমিশনের জন্য অনুরোধ করবেন, তখনই আপনাকেACCESS_COARSE_LOCATIONপারমিশনের জন্যও অনুরোধ করতে হবে।- ইনটেন্ট ফিল্টার: যদি আপনার অ্যাপে এমন অ্যাক্টিভিটি , সার্ভিস বা ব্রডকাস্ট রিসিভার থাকে যা ইনটেন্ট ফিল্টার ব্যবহার করে, তাহলে আপনাকে অবশ্যই এই কম্পোনেন্টগুলোর জন্য android:exported অ্যাট্রিবিউটটি স্পষ্টভাবে ঘোষণা করতে হবে।
- হাইবারনেশন: অ্যাপগুলো কিছু সময় ধরে ব্যবহার না করা হলে হাইবারনেশন মোডে চলে যেতে পারে। হাইবারনেশন মোডে আপনার অ্যাপের রানটাইম পারমিশন এবং ক্যাশে রিসেট হয়ে যায়, এবং আপনি কোনো জব বা অ্যালার্ট চালাতে পারেন না। আপনি আপনার অ্যাপের হাইবারনেশন স্ট্যাটাস চেক করতে পারেন।
- পেন্ডিং ইনটেন্টের পরিবর্তনযোগ্যতা : আপনার অ্যাপ দ্বারা তৈরি প্রতিটি PendingIntent অবজেক্টের পরিবর্তনযোগ্যতা আপনাকে অবশ্যই নির্দিষ্ট করতে হবে।
ব্যবহারকারীর অভিজ্ঞতা
- কাস্টম নোটিফিকেশন : কাস্টম কন্টেন্ট ভিউ সহ নোটিফিকেশনগুলো আর সম্পূর্ণ নোটিফিকেশন এরিয়া ব্যবহার করবে না; এর পরিবর্তে, সিস্টেম একটি স্ট্যান্ডার্ড টেমপ্লেট প্রয়োগ করবে। এই টেমপ্লেটটি নিশ্চিত করে যে কাস্টম নোটিফিকেশনগুলোর সমস্ত স্টেটে অন্যান্য নোটিফিকেশনের মতোই একই ডেকোরেশন থাকবে। এই আচরণটি
Notification.DecoratedCustomViewStyleএর আচরণের প্রায় অনুরূপ। - অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণে পরিবর্তন : অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণ ব্যবহার করার সময়, নিশ্চিত করুন যে আপনার ইন্টেন্ট ফিল্টারগুলিতে BROWSABLE ক্যাটাগরি অন্তর্ভুক্ত আছে এবং সেগুলি HTTPS স্কিম সমর্থন করে।
কর্মক্ষমতা
ফোরগ্রাউন্ড সার্ভিস চালু করার সীমাবদ্ধতা : অ্যান্ড্রয়েড ১২ বা তার উচ্চতর সংস্করণকে টার্গেট করতে গেলে, কয়েকটি বিশেষ ক্ষেত্র ছাড়া আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলার সময় ফোরগ্রাউন্ড সার্ভিস চালু করতে পারবে না। যদি কোনো অ্যাপ ব্যাকগ্রাউন্ডে চলার সময় ফোরগ্রাউন্ড সার্ভিস চালু করার চেষ্টা করে, তাহলে একটি এক্সেপশন (ব্যতিক্রম) ঘটে।
আপনার অ্যাপটি ব্যাকগ্রাউন্ডে চলার সময় জরুরি কাজ শিডিউল করতে ও শুরু করতে WorkManager ব্যবহার করার কথা বিবেচনা করুন। ব্যবহারকারীর অনুরোধ করা সময়-সংবেদনশীল কাজগুলো সম্পন্ন করতে, একটি নির্দিষ্ট অ্যালার্মের মধ্যে ফোরগ্রাউন্ড সার্ভিসগুলো চালু করুন।
নোটিফিকেশন ট্রাম্পোলিনের সীমাবদ্ধতা : যখন ব্যবহারকারীরা নোটিফিকেশনে ট্যাপ করেন, তখন কিছু অ্যাপ একটি অ্যাপ কম্পোনেন্ট চালু করে যা সেই অ্যাক্টিভিটি শুরু করে যা ব্যবহারকারী দেখেন এবং যার সাথে ইন্টারঅ্যাক্ট করেন। এই অ্যাপ কম্পোনেন্টটি নোটিফিকেশন ট্রাম্পোলিন নামে পরিচিত।
অ্যাপগুলি এমন সার্ভিস বা ব্রডকাস্ট রিসিভার থেকে অ্যাক্টিভিটি শুরু করতে পারবে না যা নোটিফিকেশন ট্রাম্পোলিন হিসাবে ব্যবহৃত হয়। ব্যবহারকারী কোনো নোটিফিকেশন বা তার ভেতরের অ্যাকশন বাটনে ট্যাপ করার পর, আপনার অ্যাপ কোনো সার্ভিস বা ব্রডকাস্ট রিসিভারের ভেতরে
startActivity()কল করতে পারবে না।
অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) টার্গেট করা অ্যাপগুলোকে প্রভাবিত করে এমন সমস্ত পরিবর্তন দেখুন।
অ্যান্ড্রয়েড ১১ (এপিআই লেভেল ৩০) এর পূর্ববর্তী সংস্করণ থেকে মাইগ্রেট করুন
আপনি অ্যান্ড্রয়েডের যে সংস্করণ থেকে মাইগ্রেট করবেন তা নির্বাচন করুন:
অ্যান্ড্রয়েড ৫ (এপিআই লেভেল ২১)-এ মাইগ্রেট করুন
আপনার অ্যাপটি এই রিলিজগুলিতে প্রবর্তিত পরিবর্তনগুলি অন্তর্ভুক্ত করেছে কিনা তা নিশ্চিত করতে, নিম্নলিখিত প্রতিটি রিলিজের জন্য সংশ্লিষ্ট 'আচরণ পরিবর্তন' পৃষ্ঠাটি দেখুন:
- অ্যান্ড্রয়েড ৫.০ (এপিআই লেভেল ২১)
- অ্যান্ড্রয়েড ৪.৪ (এপিআই লেভেল ১৯) ।
- অ্যান্ড্রয়েড ৪.১.x (এপিআই লেভেল ১৬) .
পরবর্তী বিভাগে দেওয়া নির্দেশাবলী অনুসরণ করে এগিয়ে যান।
অ্যান্ড্রয়েড ৬ (এপিআই লেভেল ২৩)-এ মাইগ্রেট করুন
অ্যান্ড্রয়েড ৬.০ এবং এর উচ্চতর সংস্করণগুলোকে লক্ষ্য করে তৈরি অ্যাপগুলোর ক্ষেত্রে নিম্নলিখিত বিষয়গুলো প্রযোজ্য:
বিপজ্জনক অনুমতিগুলো শুধুমাত্র রানটাইমে প্রদান করা হয়। আপনার UI ফ্লো-তে এই অনুমতিগুলো প্রদানের জন্য সুযোগ-সুবিধা থাকতে হবে।
যেখানে সম্ভব, আপনার অ্যাপটি যেন অনুমতি অনুরোধ প্রত্যাখ্যান সামলাতে প্রস্তুত থাকে তা নিশ্চিত করুন। উদাহরণস্বরূপ, যদি কোনো ব্যবহারকারী ডিভাইসের জিপিএস অ্যাক্সেস করার অনুরোধ প্রত্যাখ্যান করেন, তবে আপনার অ্যাপে যেন কাজটি এগিয়ে নিয়ে যাওয়ার জন্য অন্য কোনো উপায় থাকে তা নিশ্চিত করুন।
অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩)-এ প্রবর্তিত পরিবর্তনগুলির একটি বিশদ তালিকার জন্য, প্ল্যাটফর্মটির সেই সংস্করণের ' বিহেভিয়ার চেঞ্জেস' পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে দেওয়া নির্দেশাবলী অনুসরণ করে এগিয়ে যান।
অ্যান্ড্রয়েড ৭ (এপিআই লেভেল ২৪)-এ মাইগ্রেট করুন
অ্যান্ড্রয়েড ৭.০ এবং এর উচ্চতর সংস্করণগুলোকে লক্ষ্য করে তৈরি অ্যাপগুলোর ক্ষেত্রে নিম্নলিখিত বিষয়গুলো প্রযোজ্য:
ডোজ এবং অ্যাপ স্ট্যান্ডবাই
"ডোজ এবং অ্যাপ স্ট্যান্ডবাই অপ্টিমাইজ করা" অংশে বর্ণিত আচরণগুলির জন্য ডিজাইন করুন, যা বিভিন্ন প্ল্যাটফর্ম রিলিজ জুড়ে প্রবর্তিত ক্রমবর্ধমান পরিবর্তনগুলিকে অন্তর্ভুক্ত করে।
যখন কোনো ডিভাইস ডোজ এবং অ্যাপ স্ট্যান্ডবাই মোডে থাকে, তখন সিস্টেমটি নিম্নরূপ আচরণ করে:
- নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধ করে
- অ্যালার্ম, সিঙ্ক এবং কাজ স্থগিত করে
- জিপিএস এবং ওয়াই-ফাই স্ক্যান সীমাবদ্ধ করে
- সাধারণ অগ্রাধিকারের ফায়ারবেস ক্লাউড মেসেজিং বার্তা সীমাবদ্ধ করে।
অনুমতি পরিবর্তন
- সিস্টেমটি অ্যাপের ব্যক্তিগত ডিরেক্টরিতে প্রবেশাধিকার সীমাবদ্ধ করে।
- আপনার অ্যাপের বাইরে
file://URI প্রকাশ করলে একটিFileUriExposedExceptionট্রিগার হয়। যদি আপনার অ্যাপের বাইরে ফাইল শেয়ার করার প্রয়োজন হয়, তাহলেFileProviderইমপ্লিমেন্ট করুন।
সিস্টেমটি নন-এনডিকে লাইব্রেরির সাথে লিঙ্ক করা নিষিদ্ধ করে ।
অ্যান্ড্রয়েড ৭.০ (এপিআই লেভেল ২৪)-এ প্রবর্তিত পরিবর্তনগুলির একটি বিশদ তালিকার জন্য, প্ল্যাটফর্মটির সেই সংস্করণের ' বিহেভিয়ার চেঞ্জেস' পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে দেওয়া নির্দেশাবলী অনুসরণ করে এগিয়ে যান।
অ্যান্ড্রয়েড ৮ (এপিআই লেভেল ২৬)-এ মাইগ্রেট করুন
অ্যান্ড্রয়েড ৮.০ এবং এর উচ্চতর সংস্করণগুলোকে লক্ষ্য করে তৈরি অ্যাপগুলোর ক্ষেত্রে নিম্নলিখিত বিষয়গুলো প্রযোজ্য:
- পটভূমিতে নির্বাহের সীমাবদ্ধতা
- সিস্টেমটি ফোরগ্রাউন্ডে চালু না থাকা অ্যাপগুলোর জন্য পরিষেবা সীমাবদ্ধ করে।
- যখন startService
startService()নিষিদ্ধ থাকে, তখন কোনো অ্যাপ এটিকে কল করার চেষ্টা করলেstartService()এখন একটি এক্সেপশন থ্রো করে। - ফোরগ্রাউন্ড সার্ভিস চালু করতে, একটি অ্যাপকে অবশ্যই
startForeground()এবংstartForegroundService()ব্যবহার করতে হবে। - Android 8.0 (API level 26) Behavior Changes পৃষ্ঠায় নথিভুক্ত JobScheduler API-তে করা পরিবর্তনগুলি মনোযোগ সহকারে পর্যালোচনা করুন।
- Firebase Cloud Messaging ব্যবহারের জন্য Google Play services SDK- এর সংস্করণ 10.2.1 বা তার উচ্চতর সংস্করণ প্রয়োজন।
- Firebase Cloud Messaging ব্যবহার করার সময়, মেসেজ ডেলিভারি ব্যাকগ্রাউন্ড এক্সিকিউশন লিমিটের অধীন। মেসেজ পাওয়ার পর যখন ব্যাকগ্রাউন্ডে কাজ করার প্রয়োজন হয়, যেমন ব্যাকগ্রাউন্ড ডেটা সিঙ্ক করার জন্য, তখন আপনার অ্যাপের উচিত Firebase Job Dispatcher বা JobIntentService ব্যবহার করে জব শিডিউল করা। আরও তথ্যের জন্য, Firebase Cloud Messaging ডকুমেন্টেশন দেখুন।
- যখন startService
- অন্তর্নিহিত সম্প্রচার
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনা সম্পর্কে তথ্যের জন্য,
JobSchedulerAPI-এর ডকুমেন্টেশন দেখুন।
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনা সম্পর্কে তথ্যের জন্য,
- পটভূমির অবস্থান সীমা
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলোর লোকেশন ডেটাতে সীমিত অ্যাক্সেস থাকে।
- যেসব ডিভাইসে গুগল প্লে পরিষেবা চালু আছে, সেগুলোতে নিয়মিত অবস্থানের আপডেট পেতে ফিউজড লোকেশন প্রোভাইডার ব্যবহার করুন।
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলোর লোকেশন ডেটাতে সীমিত অ্যাক্সেস থাকে।
- সিস্টেমটি ফোরগ্রাউন্ডে চালু না থাকা অ্যাপগুলোর জন্য পরিষেবা সীমাবদ্ধ করে।
- বিজ্ঞপ্তি চ্যানেল
- আপনার প্রতিটি চ্যানেলের জন্য আলাদাভাবে নোটিফিকেশন বাধা দেওয়ার বৈশিষ্ট্যগুলো নির্ধারণ করা উচিত।
- নোটিফিকেশনগুলো প্রদর্শিত হওয়ার জন্য আপনাকে অবশ্যই একটি চ্যানেলে নোটিফিকেশনগুলো নির্ধারণ করতে হবে।
- প্ল্যাটফর্মের এই সংস্করণটি
NotificationCompat.Builderসমর্থন করে।
- গোপনীয়তা
- ANDROID_ID প্রতিটি অ্যাপ সাইনিং কী-এর জন্য আলাদাভাবে নির্ধারিত হয়।
অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬)-এ প্রবর্তিত পরিবর্তনগুলির একটি বিশদ তালিকার জন্য, প্ল্যাটফর্মটির সেই সংস্করণের ' বিহেভিয়ার চেঞ্জেস' পৃষ্ঠাটি দেখুন।
অ্যান্ড্রয়েড ৮ (এপিআই ২৬) থেকে অ্যান্ড্রয়েড ৯ (এপিআই ২৮)-এ মাইগ্রেট করুন
- বিদ্যুৎ ব্যবস্থাপনা
- অ্যাপ স্ট্যান্ডবাই বাকেটগুলো অ্যাপ ব্যবহারের উপর ভিত্তি করে নতুন ব্যাকগ্রাউন্ড বিধিনিষেধ নিয়ে আসে, যেমন স্থগিত কাজ, অ্যালার্ম এবং উচ্চ-অগ্রাধিকারের বার্তাগুলোর কোটা।
- ব্যাটারি সেভারের উন্নতির ফলে অ্যাপ স্ট্যান্ডবাই অ্যাপের সীমাবদ্ধতা বৃদ্ধি পেয়েছে।
- ফোরগ্রাউন্ড পরিষেবা অনুমতি
- সাধারণ পারমিশন
FOREGROUND_SERVICEজন্য অনুরোধ করতে হবে (রানটাইম পারমিশন নয়)।
- সাধারণ পারমিশন
- গোপনীয়তা পরিবর্তন
- ব্যাকগ্রাউন্ড সেন্সরগুলিতে সীমিত অ্যাক্সেস
- কল লগ-এ সীমিত অ্যাক্সেস এখন
CALL_LOGপারমিশন গ্রুপের অন্তর্ভুক্ত। - ফোন নম্বরে সীমিত অ্যাক্সেস, এর জন্য
READ_CALL_LOGপারমিশন প্রয়োজন। - ওয়াই-ফাই তথ্যে সীমিত প্রবেশাধিকার
অ্যান্ড্রয়েড ৯.০ (এপিআই লেভেল ২৮)-এ প্রবর্তিত পরিবর্তনগুলির একটি বিশদ তালিকার জন্য, আচরণগত পরিবর্তনসমূহ দেখুন।
অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) থেকে অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯)-এ মাইগ্রেট করুন
- পূর্ণ-স্ক্রিন ইন্টেন্ট সহ বিজ্ঞপ্তি
- সাধারণ পারমিশন
USE_FULL_SCREEN_INTENTজন্য অনুরোধ করতে হবে (রানটাইম পারমিশন নয়)।
- সাধারণ পারমিশন
- ফোল্ডেবল এবং বড় স্ক্রিনের ডিভাইসগুলির জন্য সমর্থন
- এখন একাধিক কার্যকলাপ একই সময়ে 'পুনরায় শুরু' অবস্থায় থাকতে পারে, কিন্তু প্রকৃতপক্ষে কেবল একটিই ফোকাসে থাকবে।
- এই পরিবর্তনটি
onResume()এবংonPause()ফাংশনের আচরণকে প্রভাবিত করে। - 'টপমোস্ট রেজিউমড' নামক নতুন লাইফসাইকেল ধারণাটি
onTopResumedActivityChanged()-এ সাবস্ক্রাইব করার মাধ্যমে শনাক্ত করা যায়।- শুধুমাত্র একটি কার্যকলাপই 'সর্বাধিক পুনরায় শুরু করা' যেতে পারে।
- এই পরিবর্তনটি
- যখন
resizeableActivityfalseসেট করা হয়, তখন অ্যাপগুলো অতিরিক্তভাবে একটিminAspectRatioনির্দিষ্ট করতে পারে, যা সংকীর্ণতর অ্যাস্পেক্ট রেশিওতে অ্যাপটিকে স্বয়ংক্রিয়ভাবে লেটারবক্স করে।
- এখন একাধিক কার্যকলাপ একই সময়ে 'পুনরায় শুরু' অবস্থায় থাকতে পারে, কিন্তু প্রকৃতপক্ষে কেবল একটিই ফোকাসে থাকবে।
- গোপনীয়তা পরিবর্তন
- স্কোপড স্টোরেজ
- বাহ্যিক স্টোরেজে প্রবেশাধিকার শুধুমাত্র একটি অ্যাপ-নির্দিষ্ট ডিরেক্টরি এবং অ্যাপটি দ্বারা তৈরি নির্দিষ্ট ধরণের মিডিয়ার মধ্যেই সীমাবদ্ধ।
- অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন লোকেশন অ্যাক্সেস সীমাবদ্ধ থাকে, যার জন্য
ACCESS_BACKGROUND_LOCATIONপারমিশন প্রয়োজন। - IMEI এবং সিরিয়াল নম্বরের মতো রিসেট-অযোগ্য শনাক্তকারীগুলিতে প্রবেশাধিকার সীমিত।
- ব্যবহারকারীর পদক্ষেপ সংখ্যার মতো শারীরিক কার্যকলাপের তথ্যে প্রবেশাধিকার সীমিত, যার জন্য
ACTIVITY_RECOGNITIONঅনুমতি প্রয়োজন। - কিছু টেলিফোনি, ব্লুটুথ এবং ওয়াই-ফাই এপিআই- তে প্রবেশাধিকার সীমিত, যার জন্য
ACCESS_FINE_LOCATIONঅনুমতি প্রয়োজন। - ওয়াই-ফাই সেটিংসে সীমিত প্রবেশাধিকার
- অ্যাপগুলো এখন আর সরাসরি ওয়াই-ফাই চালু বা বন্ধ করতে পারে না এবং এর জন্য সেটিংস প্যানেল ব্যবহার করতে হবে।
- ওয়াই-ফাই নেটওয়ার্কে সংযোগ স্থাপনের উপর বিধিনিষেধ, যার জন্য
WifiNetworkSpecifierঅথবাWifiNetworkSuggestionব্যবহার করা আবশ্যক।
- স্কোপড স্টোরেজ
Android 10 (API লেভেল 29) থেকে Android 11 (API লেভেল 30)-এ মাইগ্রেট করুন
- গোপনীয়তা
- স্কোপড স্টোরেজ প্রয়োগ : অ্যাপগুলোর স্কোপড স্টোরেজ মডেল গ্রহণ করা উচিত, যেখানে অ্যাপ-নির্দিষ্ট, মিডিয়া এবং অন্যান্য ফাইলের ধরনগুলো নির্দিষ্ট স্থানে সংরক্ষণ ও অ্যাক্সেস করা হয়।
- অনুমতির স্বয়ংক্রিয় রিসেট : যদি ব্যবহারকারীরা কয়েক মাস ধরে কোনো অ্যাপ ব্যবহার না করেন, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে অ্যাপটির সংবেদনশীল অনুমতিগুলো রিসেট করে দেয়। এতে বেশিরভাগ অ্যাপের কোনো সমস্যা হওয়ার কথা নয়। যদি আপনার অ্যাপটি মূলত ব্যবহারকারীর হস্তক্ষেপ ছাড়াই ব্যাকগ্রাউন্ডে কাজ করে, তাহলে আপনি ব্যবহারকারীদের স্বয়ংক্রিয় রিসেট নিষ্ক্রিয় করতে অনুরোধ করার কথা বিবেচনা করতে পারেন।
- ব্যাকগ্রাউন্ড লোকেশন অ্যাক্সেস : অ্যাপগুলিকে অবশ্যই ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড লোকেশনের অনুমতি আলাদাভাবে চাইতে হবে। রানটাইম পারমিশন ডায়ালগের পরিবর্তে , শুধুমাত্র অ্যাপ সেটিংস থেকেই ব্যাকগ্রাউন্ড লোকেশনের অনুমতি দেওয়া যাবে ।
- প্যাকেজ দৃশ্যমানতা : যখন কোনো অ্যাপ ডিভাইসে ইনস্টল করা অ্যাপ এবং পরিষেবাগুলির তালিকার জন্য অনুরোধ করে, তখন ফেরত আসা তালিকাটি ফিল্টার করা হয়।
- আপনি যদি টেক্সট-টু-স্পিচ বা স্পিচ রিকগনিশন পরিষেবা ব্যবহার করেন, তাহলে আপনাকে ম্যানিফেস্ট ফাইলে পরিষেবাগুলির জন্য কোয়েরি এলিমেন্ট যোগ করতে হবে।
- নিরাপত্তা
- সংকুচিত `resource.arsc` ফাইলগুলো এখন আর সমর্থিত নয়।
- এখন থেকে APK সিগনেচার স্কিম v2 আবশ্যক। পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যতা (backward compatibility) রক্ষার জন্য, ডেভেলপারদের APK সিগনেচার স্কিম v1 ব্যবহার করে স্বাক্ষর করা চালিয়ে যাওয়া উচিত।
- নন-এসডিকে ইন্টারফেসের উপর সীমাবদ্ধতা। এপিআই লেভেল ৩০ টার্গেট করা অ্যাপগুলোর জন্য নন-এসডিকে ইন্টারফেস ব্যবহার করার পরামর্শ দেওয়া হয় না, কারণ এই নন-এসডিকে ইন্টারফেসগুলোর মধ্যে কয়েকটি এখন ব্লক করা হয়েছে। ব্লক করা নন-এসডিকে ইন্টারফেসগুলোর একটি বিস্তারিত তালিকার জন্য “অ্যান্ড্রয়েড ১১-এ এখন ব্লক করা নন-এসডিকে ইন্টারফেসসমূহ” দেখুন।
অ্যান্ড্রয়েড ১১ (এপিআই লেভেল ৩০)-এ প্রবর্তিত পরিবর্তনগুলির একটি বিশদ তালিকার জন্য, ‘বিহেভিয়ার চেঞ্জেস’ পৃষ্ঠাটি দেখুন।
পূর্ববর্তী বিভাগে দেওয়া নির্দেশাবলী অনুসরণ করে API 31-এ আপডেট করতে থাকুন।
আপনার অ্যাপগুলোকে আধুনিক করুন
আপনার অ্যাপগুলির জন্য টার্গেট এপিআই লেভেল আপডেট করার সময়, অ্যাপগুলিকে আধুনিক করতে এবং ব্যবহারকারীদের সন্তুষ্ট করতে প্ল্যাটফর্মের সাম্প্রতিক ফিচারগুলি গ্রহণ করার কথা বিবেচনা করুন।
- ক্যামেরার সর্বোত্তম ব্যবহার নিশ্চিত করতে, বিটা সংস্করণে থাকা CameraX ব্যবহার করার কথা বিবেচনা করতে পারেন।
- সেরা অনুশীলনগুলো অনুসরণ করতে, গতানুগতিক কোড লেখা থেকে মুক্তি পেতে এবং জটিল কাজগুলোকে সহজ করতে জেটপ্যাক কম্পোনেন্টগুলো ব্যবহার করুন, যাতে আপনি আপনার পছন্দের কোডের উপর মনোযোগ দিতে পারেন।
- কোটলিন ব্যবহার করে আরও ভালো অ্যাপ দ্রুত এবং কম কোডে তৈরি করুন।
- গোপনীয়তার নিয়মাবলী এবং সর্বোত্তম অনুশীলনগুলো অনুসরণ করছেন কিনা তা নিশ্চিত করুন।
- আপনার অ্যাপগুলিতে ডার্ক থিম সাপোর্ট যোগ করুন।
- আপনার অ্যাপগুলিতে জেসচার নেভিগেশন সাপোর্ট যোগ করুন।
- আপনার অ্যাপটি গুগল ক্লাউড মেসেজিং (GCM) থেকে ফায়ারবেস ক্লাউড মেসেজিং-এর সর্বশেষ সংস্করণে স্থানান্তর করুন ।
- উন্নত উইন্ডো ব্যবস্থাপনার সুবিধা নিন।
- হার্ডওয়্যারের সাম্প্রতিক অগ্রগতির সুবিধা নিতে বৃহত্তর অ্যাস্পেক্ট রেশিও (১৬:৯ এর চেয়ে বেশি) সমর্থন করুন। নিশ্চিত করুন যে আপনার অ্যাপটি উপলব্ধ স্ক্রিন স্পেস পূরণ করার জন্য রিসাইজ হয়। শুধুমাত্র শেষ উপায় হিসেবেই একটি সর্বোচ্চ অ্যাস্পেক্ট রেশিও ঘোষণা করুন। সর্বোচ্চ অ্যাস্পেক্ট রেশিও সম্পর্কে আরও তথ্যের জন্য, ‘সীমাবদ্ধ স্ক্রিন সমর্থন ঘোষণা করুন ’ দেখুন।
- আপনার অ্যাপের কর্মদক্ষতা বাড়াতে এবং একাধিক ডিসপ্লে পরিচালনা করতে মাল্টি-উইন্ডো সাপোর্ট যোগ করুন।
- যদি মিনিমাইজ করা অ্যাপের চমৎকার অভিজ্ঞতা ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করে, তাহলে পিকচার-ইন-পিকচার-এর জন্য সমর্থন যোগ করুন।
- ডিসপ্লে কাটআউটযুক্ত ডিভাইসগুলোর জন্য অপ্টিমাইজ করুন।
- স্ট্যাটাস বারের উচ্চতা অনুমান করবেন না। এর পরিবর্তে,
WindowInsetsএবংView.OnApplyWindowInsetsListenerব্যবহার করুন। আরও জানতে, ব্যাখ্যার জন্য ড্রয়েডকন এনওয়াইসি ২০১৭ ভিডিওটি দেখুন। - ধরে নেবেন না যে অ্যাপটি পুরো উইন্ডোটি দখল করে আছে। এর পরিবর্তে,
View.getLocationInWindow()ব্যবহার না করে,View.getLocationOnScreen()ব্যবহার করে এর অবস্থান নিশ্চিত করুন। *MotionEventহ্যান্ডেল করার সময়,MotionEvent.getX()ওMotionEvent.getY()ব্যবহার না করে,MotionEvent.getRawX()ওMotionEvent.getRawY()ব্যবহার করুন।
আপনার SDK এবং লাইব্রেরিগুলো পরীক্ষা ও আপডেট করুন।
নিশ্চিত করুন যে আপনার থার্ড-পার্টি SDK ডিপেন্ডেন্সিগুলো API 31 সাপোর্ট করে: কিছু SDK প্রোভাইডার তাদের ম্যানিফেস্টে এটি প্রকাশ করে; অন্যদের ক্ষেত্রে অতিরিক্ত তদন্তের প্রয়োজন হবে। আপনি যদি এমন কোনো SDK ব্যবহার করেন যা API 31 সাপোর্ট করে না, তবে সমস্যাটি সমাধানের জন্য SDK প্রোভাইডারের সাথে কাজ করাকে অগ্রাধিকার দিন।
এছাড়াও, মনে রাখবেন যে আপনার অ্যাপ বা গেমের targetSdkVersion ব্যক্তিগত অ্যান্ড্রয়েড প্ল্যাটফর্ম লাইব্রেরিতে অ্যাক্সেস সীমাবদ্ধ করতে পারে; বিস্তারিত জানার জন্য “NDK Apps Linking to Platform Libraries” দেখুন।
আপনি যে অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির সংস্করণটি ব্যবহার করছেন, তাতে কোনো সীমাবদ্ধতা আছে কিনা তাও আপনার যাচাই করে নেওয়া উচিত। বরাবরের মতোই, আপনাকে অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির প্রধান সংস্করণ এবং আপনার অ্যাপের compileSdkVersion এর মধ্যে সামঞ্জস্য নিশ্চিত করতে হবে।
আমরা আপনাকে সাপোর্ট লাইব্রেরির প্রধান সংস্করণের চেয়ে ছোট বা সমান একটি targetSdkVersion বেছে নেওয়ার পরামর্শ দিই। সর্বশেষ সামঞ্জস্যপূর্ণ বৈশিষ্ট্য এবং বাগ ফিক্সের সুবিধা নিতে আমরা আপনাকে একটি সাম্প্রতিক সামঞ্জস্যপূর্ণ সাপোর্ট লাইব্রেরিতে আপডেট করার জন্য উৎসাহিত করি।
আপনার অ্যাপ পরীক্ষা করুন
আপনার অ্যাপের এপিআই লেভেল এবং ফিচারগুলো যথাযথভাবে আপডেট করার পর, আপনার কিছু কোর ইউজ কেস পরীক্ষা করা উচিত। নিম্নলিখিত পরামর্শগুলো সম্পূর্ণ নয়, তবে এগুলো আপনার টেস্টিং প্রক্রিয়াকে পথ দেখাতে সাহায্য করবে। আমরা নিম্নলিখিতগুলো পরীক্ষা করার পরামর্শ দিচ্ছি:
- আপনার অ্যাপটি যেন কোনো ত্রুটি বা সতর্কতা ছাড়াই এপিআই ২৯ (API 29)-এ কম্পাইল হয়।
ব্যবহারকারী অনুমতির অনুরোধ প্রত্যাখ্যান করলে, আপনার অ্যাপে যেন তার কাছে অনুমতির জন্য অনুরোধ করার একটি কৌশল থাকে। তা করতে:
- আপনার অ্যাপের 'অ্যাপ ইনফো' স্ক্রিনে যান এবং প্রতিটি অনুমতি নিষ্ক্রিয় করুন।
- অ্যাপটি খুলুন এবং নিশ্চিত করুন যেন কোনো ক্র্যাশ না হয়।
- মূল ব্যবহারের ক্ষেত্রগুলো পরীক্ষা করুন এবং নিশ্চিত করুন যে প্রয়োজনীয় অনুমতিগুলো পুনরায় চাওয়া হচ্ছে।
Doze প্রক্রিয়াটি প্রত্যাশিত ফলাফল দেয় এবং কোনো ত্রুটি হয় না।
- আপনার অ্যাপটি চালু থাকা অবস্থায়, adb ব্যবহার করে আপনার টেস্ট ডিভাইসটিকে Doze মোডে রাখুন।
- এমন যেকোনো ব্যবহারের ক্ষেত্র পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তা প্রেরণ করে।
- অ্যালার্ম বা জব ব্যবহার করে এমন যেকোনো ইউজ কেস পরীক্ষা করুন।
- ব্যাকগ্রাউন্ড সার্ভিসের উপর যেকোনো নির্ভরতা দূর করুন।
- আপনার অ্যাপটিকে অ্যাপ স্ট্যান্ডবাই মোডে সেট করুন
- এমন যেকোনো ব্যবহারের ক্ষেত্র পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তা প্রেরণ করে।
- অ্যালার্ম ব্যবহার করে এমন যেকোনো ইউজ কেস পরীক্ষা করুন।
- আপনার অ্যাপটি চালু থাকা অবস্থায়, adb ব্যবহার করে আপনার টেস্ট ডিভাইসটিকে Doze মোডে রাখুন।
নতুন তোলা ছবি/ভিডিও পরিচালনা করে
- আপনার অ্যাপটি সীমাবদ্ধ
ACTION_NEW_PICTUREএবংACTION_NEW_VIDEOব্রডকাস্টগুলো সঠিকভাবে পরিচালনা করছে কিনা তা যাচাই করুন (অর্থাৎ, সেগুলোকে JobScheduler জবে স্থানান্তর করা হয়েছে কিনা)। - নিশ্চিত করুন যে এই ইভেন্টগুলোর উপর নির্ভরশীল যেকোনো গুরুত্বপূর্ণ ইউজ কেস যেন সচল থাকে।
- আপনার অ্যাপটি সীমাবদ্ধ
অন্যান্য অ্যাপে ফাইল শেয়ার করা পরিচালনা করে - এমন যেকোনো ব্যবহারের ক্ষেত্র পরীক্ষা করুন যা অন্য যেকোনো অ্যাপের (এমনকি একই ডেভেলপারের তৈরি অন্য অ্যাপেরও) সাথে ফাইলের ডেটা শেয়ার করে।
- পরীক্ষা করে দেখুন কন্টেন্টটি অন্য অ্যাপে দেখা যাচ্ছে কিনা এবং এর কারণে অ্যাপটি ক্র্যাশ করছে কিনা।
আরও তথ্য
গুগল প্লে কনসোলে ইমেইলের জন্য সম্মতি দিন, যাতে আমরা আপনাকে অ্যান্ড্রয়েড এবং গুগল প্লে থেকে গুরুত্বপূর্ণ আপডেট ও ঘোষণা, আমাদের মাসিক পার্টনার নিউজলেটার সহ, পাঠাতে পারি।