আপনি যখন একটি APK আপলোড করবেন, তখন এটি অবশ্যই Google Play এর লক্ষ্য API স্তরের প্রয়োজনীয়তা পূরণ করবে।
31 আগস্ট 2024 থেকে শুরু হচ্ছে:
- নতুন অ্যাপ এবং অ্যাপ আপডেটগুলিকে অবশ্যই Android 14 (API লেভেল 34) বা উচ্চতরকে Google Play-তে জমা দিতে হবে; Wear OS এবং Android TV অ্যাপগুলি ব্যতীত, যেগুলি অবশ্যই Android 13 (API স্তর 33) বা উচ্চতরকে টার্গেট করবে৷
- বিদ্যমান অ্যাপগুলিকে অবশ্যই Android 13 (API লেভেল 33) বা উচ্চতর টার্গেট করতে হবে যাতে আপনার অ্যাপের টার্গেট API লেভেলের চেয়ে বেশি Android OS চালিত ডিভাইসগুলিতে নতুন ব্যবহারকারীদের জন্য উপলব্ধ থাকে। যে অ্যাপগুলি Android 12 (API লেভেল 31) বা তার নিচের (Android 10 (API লেভেল 29) বা Wear OS এবং Android 11 (API লেভেল 30) বা Android TV-এর জন্য কম, শুধুমাত্র Android OS চালিত ডিভাইসগুলিতে পাওয়া যাবে যেগুলি আপনার অ্যাপের টার্গেট API লেভেলের সমান বা তার চেয়ে কম।
আপনার অ্যাপ আপডেট করার জন্য আরও সময়ের প্রয়োজন হলে আপনি 1 নভেম্বর, 2024 পর্যন্ত এক্সটেনশনের অনুরোধ করতে পারবেন। আপনি এই বছরের শেষের দিকে Play Console-এ আপনার অ্যাপের এক্সটেনশন ফর্মগুলি অ্যাক্সেস করতে সক্ষম হবেন।
এই প্রয়োজনীয়তাগুলির ব্যতিক্রমগুলির মধ্যে রয়েছে:
- স্থায়ীভাবে ব্যক্তিগত অ্যাপ যা একটি নির্দিষ্ট প্রতিষ্ঠানের ব্যবহারকারীদের জন্য সীমাবদ্ধ এবং শুধুমাত্র অভ্যন্তরীণ বিতরণের উদ্দেশ্যে।
- অ্যাপ্লিকেশানগুলি যেগুলি Android Automotive OS কে লক্ষ্য করে বা Android Automotive OS কে লক্ষ্য করে APK সহ প্যাকেজ করা হয়৷
কেন নতুন SDK টার্গেট?
প্রতিটি নতুন অ্যান্ড্রয়েড সংস্করণ এমন পরিবর্তনগুলি প্রবর্তন করে যা নিরাপত্তা এবং কর্মক্ষমতা উন্নতি নিয়ে আসে এবং অ্যান্ড্রয়েড ব্যবহারকারীর অভিজ্ঞতা বাড়ায়৷ এই পরিবর্তনগুলির মধ্যে কিছু শুধুমাত্র সেই অ্যাপগুলির ক্ষেত্রে প্রযোজ্য যা স্পষ্টভাবে তাদের targetSdkVersion
ম্যানিফেস্ট অ্যাট্রিবিউটের মাধ্যমে সমর্থন ঘোষণা করে (এটি টার্গেট API স্তর হিসাবেও পরিচিত)৷
একটি সাম্প্রতিক API স্তর লক্ষ্য করার জন্য আপনার অ্যাপটি কনফিগার করা নিশ্চিত করে যে ব্যবহারকারীরা এই উন্নতিগুলি থেকে উপকৃত হতে পারেন, যখন আপনার অ্যাপ এখনও পুরানো Android সংস্করণে চলতে পারে। সাম্প্রতিক API স্তরকে লক্ষ্য করে আপনার অ্যাপটিকে আপনার ব্যবহারকারীদের খুশি করার জন্য প্ল্যাটফর্মের সর্বশেষ বৈশিষ্ট্যগুলির সুবিধা নেওয়ার অনুমতি দেয়৷ উপরন্তু, অ্যান্ড্রয়েড 10 (এপিআই লেভেল 29) অনুসারে, ব্যবহারকারীরা একটি সতর্কতা দেখতে পান যখন তারা প্রথমবার একটি অ্যাপ চালু করেন যদি অ্যাপটি Android 5.1 (API স্তর 22) বা তার নিচের দিকে লক্ষ্য করে।
এই দস্তাবেজটি Google Play প্রয়োজনীয়তা পূরণের জন্য আপনার লক্ষ্য API স্তর আপডেট করার জন্য আপনার জানা দরকার এমন গুরুত্বপূর্ণ পয়েন্টগুলি হাইলাইট করে৷ আপনি কোন সংস্করণে স্থানান্তরিত হচ্ছেন তার উপর নির্ভর করে নিম্নলিখিত বিভাগে নির্দেশাবলী দেখুন।
Android 12 এবং উচ্চতর (API স্তর 31) থেকে আরও সাম্প্রতিক সংস্করণে স্থানান্তর করুন
অ্যান্ড্রয়েডের আরও সাম্প্রতিক সংস্করণ লক্ষ্য করতে আপনার অ্যাপ আপডেট করতে, প্রাসঙ্গিক আচরণ পরিবর্তনের তালিকা অনুসরণ করুন:
- অ্যান্ড্রয়েড 13 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 14 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 15 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 16 আচরণ পরিবর্তন
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
এর আচরণের সাথে প্রায় অভিন্ন। - অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণের পরিবর্তন : অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণ ব্যবহার করার সময়, নিশ্চিত করুন যে আপনার অভিপ্রায় ফিল্টারগুলি ব্রাউজযোগ্য বিভাগ অন্তর্ভুক্ত করে এবং HTTPS স্কিম সমর্থন করে।
কর্মক্ষমতা
ফোরগ্রাউন্ড পরিষেবা লঞ্চ বিধিনিষেধ : Android 12 বা উচ্চতরকে টার্গেট করতে, কিছু বিশেষ ক্ষেত্রে ছাড়া আপনার অ্যাপটি ব্যাকগ্রাউন্ডে চলাকালীন ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে পারে না। যদি একটি অ্যাপ ব্যাকগ্রাউন্ডে চলাকালীন একটি ফোরগ্রাউন্ড পরিষেবা শুরু করার চেষ্টা করে, একটি ব্যতিক্রম ঘটে (কিছু বিশেষ ক্ষেত্রে বাদে)।
আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলাকালীন সময়সূচী করতে এবং দ্রুত কাজ শুরু করতে WorkManager ব্যবহার করার কথা বিবেচনা করুন। ব্যবহারকারীর অনুরোধ করা সময়-সংবেদনশীল ক্রিয়াগুলি সম্পূর্ণ করতে, একটি সঠিক অ্যালার্মের মধ্যে ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করুন।
নোটিফিকেশন ট্রামপোলিন সীমাবদ্ধতা : যখন ব্যবহারকারীরা বিজ্ঞপ্তিতে ট্যাপ করে, তখন কিছু অ্যাপ একটি অ্যাপ কম্পোনেন্ট লঞ্চ করে সাড়া দেয় যা ব্যবহারকারী দেখেন এবং ইন্টারঅ্যাক্ট করে এমন কার্যকলাপ শুরু করে। এই অ্যাপ কম্পোনেন্টটি নোটিফিকেশন ট্রামপোলিন নামে পরিচিত।
অ্যাপ্লিকেশানগুলি পরিষেবা বা সম্প্রচার রিসিভার থেকে কার্যকলাপ শুরু করা উচিত নয় যা বিজ্ঞপ্তি ট্রাম্পোলাইন হিসাবে ব্যবহৃত হয়। কোনও ব্যবহারকারী বিজ্ঞপ্তির মধ্যে একটি বিজ্ঞপ্তি বা অ্যাকশন বোতামে ট্যাপ করার পরে, আপনার অ্যাপটি কোনও পরিষেবা বা ব্রডকাস্ট রিসিভারের ভিতরে
startActivity()
কল করতে পারে না।
Android 12 (API স্তর 31) টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন পরিবর্তনগুলির সম্পূর্ণ সেট দেখুন৷
অ্যান্ড্রয়েড 11 (API লেভেল 30) এর চেয়ে কম থেকে মাইগ্রেট করুন
Android এর যে সংস্করণ থেকে আপনি স্থানান্তরিত হবেন সেটি নির্বাচন করুন:
Android 5 এ স্থানান্তর করুন (API স্তর 21)
আপনার অ্যাপ এই রিলিজে প্রবর্তিত পরিবর্তনগুলির জন্য দায়ী কিনা তা নিশ্চিত করতে নিম্নলিখিত প্রতিটি রিলিজের জন্য সংশ্লিষ্ট আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন:
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 6 (API স্তর 23) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 6.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
বিপজ্জনক অনুমতি শুধুমাত্র রানটাইমে দেওয়া হয়. এই অনুমতিগুলি দেওয়ার জন্য আপনার UI ফ্লোকে অবশ্যই সামর্থ্য প্রদান করতে হবে।
যেখানেই সম্ভব, নিশ্চিত করুন যে আপনার অ্যাপটি অনুমতির অনুরোধ প্রত্যাখ্যান করার জন্য প্রস্তুত রয়েছে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী ডিভাইসের জিপিএস অ্যাক্সেস করার অনুরোধ প্রত্যাখ্যান করেন, তবে নিশ্চিত করুন যে আপনার অ্যাপটি এগিয়ে যাওয়ার অন্য উপায় আছে।
Android 6.0 (API স্তর 23) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 7 (API স্তর 24) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 7.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
ডোজ এবং অ্যাপ স্ট্যান্ডবাই
অপ্টিমাইজিং ফর ডোজ এবং অ্যাপ স্ট্যান্ডবাই- এ বর্ণিত আচরণের জন্য ডিজাইন, যা বিভিন্ন প্ল্যাটফর্ম রিলিজ জুড়ে প্রবর্তিত ক্রমবর্ধমান পরিবর্তনগুলিকে অন্তর্ভুক্ত করে।
যখন একটি ডিভাইস ডোজ এবং অ্যাপ স্ট্যান্ডবাই মোডে থাকে, তখন সিস্টেমটি নিম্নরূপ আচরণ করে:
- নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধ করে
- অ্যালার্ম, সিঙ্ক এবং কাজ স্থগিত করে
- GPS এবং Wi-Fi স্ক্যান সীমাবদ্ধ করে
- সাধারণ-অগ্রাধিকার Firebase ক্লাউড মেসেজিং বার্তা সীমাবদ্ধ করে।
অনুমতি পরিবর্তন
- সিস্টেমটি অ্যাপের ব্যক্তিগত ডিরেক্টরিতে অ্যাক্সেস সীমাবদ্ধ করে।
- আপনার অ্যাপের বাইরে একটি
file://
URI প্রকাশ করলে একটিFileUriExposedException
ট্রিগার হয়। আপনার অ্যাপের বাইরে ফাইল শেয়ার করার প্রয়োজন হলে,FileProvider
প্রয়োগ করুন
সিস্টেমটি নন-এনডিকে লাইব্রেরির সাথে লিঙ্ক করা নিষিদ্ধ করে ।
Android 7.0 (API স্তর 24) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 8 (API স্তর 26) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 8.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
- ব্যাকগ্রাউন্ড এক্সিকিউশন লিমিট
- সিস্টেমটি অগ্রভাগে চলমান না এমন অ্যাপগুলির জন্য পরিষেবাগুলিকে সীমাবদ্ধ করে৷
-
startService()
এখন একটি ব্যতিক্রম ছুঁড়ে দেয় যখন একটি অ্যাপ এটি চালু করার চেষ্টা করে যখনstartService()
নিষিদ্ধ থাকে। - ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে, একটি অ্যাপকে অবশ্যই
startForeground()
এবংstartForegroundService()
ব্যবহার করতে হবে। - Android 8.0 (API স্তর 26) আচরণ পরিবর্তন পৃষ্ঠায় নথিভুক্ত হিসাবে JobScheduler API-তে করা পরিবর্তনগুলি সাবধানতার সাথে পর্যালোচনা করুন।
- Firebase ক্লাউড মেসেজিং এর জন্য Google Play পরিষেবা SDK এর 10.2.1 সংস্করণ বা উচ্চতর সংস্করণ প্রয়োজন৷
- Firebase ক্লাউড মেসেজিং ব্যবহার করার সময়, বার্তা বিতরণ ব্যাকগ্রাউন্ড এক্সিকিউশন সীমা সাপেক্ষে। যখন বার্তা প্রাপ্তির পরে ব্যাকগ্রাউন্ডের কাজ করা প্রয়োজন, যেমন ব্যাকগ্রাউন্ড ডেটা সিঙ্ক করার জন্য, আপনার অ্যাপের পরিবর্তে Firebase জব ডিসপ্যাচার বা JobIntentService ব্যবহার করে কাজের সময় নির্ধারণ করা উচিত। আরও তথ্যের জন্য, ফায়ারবেস ক্লাউড মেসেজিং ডকুমেন্টেশন দেখুন।
-
- অন্তর্নিহিত সম্প্রচার
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনার বিষয়ে তথ্যের জন্য,
JobScheduler
API-এর ডকুমেন্টেশন দেখুন।
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনার বিষয়ে তথ্যের জন্য,
- পটভূমি অবস্থান সীমা
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলির অবস্থান ডেটাতে সীমিত অ্যাক্সেস রয়েছে৷
- Google Play পরিষেবা সহ ডিভাইসগুলিতে, পর্যায়ক্রমিক অবস্থান আপডেট পেতে ফিউজড অবস্থান প্রদানকারী ব্যবহার করুন৷
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলির অবস্থান ডেটাতে সীমিত অ্যাক্সেস রয়েছে৷
- সিস্টেমটি অগ্রভাগে চলমান না এমন অ্যাপগুলির জন্য পরিষেবাগুলিকে সীমাবদ্ধ করে৷
- বিজ্ঞপ্তি চ্যানেল
- আপনার প্রতি-চ্যানেল ভিত্তিতে বিজ্ঞপ্তি বাধা বৈশিষ্ট্য সংজ্ঞায়িত করা উচিত।
- বিজ্ঞপ্তিগুলি প্রদর্শিত হওয়ার জন্য আপনাকে অবশ্যই একটি চ্যানেলে বিজ্ঞপ্তিগুলি বরাদ্দ করতে হবে৷
- প্ল্যাটফর্মের এই সংস্করণটি
NotificationCompat.Builder
সমর্থন করে।
- গোপনীয়তা
- অ্যাপ্লিকেশান সাইনিং কী প্রতি ANDROID_ID স্কোপ করা হয়েছে৷
অ্যান্ড্রয়েড 8.0 (API স্তর 26) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
Android 8 (API 26) থেকে Android 9 (API 28) এ স্থানান্তরিত করুন
- পাওয়ার ম্যানেজমেন্ট
- অ্যাপ স্ট্যান্ডবাই বাকেট অ্যাপের ব্যস্ততার উপর ভিত্তি করে নতুন ব্যাকগ্রাউন্ড সীমাবদ্ধতা নিয়ে আসে, যেমন বিলম্বিত চাকরি, অ্যালার্ম এবং উচ্চ-অগ্রাধিকার বার্তাগুলিতে কোটা
- ব্যাটারি সেভারের উন্নতি অ্যাপ স্ট্যান্ডবাই অ্যাপের সীমাবদ্ধতা বাড়ায়
- ফোরগ্রাউন্ড পরিষেবা অনুমতি
- স্বাভাবিক অনুমতির জন্য অনুরোধ করতে হবে
FOREGROUND_SERVICE
(রানটাইম অনুমতি নয়)
- স্বাভাবিক অনুমতির জন্য অনুরোধ করতে হবে
- গোপনীয়তা পরিবর্তন
- পটভূমি সেন্সর সীমিত অ্যাক্সেস
- কল লগগুলিতে সীমাবদ্ধ অ্যাক্সেস, এখন
CALL_LOG
অনুমতি গোষ্ঠীতে৷ - ফোন নম্বরগুলিতে সীমাবদ্ধ অ্যাক্সেস,
READ_CALL_LOG
অনুমতির প্রয়োজন৷ - Wi-Fi তথ্যে সীমাবদ্ধ অ্যাক্সেস
Android 9.0 (API স্তর 28) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, আচরণের পরিবর্তনগুলি দেখুন।
Android 9 (API স্তর 28) থেকে Android 10 (API স্তর 29) এ স্থানান্তরিত করুন
- একটি পূর্ণ-স্ক্রীন অভিপ্রায় সঙ্গে বিজ্ঞপ্তি
- স্বাভাবিক অনুমতির অনুরোধ করতে হবে
USE_FULL_SCREEN_INTENT
(রানটাইম অনুমতি নয়)।
- স্বাভাবিক অনুমতির অনুরোধ করতে হবে
- ফোল্ডেবল এবং বড় পর্দার ডিভাইসগুলির জন্য সমর্থন
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে, তবে শুধুমাত্র একটিরই ফোকাস রয়েছে৷
- এই পরিবর্তনটি
onResume()
এবংonPause()
আচরণকে প্রভাবিত করে। - "টপমোস্ট রিজুমেড" এর নতুন লাইফসাইকেল ধারণা যা
onTopResumedActivityChanged()
এ সদস্যতা নেওয়ার মাধ্যমে সনাক্ত করা যেতে পারে।- শুধুমাত্র একটি কার্যকলাপ "সর্বোচ্চ পুনঃসূচনা" হতে পারে।
- এই পরিবর্তনটি
-
resizeableActivity
false
সেট করা হলে, অ্যাপগুলি অতিরিক্ত একটিminAspectRatio
নির্দিষ্ট করতে পারে যা স্বয়ংক্রিয়ভাবে অ্যাপটিকে সংকীর্ণ অনুপাতের লেটারবক্স করে।
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে, তবে শুধুমাত্র একটিরই ফোকাস রয়েছে৷
- গোপনীয়তা পরিবর্তন
- স্কোপড স্টোরেজ
- বাহ্যিক সঞ্চয়স্থান অ্যাক্সেস শুধুমাত্র একটি অ্যাপ-নির্দিষ্ট ডিরেক্টরিতে এবং অ্যাপটি তৈরি করা নির্দিষ্ট ধরনের মিডিয়াতে সীমাবদ্ধ।
- অ্যাপ্লিকেশানটি ব্যাকগ্রাউন্ডে থাকাকালীন অবস্থানে সীমাবদ্ধ অ্যাক্সেস,
ACCESS_BACKGROUND_LOCATION
অনুমতির প্রয়োজন৷ - IMEI এবং সিরিয়াল নম্বরের মতো নন-রিসেটযোগ্য শনাক্তকারীগুলিতে সীমাবদ্ধ অ্যাক্সেস।
-
ACTIVITY_RECOGNITION
অনুমতির প্রয়োজন, ব্যবহারকারীর ধাপ সংখ্যার মতো শারীরিক কার্যকলাপের তথ্যে সীমাবদ্ধ অ্যাক্সেস। - কিছু টেলিফোনি, ব্লুটুথ, এবং ওয়াই-ফাই API- এ সীমাবদ্ধ অ্যাক্সেসের জন্য
ACCESS_FINE_LOCATION
অনুমতি প্রয়োজন৷ - Wi-Fi সেটিংসে সীমাবদ্ধ অ্যাক্সেস
- অ্যাপগুলি আর সরাসরি Wi-Fi সক্ষম বা অক্ষম করতে পারে না এবং সেটিংস প্যানেল ব্যবহার করে এটি করতে হবে৷
- একটি Wi-Fi নেটওয়ার্কের সাথে একটি সংযোগ শুরু করার উপর বিধিনিষেধ, যার জন্য
WifiNetworkSpecifier
বাWifiNetworkSuggestion
ব্যবহার করা প্রয়োজন৷
- স্কোপড স্টোরেজ
Android 10 (API স্তর 29) থেকে Android 11 (API স্তর 30) এ স্থানান্তরিত করুন
- গোপনীয়তা
- স্কোপড স্টোরেজ এনফোর্সমেন্ট : অ্যাপগুলিকে স্কোপড স্টোরেজ মডেল গ্রহণ করা উচিত যেখানে অ্যাপ-নির্দিষ্ট, মিডিয়া এবং অন্যান্য ফাইলের ধরনগুলি ডেডিকেটেড অবস্থানগুলি ব্যবহার করে সংরক্ষণ এবং অ্যাক্সেস করা হয়।
- অনুমতি স্বয়ংক্রিয়-রিসেট : ব্যবহারকারীরা কয়েক মাস ধরে কোনও অ্যাপের সাথে ইন্টারঅ্যাক্ট না করলে, সিস্টেমটি অ্যাপের সংবেদনশীল অনুমতিগুলি স্বয়ংক্রিয়ভাবে পুনরায় সেট করে। এটি বেশিরভাগ অ্যাপকে প্রভাবিত করবে না। যদি আপনার অ্যাপটি প্রাথমিকভাবে ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়াই ব্যাকগ্রাউন্ডে কাজ করে, তাহলে আপনি ব্যবহারকারীদের স্বয়ংক্রিয় রিসেট অক্ষম করার অনুরোধ বিবেচনা করতে পারেন।
- ব্যাকগ্রাউন্ড লোকেশন অ্যাক্সেস : অ্যাপগুলিকে অবশ্যই ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড লোকেশনের অনুমতির জন্য আলাদাভাবে অনুরোধ করতে হবে। ব্যাকগ্রাউন্ড লোকেশন অনুমতিতে অ্যাক্সেস দেওয়া রানটাইম অনুমতি ডায়ালগের পরিবর্তে শুধুমাত্র অ্যাপ সেটিংসে করা যেতে পারে ।
- প্যাকেজ দৃশ্যমানতা : যখন কোনো অ্যাপ ডিভাইসে ইনস্টল করা অ্যাপ এবং পরিষেবার তালিকার জন্য জিজ্ঞাসা করে, ফিরে আসা তালিকা ফিল্টার করা হয়।
- আপনি যদি টেক্সট-টু-স্পিচ বা স্পিচ রিকগনিশন পরিষেবা ব্যবহার করেন, তাহলে আপনাকে ম্যানিফেস্ট ফাইলে পরিষেবার জন্য প্রশ্নের উপাদান যোগ করতে হবে।
- নিরাপত্তা
- সংকুচিত `resource.arsc` ফাইল আর সমর্থিত নয়
- APK স্বাক্ষর স্কিম v2 এখন প্রয়োজন। পিছিয়ে থাকা সামঞ্জস্যতার কারণে, ডেভেলপারদেরও APK স্বাক্ষর স্কিম v1 দিয়ে স্বাক্ষর করা চালিয়ে যেতে হবে।
- অ-SDK ইন্টারফেস সীমাবদ্ধতা। API লেভেল 30 টার্গেট করা অ্যাপের জন্য নন-SDK ইন্টারফেস ব্যবহার করা বাঞ্ছনীয় নয়, কারণ এই নন-SDK ইন্টারফেসগুলির মধ্যে কিছু এখন ব্লক করা হয়েছে। অবরুদ্ধ নন-SDK ইন্টারফেসগুলির একটি বিস্তৃত তালিকার জন্য Android 11-এ ব্লক করা নন-SDK ইন্টারফেসগুলি দেখুন৷
অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
পূর্ববর্তী বিভাগে নির্দেশাবলী অনুসরণ করে API 31-এ আপডেট করা চালিয়ে যান।
আপনার অ্যাপসকে আধুনিক করুন
আপনি আপনার অ্যাপগুলির জন্য লক্ষ্য API স্তর আপডেট করার সাথে সাথে আপনার অ্যাপগুলিকে আধুনিক করতে এবং আপনার ব্যবহারকারীদের খুশি করতে সাম্প্রতিক প্ল্যাটফর্ম বৈশিষ্ট্যগুলি গ্রহণ করার কথা বিবেচনা করুন।
- ক্যামেরা ব্যবহার করে সবচেয়ে বেশি সুবিধা পেতে CameraX ব্যবহার করার কথা বিবেচনা করুন, যা বিটাতে রয়েছে।
- জেটপ্যাক উপাদানগুলি ব্যবহার করুন আপনাকে সর্বোত্তম অনুশীলনগুলি অনুসরণ করতে সাহায্য করতে, আপনাকে বয়লারপ্লেট কোড লেখা থেকে মুক্ত করতে এবং জটিল কাজগুলিকে সহজ করতে যাতে আপনি আপনার যত্নশীল কোডের উপর ফোকাস করতে পারেন৷
- দ্রুত এবং কম কোড সহ আরও ভাল অ্যাপ লিখতে Kotlin ব্যবহার করুন।
- আপনি গোপনীয়তার প্রয়োজনীয়তা এবং সর্বোত্তম অনুশীলনগুলি অনুসরণ করছেন তা নিশ্চিত করুন।
- আপনার অ্যাপে গাঢ় থিম সমর্থন যোগ করুন।
- আপনার অ্যাপ্লিকেশানগুলিতে অঙ্গভঙ্গি নেভিগেশন সমর্থন যোগ করুন।
- Google ক্লাউড মেসেজিং (GCM) থেকে Firebase ক্লাউড মেসেজিংয়ের সর্বশেষ সংস্করণে আপনার অ্যাপ স্থানান্তর করুন ।
- উন্নত উইন্ডো ব্যবস্থাপনার সুবিধা নিন।
- হার্ডওয়্যারের সাম্প্রতিক অগ্রগতির সুবিধা নিতে বৃহত্তর অনুপাত (16:9-এর বেশি) সমর্থন করুন। নিশ্চিত করুন যে আপনার অ্যাপটি উপলব্ধ স্ক্রীন স্পেস পূরণ করতে আকার পরিবর্তন করে। শুধুমাত্র একটি শেষ অবলম্বন হিসাবে একটি সর্বাধিক আকৃতির অনুপাত ঘোষণা করুন৷ সর্বাধিক আকৃতির অনুপাত সম্পর্কে আরও তথ্যের জন্য, সীমাবদ্ধ স্ক্রীন সমর্থন ঘোষণা করুন দেখুন।
- আপনার অ্যাপের উৎপাদনশীলতা বাড়াতে এবং একাধিক ডিসপ্লে পরিচালনা করতে মাল্টি-উইন্ডো সমর্থন যোগ করুন।
- যদি একটি দুর্দান্ত মিনিমাইজড অ্যাপ অভিজ্ঞতা ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করে, তাহলে Picture-in-Picture- এর জন্য সমর্থন যোগ করুন।
- ডিসপ্লে কাটআউট সহ ডিভাইসগুলির জন্য অপ্টিমাইজ করুন।
- স্ট্যাটাস বারের উচ্চতা অনুমান করবেন না। পরিবর্তে,
WindowInsets
এবংView.OnApplyWindowInsetsListener
ব্যবহার করুন। আরও জানতে, droidcon NYC 2017 ভিডিওটি দেখুন। একটি ব্যাখ্যা জন্য - অনুমান করবেন না যে অ্যাপটিতে পুরো উইন্ডো রয়েছে। পরিবর্তে,
View.getLocationInWindow()
ব্যবহার করে এর অবস্থান নিশ্চিত করুন,View.getLocationOnScreen()
নয়। *MotionEvent
পরিচালনা করার সময়,MotionEvent.getX()
এবংMotionEvent.getY()
ব্যবহার করুন,MotionEvent.getRawX()
,MotionEvent.getRawY()
নয়।
আপনার SDK এবং লাইব্রেরি চেক করুন এবং আপডেট করুন
নিশ্চিত করুন যে আপনার তৃতীয় পক্ষের SDK নির্ভরতা API 31 সমর্থন করে: কিছু SDK প্রদানকারী তাদের ম্যানিফেস্টে এটি প্রকাশ করে; অন্যদের অতিরিক্ত তদন্তের প্রয়োজন হবে। আপনি যদি এমন একটি SDK ব্যবহার করেন যা API 31 সমর্থন করে না, তাহলে সমস্যাটি সমাধান করতে SDK প্রদানকারীর সাথে কাজ করাকে অগ্রাধিকার দিন৷
অতিরিক্তভাবে, মনে রাখবেন যে আপনার অ্যাপ বা গেমের targetSdkVersion
ব্যক্তিগত অ্যান্ড্রয়েড প্ল্যাটফর্ম লাইব্রেরিতে অ্যাক্সেস সীমাবদ্ধ করতে পারে; বিস্তারিত জানার জন্য প্ল্যাটফর্ম লাইব্রেরির সাথে লিঙ্ক করা NDK অ্যাপস দেখুন।
আপনি যে Android সাপোর্ট লাইব্রেরি ব্যবহার করছেন তার সংস্করণে বিদ্যমান থাকতে পারে এমন যেকোনো বিধিনিষেধও আপনার যাচাই করা উচিত। বরাবরের মতো, আপনাকে অবশ্যই Android সাপোর্ট লাইব্রেরির প্রধান সংস্করণ এবং আপনার অ্যাপের compileSdkVersion
মধ্যে সামঞ্জস্যতা নিশ্চিত করতে হবে।
আমরা সুপারিশ করছি যে আপনি সাপোর্ট লাইব্রেরির প্রধান সংস্করণের চেয়ে ছোট বা সমান একটি targetSdkVersion
বেছে নিন। সাম্প্রতিক সামঞ্জস্যপূর্ণ বৈশিষ্ট্য এবং বাগ ফিক্সের সুবিধা নেওয়ার জন্য আমরা আপনাকে একটি সাম্প্রতিক সামঞ্জস্যপূর্ণ সমর্থন লাইব্রেরিতে আপডেট করতে উত্সাহিত করি৷
আপনার অ্যাপ পরীক্ষা করুন
আপনি আপনার অ্যাপের API স্তর এবং উপযুক্ত বৈশিষ্ট্যগুলি আপডেট করার পরে, আপনার কিছু মূল ব্যবহারের ক্ষেত্রে পরীক্ষা করা উচিত। নিম্নলিখিত পরামর্শগুলি সম্পূর্ণ নয়, তবে আপনার পরীক্ষার প্রক্রিয়াকে গাইড করা লক্ষ্য করে। আমরা পরীক্ষা করার পরামর্শ দিই:
- যে আপনার অ্যাপটি এপিআই 29 এ কোন ত্রুটি বা সতর্কতা ছাড়াই কম্পাইল করে।
যে ক্ষেত্রে ব্যবহারকারী অনুমতির অনুরোধ প্রত্যাখ্যান করে এবং ব্যবহারকারীকে অনুমতির জন্য অনুরোধ করে সেই ক্ষেত্রে আপনার অ্যাপের একটি কৌশল রয়েছে। এটি করতে:
- আপনার অ্যাপের অ্যাপ তথ্য স্ক্রিনে যান এবং প্রতিটি অনুমতি অক্ষম করুন।
- অ্যাপটি খুলুন এবং কোন ক্র্যাশ নিশ্চিত করুন।
- মূল ব্যবহারের ক্ষেত্রে পরীক্ষা করুন এবং প্রয়োজনীয় অনুমতিগুলি পুনরায় অনুরোধ করা হয়েছে তা নিশ্চিত করুন।
প্রত্যাশিত ফলাফল এবং কোন ত্রুটি সহ Doze পরিচালনা করে।
- adb ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষা ডিভাইসটিকে Doze-এ রাখুন।
- ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলিকে ট্রিগার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন৷
- অ্যালার্ম বা চাকরি ব্যবহার করে এমন কোনো ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- ব্যাকগ্রাউন্ড পরিষেবার উপর কোন নির্ভরতা দূর করুন।
- অ্যাপ স্ট্যান্ডবাই-এ আপনার অ্যাপ সেট করুন
- ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলিকে ট্রিগার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন৷
- অ্যালার্ম ব্যবহার করে এমন কোনো ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- adb ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষা ডিভাইসটিকে Doze-এ রাখুন।
নতুন ছবি/ভিডিও তোলা হচ্ছে
- আপনার অ্যাপটি সীমাবদ্ধ
ACTION_NEW_PICTURE
এবংACTION_NEW_VIDEO
সম্প্রচার সঠিকভাবে পরিচালনা করে কিনা পরীক্ষা করুন (অর্থাৎ, JobScheduler চাকরিতে সরানো হয়েছে)। - এই ইভেন্টগুলির উপর নির্ভর করে এমন কোনও সমালোচনামূলক ব্যবহারের ক্ষেত্রে এখনও কাজ করে কিনা তা নিশ্চিত করুন।
- আপনার অ্যাপটি সীমাবদ্ধ
অন্য অ্যাপের সাথে ফাইল শেয়ারিং হ্যান্ডেল করে - অন্য কোনও অ্যাপের সাথে ফাইল ডেটা শেয়ার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন (এমনকি একই ডেভেলপারের দ্বারা অন্য কোনও অ্যাপ)
- পরীক্ষা করুন বিষয়বস্তু অন্য অ্যাপে দৃশ্যমান এবং ক্র্যাশ ট্রিগার করে না।
আরও তথ্য
Google Play কনসোলে ইমেলগুলি বেছে নিন যাতে আমরা আপনাকে Android এবং Google Play থেকে আমাদের মাসিক অংশীদার নিউজলেটার সহ গুরুত্বপূর্ণ আপডেট এবং ঘোষণা পাঠাতে পারি।
,আপনি যখন একটি APK আপলোড করবেন, তখন এটি অবশ্যই Google Play এর লক্ষ্য API স্তরের প্রয়োজনীয়তা পূরণ করবে।
31 আগস্ট 2024 থেকে শুরু হচ্ছে:
- নতুন অ্যাপ এবং অ্যাপ আপডেটগুলিকে অবশ্যই Android 14 (API লেভেল 34) বা উচ্চতরকে Google Play-তে জমা দিতে হবে; Wear OS এবং Android TV অ্যাপগুলি ব্যতীত, যেগুলি অবশ্যই Android 13 (API স্তর 33) বা উচ্চতরকে টার্গেট করবে৷
- বিদ্যমান অ্যাপগুলিকে অবশ্যই Android 13 (API লেভেল 33) বা উচ্চতর টার্গেট করতে হবে যাতে আপনার অ্যাপের টার্গেট API লেভেলের চেয়ে বেশি Android OS চালিত ডিভাইসগুলিতে নতুন ব্যবহারকারীদের জন্য উপলব্ধ থাকে। যে অ্যাপগুলি Android 12 (API লেভেল 31) বা তার নিচের (Android 10 (API লেভেল 29) বা Wear OS এবং Android 11 (API লেভেল 30) বা Android TV-এর জন্য কম, শুধুমাত্র Android OS চালিত ডিভাইসগুলিতে পাওয়া যাবে যেগুলি আপনার অ্যাপের টার্গেট API লেভেলের সমান বা তার চেয়ে কম।
আপনার অ্যাপ আপডেট করার জন্য আরও সময়ের প্রয়োজন হলে আপনি 1 নভেম্বর, 2024 পর্যন্ত এক্সটেনশনের অনুরোধ করতে পারবেন। আপনি এই বছরের শেষের দিকে Play Console-এ আপনার অ্যাপের এক্সটেনশন ফর্মগুলি অ্যাক্সেস করতে সক্ষম হবেন।
এই প্রয়োজনীয়তাগুলির ব্যতিক্রমগুলির মধ্যে রয়েছে:
- স্থায়ীভাবে ব্যক্তিগত অ্যাপ যা একটি নির্দিষ্ট প্রতিষ্ঠানের ব্যবহারকারীদের জন্য সীমাবদ্ধ এবং শুধুমাত্র অভ্যন্তরীণ বিতরণের উদ্দেশ্যে।
- অ্যাপ্লিকেশানগুলি যেগুলি Android Automotive OS কে লক্ষ্য করে বা Android Automotive OS কে লক্ষ্য করে APK সহ প্যাকেজ করা হয়৷
কেন নতুন SDK টার্গেট?
প্রতিটি নতুন অ্যান্ড্রয়েড সংস্করণ এমন পরিবর্তনগুলি প্রবর্তন করে যা নিরাপত্তা এবং কর্মক্ষমতা উন্নতি নিয়ে আসে এবং অ্যান্ড্রয়েড ব্যবহারকারীর অভিজ্ঞতা বাড়ায়৷ এই পরিবর্তনগুলির মধ্যে কিছু শুধুমাত্র সেই অ্যাপগুলির ক্ষেত্রে প্রযোজ্য যা স্পষ্টভাবে তাদের targetSdkVersion
ম্যানিফেস্ট অ্যাট্রিবিউটের মাধ্যমে সমর্থন ঘোষণা করে (এটি টার্গেট API স্তর হিসাবেও পরিচিত)৷
একটি সাম্প্রতিক API স্তর লক্ষ্য করার জন্য আপনার অ্যাপটি কনফিগার করা নিশ্চিত করে যে ব্যবহারকারীরা এই উন্নতিগুলি থেকে উপকৃত হতে পারেন, যখন আপনার অ্যাপ এখনও পুরানো Android সংস্করণে চলতে পারে। সাম্প্রতিক API স্তরকে লক্ষ্য করে আপনার অ্যাপটিকে আপনার ব্যবহারকারীদের খুশি করার জন্য প্ল্যাটফর্মের সর্বশেষ বৈশিষ্ট্যগুলির সুবিধা নেওয়ার অনুমতি দেয়৷ উপরন্তু, অ্যান্ড্রয়েড 10 (এপিআই লেভেল 29) অনুসারে, ব্যবহারকারীরা একটি সতর্কতা দেখতে পান যখন তারা প্রথমবার একটি অ্যাপ চালু করেন যদি অ্যাপটি Android 5.1 (API স্তর 22) বা তার নিচের দিকে লক্ষ্য করে।
এই দস্তাবেজটি Google Play প্রয়োজনীয়তা পূরণের জন্য আপনার লক্ষ্য API স্তর আপডেট করার জন্য আপনার জানা দরকার এমন গুরুত্বপূর্ণ পয়েন্টগুলি হাইলাইট করে৷ আপনি কোন সংস্করণে স্থানান্তরিত হচ্ছেন তার উপর নির্ভর করে নিম্নলিখিত বিভাগে নির্দেশাবলী দেখুন।
Android 12 এবং উচ্চতর (API স্তর 31) থেকে আরও সাম্প্রতিক সংস্করণে স্থানান্তর করুন
অ্যান্ড্রয়েডের আরও সাম্প্রতিক সংস্করণ লক্ষ্য করতে আপনার অ্যাপ আপডেট করতে, প্রাসঙ্গিক আচরণ পরিবর্তনের তালিকা অনুসরণ করুন:
- অ্যান্ড্রয়েড 13 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 14 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 15 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 16 আচরণ পরিবর্তন
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
এর আচরণের সাথে প্রায় অভিন্ন। - অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণের পরিবর্তন : অ্যান্ড্রয়েড অ্যাপ লিঙ্ক যাচাইকরণ ব্যবহার করার সময়, নিশ্চিত করুন যে আপনার অভিপ্রায় ফিল্টারগুলি ব্রাউজযোগ্য বিভাগ অন্তর্ভুক্ত করে এবং HTTPS স্কিম সমর্থন করে।
কর্মক্ষমতা
ফোরগ্রাউন্ড পরিষেবা লঞ্চ বিধিনিষেধ : Android 12 বা উচ্চতরকে টার্গেট করতে, কিছু বিশেষ ক্ষেত্রে ছাড়া আপনার অ্যাপটি ব্যাকগ্রাউন্ডে চলাকালীন ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে পারে না। যদি একটি অ্যাপ ব্যাকগ্রাউন্ডে চলাকালীন একটি ফোরগ্রাউন্ড পরিষেবা শুরু করার চেষ্টা করে, একটি ব্যতিক্রম ঘটে (কিছু বিশেষ ক্ষেত্রে বাদে)।
আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলাকালীন সময়সূচী করতে এবং দ্রুত কাজ শুরু করতে WorkManager ব্যবহার করার কথা বিবেচনা করুন। ব্যবহারকারীর অনুরোধ করা সময়-সংবেদনশীল ক্রিয়াগুলি সম্পূর্ণ করতে, একটি সঠিক অ্যালার্মের মধ্যে ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করুন।
নোটিফিকেশন ট্রামপোলিন সীমাবদ্ধতা : যখন ব্যবহারকারীরা বিজ্ঞপ্তিতে ট্যাপ করে, তখন কিছু অ্যাপ একটি অ্যাপ কম্পোনেন্ট লঞ্চ করে সাড়া দেয় যা ব্যবহারকারী দেখেন এবং ইন্টারঅ্যাক্ট করে এমন কার্যকলাপ শুরু করে। এই অ্যাপ কম্পোনেন্টটি নোটিফিকেশন ট্রামপোলিন নামে পরিচিত।
অ্যাপ্লিকেশানগুলি পরিষেবা বা সম্প্রচার রিসিভার থেকে কার্যকলাপ শুরু করা উচিত নয় যা বিজ্ঞপ্তি ট্রাম্পোলাইন হিসাবে ব্যবহৃত হয়। কোনও ব্যবহারকারী বিজ্ঞপ্তির মধ্যে একটি বিজ্ঞপ্তি বা অ্যাকশন বোতামে ট্যাপ করার পরে, আপনার অ্যাপটি কোনও পরিষেবা বা ব্রডকাস্ট রিসিভারের ভিতরে
startActivity()
কল করতে পারে না।
Android 12 (API স্তর 31) টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন পরিবর্তনগুলির সম্পূর্ণ সেট দেখুন৷
অ্যান্ড্রয়েড 11 (API লেভেল 30) এর চেয়ে কম থেকে মাইগ্রেট করুন
Android এর যে সংস্করণ থেকে আপনি স্থানান্তরিত হবেন সেটি নির্বাচন করুন:
Android 5 এ স্থানান্তর করুন (API স্তর 21)
আপনার অ্যাপ এই রিলিজে প্রবর্তিত পরিবর্তনগুলির জন্য দায়ী কিনা তা নিশ্চিত করতে নিম্নলিখিত প্রতিটি রিলিজের জন্য সংশ্লিষ্ট আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন:
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 6 (API স্তর 23) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 6.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
বিপজ্জনক অনুমতি শুধুমাত্র রানটাইমে দেওয়া হয়. এই অনুমতিগুলি দেওয়ার জন্য আপনার UI ফ্লোকে অবশ্যই সামর্থ্য প্রদান করতে হবে।
যেখানেই সম্ভব, নিশ্চিত করুন যে আপনার অ্যাপটি অনুমতির অনুরোধ প্রত্যাখ্যান করার জন্য প্রস্তুত রয়েছে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী ডিভাইসের জিপিএস অ্যাক্সেস করার অনুরোধ প্রত্যাখ্যান করেন, তবে নিশ্চিত করুন যে আপনার অ্যাপটি এগিয়ে যাওয়ার অন্য উপায় আছে।
Android 6.0 (API স্তর 23) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 7 (API স্তর 24) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 7.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
ডোজ এবং অ্যাপ স্ট্যান্ডবাই
অপ্টিমাইজিং ফর ডোজ এবং অ্যাপ স্ট্যান্ডবাই- এ বর্ণিত আচরণের জন্য ডিজাইন, যা বিভিন্ন প্ল্যাটফর্ম রিলিজ জুড়ে প্রবর্তিত ক্রমবর্ধমান পরিবর্তনগুলিকে অন্তর্ভুক্ত করে।
যখন একটি ডিভাইস ডোজ এবং অ্যাপ স্ট্যান্ডবাই মোডে থাকে, তখন সিস্টেমটি নিম্নরূপ আচরণ করে:
- নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধ করে
- অ্যালার্ম, সিঙ্ক এবং কাজ স্থগিত করে
- GPS এবং Wi-Fi স্ক্যান সীমাবদ্ধ করে
- সাধারণ-অগ্রাধিকার Firebase ক্লাউড মেসেজিং বার্তা সীমাবদ্ধ করে।
অনুমতি পরিবর্তন
- সিস্টেমটি অ্যাপের ব্যক্তিগত ডিরেক্টরিতে অ্যাক্সেস সীমাবদ্ধ করে।
- আপনার অ্যাপের বাইরে একটি
file://
URI প্রকাশ করলে একটিFileUriExposedException
ট্রিগার হয়। আপনার অ্যাপের বাইরে ফাইল শেয়ার করার প্রয়োজন হলে,FileProvider
প্রয়োগ করুন
সিস্টেমটি নন-এনডিকে লাইব্রেরির সাথে লিঙ্ক করা নিষিদ্ধ করে ।
Android 7.0 (API স্তর 24) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
Android 8 (API স্তর 26) এ স্থানান্তরিত করুন
নিম্নলিখিত বিবেচনাগুলি Android 8.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য:
- ব্যাকগ্রাউন্ড এক্সিকিউশন লিমিট
- সিস্টেমটি অগ্রভাগে চলমান না এমন অ্যাপগুলির জন্য পরিষেবাগুলিকে সীমাবদ্ধ করে৷
-
startService()
এখন একটি ব্যতিক্রম ছুঁড়ে দেয় যখন একটি অ্যাপ এটি চালু করার চেষ্টা করে যখনstartService()
নিষিদ্ধ থাকে। - ফোরগ্রাউন্ড পরিষেবাগুলি শুরু করতে, একটি অ্যাপকে অবশ্যই
startForeground()
এবংstartForegroundService()
ব্যবহার করতে হবে। - Android 8.0 (API স্তর 26) আচরণ পরিবর্তন পৃষ্ঠায় নথিভুক্ত হিসাবে JobScheduler API-তে করা পরিবর্তনগুলি সাবধানতার সাথে পর্যালোচনা করুন।
- Firebase ক্লাউড মেসেজিং এর জন্য Google Play পরিষেবা SDK এর 10.2.1 সংস্করণ বা উচ্চতর সংস্করণ প্রয়োজন৷
- Firebase ক্লাউড মেসেজিং ব্যবহার করার সময়, বার্তা বিতরণ ব্যাকগ্রাউন্ড এক্সিকিউশন সীমা সাপেক্ষে। যখন বার্তা প্রাপ্তির পরে ব্যাকগ্রাউন্ডের কাজ করা প্রয়োজন, যেমন ব্যাকগ্রাউন্ড ডেটা সিঙ্ক করার জন্য, আপনার অ্যাপের পরিবর্তে Firebase জব ডিসপ্যাচার বা JobIntentService ব্যবহার করে কাজের সময় নির্ধারণ করা উচিত। আরও তথ্যের জন্য, ফায়ারবেস ক্লাউড মেসেজিং ডকুমেন্টেশন দেখুন।
-
- অন্তর্নিহিত সম্প্রচার
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনার বিষয়ে তথ্যের জন্য,
JobScheduler
API-এর ডকুমেন্টেশন দেখুন।
- অন্তর্নিহিত সম্প্রচার সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্ট পরিচালনার বিষয়ে তথ্যের জন্য,
- পটভূমি অবস্থান সীমা
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলির অবস্থান ডেটাতে সীমিত অ্যাক্সেস রয়েছে৷
- Google Play পরিষেবা সহ ডিভাইসগুলিতে, পর্যায়ক্রমিক অবস্থান আপডেট পেতে ফিউজড অবস্থান প্রদানকারী ব্যবহার করুন৷
- ব্যাকগ্রাউন্ডে চলমান অ্যাপগুলির অবস্থান ডেটাতে সীমিত অ্যাক্সেস রয়েছে৷
- সিস্টেমটি অগ্রভাগে চলমান না এমন অ্যাপগুলির জন্য পরিষেবাগুলিকে সীমাবদ্ধ করে৷
- বিজ্ঞপ্তি চ্যানেল
- আপনার প্রতি-চ্যানেল ভিত্তিতে বিজ্ঞপ্তি বাধা বৈশিষ্ট্য সংজ্ঞায়িত করা উচিত।
- বিজ্ঞপ্তিগুলি প্রদর্শিত হওয়ার জন্য আপনাকে অবশ্যই একটি চ্যানেলে বিজ্ঞপ্তিগুলি বরাদ্দ করতে হবে৷
- প্ল্যাটফর্মের এই সংস্করণটি
NotificationCompat.Builder
সমর্থন করে।
- গোপনীয়তা
- অ্যাপ্লিকেশান সাইনিং কী প্রতি ANDROID_ID স্কোপ করা হয়েছে৷
অ্যান্ড্রয়েড 8.0 (API স্তর 26) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তন পৃষ্ঠাটি দেখুন।
Android 8 (API 26) থেকে Android 9 (API 28) এ স্থানান্তরিত করুন
- পাওয়ার ম্যানেজমেন্ট
- অ্যাপ স্ট্যান্ডবাই বাকেট অ্যাপের ব্যস্ততার উপর ভিত্তি করে নতুন ব্যাকগ্রাউন্ড সীমাবদ্ধতা নিয়ে আসে, যেমন বিলম্বিত চাকরি, অ্যালার্ম এবং উচ্চ-অগ্রাধিকার বার্তাগুলিতে কোটা
- ব্যাটারি সেভারের উন্নতি অ্যাপ স্ট্যান্ডবাই অ্যাপের সীমাবদ্ধতা বাড়ায়
- ফোরগ্রাউন্ড পরিষেবা অনুমতি
- স্বাভাবিক অনুমতির জন্য অনুরোধ করতে হবে
FOREGROUND_SERVICE
(রানটাইম অনুমতি নয়)
- স্বাভাবিক অনুমতির জন্য অনুরোধ করতে হবে
- গোপনীয়তা পরিবর্তন
- পটভূমি সেন্সর সীমিত অ্যাক্সেস
- কল লগগুলিতে সীমাবদ্ধ অ্যাক্সেস, এখন
CALL_LOG
অনুমতি গোষ্ঠীতে৷ - ফোন নম্বরগুলিতে সীমাবদ্ধ অ্যাক্সেস,
READ_CALL_LOG
অনুমতির প্রয়োজন৷ - Wi-Fi তথ্যে সীমাবদ্ধ অ্যাক্সেস
Android 9.0 (API স্তর 28) এ প্রবর্তিত পরিবর্তনগুলির একটি সম্পূর্ণ তালিকার জন্য, আচরণের পরিবর্তনগুলি দেখুন।
Android 9 (API স্তর 28) থেকে Android 10 (API স্তর 29) এ স্থানান্তরিত করুন
- একটি পূর্ণ-স্ক্রীন অভিপ্রায় সঙ্গে বিজ্ঞপ্তি
- স্বাভাবিক অনুমতির অনুরোধ করতে হবে
USE_FULL_SCREEN_INTENT
(রানটাইম অনুমতি নয়)।
- স্বাভাবিক অনুমতির অনুরোধ করতে হবে
- ফোল্ডেবল এবং বড় পর্দার ডিভাইসগুলির জন্য সমর্থন
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে, তবে শুধুমাত্র একটিরই ফোকাস রয়েছে৷
- এই পরিবর্তনটি
onResume()
এবংonPause()
আচরণকে প্রভাবিত করে। - "টপমোস্ট রিজুমেড" এর নতুন লাইফসাইকেল ধারণা যা
onTopResumedActivityChanged()
এ সদস্যতা নেওয়ার মাধ্যমে সনাক্ত করা যেতে পারে।- শুধুমাত্র একটি কার্যকলাপ "সর্বোচ্চ পুনঃসূচনা" হতে পারে।
- এই পরিবর্তনটি
-
resizeableActivity
false
সেট করা হলে, অ্যাপগুলি অতিরিক্ত একটিminAspectRatio
নির্দিষ্ট করতে পারে যা স্বয়ংক্রিয়ভাবে অ্যাপটিকে সংকীর্ণ অনুপাতের লেটারবক্স করে।
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে, তবে শুধুমাত্র একটিরই ফোকাস রয়েছে৷
- গোপনীয়তা পরিবর্তন
- স্কোপড স্টোরেজ
- বাহ্যিক সঞ্চয়স্থান অ্যাক্সেস শুধুমাত্র একটি অ্যাপ-নির্দিষ্ট ডিরেক্টরিতে এবং অ্যাপটি তৈরি করা নির্দিষ্ট ধরনের মিডিয়াতে সীমাবদ্ধ।
- অ্যাপ্লিকেশানটি ব্যাকগ্রাউন্ডে থাকাকালীন অবস্থানে সীমাবদ্ধ অ্যাক্সেস,
ACCESS_BACKGROUND_LOCATION
অনুমতির প্রয়োজন৷ - IMEI এবং সিরিয়াল নম্বরের মতো নন-রিসেটযোগ্য শনাক্তকারীগুলিতে সীমাবদ্ধ অ্যাক্সেস।
-
ACTIVITY_RECOGNITION
অনুমতির প্রয়োজন, ব্যবহারকারীর ধাপ সংখ্যার মতো শারীরিক কার্যকলাপের তথ্যে সীমাবদ্ধ অ্যাক্সেস। - কিছু টেলিফোনি, ব্লুটুথ, এবং ওয়াই-ফাই API- এ সীমাবদ্ধ অ্যাক্সেসের জন্য
ACCESS_FINE_LOCATION
অনুমতি প্রয়োজন৷ - Wi-Fi সেটিংসে সীমাবদ্ধ অ্যাক্সেস
- অ্যাপগুলি আর সরাসরি Wi-Fi সক্ষম বা অক্ষম করতে পারে না এবং সেটিংস প্যানেল ব্যবহার করে এটি করতে হবে৷
- একটি Wi-Fi নেটওয়ার্কের সাথে একটি সংযোগ শুরু করার উপর বিধিনিষেধ, যার জন্য
WifiNetworkSpecifier
বাWifiNetworkSuggestion
ব্যবহার করা প্রয়োজন৷
- স্কোপড স্টোরেজ
Android 10 (API স্তর 29) থেকে Android 11 (API স্তর 30) এ স্থানান্তরিত করুন
- গোপনীয়তা
- স্কোপড স্টোরেজ এনফোর্সমেন্ট : অ্যাপগুলিকে স্কোপড স্টোরেজ মডেল গ্রহণ করা উচিত যেখানে অ্যাপ-নির্দিষ্ট, মিডিয়া এবং অন্যান্য ফাইলের ধরনগুলি ডেডিকেটেড অবস্থানগুলি ব্যবহার করে সংরক্ষণ এবং অ্যাক্সেস করা হয়।
- অনুমতি স্বয়ংক্রিয়-রিসেট : ব্যবহারকারীরা কয়েক মাস ধরে কোনও অ্যাপের সাথে ইন্টারঅ্যাক্ট না করলে, সিস্টেমটি অ্যাপের সংবেদনশীল অনুমতিগুলি স্বয়ংক্রিয়ভাবে পুনরায় সেট করে। এটি বেশিরভাগ অ্যাপকে প্রভাবিত করবে না। যদি আপনার অ্যাপটি প্রাথমিকভাবে ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়াই ব্যাকগ্রাউন্ডে কাজ করে, তাহলে আপনি ব্যবহারকারীদের স্বয়ংক্রিয় রিসেট অক্ষম করার অনুরোধ বিবেচনা করতে পারেন।
- ব্যাকগ্রাউন্ড লোকেশন অ্যাক্সেস : অ্যাপগুলিকে অবশ্যই ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড লোকেশনের অনুমতির জন্য আলাদাভাবে অনুরোধ করতে হবে। ব্যাকগ্রাউন্ড লোকেশন অনুমতিতে অ্যাক্সেস দেওয়া রানটাইম অনুমতি ডায়ালগের পরিবর্তে শুধুমাত্র অ্যাপ সেটিংসে করা যেতে পারে ।
- প্যাকেজ দৃশ্যমানতা : যখন কোনো অ্যাপ ডিভাইসে ইনস্টল করা অ্যাপ এবং পরিষেবার তালিকার জন্য জিজ্ঞাসা করে, ফিরে আসা তালিকা ফিল্টার করা হয়।
- আপনি যদি টেক্সট-টু-স্পিচ বা স্পিচ রিকগনিশন পরিষেবা ব্যবহার করেন, তাহলে আপনাকে ম্যানিফেস্ট ফাইলে পরিষেবার জন্য প্রশ্নের উপাদান যোগ করতে হবে।
- নিরাপত্তা
- সংকুচিত `resource.arsc` ফাইল আর সমর্থিত নয়
- এপিকে স্বাক্ষর স্কিম ভি 2 এখন প্রয়োজন। পশ্চাদপদ সামঞ্জস্যতার কারণে, বিকাশকারীদেরও এপিকে স্বাক্ষর স্কিম ভি 1 এর সাথে সাইন ইন করা উচিত।
- নন-এসডিকে ইন্টারফেস সীমাবদ্ধতা। নন-এসডিকে ইন্টারফেসগুলি ব্যবহার করার জন্য এপিআই স্তর 30 লক্ষ্য করে অ্যাপ্লিকেশনগুলির জন্য সুপারিশ করা হয় না, কারণ এই নন-এসডিকে ইন্টারফেসগুলির কয়েকটি এখন অবরুদ্ধ রয়েছে। অবরুদ্ধ নন-এসডিকে ইন্টারফেসগুলির একটি বিস্তৃত তালিকার জন্য অ-এসডিকে ইন্টারফেসগুলি দেখুন যা এখন অ্যান্ড্রয়েড 11 এ অবরুদ্ধ রয়েছে ।
অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) এ প্রবর্তিত পরিবর্তনের বিস্তৃত তালিকার জন্য, আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পূর্ববর্তী বিভাগের নির্দেশাবলী অনুসরণ করে এপিআই 31 এ আপডেট করা চালিয়ে যান।
আপনার অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণ করুন
আপনি আপনার অ্যাপ্লিকেশনগুলির জন্য লক্ষ্য এপিআই স্তর আপডেট করার সাথে সাথে আপনার অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণ করতে এবং আপনার ব্যবহারকারীদের আনন্দিত করতে সাম্প্রতিক প্ল্যাটফর্ম বৈশিষ্ট্যগুলি গ্রহণ করার বিষয়টি বিবেচনা করুন।
- ক্যামেরাটি ব্যবহার করার জন্য সর্বাধিক তৈরি করার জন্য বিটাতে থাকা ক্যামেরাক্স ব্যবহার করার বিষয়টি বিবেচনা করুন।
- আপনাকে সেরা অনুশীলনগুলি অনুসরণ করতে, আপনাকে বয়লারপ্লেট কোড লিখতে মুক্ত করতে এবং জটিল কাজগুলি সহজতর করতে সহায়তা করার জন্য জেটপ্যাক উপাদানগুলি ব্যবহার করুন যাতে আপনি আপনার যত্ন নেওয়া কোডটিতে মনোনিবেশ করতে পারেন।
- আরও ভাল অ্যাপ্লিকেশনগুলি দ্রুত এবং কম কোড সহ লিখতে কোটলিন ব্যবহার করুন।
- আপনি গোপনীয়তার প্রয়োজনীয়তা এবং সেরা অনুশীলনগুলি অনুসরণ করছেন তা নিশ্চিত করুন।
- আপনার অ্যাপ্লিকেশনগুলিতে ডার্ক থিম সমর্থন যুক্ত করুন।
- আপনার অ্যাপ্লিকেশনগুলিতে অঙ্গভঙ্গি নেভিগেশন সমর্থন যুক্ত করুন।
- গুগল ক্লাউড মেসেজিং (জিসিএম) থেকে আপনার অ্যাপ্লিকেশনটি ফায়ারবেস ক্লাউড মেসেজিংয়ের সর্বশেষ সংস্করণে স্থানান্তর করুন ।
- উন্নত উইন্ডো পরিচালনার সুবিধা নিন।
- হার্ডওয়্যারে সাম্প্রতিক অগ্রগতির সুবিধা নিতে বৃহত্তর দিক অনুপাত (16: 9 এরও বেশি) সমর্থন করুন। নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি উপলব্ধ স্ক্রিনের স্থানটি পূরণ করতে পুনরায় পরিবর্তন করে। কেবলমাত্র শেষ রিসর্ট হিসাবে সর্বাধিক দিক অনুপাত ঘোষণা করুন। সর্বাধিক দিক অনুপাত সম্পর্কে আরও তথ্যের জন্য, সীমাবদ্ধ স্ক্রিন সমর্থন ঘোষণা করুন ।
- আপনার অ্যাপ্লিকেশনটিকে উত্পাদনশীলতা বাড়াতে এবং একাধিক প্রদর্শন পরিচালনা করতে মাল্টি-উইন্ডো সমর্থন যুক্ত করুন।
- যদি একটি দুর্দান্ত ন্যূনতম অ্যাপ্লিকেশন অভিজ্ঞতা ব্যবহারকারীর অভিজ্ঞতা উন্নত করে তবে চিত্র-ইন-চিত্রের জন্য সমর্থন যুক্ত করুন।
- ডিসপ্লে কাটআউট সহ ডিভাইসগুলির জন্য অনুকূলিত করুন।
- স্থিতি বারের উচ্চতা ধরে রাখবেন না। পরিবর্তে,
WindowInsets
এবংView.OnApplyWindowInsetsListener
ব্যবহার করুন। আরও জানতে, ড্রয়েডকন এনওয়াইসি 2017 ভিডিওটি দেখুন। একটি ব্যাখ্যা জন্য - অনুমান করবেন না যে অ্যাপটিতে পুরো উইন্ডোটি রয়েছে। পরিবর্তে,
View.getLocationInWindow()
ব্যবহার করে এর অবস্থানটি নিশ্চিত করুন,View.getLocationOnScreen()
নয়। *MotionEvent
হ্যান্ডলিং করার সময়,MotionEvent.getX()
এবংMotionEvent.getY()
ব্যবহার করুন,MotionEvent.getRawX()
,MotionEvent.getRawY()
নয়।
আপনার এসডিকে এবং গ্রন্থাগারগুলি পরীক্ষা করুন এবং আপডেট করুন
নিশ্চিত হয়ে নিন যে আপনার তৃতীয় পক্ষের এসডিকে নির্ভরতাগুলি এপিআই 31 সমর্থন করে: কিছু এসডিকে সরবরাহকারী এটি তাদের প্রকাশ্যে প্রকাশ করে; অন্যদের অতিরিক্ত তদন্তের প্রয়োজন হবে। আপনি যদি এমন কোনও এসডিকে ব্যবহার করেন যা এপিআই 31 সমর্থন করে না, তবে সমস্যা সমাধানের জন্য এসডিকে সরবরাহকারীর সাথে কাজ করা একটি অগ্রাধিকার দিন।
অতিরিক্তভাবে, নোট করুন যে আপনার অ্যাপ্লিকেশন বা গেমের targetSdkVersion
বেসরকারী অ্যান্ড্রয়েড প্ল্যাটফর্ম লাইব্রেরিতে অ্যাক্সেসকে সীমাবদ্ধ করতে পারে; বিশদের জন্য প্ল্যাটফর্ম লাইব্রেরিতে সংযুক্ত এনডিকে অ্যাপ্লিকেশনগুলি দেখুন।
আপনি যে অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির সংস্করণটি ব্যবহার করছেন তার সংস্করণে থাকতে পারে এমন কোনও বিধিনিষেধগুলিও যাচাই করা উচিত। সর্বদা হিসাবে, আপনাকে অবশ্যই অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির প্রধান সংস্করণ এবং আপনার অ্যাপ্লিকেশনটির compileSdkVersion
মধ্যে সামঞ্জস্যতা নিশ্চিত করতে হবে।
আমরা আপনাকে সুপারিশ করি যে আপনি সমর্থন লাইব্রেরির প্রধান সংস্করণের চেয়ে ছোট বা সমান একটি targetSdkVersion
চয়ন করুন। সর্বশেষতম সামঞ্জস্যতা বৈশিষ্ট্য এবং বাগ ফিক্সগুলির সুবিধা নিতে আমরা আপনাকে সাম্প্রতিক সামঞ্জস্যপূর্ণ সমর্থন লাইব্রেরিতে আপডেট করতে উত্সাহিত করি।
আপনার অ্যাপ পরীক্ষা করুন
আপনি আপনার অ্যাপ্লিকেশনটির এপিআই স্তর এবং বৈশিষ্ট্যগুলি যথাযথ হিসাবে আপডেট করার পরে, আপনার কিছু মূল ব্যবহারের ক্ষেত্রে পরীক্ষা করা উচিত। নিম্নলিখিত পরামর্শগুলি সম্পূর্ণ নয়, তবে আপনার পরীক্ষার প্রক্রিয়াটি গাইড করার লক্ষ্য। আমরা পরীক্ষার পরামর্শ দিই:
- আপনার অ্যাপ্লিকেশনটি ত্রুটি বা সতর্কতা ছাড়াই 29 এপিআইতে সংকলন করে।
আপনার অ্যাপ্লিকেশনটির ক্ষেত্রে এমন একটি কৌশল রয়েছে যেখানে ব্যবহারকারী অনুমতি অনুরোধগুলি প্রত্যাখ্যান করে এবং ব্যবহারকারীকে অনুমতিের জন্য অনুরোধ করে। এটি করতে:
- আপনার অ্যাপের অ্যাপ্লিকেশন তথ্য স্ক্রিনে যান এবং প্রতিটি অনুমতি অক্ষম করুন।
- অ্যাপটি খুলুন এবং কোনও ক্র্যাশ নিশ্চিত করুন না।
- মূল ব্যবহারের কেস টেস্টগুলি সম্পাদন করুন এবং প্রয়োজনীয় অনুমতিগুলি পুনরায় প্রচারিত হয়েছে তা নিশ্চিত করুন।
প্রত্যাশিত ফলাফল এবং কোনও ত্রুটি সহ ডোজকে পরিচালনা করে।
- এডিবি ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষার ডিভাইসটি ডোজে রাখুন।
- যে কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলি ট্রিগার করে।
- অ্যালার্ম বা কাজ ব্যবহার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- ব্যাকগ্রাউন্ড পরিষেবাগুলিতে যে কোনও নির্ভরতা দূর করুন।
- আপনার অ্যাপটি অ্যাপ স্ট্যান্ডবাইতে সেট করুন
- যে কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলি ট্রিগার করে।
- অ্যালার্ম ব্যবহার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- এডিবি ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষার ডিভাইসটি ডোজে রাখুন।
নতুন ছবি / ভিডিও নেওয়া হচ্ছে হ্যান্ডেলগুলি
- আপনার অ্যাপ্লিকেশনটি সীমাবদ্ধ
ACTION_NEW_PICTURE
এবংACTION_NEW_VIDEO
সম্প্রচারগুলি সঠিকভাবে পরিচালনা করে কিনা তা পরীক্ষা করে দেখুন (এটি হ'ল জবসচেডুলার জবসে স্থানান্তরিত)। - নিশ্চিত করুন যে এই ইভেন্টগুলির উপর নির্ভর করে এমন কোনও সমালোচনামূলক ব্যবহারের ক্ষেত্রে এখনও কাজ করে।
- আপনার অ্যাপ্লিকেশনটি সীমাবদ্ধ
অন্যান্য অ্যাপ্লিকেশনগুলিতে ফাইলগুলি ভাগ করে নেওয়া ফাইলগুলি পরিচালনা করুন - অন্য কোনও অ্যাপ্লিকেশন (একই বিকাশকারী দ্বারা অন্য অ্যাপ্লিকেশন এমনকি অন্য অ্যাপ্লিকেশন) এর সাথে ফাইলের ডেটা ভাগ করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন
- অন্যান্য অ্যাপ্লিকেশনটিতে সামগ্রীটি দৃশ্যমান এবং ক্র্যাশগুলি ট্রিগার করে না তা পরীক্ষা করুন।
আরও তথ্য
গুগল প্লে কনসোলে ইমেলগুলি বেছে নিন যাতে আমরা আপনাকে আমাদের মাসিক অংশীদার নিউজলেটার সহ অ্যান্ড্রয়েড এবং গুগল প্লে থেকে গুরুত্বপূর্ণ আপডেট এবং ঘোষণাগুলি প্রেরণ করতে পারি।
,আপনি যখন কোনও এপিকে আপলোড করেন, এটি অবশ্যই গুগল প্লে এর টার্গেট এপিআই স্তরের প্রয়োজনীয়তাগুলি পূরণ করতে হবে।
আগস্ট 31 2024 থেকে শুরু হচ্ছে:
- নতুন অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশন আপডেটগুলি অবশ্যই গুগল প্লেতে জমা দেওয়ার জন্য অ্যান্ড্রয়েড 14 (এপিআই স্তর 34) বা তার বেশি টার্গেট করতে হবে; ওএস এবং অ্যান্ড্রয়েড টিভি অ্যাপ্লিকেশন পরিধান বাদে, যা অবশ্যই অ্যান্ড্রয়েড 13 (এপিআই স্তর 33) বা উচ্চতর লক্ষ্য করতে হবে।
- বিদ্যমান অ্যাপ্লিকেশনগুলিকে অবশ্যই অ্যান্ড্রয়েড 13 (এপিআই স্তর 33) বা তার বেশি লক্ষ্য করতে হবে আপনার অ্যাপের টার্গেট এপিআই স্তরের চেয়ে বেশি চালিত অ্যান্ড্রয়েড ওএসের চালানো ডিভাইসে নতুন ব্যবহারকারীদের কাছে উপলব্ধ থাকতে হবে। অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা লোয়ার (অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) বা ওয়েয়ার ওএস এবং অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) বা অ্যান্ড্রয়েড টিভির জন্য কম) এর জন্য লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলি কেবলমাত্র আপনার অ্যাপের টার্গেট এপিআই স্তরের চেয়ে একই বা কম থাকা ডিভাইসগুলিতে উপলব্ধ থাকবে।
আপনার অ্যাপ্লিকেশন আপডেট করার জন্য যদি আপনার আরও সময় প্রয়োজন হয় তবে আপনি 1 নভেম্বর, 2024 এ এক্সটেনশনের জন্য অনুরোধ করতে সক্ষম হবেন। আপনি এই বছরের শেষের দিকে প্লে কনসোলে আপনার অ্যাপের এক্সটেনশন ফর্মগুলি অ্যাক্সেস করতে সক্ষম হবেন।
এই প্রয়োজনীয়তার ব্যতিক্রমগুলির মধ্যে রয়েছে:
- স্থায়ীভাবে ব্যক্তিগত অ্যাপ্লিকেশনগুলি যা একটি নির্দিষ্ট সংস্থার ব্যবহারকারীদের মধ্যে সীমাবদ্ধ এবং কেবল অভ্যন্তরীণ বিতরণের উদ্দেশ্যে।
- অ্যাপ্লিকেশনগুলি যা অ্যান্ড্রয়েড অটোমোটিভ ওএসকে লক্ষ্য করে, বা অ্যান্ড্রয়েড অটোমোটিভ ওএসকে টার্গেট করে এপিকে দিয়ে প্যাকেজ করা হয়।
কেন নতুন এসডিকে লক্ষ্য?
প্রতিটি নতুন অ্যান্ড্রয়েড সংস্করণ এমন পরিবর্তনগুলি পরিচয় করিয়ে দেয় যা সুরক্ষা এবং কর্মক্ষমতা উন্নতি নিয়ে আসে এবং অ্যান্ড্রয়েড ব্যবহারকারীর অভিজ্ঞতা বাড়ায়। এর মধ্যে কয়েকটি পরিবর্তন কেবল এমন অ্যাপ্লিকেশনগুলিতে প্রযোজ্য যা তাদের targetSdkVersion
ম্যানিফেস্ট অ্যাট্রিবিউট (লক্ষ্য এপিআই স্তর হিসাবেও পরিচিত) এর মাধ্যমে স্পষ্টভাবে সমর্থন ঘোষণা করে।
সাম্প্রতিক এপিআই স্তরকে লক্ষ্য করার জন্য আপনার অ্যাপ্লিকেশনটি কনফিগার করা নিশ্চিত করে যে ব্যবহারকারীরা এই উন্নতিগুলি থেকে উপকৃত হতে পারে, অন্যদিকে আপনার অ্যাপ্লিকেশনটি এখনও পুরানো অ্যান্ড্রয়েড সংস্করণগুলিতে চলতে পারে। সাম্প্রতিক এপিআই স্তরকে লক্ষ্য করে আপনার অ্যাপ্লিকেশনটিকে আপনার ব্যবহারকারীদের আনন্দিত করার জন্য প্ল্যাটফর্মের সর্বশেষ বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়। তদ্ব্যতীত, অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) হিসাবে, ব্যবহারকারীরা যখন প্রথমবারের জন্য একটি অ্যাপ্লিকেশন শুরু করে যখন অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 5.1 (এপিআই স্তর 22) বা তার চেয়ে কম লক্ষ্য করে।
এই দস্তাবেজটি গুগল প্লে প্রয়োজনীয়তা পূরণের জন্য আপনার লক্ষ্য এপিআই স্তর আপডেট করার ক্ষেত্রে আপনার গুরুত্বপূর্ণ পয়েন্টগুলি হাইলাইট করে। আপনি কোন সংস্করণে স্থানান্তরিত করছেন তার উপর নির্ভর করে নিম্নলিখিত বিভাগগুলিতে নির্দেশাবলী দেখুন।
অ্যান্ড্রয়েড 12 এবং উচ্চতর (এপিআই স্তর 31) থেকে আরও সাম্প্রতিক সংস্করণে স্থানান্তরিত করুন
অ্যান্ড্রয়েডের আরও সাম্প্রতিক সংস্করণকে লক্ষ্য করতে আপনার অ্যাপ্লিকেশনটি আপডেট করতে, প্রাসঙ্গিক আচরণ পরিবর্তনগুলির তালিকা অনুসরণ করুন:
- অ্যান্ড্রয়েড 13 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 14 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 15 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 16 আচরণ পরিবর্তন
অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) থেকে অ্যান্ড্রয়েড 12 এ স্থানান্তরিত করুন (এপিআই স্তর 31)
নিরাপত্তা এবং অনুমতি
- ব্লুটুথ : আপনাকে
BLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
, বাBLUETOOTH_CONNECT
অনুমতিগুলির সাথেBLUETOOTH
এবংBLUETOOTH_ADMIN
অনুমতিগুলির জন্য ঘোষণাগুলি প্রতিস্থাপন করতে হবে। ব্লুটুথ অপারেশনগুলির জন্য আপনাকে আরLOCATION
রানটাইম অনুমতি অনুরোধ করার দরকার নেই। - অবস্থান: ব্যবহারকারীরা কেবলমাত্র আনুমানিক অবস্থানের তথ্য পুনরুদ্ধার করতে অ্যাপ্লিকেশনগুলির জন্য অনুরোধ করতে পারেন। আপনি যে কোনও সময়
ACCESS_FINE_LOCATION
অনুরোধ করার সময়ACCESS_COARSE_LOCATION
অনুমতিের জন্য আপনাকে অবশ্যই অনুরোধ করতে হবে।- ইন্টেন্ট ফিল্টার: যদি আপনার অ্যাপ্লিকেশনটিতে ক্রিয়াকলাপ , পরিষেবাগুলি বা সম্প্রচারিত রিসিভারগুলি থাকে যা ইন্টেন্ট ফিল্টার ব্যবহার করে তবে আপনাকে অবশ্যই স্পষ্টভাবে অ্যান্ড্রয়েড: এই উপাদানগুলির জন্য রফতানি বৈশিষ্ট্য ঘোষণা করতে হবে।
- হাইবারনেশন: অ্যাপ্লিকেশনগুলিকে যদি সময়ের সাথে সাথে ব্যবহার না করা হয় তবে হাইবারনেশন মোডে রাখা যেতে পারে। হাইবারনেশন মোডে আপনার অ্যাপ্লিকেশনটির রানটাইম অনুমতি এবং ক্যাশে পুনরায় সেট করা হয় এবং আপনি চাকরি বা সতর্কতা চালাতে পারবেন না। আপনি আপনার অ্যাপ্লিকেশনটির হাইবারনেশন স্থিতি পরীক্ষা করতে পারেন।
- মুলতুবি অভিপ্রায় পরিবর্তন : আপনার অ্যাপ্লিকেশনটি তৈরি করে এমন প্রতিটি পেন্ডিংইন্টেন্ট অবজেক্টের পরিবর্তনটি আপনাকে অবশ্যই নির্দিষ্ট করতে হবে।
ব্যবহারকারীর অভিজ্ঞতা
- কাস্টম বিজ্ঞপ্তি : কাস্টম বিষয়বস্তু ভিউ সহ বিজ্ঞপ্তিগুলি আর সম্পূর্ণ বিজ্ঞপ্তি অঞ্চল ব্যবহার করবে না; পরিবর্তে, সিস্টেমটি একটি স্ট্যান্ডার্ড টেম্পলেট প্রয়োগ করে। এই টেমপ্লেটটি নিশ্চিত করে যে কাস্টম বিজ্ঞপ্তিগুলি সমস্ত রাজ্যের অন্যান্য বিজ্ঞপ্তিগুলির মতো একই সজ্জা রয়েছে। এই আচরণটি
Notification.DecoratedCustomViewStyle
আচরণের সাথে প্রায় একই রকম। - অ্যান্ড্রয়েড অ্যাপ্লিকেশন লিঙ্কগুলি যাচাইকরণ পরিবর্তনগুলি : অ্যান্ড্রয়েড অ্যাপ্লিকেশন লিঙ্ক যাচাইকরণ ব্যবহার করার সময়, নিশ্চিত হয়ে নিন যে আপনার অভিপ্রায় ফিল্টারগুলি ব্রাউজযোগ্য বিভাগ অন্তর্ভুক্ত করেছে এবং এইচটিটিপিএস স্কিম সমর্থন করে।
কর্মক্ষমতা
ফোরগ্রাউন্ড সার্ভিস লঞ্চ বিধিনিষেধ : অ্যান্ড্রয়েড 12 বা উচ্চতর টার্গেট করতে, আপনার অ্যাপ্লিকেশনটি কয়েকটি বিশেষ কেস ব্যতীত পটভূমিতে চলাকালীন অগ্রভাগের পরিষেবাগুলি শুরু করতে পারে না। যদি কোনও অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে চলার সময় অগ্রভাগ পরিষেবা শুরু করার চেষ্টা করে তবে একটি ব্যতিক্রম ঘটে (কয়েকটি বিশেষ কেস বাদে)।
আপনার অ্যাপটি পটভূমিতে চলাকালীন সময় নির্ধারণ এবং তাত্ক্ষণিক কাজ শুরু করার জন্য ওয়ার্কম্যানেজার ব্যবহার করার বিষয়ে বিবেচনা করুন। ব্যবহারকারী অনুরোধ করে এমন সময়-সংবেদনশীল ক্রিয়াগুলি সম্পূর্ণ করতে, একটি সঠিক অ্যালার্মের মধ্যে অগ্রভাগ পরিষেবাগুলি শুরু করুন।
বিজ্ঞপ্তি ট্রামপোলিন বিধিনিষেধ : ব্যবহারকারীরা যখন বিজ্ঞপ্তিগুলি ট্যাপ করেন, কিছু অ্যাপ্লিকেশন একটি অ্যাপ্লিকেশন উপাদান চালু করে প্রতিক্রিয়া জানায় যা ব্যবহারকারী যে ক্রিয়াকলাপটি দেখেন এবং ইন্টারঅ্যাক্ট করে তা শুরু করে। এই অ্যাপ্লিকেশন উপাদানটি একটি বিজ্ঞপ্তি ট্রামপোলিন হিসাবে পরিচিত।
অ্যাপ্লিকেশনগুলি অবশ্যই পরিষেবাগুলি বা সম্প্রচারিত রিসিভারগুলি থেকে ক্রিয়াকলাপগুলি শুরু করবে না যা বিজ্ঞপ্তি ট্রাম্পোলাইন হিসাবে ব্যবহৃত হয়। কোনও ব্যবহারকারী বিজ্ঞপ্তির মধ্যে কোনও বিজ্ঞপ্তি বা অ্যাকশন বোতামে ট্যাপ করার পরে, আপনার অ্যাপ্লিকেশন কোনও পরিষেবা বা সম্প্রচার রিসিভারের অভ্যন্তরে
startActivity()
কল করতে পারে না।
অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) লক্ষ্য করে অ্যাপ্লিকেশনগুলিকে প্রভাবিত করে এমন পরিবর্তনগুলির সম্পূর্ণ সেটটি দেখুন।
অ্যান্ড্রয়েড 11 এর চেয়ে কম থেকে স্থানান্তরিত (এপিআই স্তর 30)
অ্যান্ড্রয়েডের সংস্করণটি নির্বাচন করুন আপনি থেকে স্থানান্তরিত হবেন:
অ্যান্ড্রয়েড 5 এ স্থানান্তরিত করুন (এপিআই স্তর 21)
আপনার অ্যাপ্লিকেশনটি এই রিলিজগুলিতে প্রবর্তিত পরিবর্তনের জন্য দায়বদ্ধ হয়েছে তা নিশ্চিত করার জন্য নিম্নলিখিত প্রতিটি রিলিজের জন্য সম্পর্কিত আচরণ পরিবর্তন পৃষ্ঠা দেখুন:
- অ্যান্ড্রয়েড 5.0 (এপিআই স্তর 21)
- অ্যান্ড্রয়েড 4.4 (এপিআই স্তর 19)
- অ্যান্ড্রয়েড 4.1.x (এপিআই স্তর 16) ।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 6 এ স্থানান্তরিত করুন (এপিআই স্তর 23)
অ্যান্ড্রয়েড 6.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
বিপজ্জনক অনুমতিগুলি কেবল রানটাইমে মঞ্জুর করা হয়। আপনার ইউআই প্রবাহকে অবশ্যই এই অনুমতিগুলি মঞ্জুর করার জন্য সাশ্রয়ী মূল্যের সরবরাহ করতে হবে।
যেখানেই সম্ভব, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশন অনুমতি অনুরোধগুলির প্রত্যাখ্যান পরিচালনা করতে প্রস্তুত রয়েছে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী ডিভাইসের জিপিএস অ্যাক্সেস করার জন্য কোনও অনুরোধ প্রত্যাখ্যান করে তবে নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটিতে এগিয়ে যাওয়ার অন্য উপায় রয়েছে।
অ্যান্ড্রয়েড 6.0 (এপিআই স্তর 23) এ প্রবর্তিত পরিবর্তনের বিস্তৃত তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 7 এ স্থানান্তরিত করুন (এপিআই স্তর 24)
অ্যান্ড্রয়েড 7.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
ডোজ এবং অ্যাপ স্ট্যান্ডবাই
ডোজ এবং অ্যাপ স্ট্যান্ডবাইয়ের জন্য অনুকূলিতকরণে বর্ণিত আচরণের জন্য নকশা, যা বেশ কয়েকটি প্ল্যাটফর্ম রিলিজ জুড়ে প্রবর্তিত বর্ধিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।
যখন কোনও ডিভাইস ডোজ এবং অ্যাপ স্ট্যান্ডবাই মোডে থাকে, সিস্টেমটি নিম্নলিখিত আচরণ করে:
- নেটওয়ার্ক অ্যাক্সেসকে সীমাবদ্ধ করে
- অ্যালার্ম, সিঙ্ক এবং চাকরিগুলি ডিফার করে
- জিপিএস এবং ওয়াই-ফাই স্ক্যানগুলি সীমাবদ্ধ করে
- স্বাভাবিক-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলিকে সীমাবদ্ধ করে।
অনুমতি পরিবর্তন
- সিস্টেমটি অ্যাপ্লিকেশন ব্যক্তিগত ডিরেক্টরিগুলিতে অ্যাক্সেসকে সীমাবদ্ধ করে।
- একটি
file://
আপনার অ্যাপের বাইরে ইউআরআই একটিFileUriExposedException
ট্রিগার করে। আপনার যদি আপনার অ্যাপের বাইরে ফাইলগুলি ভাগ করতে হয় তবেFileProvider
প্রয়োগ করুন
সিস্টেমটি অ-এনডিকে লাইব্রেরিতে লিঙ্ক করতে নিষেধ করে ।
অ্যান্ড্রয়েড 7.0 (এপিআই স্তর 24) এ প্রবর্তিত পরিবর্তনের একটি বিস্তৃত তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 8 এ স্থানান্তরিত করুন (এপিআই স্তর 26)
অ্যান্ড্রয়েড 8.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
- পটভূমি কার্যকর করার সীমা
- অগ্রভাগে চলমান না অ্যাপ্লিকেশনগুলির জন্য সিস্টেমগুলি পরিষেবাগুলিকে সীমাবদ্ধ করে।
-
startService()
এখন কোনও ব্যতিক্রম ছুঁড়ে দেয় যখন কোনও অ্যাপ্লিকেশন এটিstartService()
নিষিদ্ধ। - অগ্রভাগের পরিষেবাগুলি শুরু করতে, একটি অ্যাপ্লিকেশন অবশ্যই
startForeground()
এবংstartForegroundService()
ব্যবহার করতে হবে। - অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) আচরণ পরিবর্তন পৃষ্ঠায় নথিভুক্ত হিসাবে জবসডুলার এপিআইতে করা পরিবর্তনগুলি সাবধানতার সাথে পর্যালোচনা করুন।
- ফায়ারবেস ক্লাউড মেসেজিংয়ের জন্য গুগল প্লে সার্ভিসেস এসডিকে বা উচ্চতর সংস্করণ 10.2.1 সংস্করণ প্রয়োজন।
- ফায়ারবেস ক্লাউড মেসেজিং ব্যবহার করার সময়, বার্তা বিতরণ ব্যাকগ্রাউন্ড এক্সিকিউশন সীমা সাপেক্ষে। যখন ব্যাকগ্রাউন্ডের কাজগুলি বার্তার প্রাপ্তির উপর প্রয়োজনীয় হয়, যেমন ব্যাকগ্রাউন্ড ডেটা সিঙ্ক সম্পাদন করার জন্য, আপনার অ্যাপ্লিকেশনটির পরিবর্তে ফায়ারবেস জব প্রেরণকারী বা জবিন্টেন্টস সার্ভিস ব্যবহার করে কাজের সময়সূচী করা উচিত। আরও তথ্যের জন্য, ফায়ারবেস ক্লাউড মেসেজিং ডকুমেন্টেশন দেখুন।
-
- অন্তর্নিহিত সম্প্রচার
- অন্তর্নিহিত সম্প্রচারগুলি সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্টগুলি পরিচালনা করার তথ্যের জন্য,
JobScheduler
এপিআইয়ের জন্য ডকুমেন্টেশন দেখুন।
- অন্তর্নিহিত সম্প্রচারগুলি সীমাবদ্ধ। ব্যাকগ্রাউন্ড ইভেন্টগুলি পরিচালনা করার তথ্যের জন্য,
- পটভূমি অবস্থান সীমা
- পটভূমিতে চলমান অ্যাপ্লিকেশনগুলির অবস্থানের ডেটাতে সীমিত অ্যাক্সেস রয়েছে।
- গুগল প্লে পরিষেবাদি সহ ডিভাইসগুলিতে, পর্যায়ক্রমিক অবস্থান আপডেট পেতে ফিউজড অবস্থান সরবরাহকারী ব্যবহার করুন।
- পটভূমিতে চলমান অ্যাপ্লিকেশনগুলির অবস্থানের ডেটাতে সীমিত অ্যাক্সেস রয়েছে।
- অগ্রভাগে চলমান না অ্যাপ্লিকেশনগুলির জন্য সিস্টেমগুলি পরিষেবাগুলিকে সীমাবদ্ধ করে।
- বিজ্ঞপ্তি চ্যানেল
- আপনার প্রতি চ্যানেল ভিত্তিতে বিজ্ঞপ্তি বাধা বৈশিষ্ট্যগুলি সংজ্ঞায়িত করা উচিত।
- বিজ্ঞপ্তিগুলি প্রদর্শিত হওয়ার জন্য আপনাকে অবশ্যই একটি চ্যানেলে বিজ্ঞপ্তিগুলি অর্পণ করতে হবে।
- প্ল্যাটফর্মের এই সংস্করণটি
NotificationCompat.Builder
সমর্থন করে।
- গোপনীয়তা
- অ্যান্ড্রয়েড_আইডি অ্যাপ্লিকেশন সাইনিং কী প্রতি স্কোপড।
অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) এ প্রবর্তিত পরিবর্তনের একটি বিস্তৃত তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
অ্যান্ড্রয়েড 8 (এপিআই 26) থেকে অ্যান্ড্রয়েড 9 (এপিআই 28) এ স্থানান্তরিত করুন
- পাওয়ার ম্যানেজমেন্ট
- অ্যাপ স্ট্যান্ডবাই বালতিগুলি অ্যাপের ব্যস্ততার উপর ভিত্তি করে নতুন ব্যাকগ্রাউন্ড বিধিনিষেধ নিয়ে আসে যেমন মুলতুবি কাজ, অ্যালার্ম এবং উচ্চ-অগ্রাধিকার বার্তাগুলিতে কোটা
- ব্যাটারি সেভার উন্নতি অ্যাপ্লিকেশন স্ট্যান্ডবাই অ্যাপ্লিকেশনগুলিতে সীমাবদ্ধতা বাড়িয়ে তোলে
- অগ্রভাগ পরিষেবা অনুমতি
- সাধারণ অনুমতি
FOREGROUND_SERVICE
(রানটাইম অনুমতি নয়) অনুরোধ করা দরকার
- সাধারণ অনুমতি
- গোপনীয়তা পরিবর্তন
- ব্যাকগ্রাউন্ড সেন্সরগুলিতে সীমিত অ্যাক্সেস
- কল লগগুলিতে সীমাবদ্ধ অ্যাক্সেস, এখন
CALL_LOG
অনুমতি গ্রুপে - ফোন নম্বরগুলিতে সীমাবদ্ধ অ্যাক্সেস,
READ_CALL_LOG
অনুমতি প্রয়োজন - ওয়াই-ফাই তথ্যে সীমাবদ্ধ অ্যাক্সেস
অ্যান্ড্রয়েড 9.0 (এপিআই স্তর 28) এ প্রবর্তিত পরিবর্তনের বিস্তৃত তালিকার জন্য, আচরণ পরিবর্তনগুলি দেখুন।
অ্যান্ড্রয়েড 9 (এপিআই স্তর 28) থেকে অ্যান্ড্রয়েড 10 এ স্থানান্তরিত করুন (এপিআই স্তর 29)
- একটি পূর্ণ-স্ক্রিন অভিপ্রায় সহ বিজ্ঞপ্তি
- সাধারণ অনুমতিগুলির জন্য অনুরোধ করা
USE_FULL_SCREEN_INTENT
(রানটাইম অনুমতি নয়)।
- সাধারণ অনুমতিগুলির জন্য অনুরোধ করা
- ভাঁজ এবং বড় স্ক্রিন ডিভাইসের জন্য সমর্থন
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে তবে কেবলমাত্র একটিতেই ফোকাস রয়েছে।
- এই পরিবর্তনটি
onResume()
এবংonPause()
আচরণকে প্রভাবিত করে। - "শীর্ষস্থানীয় পুনঃসূচনা" এর নতুন লাইফাইসাইকেল ধারণাটি যা
onTopResumedActivityChanged()
সাবস্ক্রাইব করে সনাক্ত করা যায়।- শুধুমাত্র একটি ক্রিয়াকলাপ "শীর্ষস্থানীয় পুনরায় শুরু করা" হতে পারে।
- এই পরিবর্তনটি
- যখন
resizeableActivity
false
হিসাবে সেট করা থাকে, অ্যাপ্লিকেশনগুলি অতিরিক্তভাবে একটিminAspectRatio
নির্দিষ্ট করতে পারে যা স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটিকে সংকীর্ণ দিক অনুপাতের উপর চিঠি দেয়।
- একাধিক ক্রিয়াকলাপ এখন একই সময়ে "পুনরায় শুরু" অবস্থায় থাকতে পারে তবে কেবলমাত্র একটিতেই ফোকাস রয়েছে।
- গোপনীয়তা পরিবর্তন
- স্কোপড স্টোরেজ
- বাহ্যিক স্টোরেজ অ্যাক্সেস কেবলমাত্র একটি অ্যাপ্লিকেশন-নির্দিষ্ট ডিরেক্টরি এবং অ্যাপটি তৈরি করা নির্দিষ্ট ধরণের মিডিয়াতে সীমাবদ্ধ।
- অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে থাকাকালীন অবস্থানে সীমাবদ্ধ অ্যাক্সেস,
ACCESS_BACKGROUND_LOCATION
অনুমতি প্রয়োজন। - আইএমইআই এবং সিরিয়াল নম্বরের মতো অ-রেজিস্টেবল আইডেন্টিফায়ারগুলিতে সীমাবদ্ধ অ্যাক্সেস।
- শারীরিক ক্রিয়াকলাপের তথ্যে সীমাবদ্ধ অ্যাক্সেস যেমন ব্যবহারকারীর পদক্ষেপ গণনা,
ACTIVITY_RECOGNITION
অনুমতি প্রয়োজন। - কিছু টেলিফোনি, ব্লুটুথ এবং ওয়াই-ফাই এপিআইগুলিতে সীমাবদ্ধ অ্যাক্সেস,
ACCESS_FINE_LOCATION
অনুমতি প্রয়োজন। - ওয়াই-ফাই সেটিংসে সীমাবদ্ধ অ্যাক্সেস
- অ্যাপ্লিকেশনগুলি আর সরাসরি ওয়াই-ফাই সক্ষম বা অক্ষম করতে পারে না এবং সেটিংস প্যানেল ব্যবহার করে এটি করা দরকার।
- ওয়াই-ফাই নেটওয়ার্কের সাথে সংযোগ শুরু করার উপর বিধিনিষেধগুলি,
WifiNetworkSpecifier
বাWifiNetworkSuggestion
ব্যবহারের প্রয়োজন।
- স্কোপড স্টোরেজ
অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) থেকে অ্যান্ড্রয়েড 11 এ স্থানান্তরিত করুন (এপিআই স্তর 30)
- গোপনীয়তা
- স্কোপড স্টোরেজ এনফোর্সমেন্ট : অ্যাপ্লিকেশনগুলি স্কোপড স্টোরেজ মডেলটি গ্রহণ করা উচিত যেখানে অ্যাপ্লিকেশন-নির্দিষ্ট, মিডিয়া এবং অন্যান্য ফাইলের ধরণগুলি উত্সর্গীকৃত অবস্থানগুলি ব্যবহার করে সংরক্ষণ এবং অ্যাক্সেস করা হয়।
- অনুমতিগুলি অটো-রিসেট : ব্যবহারকারীরা যদি কয়েক মাসের জন্য কোনও অ্যাপের সাথে ইন্টারঅ্যাক্ট না করে থাকেন তবে সিস্টেমটি অ্যাপ্লিকেশনটির সংবেদনশীল অনুমতিগুলি অটো-রেজিট করে। এটি বেশিরভাগ অ্যাপ্লিকেশনগুলিকে প্রভাবিত করা উচিত নয়। যদি আপনার অ্যাপ্লিকেশনটি প্রাথমিকভাবে ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই পটভূমিতে কাজ করে তবে আপনি ব্যবহারকারীদের অটো রিসেট অক্ষম করার জন্য অনুরোধ করার বিষয়টি বিবেচনা করতে পারেন।
- পটভূমির অবস্থান অ্যাক্সেস : অ্যাপ্লিকেশনগুলি অবশ্যই পৃথকভাবে অগ্রভাগ এবং পটভূমির অবস্থানের অনুমতি অনুরোধ করতে হবে। পটভূমির অবস্থানের অনুমতিগুলিতে অ্যাক্সেস মঞ্জুর করা কেবল রানটাইম অনুমতি সংলাপের পরিবর্তে অ্যাপ্লিকেশন সেটিংসে করা যেতে পারে ।
- প্যাকেজ দৃশ্যমানতা : যখন কোনও অ্যাপ্লিকেশন ডিভাইসে ইনস্টল করা অ্যাপ্লিকেশন এবং পরিষেবাদির তালিকার জন্য জিজ্ঞাসা করে, ফিরে আসা তালিকাটি ফিল্টার করা হয়।
- আপনি যদি টেক্সট-টু-স্পিচ বা স্পিচ স্বীকৃতি পরিষেবাগুলি ব্যবহার করেন তবে আপনাকে ম্যানিফেস্ট ফাইলে পরিষেবার জন্য প্রশ্নের উপাদান যুক্ত করতে হবে।
- নিরাপত্তা
- সংকুচিত `রিসোর্স.আরএসসি` ফাইলগুলি আর সমর্থিত নয়
- এপিকে স্বাক্ষর স্কিম ভি 2 এখন প্রয়োজন। পশ্চাদপদ সামঞ্জস্যতার কারণে, বিকাশকারীদেরও এপিকে স্বাক্ষর স্কিম ভি 1 এর সাথে সাইন ইন করা উচিত।
- নন-এসডিকে ইন্টারফেস সীমাবদ্ধতা। নন-এসডিকে ইন্টারফেসগুলি ব্যবহার করার জন্য এপিআই স্তর 30 লক্ষ্য করে অ্যাপ্লিকেশনগুলির জন্য সুপারিশ করা হয় না, কারণ এই নন-এসডিকে ইন্টারফেসগুলির কয়েকটি এখন অবরুদ্ধ রয়েছে। অবরুদ্ধ নন-এসডিকে ইন্টারফেসগুলির একটি বিস্তৃত তালিকার জন্য অ-এসডিকে ইন্টারফেসগুলি দেখুন যা এখন অ্যান্ড্রয়েড 11 এ অবরুদ্ধ রয়েছে ।
অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) এ প্রবর্তিত পরিবর্তনের বিস্তৃত তালিকার জন্য, আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পূর্ববর্তী বিভাগের নির্দেশাবলী অনুসরণ করে এপিআই 31 এ আপডেট করা চালিয়ে যান।
আপনার অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণ করুন
আপনি আপনার অ্যাপ্লিকেশনগুলির জন্য লক্ষ্য এপিআই স্তর আপডেট করার সাথে সাথে আপনার অ্যাপ্লিকেশনগুলিকে আধুনিকীকরণ করতে এবং আপনার ব্যবহারকারীদের আনন্দিত করতে সাম্প্রতিক প্ল্যাটফর্ম বৈশিষ্ট্যগুলি গ্রহণ করার বিষয়টি বিবেচনা করুন।
- ক্যামেরাটি ব্যবহার করার জন্য সর্বাধিক তৈরি করার জন্য বিটাতে থাকা ক্যামেরাক্স ব্যবহার করার বিষয়টি বিবেচনা করুন।
- আপনাকে সেরা অনুশীলনগুলি অনুসরণ করতে, আপনাকে বয়লারপ্লেট কোড লিখতে মুক্ত করতে এবং জটিল কাজগুলি সহজতর করতে সহায়তা করার জন্য জেটপ্যাক উপাদানগুলি ব্যবহার করুন যাতে আপনি আপনার যত্ন নেওয়া কোডটিতে মনোনিবেশ করতে পারেন।
- আরও ভাল অ্যাপ্লিকেশনগুলি দ্রুত এবং কম কোড সহ লিখতে কোটলিন ব্যবহার করুন।
- আপনি গোপনীয়তার প্রয়োজনীয়তা এবং সেরা অনুশীলনগুলি অনুসরণ করছেন তা নিশ্চিত করুন।
- আপনার অ্যাপ্লিকেশনগুলিতে ডার্ক থিম সমর্থন যুক্ত করুন।
- আপনার অ্যাপ্লিকেশনগুলিতে অঙ্গভঙ্গি নেভিগেশন সমর্থন যুক্ত করুন।
- গুগল ক্লাউড মেসেজিং (জিসিএম) থেকে আপনার অ্যাপ্লিকেশনটি ফায়ারবেস ক্লাউড মেসেজিংয়ের সর্বশেষ সংস্করণে স্থানান্তর করুন ।
- উন্নত উইন্ডো পরিচালনার সুবিধা নিন।
- হার্ডওয়্যারে সাম্প্রতিক অগ্রগতির সুবিধা নিতে বৃহত্তর দিক অনুপাত (16: 9 এরও বেশি) সমর্থন করুন। নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি উপলব্ধ স্ক্রিনের স্থানটি পূরণ করতে পুনরায় পরিবর্তন করে। কেবলমাত্র শেষ রিসর্ট হিসাবে সর্বাধিক দিক অনুপাত ঘোষণা করুন। সর্বাধিক দিক অনুপাত সম্পর্কে আরও তথ্যের জন্য, সীমাবদ্ধ স্ক্রিন সমর্থন ঘোষণা করুন ।
- আপনার অ্যাপ্লিকেশনটিকে উত্পাদনশীলতা বাড়াতে এবং একাধিক প্রদর্শন পরিচালনা করতে মাল্টি-উইন্ডো সমর্থন যুক্ত করুন।
- যদি একটি দুর্দান্ত ন্যূনতম অ্যাপ্লিকেশন অভিজ্ঞতা ব্যবহারকারীর অভিজ্ঞতা উন্নত করে তবে চিত্র-ইন-চিত্রের জন্য সমর্থন যুক্ত করুন।
- ডিসপ্লে কাটআউট সহ ডিভাইসগুলির জন্য অনুকূলিত করুন।
- স্থিতি বারের উচ্চতা ধরে রাখবেন না। পরিবর্তে,
WindowInsets
এবংView.OnApplyWindowInsetsListener
ব্যবহার করুন। আরও জানতে, ড্রয়েডকন এনওয়াইসি 2017 ভিডিওটি দেখুন। একটি ব্যাখ্যা জন্য - অনুমান করবেন না যে অ্যাপটিতে পুরো উইন্ডোটি রয়েছে। পরিবর্তে,
View.getLocationInWindow()
ব্যবহার করে এর অবস্থানটি নিশ্চিত করুন,View.getLocationOnScreen()
নয়। *MotionEvent
হ্যান্ডলিং করার সময়,MotionEvent.getX()
এবংMotionEvent.getY()
ব্যবহার করুন,MotionEvent.getRawX()
,MotionEvent.getRawY()
নয়।
আপনার এসডিকে এবং গ্রন্থাগারগুলি পরীক্ষা করুন এবং আপডেট করুন
নিশ্চিত হয়ে নিন যে আপনার তৃতীয় পক্ষের এসডিকে নির্ভরতাগুলি এপিআই 31 সমর্থন করে: কিছু এসডিকে সরবরাহকারী এটি তাদের প্রকাশ্যে প্রকাশ করে; অন্যদের অতিরিক্ত তদন্তের প্রয়োজন হবে। আপনি যদি এমন কোনও এসডিকে ব্যবহার করেন যা এপিআই 31 সমর্থন করে না, তবে সমস্যা সমাধানের জন্য এসডিকে সরবরাহকারীর সাথে কাজ করা একটি অগ্রাধিকার দিন।
অতিরিক্তভাবে, নোট করুন যে আপনার অ্যাপ্লিকেশন বা গেমের targetSdkVersion
বেসরকারী অ্যান্ড্রয়েড প্ল্যাটফর্ম লাইব্রেরিতে অ্যাক্সেসকে সীমাবদ্ধ করতে পারে; বিশদের জন্য প্ল্যাটফর্ম লাইব্রেরিতে সংযুক্ত এনডিকে অ্যাপ্লিকেশনগুলি দেখুন।
আপনি যে অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির সংস্করণটি ব্যবহার করছেন তার সংস্করণে থাকতে পারে এমন কোনও বিধিনিষেধগুলিও যাচাই করা উচিত। সর্বদা হিসাবে, আপনাকে অবশ্যই অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির প্রধান সংস্করণ এবং আপনার অ্যাপ্লিকেশনটির compileSdkVersion
মধ্যে সামঞ্জস্যতা নিশ্চিত করতে হবে।
আমরা আপনাকে সুপারিশ করি যে আপনি সমর্থন লাইব্রেরির প্রধান সংস্করণের চেয়ে ছোট বা সমান একটি targetSdkVersion
চয়ন করুন। সর্বশেষতম সামঞ্জস্যতা বৈশিষ্ট্য এবং বাগ ফিক্সগুলির সুবিধা নিতে আমরা আপনাকে সাম্প্রতিক সামঞ্জস্যপূর্ণ সমর্থন লাইব্রেরিতে আপডেট করতে উত্সাহিত করি।
আপনার অ্যাপ পরীক্ষা করুন
আপনি আপনার অ্যাপ্লিকেশনটির এপিআই স্তর এবং বৈশিষ্ট্যগুলি যথাযথ হিসাবে আপডেট করার পরে, আপনার কিছু মূল ব্যবহারের ক্ষেত্রে পরীক্ষা করা উচিত। নিম্নলিখিত পরামর্শগুলি সম্পূর্ণ নয়, তবে আপনার পরীক্ষার প্রক্রিয়াটি গাইড করার লক্ষ্য। আমরা পরীক্ষার পরামর্শ দিই:
- আপনার অ্যাপ্লিকেশনটি ত্রুটি বা সতর্কতা ছাড়াই 29 এপিআইতে সংকলন করে।
আপনার অ্যাপ্লিকেশনটির ক্ষেত্রে এমন একটি কৌশল রয়েছে যেখানে ব্যবহারকারী অনুমতি অনুরোধগুলি প্রত্যাখ্যান করে এবং ব্যবহারকারীকে অনুমতিের জন্য অনুরোধ করে। এটি করতে:
- আপনার অ্যাপের অ্যাপ্লিকেশন তথ্য স্ক্রিনে যান এবং প্রতিটি অনুমতি অক্ষম করুন।
- অ্যাপটি খুলুন এবং কোনও ক্র্যাশ নিশ্চিত করুন না।
- মূল ব্যবহারের কেস টেস্টগুলি সম্পাদন করুন এবং প্রয়োজনীয় অনুমতিগুলি পুনরায় প্রচারিত হয়েছে তা নিশ্চিত করুন।
প্রত্যাশিত ফলাফল এবং কোনও ত্রুটি সহ ডোজকে পরিচালনা করে।
- এডিবি ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষার ডিভাইসটি ডোজে রাখুন।
- যে কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলি ট্রিগার করে।
- অ্যালার্ম বা কাজ ব্যবহার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- ব্যাকগ্রাউন্ড পরিষেবাগুলিতে যে কোনও নির্ভরতা দূর করুন।
- আপনার অ্যাপটি অ্যাপ স্ট্যান্ডবাইতে সেট করুন
- যে কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন যা ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলি ট্রিগার করে।
- অ্যালার্ম ব্যবহার করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন।
- এডিবি ব্যবহার করে, আপনার অ্যাপটি চলাকালীন আপনার পরীক্ষার ডিভাইসটি ডোজে রাখুন।
নতুন ছবি / ভিডিও নেওয়া হচ্ছে হ্যান্ডেলগুলি
- আপনার অ্যাপ্লিকেশনটি সীমাবদ্ধ
ACTION_NEW_PICTURE
এবংACTION_NEW_VIDEO
সম্প্রচারগুলি সঠিকভাবে পরিচালনা করে কিনা তা পরীক্ষা করে দেখুন (এটি হ'ল জবসচেডুলার জবসে স্থানান্তরিত)। - নিশ্চিত করুন যে এই ইভেন্টগুলির উপর নির্ভর করে এমন কোনও সমালোচনামূলক ব্যবহারের ক্ষেত্রে এখনও কাজ করে।
- আপনার অ্যাপ্লিকেশনটি সীমাবদ্ধ
অন্যান্য অ্যাপ্লিকেশনগুলিতে ফাইলগুলি ভাগ করে নেওয়া ফাইলগুলি পরিচালনা করুন - অন্য কোনও অ্যাপ্লিকেশন (একই বিকাশকারী দ্বারা অন্য অ্যাপ্লিকেশন এমনকি অন্য অ্যাপ্লিকেশন) এর সাথে ফাইলের ডেটা ভাগ করে এমন কোনও ব্যবহারের ক্ষেত্রে পরীক্ষা করুন
- অন্যান্য অ্যাপ্লিকেশনটিতে সামগ্রীটি দৃশ্যমান এবং ক্র্যাশগুলি ট্রিগার করে না তা পরীক্ষা করুন।
আরও তথ্য
গুগল প্লে কনসোলে ইমেলগুলি বেছে নিন যাতে আমরা আপনাকে আমাদের মাসিক অংশীদার নিউজলেটার সহ অ্যান্ড্রয়েড এবং গুগল প্লে থেকে গুরুত্বপূর্ণ আপডেট এবং ঘোষণাগুলি প্রেরণ করতে পারি।
,আপনি যখন কোনও এপিকে আপলোড করেন, এটি অবশ্যই গুগল প্লে এর টার্গেট এপিআই স্তরের প্রয়োজনীয়তাগুলি পূরণ করতে হবে।
আগস্ট 31 2024 থেকে শুরু হচ্ছে:
- নতুন অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশন আপডেটগুলি অবশ্যই গুগল প্লেতে জমা দেওয়ার জন্য অ্যান্ড্রয়েড 14 (এপিআই স্তর 34) বা তার বেশি টার্গেট করতে হবে; ওএস এবং অ্যান্ড্রয়েড টিভি অ্যাপ্লিকেশন পরিধান বাদে, যা অবশ্যই অ্যান্ড্রয়েড 13 (এপিআই স্তর 33) বা উচ্চতর লক্ষ্য করতে হবে।
- বিদ্যমান অ্যাপ্লিকেশনগুলিকে অবশ্যই অ্যান্ড্রয়েড 13 (এপিআই স্তর 33) বা তার বেশি লক্ষ্য করতে হবে আপনার অ্যাপের টার্গেট এপিআই স্তরের চেয়ে বেশি চালিত অ্যান্ড্রয়েড ওএসের চালানো ডিভাইসে নতুন ব্যবহারকারীদের কাছে উপলব্ধ থাকতে হবে। অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা লোয়ার (অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) বা ওয়েয়ার ওএস এবং অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) বা অ্যান্ড্রয়েড টিভির জন্য কম) এর জন্য লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলি কেবলমাত্র আপনার অ্যাপের টার্গেট এপিআই স্তরের চেয়ে একই বা কম থাকা ডিভাইসগুলিতে উপলব্ধ থাকবে।
আপনার অ্যাপ্লিকেশন আপডেট করার জন্য যদি আপনার আরও সময় প্রয়োজন হয় তবে আপনি 1 নভেম্বর, 2024 এ এক্সটেনশনের জন্য অনুরোধ করতে সক্ষম হবেন। আপনি এই বছরের শেষের দিকে প্লে কনসোলে আপনার অ্যাপের এক্সটেনশন ফর্মগুলি অ্যাক্সেস করতে সক্ষম হবেন।
এই প্রয়োজনীয়তার ব্যতিক্রমগুলির মধ্যে রয়েছে:
- স্থায়ীভাবে ব্যক্তিগত অ্যাপ্লিকেশনগুলি যা একটি নির্দিষ্ট সংস্থার ব্যবহারকারীদের মধ্যে সীমাবদ্ধ এবং কেবল অভ্যন্তরীণ বিতরণের উদ্দেশ্যে।
- অ্যাপ্লিকেশনগুলি যা অ্যান্ড্রয়েড অটোমোটিভ ওএসকে লক্ষ্য করে, বা অ্যান্ড্রয়েড অটোমোটিভ ওএসকে টার্গেট করে এপিকে দিয়ে প্যাকেজ করা হয়।
কেন নতুন এসডিকে লক্ষ্য?
প্রতিটি নতুন অ্যান্ড্রয়েড সংস্করণ এমন পরিবর্তনগুলি পরিচয় করিয়ে দেয় যা সুরক্ষা এবং কর্মক্ষমতা উন্নতি নিয়ে আসে এবং অ্যান্ড্রয়েড ব্যবহারকারীর অভিজ্ঞতা বাড়ায়। এর মধ্যে কয়েকটি পরিবর্তন কেবল এমন অ্যাপ্লিকেশনগুলিতে প্রযোজ্য যা তাদের targetSdkVersion
ম্যানিফেস্ট অ্যাট্রিবিউট (লক্ষ্য এপিআই স্তর হিসাবেও পরিচিত) এর মাধ্যমে স্পষ্টভাবে সমর্থন ঘোষণা করে।
সাম্প্রতিক এপিআই স্তরকে লক্ষ্য করার জন্য আপনার অ্যাপ্লিকেশনটি কনফিগার করা নিশ্চিত করে যে ব্যবহারকারীরা এই উন্নতিগুলি থেকে উপকৃত হতে পারে, অন্যদিকে আপনার অ্যাপ্লিকেশনটি এখনও পুরানো অ্যান্ড্রয়েড সংস্করণগুলিতে চলতে পারে। সাম্প্রতিক এপিআই স্তরকে লক্ষ্য করে আপনার অ্যাপ্লিকেশনটিকে আপনার ব্যবহারকারীদের আনন্দিত করার জন্য প্ল্যাটফর্মের সর্বশেষ বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়। তদ্ব্যতীত, অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) হিসাবে, ব্যবহারকারীরা যখন প্রথমবারের জন্য একটি অ্যাপ্লিকেশন শুরু করে যখন অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 5.1 (এপিআই স্তর 22) বা তার চেয়ে কম লক্ষ্য করে।
এই দস্তাবেজটি গুগল প্লে প্রয়োজনীয়তা পূরণের জন্য আপনার লক্ষ্য এপিআই স্তর আপডেট করার ক্ষেত্রে আপনার গুরুত্বপূর্ণ পয়েন্টগুলি হাইলাইট করে। আপনি কোন সংস্করণে স্থানান্তরিত করছেন তার উপর নির্ভর করে নিম্নলিখিত বিভাগগুলিতে নির্দেশাবলী দেখুন।
অ্যান্ড্রয়েড 12 এবং উচ্চতর (এপিআই স্তর 31) থেকে আরও সাম্প্রতিক সংস্করণে স্থানান্তরিত করুন
অ্যান্ড্রয়েডের আরও সাম্প্রতিক সংস্করণকে লক্ষ্য করতে আপনার অ্যাপ্লিকেশনটি আপডেট করতে, প্রাসঙ্গিক আচরণ পরিবর্তনগুলির তালিকা অনুসরণ করুন:
- অ্যান্ড্রয়েড 13 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 14 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 15 আচরণ পরিবর্তন
- অ্যান্ড্রয়েড 16 আচরণ পরিবর্তন
অ্যান্ড্রয়েড 11 (এপিআই স্তর 30) থেকে অ্যান্ড্রয়েড 12 এ স্থানান্তরিত করুন (এপিআই স্তর 31)
নিরাপত্তা এবং অনুমতি
- ব্লুটুথ : আপনাকে
BLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
, বাBLUETOOTH_CONNECT
অনুমতিগুলির সাথেBLUETOOTH
এবংBLUETOOTH_ADMIN
অনুমতিগুলির জন্য ঘোষণাগুলি প্রতিস্থাপন করতে হবে। ব্লুটুথ অপারেশনগুলির জন্য আপনাকে আরLOCATION
রানটাইম অনুমতি অনুরোধ করার দরকার নেই। - অবস্থান: ব্যবহারকারীরা কেবলমাত্র আনুমানিক অবস্থানের তথ্য পুনরুদ্ধার করতে অ্যাপ্লিকেশনগুলির জন্য অনুরোধ করতে পারেন। আপনি যে কোনও সময়
ACCESS_FINE_LOCATION
অনুরোধ করার সময়ACCESS_COARSE_LOCATION
অনুমতিের জন্য আপনাকে অবশ্যই অনুরোধ করতে হবে।- ইন্টেন্ট ফিল্টার: যদি আপনার অ্যাপ্লিকেশনটিতে ক্রিয়াকলাপ , পরিষেবাগুলি বা সম্প্রচারিত রিসিভারগুলি থাকে যা ইন্টেন্ট ফিল্টার ব্যবহার করে তবে আপনাকে অবশ্যই স্পষ্টভাবে অ্যান্ড্রয়েড: এই উপাদানগুলির জন্য রফতানি বৈশিষ্ট্য ঘোষণা করতে হবে।
- হাইবারনেশন: অ্যাপ্লিকেশনগুলিকে যদি সময়ের সাথে সাথে ব্যবহার না করা হয় তবে হাইবারনেশন মোডে রাখা যেতে পারে। হাইবারনেশন মোডে আপনার অ্যাপ্লিকেশনটির রানটাইম অনুমতি এবং ক্যাশে পুনরায় সেট করা হয় এবং আপনি চাকরি বা সতর্কতা চালাতে পারবেন না। আপনি আপনার অ্যাপ্লিকেশনটির হাইবারনেশন স্থিতি পরীক্ষা করতে পারেন।
- মুলতুবি অভিপ্রায় পরিবর্তন : আপনার অ্যাপ্লিকেশনটি তৈরি করে এমন প্রতিটি পেন্ডিংইন্টেন্ট অবজেক্টের পরিবর্তনটি আপনাকে অবশ্যই নির্দিষ্ট করতে হবে।
ব্যবহারকারীর অভিজ্ঞতা
- কাস্টম বিজ্ঞপ্তি : কাস্টম বিষয়বস্তু ভিউ সহ বিজ্ঞপ্তিগুলি আর সম্পূর্ণ বিজ্ঞপ্তি অঞ্চল ব্যবহার করবে না; পরিবর্তে, সিস্টেমটি একটি স্ট্যান্ডার্ড টেম্পলেট প্রয়োগ করে। এই টেমপ্লেটটি নিশ্চিত করে যে কাস্টম বিজ্ঞপ্তিগুলি সমস্ত রাজ্যের অন্যান্য বিজ্ঞপ্তিগুলির মতো একই সজ্জা রয়েছে। এই আচরণটি
Notification.DecoratedCustomViewStyle
আচরণের সাথে প্রায় একই রকম। - অ্যান্ড্রয়েড অ্যাপ্লিকেশন লিঙ্কগুলি যাচাইকরণ পরিবর্তনগুলি : অ্যান্ড্রয়েড অ্যাপ্লিকেশন লিঙ্ক যাচাইকরণ ব্যবহার করার সময়, নিশ্চিত হয়ে নিন যে আপনার অভিপ্রায় ফিল্টারগুলি ব্রাউজযোগ্য বিভাগ অন্তর্ভুক্ত করেছে এবং এইচটিটিপিএস স্কিম সমর্থন করে।
কর্মক্ষমতা
ফোরগ্রাউন্ড সার্ভিস লঞ্চ বিধিনিষেধ : অ্যান্ড্রয়েড 12 বা উচ্চতর টার্গেট করতে, আপনার অ্যাপ্লিকেশনটি কয়েকটি বিশেষ কেস ব্যতীত পটভূমিতে চলাকালীন অগ্রভাগের পরিষেবাগুলি শুরু করতে পারে না। যদি কোনও অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে চলার সময় অগ্রভাগ পরিষেবা শুরু করার চেষ্টা করে তবে একটি ব্যতিক্রম ঘটে (কয়েকটি বিশেষ কেস বাদে)।
আপনার অ্যাপটি পটভূমিতে চলাকালীন সময় নির্ধারণ এবং তাত্ক্ষণিক কাজ শুরু করার জন্য ওয়ার্কম্যানেজার ব্যবহার করার বিষয়ে বিবেচনা করুন। ব্যবহারকারী অনুরোধ করে এমন সময়-সংবেদনশীল ক্রিয়াগুলি সম্পূর্ণ করতে, একটি সঠিক অ্যালার্মের মধ্যে অগ্রভাগ পরিষেবাগুলি শুরু করুন।
বিজ্ঞপ্তি ট্রামপোলিন বিধিনিষেধ : ব্যবহারকারীরা যখন বিজ্ঞপ্তিগুলি ট্যাপ করেন, কিছু অ্যাপ্লিকেশন একটি অ্যাপ্লিকেশন উপাদান চালু করে প্রতিক্রিয়া জানায় যা ব্যবহারকারী যে ক্রিয়াকলাপটি দেখেন এবং ইন্টারঅ্যাক্ট করে তা শুরু করে। এই অ্যাপ্লিকেশন উপাদানটি একটি বিজ্ঞপ্তি ট্রামপোলিন হিসাবে পরিচিত।
অ্যাপ্লিকেশনগুলি অবশ্যই পরিষেবাগুলি বা সম্প্রচারিত রিসিভারগুলি থেকে ক্রিয়াকলাপগুলি শুরু করবে না যা বিজ্ঞপ্তি ট্রাম্পোলাইন হিসাবে ব্যবহৃত হয়। কোনও ব্যবহারকারী বিজ্ঞপ্তির মধ্যে কোনও বিজ্ঞপ্তি বা অ্যাকশন বোতামে ট্যাপ করার পরে, আপনার অ্যাপ্লিকেশন কোনও পরিষেবা বা সম্প্রচার রিসিভারের অভ্যন্তরে
startActivity()
কল করতে পারে না।
অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) লক্ষ্য করে অ্যাপ্লিকেশনগুলিকে প্রভাবিত করে এমন পরিবর্তনগুলির সম্পূর্ণ সেটটি দেখুন।
অ্যান্ড্রয়েড 11 এর চেয়ে কম থেকে স্থানান্তরিত (এপিআই স্তর 30)
অ্যান্ড্রয়েডের সংস্করণটি নির্বাচন করুন আপনি থেকে স্থানান্তরিত হবেন:
অ্যান্ড্রয়েড 5 এ স্থানান্তরিত করুন (এপিআই স্তর 21)
আপনার অ্যাপ্লিকেশনটি এই রিলিজগুলিতে প্রবর্তিত পরিবর্তনের জন্য দায়বদ্ধ হয়েছে তা নিশ্চিত করার জন্য নিম্নলিখিত প্রতিটি রিলিজের জন্য সম্পর্কিত আচরণ পরিবর্তন পৃষ্ঠা দেখুন:
- অ্যান্ড্রয়েড 5.0 (এপিআই স্তর 21)
- অ্যান্ড্রয়েড 4.4 (এপিআই স্তর 19)
- অ্যান্ড্রয়েড 4.1.x (এপিআই স্তর 16) ।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 6 এ স্থানান্তরিত করুন (এপিআই স্তর 23)
অ্যান্ড্রয়েড 6.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
বিপজ্জনক অনুমতিগুলি কেবল রানটাইমে মঞ্জুর করা হয়। আপনার ইউআই প্রবাহকে অবশ্যই এই অনুমতিগুলি মঞ্জুর করার জন্য সাশ্রয়ী মূল্যের সরবরাহ করতে হবে।
যেখানেই সম্ভব, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশন অনুমতি অনুরোধগুলির প্রত্যাখ্যান পরিচালনা করতে প্রস্তুত রয়েছে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী ডিভাইসের জিপিএস অ্যাক্সেস করার জন্য কোনও অনুরোধ প্রত্যাখ্যান করে তবে নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটিতে এগিয়ে যাওয়ার অন্য উপায় রয়েছে।
অ্যান্ড্রয়েড 6.0 (এপিআই স্তর 23) এ প্রবর্তিত পরিবর্তনের বিস্তৃত তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 7 এ স্থানান্তরিত করুন (এপিআই স্তর 24)
অ্যান্ড্রয়েড 7.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
ডোজ এবং অ্যাপ স্ট্যান্ডবাই
ডোজ এবং অ্যাপ স্ট্যান্ডবাইয়ের জন্য অনুকূলিতকরণে বর্ণিত আচরণের জন্য নকশা, যা বেশ কয়েকটি প্ল্যাটফর্ম রিলিজ জুড়ে প্রবর্তিত বর্ধিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।
যখন কোনও ডিভাইস ডোজ এবং অ্যাপ স্ট্যান্ডবাই মোডে থাকে, সিস্টেমটি নিম্নলিখিত আচরণ করে:
- নেটওয়ার্ক অ্যাক্সেসকে সীমাবদ্ধ করে
- অ্যালার্ম, সিঙ্ক এবং চাকরিগুলি ডিফার করে
- জিপিএস এবং ওয়াই-ফাই স্ক্যানগুলি সীমাবদ্ধ করে
- স্বাভাবিক-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং বার্তাগুলিকে সীমাবদ্ধ করে।
অনুমতি পরিবর্তন
- সিস্টেমটি অ্যাপ্লিকেশন ব্যক্তিগত ডিরেক্টরিগুলিতে অ্যাক্সেসকে সীমাবদ্ধ করে।
- একটি
file://
আপনার অ্যাপের বাইরে ইউআরআই একটিFileUriExposedException
ট্রিগার করে। আপনার যদি আপনার অ্যাপের বাইরে ফাইলগুলি ভাগ করতে হয় তবেFileProvider
প্রয়োগ করুন
সিস্টেমটি অ-এনডিকে লাইব্রেরিতে লিঙ্ক করতে নিষেধ করে ।
অ্যান্ড্রয়েড 7.0 (এপিআই স্তর 24) এ প্রবর্তিত পরিবর্তনের একটি বিস্তৃত তালিকার জন্য, প্ল্যাটফর্মের সেই সংস্করণের জন্য আচরণ পরিবর্তনগুলি পৃষ্ঠা দেখুন।
পরবর্তী বিভাগে নির্দেশাবলী অনুসরণ করে চালিয়ে যান।
অ্যান্ড্রয়েড 8 এ স্থানান্তরিত করুন (এপিআই স্তর 26)
অ্যান্ড্রয়েড 8.0 এবং প্ল্যাটফর্মের উচ্চতর সংস্করণগুলিকে লক্ষ্য করে অ্যাপ্লিকেশনগুলিতে নিম্নলিখিত বিবেচনাগুলি প্রযোজ্য:
- Background Execution Limits
- The system restricts services for apps not running in the foreground.
-
startService()
now throws an exception when an app tries to invoke it whilestartService()
is prohibited. - To start foreground services, an app must use
startForeground()
andstartForegroundService()
. - Carefully review the changes made to the JobScheduler API, as documented on the Android 8.0 (API level 26) Behavior Changes page .
- Firebase Cloud Messaging requires version 10.2.1 of the Google Play services SDK , or higher.
- When using Firebase Cloud Messaging , message delivery is subject to background execution limits. When background work is necessary upon message receipt, such as to perform background data sync, your app should schedule jobs using Firebase Job Dispatcher or JobIntentService instead. For more information, see the Firebase Cloud Messaging documentation .
-
- Implicit broadcasts
- Implicit broadcasts are restricted. For information about handling background events, see the documentation for the
JobScheduler
API.
- Implicit broadcasts are restricted. For information about handling background events, see the documentation for the
- Background Location Limits
- Apps running in the background have limited access to location data.
- On devices with Google Play services, use the fused location provider to get periodic location updates.
- Apps running in the background have limited access to location data.
- The system restricts services for apps not running in the foreground.
- বিজ্ঞপ্তি চ্যানেল
- You should define notification interruption properties on a per-channel basis.
- You must assign notifications to a channel for the notifications to appear.
- This version of the platform supports
NotificationCompat.Builder
.
- গোপনীয়তা
- ANDROID_ID is scoped per app signing key.
For an exhaustive list of changes introduced in Android 8.0 (API level 26), see the Behavior Changes page for that version of the platform.
Migrate from Android 8 (API 26) to Android 9 (API 28)
- পাওয়ার ম্যানেজমেন্ট
- App Standby buckets bring new background restrictions based on app engagement, such as deferred jobs, alarms and quotas on high-priority messages
- Battery saver improvements increase the limitations on app standby apps
- Foreground service permission
- Need to request the normal permission
FOREGROUND_SERVICE
(not runtime permission)
- Need to request the normal permission
- গোপনীয়তা পরিবর্তন
- Limited access to background sensors
- Restricted access to call logs, now in
CALL_LOG
permission group - Restricted access to phone numbers, requiring
READ_CALL_LOG
permission - Restricted access to Wi-Fi information
For an exhaustive list of changes introduced in Android 9.0 (API level 28), see behavior changes .
Migrate from Android 9 (API level 28) to Android 10 (API level 29)
- Notifications with a full-screen intent
- Need to request the normal permission
USE_FULL_SCREEN_INTENT
(not runtime permission).
- Need to request the normal permission
- Support for foldables and large screen devices
- Multiple activities can now be in the "resumed" state at the same time, but only one actually has focus.
- This change affects
onResume()
andonPause()
behavior. - New lifecycle concept of "topmost resumed" which can be detected by subscribing to
onTopResumedActivityChanged()
.- Only one activity can be "topmost resumed."
- This change affects
- When
resizeableActivity
is set tofalse
, apps can additionally specify aminAspectRatio
which automatically letterboxes the app on narrower aspect ratios.
- Multiple activities can now be in the "resumed" state at the same time, but only one actually has focus.
- গোপনীয়তা পরিবর্তন
- স্কোপড স্টোরেজ
- External storage access is limited only to an app-specific directory and to specific types of media that the app has created.
- Restricted access to location while the app is in the background, requiring
ACCESS_BACKGROUND_LOCATION
permission. - Restricted access to non-resettable identifiers such as IMEI and serial number.
- Restricted access to physical activity information such as the user's step count, requiring
ACTIVITY_RECOGNITION
permission. - Restricted access to some telephony, Bluetooth, and Wi-Fi APIs , requiring
ACCESS_FINE_LOCATION
permission. - Restricted access to Wi-Fi settings
- Apps can no longer directly enable or disable Wi-Fi and need to do it using settings panels .
- Restrictions on initiating a connection to a Wi-Fi network, requiring the use of either
WifiNetworkSpecifier
orWifiNetworkSuggestion
.
- স্কোপড স্টোরেজ
Migrate from Android 10 (API level 29) to Android 11 (API level 30)
- গোপনীয়তা
- Scoped storage enforcement : Apps should adopt the scoped storage model where app-specific, media, and other file types are saved and accessed using dedicated locations.
- Permissions auto-reset : If users haven't interacted with an app for a few months, the system auto-resets the app's sensitive permissions. This shouldn't affect most apps. If your app primarily works in the background without user interactions, you may consider requesting users to disable auto reset.
- Background location access : Apps must request foreground and background location permission separately. Granting access to background location permission can only be done in app settings instead of runtime permission dialogs.
- Package Visibility : When an app queries for the list of installed apps and services on the device, the returned list is filtered.
- If you use Text-to-speech or Speech Recognition services, you will need to add queries elements for services to the manifest file.
- নিরাপত্তা
- Compressed `resource.arsc` files are no longer supported
- APK Signature Scheme v2 now required. For backward compatibility reasons, developers should also continue to sign with APK Signature Scheme v1.
- Non-SDK interface restriction. Using non-SDK interfaces is not recommended for apps targeting API level 30, as some of these non-SDK interfaces are now blocked. See Non-SDK interfaces that are now blocked in Android 11 for a comprehensive list of blocked non-SDK interfaces.
For an exhaustive list of changes introduced in Android 11 (API level 30), see the Behavior Changes page.
Continue to update to API 31 by following the instructions in the previous section .
Modernize your apps
As you update the target API level for your apps, consider adopting recent platform features to modernize your apps and delight your users.
- Consider using CameraX , which is in Beta, to make the most of using the camera.
- Use Jetpack components to help you follow best practices, free you from writing boilerplate code, and simplify complex tasks so that you can focus on the code you care about.
- Use Kotlin to write better apps faster, and with less code.
- Ensure you are following privacy requirements and best practices.
- Add dark theme support to your apps.
- Add gesture navigation support to your apps.
- Migrate your app from Google Cloud Messaging (GCM) to the latest version of Firebase Cloud Messaging.
- Take advantage of advanced window management.
- Support larger aspect ratios (more than 16:9) to take advantage of recent advances in hardware. Ensure that your app resizes to fill the available screen space. Only declare a maximum aspect ratio as a last resort. For more information about maximum aspect ratios, see Declare Restricted Screen Support .
- Add multi-window support to help your app increase productivity, and to manage multiple displays .
- If a great minimized app experience would improve the user experience, add support for Picture-in-Picture .
- Optimize for devices with display cutout.
- Don't assume status bar height. Instead, use
WindowInsets
andView.OnApplyWindowInsetsListener
. To learn more, see the droidcon NYC 2017 video. একটি ব্যাখ্যা জন্য - Don't assume that the app has the entire window. Instead, confirm its location by using
View.getLocationInWindow()
, notView.getLocationOnScreen()
. * When handlingMotionEvent
, useMotionEvent.getX()
andMotionEvent.getY()
, notMotionEvent.getRawX()
,MotionEvent.getRawY()
.
Check and update your SDKs and libraries
Make sure that your third-party SDK dependencies support API 31: Some SDK providers publish it in their manifest; others will require additional investigation. If you use an SDK that doesn't support API 31, make it a priority to work with the SDK provider to resolve the issue.
Additionally, note that your app or game's targetSdkVersion
may restrict access to private Android platform libraries; see NDK Apps Linking to Platform Libraries for details.
You should also verify any restrictions that may exist in the version of the Android Support Library that you're using. As always, you must ensure compatibility between the major version of Android Support Library and your app's compileSdkVersion
.
We recommend that you choose a targetSdkVersion
smaller than or equal to the Support Library's major version. We encourage you to update to a recent compatible Support Library in order to take advantage of the latest compatibility features and bug fixes.
আপনার অ্যাপ পরীক্ষা করুন
After you update your app's API level and features as appropriate, you should test some core use cases. The following suggestions are not exhaustive, but aim to guide your testing process. We suggest testing:
- That your app compiles to API 29 without errors or warnings.
That your app has a strategy for cases where the user rejects permission requests, and prompts the user for permissions. এটি করতে:
- Go to your app's App Info screen, and disable each permission.
- Open the app and ensure no crashes.
- Perform core use case tests and ensure required permissions are re-prompted.
Handles Doze with expected results and no errors.
- Using adb, place your test device into Doze while your app is running.
- Test any use cases that trigger Firebase Cloud Messaging messages.
- Test any use cases that use Alarms or Jobs.
- Eliminate any dependencies on background services.
- Set your app into App Standby
- Test any use cases that trigger Firebase Cloud Messaging messages.
- Test any use cases that use Alarms.
- Using adb, place your test device into Doze while your app is running.
Handles new photos / video being taken
- Check that your app handles the restricted
ACTION_NEW_PICTURE
andACTION_NEW_VIDEO
broadcasts correctly (that is, moved to JobScheduler jobs). - Ensure that any critical use cases that depend on these events still work.
- Check that your app handles the restricted
Handles sharing files to other apps - Test any use case that shares file data with any other app (even another app by the same developer)
- Test the content is visible in the other app and doesn't trigger crashes.
আরও তথ্য
Opt in to emails in the Google Play Console so that we can send you important updates and announcements from Android and Google Play, including our monthly partner newsletter.