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