আচরণ পরিবর্তন: সমস্ত অ্যাপ্লিকেশন

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

শুধুমাত্র Android 16 টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন আচরণের পরিবর্তনগুলির তালিকা পর্যালোচনা করা নিশ্চিত করুন।

মূল কার্যকারিতা

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে৷

চাকরির সময়সূচি কোটা অপ্টিমাইজেশান

অ্যান্ড্রয়েড 16 থেকে শুরু করে, আমরা নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সামঞ্জস্য করছি:

  • অ্যাপ্লিকেশানটি কোন অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে : Android 16-এ, সক্রিয় স্ট্যান্ডবাই বাকেটগুলি উদার রানটাইম কোটা দ্বারা প্রয়োগ করা শুরু হবে৷
  • অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন চাকরিটি কার্যকর করা শুরু করলে : Android 16-এ, অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান থাকাকালীন চাকরি শুরু হয় এবং অ্যাপটি অদৃশ্য হয়ে যাওয়ার পরেও চলতে থাকে, চাকরির রানটাইম কোটা মেনে চলবে।
  • যদি একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় কাজটি কার্যকর করা হয় : Android 16-এ, একটি ফোরগ্রাউন্ড পরিষেবার সাথে একযোগে কাজ চালানোর সময় চাকরির রানটাইম কোটা মেনে চলবে। আপনি যদি ব্যবহারকারীর সূচনাকৃত ডেটা স্থানান্তরের জন্য কাজের সুবিধা নিয়ে থাকেন, তবে পরিবর্তে ব্যবহারকারীর সূচিত ডেটা স্থানান্তর কাজগুলি ব্যবহার করার কথা বিবেচনা করুন।

এই পরিবর্তনটি WorkManager, JobScheduler, এবং DownloadManager ব্যবহার করে নির্ধারিত কাজগুলিকে প্রভাবিত করে৷ কেন একটি কাজ বন্ধ করা হয়েছিল তা ডিবাগ করার জন্য, আমরা WorkInfo.getStopReason() (JobScheduler কাজের জন্য, JobParameters.getStopReason() ) কল করে কল করে কেন আপনার কাজ বন্ধ করা হয়েছিল তা লগ করার পরামর্শ দিই।

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

আমরা Android 16-এ প্রবর্তিত নতুন JobScheduler#getPendingJobReasonsHistory API ব্যবহার করার পরামর্শ দিচ্ছি কেন একটি চাকরি কার্যকর করা হয়নি তা বোঝার জন্য।

টেস্টিং

আপনার অ্যাপের আচরণ পরীক্ষা করার জন্য, আপনি নির্দিষ্ট চাকরির কোটা অপ্টিমাইজেশনের ওভাররাইড সক্ষম করতে পারেন যতক্ষণ না অ্যাপটি একটি Android 16 ডিভাইসে চলছে।

"শীর্ষ রাষ্ট্র চাকরীর রানটাইম কোটা মেনে চলবে" এর প্রয়োগ অক্ষম করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME

"যে কাজগুলি একযোগে একটি ফোরগ্রাউন্ড পরিষেবার সাথে কাজ চালানোর সময় কাজ রানটাইম কোটা মেনে চলবে" এর প্রয়োগকে নিষ্ক্রিয় করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME

নির্দিষ্ট অ্যাপ স্ট্যান্ডবাই বালতি আচরণ পরীক্ষা করতে, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট সেট করতে পারেন:

adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted

আপনার অ্যাপটি যে অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে তা বোঝার জন্য, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট পেতে পারেন:

adb shell am get-standby-bucket APP_PACKAGE_NAME

পরিত্যক্ত খালি কাজ বন্ধ কারণ

An abandoned job occurs when the JobParameters object associated with the job has been garbage collected, but JobService#jobFinished(JobParameters, boolean) has not been called to signal job completion. This indicates that the job may be running and being rescheduled without the app's awareness.

Apps that rely on JobScheduler, don't maintain a strong reference to the JobParameters object, and timeout will now be granted the new job stop reason STOP_REASON_TIMEOUT_ABANDONED, instead of STOP_REASON_TIMEOUT.

If there are frequent occurrences of the new abandoned stop reason, the system will take mitigation steps to reduce job frequency.

Apps should use the new stop reason to detect and reduce abandoned jobs.

If you're using WorkManager, AsyncTask, or DownloadManager, you aren't impacted because these APIs manage the job lifecycle on your app's behalf.

JobInfo#setImportantWhileForeground সম্পূর্ণরূপে অবজ্ঞা করা হচ্ছে

The JobInfo.Builder#setImportantWhileForeground(boolean) method indicates the importance of a job while the scheduling app is in the foreground or when temporarily exempted from background restrictions.

This method has been deprecated since Android 12 (API level 31). Starting in Android 16, it no longer functions effectively and calling this method will be ignored.

This removal of functionality also applies to JobInfo#isImportantWhileForeground(). Starting in Android 16, if the method is called, the method returns false.

আদেশকৃত সম্প্রচার অগ্রাধিকার সুযোগ আর বিশ্বব্যাপী নয়

Android apps are allowed to define priorities on broadcast receivers to control the order in which the receivers receive and process the broadcast. For manifest-declared receivers, apps can use the android:priority attribute to define the priority and for context-registered receivers, apps can use the IntentFilter#setPriority() API to define the priority. When a broadcast is sent, the system delivers it to receivers in order of their priority, from highest to lowest.

In Android 16, broadcast delivery order using the android:priority attribute or IntentFilter#setPriority() across different processes will not be guaranteed. Broadcast priorities will only be respected within the same application process rather than across all processes.

Also, broadcast priorities will be automatically confined to the range (SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1). Only system components will be allowed to set SYSTEM_LOW_PRIORITY, SYSTEM_HIGH_PRIORITY as broadcast priority.

Your app might be impacted if it does either of the following:

  1. Your application has declared multiple processes with the same broadcast intent, and has expectations around receiving those intents in a certain order based on the priority.
  2. Your application process interacts with other processes and has expectations around receiving a broadcast intent in a certain order.

If the processes need to coordinate with each other, they should communicate using other coordination channels.

ART অভ্যন্তরীণ পরিবর্তন

Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher.

As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates.

Relying on internal structures (such as non-SDK interfaces) can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on and they go out to over a billion devices through Google Play system updates.

All developers should check whether their app is impacted by testing their apps thoroughly on Android 16. In addition, check the known issues to see if your app depends on any libraries that we've identified that rely on internal ART structures. If you do have app code or library dependencies that are affected, seek public API alternatives whenever possible and request public APIs for new use cases by creating a feature request in our issue tracker.

16 KB পৃষ্ঠার আকার সামঞ্জস্য মোড

প্ল্যাটফর্মের কর্মক্ষমতা অপ্টিমাইজ করতে Android 15 16 KB মেমরি পৃষ্ঠাগুলির জন্য সমর্থন চালু করেছে। Android 16 একটি সামঞ্জস্যপূর্ণ মোড যোগ করে, যা 4 KB মেমরি পৃষ্ঠাগুলির জন্য নির্মিত কিছু অ্যাপকে 16 KB মেমরি পৃষ্ঠাগুলির জন্য কনফিগার করা ডিভাইসে চালানোর অনুমতি দেয়।

যদি অ্যান্ড্রয়েড শনাক্ত করে যে আপনার অ্যাপে 4 KB সারিবদ্ধ মেমরি পৃষ্ঠা রয়েছে, তাহলে এটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য মোড ব্যবহার করে এবং ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ডায়ালগ প্রদর্শন করে। পিছনের দিকের সামঞ্জস্য মোড সক্ষম করতে AndroidManifest.xmlandroid:pageSizeCompat বৈশিষ্ট্য সেট করা আপনার অ্যাপ চালু হওয়ার সময় ডায়ালগ প্রদর্শনকে বাধা দেবে৷ সর্বোত্তম কর্মক্ষমতা, নির্ভরযোগ্যতা এবং স্থিতিশীলতার জন্য, আপনার অ্যাপটি এখনও 16 KB সারিবদ্ধ হওয়া উচিত। আরও বিশদ বিবরণের জন্য 16 KB মেমরি পৃষ্ঠাগুলিকে সমর্থন করার জন্য আপনার অ্যাপগুলি আপডেট করার বিষয়ে আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন৷

কম্প্যাটিবিলিটি মোড ডায়ালগ যা প্রদর্শন করে যখন সিস্টেম শনাক্ত করে যে 16 KB সারিবদ্ধ হলে একটি 4 KB-সারিবদ্ধ অ্যাপ আরও ভালোভাবে চলতে পারে।

ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে৷

ব্যাঘাতমূলক অ্যাক্সেসিবিলিটি ঘোষণাগুলিকে অবজ্ঞা করা হচ্ছে

Android 16 অ্যাকসেসিবিলিটি ঘোষণাগুলিকে বাতিল করে, যা announceForAccessibility ব্যবহার বা TYPE_ANNOUNCEMENT অ্যাক্সেসিবিলিটি ইভেন্টগুলির প্রেরণের দ্বারা চিহ্নিত৷ এগুলি টকব্যাক এবং অ্যান্ড্রয়েডের স্ক্রিন রিডার ব্যবহারকারীদের জন্য অসামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারে এবং বিকল্পগুলি Android এর বিভিন্ন সহায়ক প্রযুক্তি জুড়ে ব্যবহারকারীর চাহিদার বিস্তৃত পরিসরকে আরও ভালভাবে পরিবেশন করে৷

বিকল্পের উদাহরণ:

অপ্রচলিত announceForAccessibility API-এর রেফারেন্স ডকুমেন্টেশনে প্রস্তাবিত বিকল্পগুলি সম্পর্কে আরও বিশদ অন্তর্ভুক্ত রয়েছে৷

3-বোতাম নেভিগেশন জন্য সমর্থন

Android 16 সঠিকভাবে ভবিষ্যদ্বাণীমূলক ব্যাক-এ স্থানান্তরিত অ্যাপগুলির জন্য 3-বোতাম নেভিগেশনে ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন নিয়ে আসে। পিছনের বোতামটি দীর্ঘক্ষণ চাপলে একটি ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন শুরু হয়, যা আপনাকে পিছনের সোয়াইপ আপনাকে কোথায় নিয়ে যায় তার একটি পূর্বরূপ দেয়।

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

3-বোতাম নেভিগেশন মোডে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন।

ডিভাইস ফর্ম ফ্যাক্টর

ভার্চুয়াল ডিভাইস মালিকদের ডিসপ্লেতে প্রজেক্ট করার সময় Android 16 অ্যাপগুলির জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।

ভার্চুয়াল ডিভাইস মালিক ওভাররাইড করে

A virtual device owner is a trusted or privileged app that creates and manages a virtual device. Virtual device owners run apps on a virtual device and then project the apps to the display of a remote device, such as a personal computer, virtual reality device, or car infotainment system. The virtual device owner is on a local device, such as a mobile phone.

Virtual device owner on phone creates virtual device that projects app to remote display.

Per-app overrides

On devices running Android 16, virtual device owners can override app settings on select virtual devices that the virtual device owners manage. For example, to improve app layout, a virtual device owner can ignore orientation, aspect ratio, and resizability restrictions when projecting apps onto an external display.

Common breaking changes

The Android 16 behavior might impact your app's UI on large screen form factors such as car displays or Chromebooks, especially layouts that were designed for small displays in portrait orientation. To learn how to make your app adaptive for all device form factors, see About adaptive layouts.

References

Companion app streaming

নিরাপত্তা

অ্যান্ড্রয়েড 16-এ এমন পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাপ এবং ব্যবহারকারীদের দূষিত অ্যাপ থেকে রক্ষা করতে সিস্টেম নিরাপত্তার প্রচার করে।

ইন্টেন্ট পুনঃনির্দেশ আক্রমণের বিরুদ্ধে উন্নত নিরাপত্তা

অ্যান্ড্রয়েড 16 সাধারণ Intent পুনঃনির্দেশ আক্রমণের বিরুদ্ধে ডিফল্ট নিরাপত্তা প্রদান করে, ন্যূনতম সামঞ্জস্যতা এবং বিকাশকারী পরিবর্তনের প্রয়োজন।

আমরা Intent রিডাইরেকশন শোষণের জন্য বাই-ডিফল্ট নিরাপত্তা শক্ত করার সমাধান প্রবর্তন করছি। বেশিরভাগ ক্ষেত্রে, যে অ্যাপগুলি সাধারণত উদ্দেশ্যগুলি ব্যবহার করে সেগুলি কোনও সামঞ্জস্যের সমস্যা অনুভব করবে না; কোন অ্যাপগুলি ভেঙে যেতে পারে তা নিরীক্ষণ করতে আমরা আমাদের বিকাশ প্রক্রিয়া জুড়ে মেট্রিক্স সংগ্রহ করেছি।

অ্যান্ড্রয়েডে ইন্টেন্ট রিডাইরেকশন ঘটে যখন একজন আক্রমণকারী একটি দুর্বল অ্যাপের প্রেক্ষাপটে একটি নতুন কম্পোনেন্ট লঞ্চ করার জন্য ব্যবহৃত একটি অভিপ্রায়ের বিষয়বস্তুকে আংশিক বা সম্পূর্ণ নিয়ন্ত্রণ করতে পারে, যখন শিকার অ্যাপটি একটি ("টপ-লেভেল") অভিপ্রায়ের অতিরিক্ত ক্ষেত্রে একটি অবিশ্বস্ত উপ-স্তরের অভিপ্রায় চালু করে। এটি আক্রমণকারী অ্যাপের শিকার অ্যাপের প্রেক্ষাপটে ব্যক্তিগত উপাদান চালু করতে, বিশেষ সুবিধাপ্রাপ্ত অ্যাকশনগুলিকে ট্রিগার করতে বা সংবেদনশীল ডেটাতে URI অ্যাক্সেস পেতে পারে, সম্ভাব্যভাবে ডেটা চুরি এবং নির্বিচারে কোড সম্পাদনের দিকে পরিচালিত করতে পারে।

ইন্টেন্ট রিডাইরেকশন হ্যান্ডলিং থেকে অপ্ট আউট করুন

অ্যান্ড্রয়েড 16 একটি নতুন API প্রবর্তন করেছে যা অ্যাপগুলিকে লঞ্চ সুরক্ষা সুরক্ষা থেকে অপ্ট আউট করতে দেয়৷ এটি নির্দিষ্ট ক্ষেত্রে প্রয়োজনীয় হতে পারে যেখানে ডিফল্ট নিরাপত্তা আচরণ বৈধ অ্যাপ ব্যবহারের ক্ষেত্রে হস্তক্ষেপ করে।

Android 16 SDK বা উচ্চতর সংস্করণের সাথে কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য৷

আপনি ইন্টেন্ট অবজেক্টে সরাসরি removeLaunchSecurityProtection() পদ্ধতি ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent")
iSublevel?.removeLaunchSecurityProtection() // Opt out from hardening
iSublevel?.let { startActivity(it) }
অ্যান্ড্রয়েড 15 (এপিআই লেভেল 35) বা তার চেয়ে কম কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য

প্রস্তাবিত না হলেও, আপনি removeLaunchSecurityProtection() পদ্ধতি অ্যাক্সেস করতে প্রতিফলন ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent", Intent::class.java)
try {
    val removeLaunchSecurityProtection = Intent::class.java.getDeclaredMethod("removeLaunchSecurityProtection")
    removeLaunchSecurityProtection.invoke(iSublevel)
} catch (e: Exception) {
    // Handle the exception, e.g., log it
} // Opt-out from the security hardening using reflection
iSublevel?.let { startActivity(it) }

সংযোগ

পেরিফেরাল ডিভাইসের সাথে সংযোগ উন্নত করতে ব্লুটুথ স্ট্যাকের নিম্নলিখিত পরিবর্তনগুলিকে Android 16-এ অন্তর্ভুক্ত করা হয়েছে।

উন্নত বন্ড ক্ষতি হ্যান্ডলিং

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

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

,

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

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

,

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

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

,

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

শুধুমাত্র Android 16 টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন আচরণের পরিবর্তনগুলির তালিকা পর্যালোচনা করা নিশ্চিত করুন।

মূল কার্যকারিতা

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে৷

চাকরির সময়সূচি কোটা অপ্টিমাইজেশান

অ্যান্ড্রয়েড 16 থেকে শুরু করে, আমরা নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সামঞ্জস্য করছি:

  • অ্যাপ্লিকেশানটি কোন অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে : Android 16-এ, সক্রিয় স্ট্যান্ডবাই বাকেটগুলি উদার রানটাইম কোটা দ্বারা প্রয়োগ করা শুরু হবে৷
  • অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন চাকরিটি কার্যকর করা শুরু করলে : Android 16-এ, অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান থাকাকালীন চাকরি শুরু হয় এবং অ্যাপটি অদৃশ্য হয়ে যাওয়ার পরেও চলতে থাকে, চাকরির রানটাইম কোটা মেনে চলবে।
  • যদি একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় কাজটি কার্যকর করা হয় : Android 16-এ, একটি ফোরগ্রাউন্ড পরিষেবার সাথে একযোগে কাজ চালানোর সময় চাকরির রানটাইম কোটা মেনে চলবে। আপনি যদি ব্যবহারকারীর সূচনাকৃত ডেটা স্থানান্তরের জন্য কাজের সুবিধা নিয়ে থাকেন, তবে পরিবর্তে ব্যবহারকারীর সূচিত ডেটা স্থানান্তর কাজগুলি ব্যবহার করার কথা বিবেচনা করুন।

এই পরিবর্তনটি WorkManager, JobScheduler, এবং DownloadManager ব্যবহার করে নির্ধারিত কাজগুলিকে প্রভাবিত করে৷ কেন একটি কাজ বন্ধ করা হয়েছিল তা ডিবাগ করার জন্য, আমরা WorkInfo.getStopReason() (JobScheduler কাজের জন্য, JobParameters.getStopReason() ) কল করে কল করে কেন আপনার কাজ বন্ধ করা হয়েছিল তা লগ করার পরামর্শ দিই।

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

আমরা Android 16-এ প্রবর্তিত নতুন JobScheduler#getPendingJobReasonsHistory API ব্যবহার করার পরামর্শ দিচ্ছি কেন একটি চাকরি কার্যকর করা হয়নি তা বোঝার জন্য।

টেস্টিং

আপনার অ্যাপের আচরণ পরীক্ষা করার জন্য, আপনি নির্দিষ্ট চাকরির কোটা অপ্টিমাইজেশনের ওভাররাইড সক্ষম করতে পারেন যতক্ষণ না অ্যাপটি একটি Android 16 ডিভাইসে চলছে।

"শীর্ষ রাষ্ট্র চাকরীর রানটাইম কোটা মেনে চলবে" এর প্রয়োগ অক্ষম করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME

"যে কাজগুলি একযোগে একটি ফোরগ্রাউন্ড পরিষেবার সাথে কাজ চালানোর সময় কাজ রানটাইম কোটা মেনে চলবে" এর প্রয়োগকে নিষ্ক্রিয় করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME

নির্দিষ্ট অ্যাপ স্ট্যান্ডবাই বালতি আচরণ পরীক্ষা করতে, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট সেট করতে পারেন:

adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted

আপনার অ্যাপটি যে অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে তা বোঝার জন্য, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট পেতে পারেন:

adb shell am get-standby-bucket APP_PACKAGE_NAME

পরিত্যক্ত খালি কাজ বন্ধ কারণ

An abandoned job occurs when the JobParameters object associated with the job has been garbage collected, but JobService#jobFinished(JobParameters, boolean) has not been called to signal job completion. This indicates that the job may be running and being rescheduled without the app's awareness.

Apps that rely on JobScheduler, don't maintain a strong reference to the JobParameters object, and timeout will now be granted the new job stop reason STOP_REASON_TIMEOUT_ABANDONED, instead of STOP_REASON_TIMEOUT.

If there are frequent occurrences of the new abandoned stop reason, the system will take mitigation steps to reduce job frequency.

Apps should use the new stop reason to detect and reduce abandoned jobs.

If you're using WorkManager, AsyncTask, or DownloadManager, you aren't impacted because these APIs manage the job lifecycle on your app's behalf.

JobInfo#setImportantWhileForeground সম্পূর্ণরূপে অবজ্ঞা করা হচ্ছে

The JobInfo.Builder#setImportantWhileForeground(boolean) method indicates the importance of a job while the scheduling app is in the foreground or when temporarily exempted from background restrictions.

This method has been deprecated since Android 12 (API level 31). Starting in Android 16, it no longer functions effectively and calling this method will be ignored.

This removal of functionality also applies to JobInfo#isImportantWhileForeground(). Starting in Android 16, if the method is called, the method returns false.

আদেশকৃত সম্প্রচার অগ্রাধিকার সুযোগ আর বিশ্বব্যাপী নয়

Android apps are allowed to define priorities on broadcast receivers to control the order in which the receivers receive and process the broadcast. For manifest-declared receivers, apps can use the android:priority attribute to define the priority and for context-registered receivers, apps can use the IntentFilter#setPriority() API to define the priority. When a broadcast is sent, the system delivers it to receivers in order of their priority, from highest to lowest.

In Android 16, broadcast delivery order using the android:priority attribute or IntentFilter#setPriority() across different processes will not be guaranteed. Broadcast priorities will only be respected within the same application process rather than across all processes.

Also, broadcast priorities will be automatically confined to the range (SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1). Only system components will be allowed to set SYSTEM_LOW_PRIORITY, SYSTEM_HIGH_PRIORITY as broadcast priority.

Your app might be impacted if it does either of the following:

  1. Your application has declared multiple processes with the same broadcast intent, and has expectations around receiving those intents in a certain order based on the priority.
  2. Your application process interacts with other processes and has expectations around receiving a broadcast intent in a certain order.

If the processes need to coordinate with each other, they should communicate using other coordination channels.

ART অভ্যন্তরীণ পরিবর্তন

Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher.

As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates.

Relying on internal structures (such as non-SDK interfaces) can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on and they go out to over a billion devices through Google Play system updates.

All developers should check whether their app is impacted by testing their apps thoroughly on Android 16. In addition, check the known issues to see if your app depends on any libraries that we've identified that rely on internal ART structures. If you do have app code or library dependencies that are affected, seek public API alternatives whenever possible and request public APIs for new use cases by creating a feature request in our issue tracker.

16 KB পৃষ্ঠার আকার সামঞ্জস্য মোড

প্ল্যাটফর্মের কর্মক্ষমতা অপ্টিমাইজ করতে Android 15 16 KB মেমরি পৃষ্ঠাগুলির জন্য সমর্থন চালু করেছে। Android 16 একটি সামঞ্জস্যপূর্ণ মোড যোগ করে, যা 4 KB মেমরি পৃষ্ঠাগুলির জন্য নির্মিত কিছু অ্যাপকে 16 KB মেমরি পৃষ্ঠাগুলির জন্য কনফিগার করা ডিভাইসে চালানোর অনুমতি দেয়।

যদি অ্যান্ড্রয়েড শনাক্ত করে যে আপনার অ্যাপে 4 KB সারিবদ্ধ মেমরি পৃষ্ঠা রয়েছে, তাহলে এটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য মোড ব্যবহার করে এবং ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ডায়ালগ প্রদর্শন করে। পিছনের দিকের সামঞ্জস্য মোড সক্ষম করতে AndroidManifest.xmlandroid:pageSizeCompat বৈশিষ্ট্য সেট করা আপনার অ্যাপ চালু হওয়ার সময় ডায়ালগ প্রদর্শনকে বাধা দেবে৷ সর্বোত্তম কর্মক্ষমতা, নির্ভরযোগ্যতা এবং স্থিতিশীলতার জন্য, আপনার অ্যাপটি এখনও 16 KB সারিবদ্ধ হওয়া উচিত। আরও বিশদ বিবরণের জন্য 16 KB মেমরি পৃষ্ঠাগুলিকে সমর্থন করার জন্য আপনার অ্যাপগুলি আপডেট করার বিষয়ে আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন৷

কম্প্যাটিবিলিটি মোড ডায়ালগ যা প্রদর্শন করে যখন সিস্টেম শনাক্ত করে যে 16 KB সারিবদ্ধ হলে একটি 4 KB-সারিবদ্ধ অ্যাপ আরও ভালোভাবে চলতে পারে।

ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে৷

ব্যাঘাতমূলক অ্যাক্সেসিবিলিটি ঘোষণাগুলিকে অবজ্ঞা করা হচ্ছে

Android 16 অ্যাকসেসিবিলিটি ঘোষণাগুলিকে বাতিল করে, যা announceForAccessibility ব্যবহার বা TYPE_ANNOUNCEMENT অ্যাক্সেসিবিলিটি ইভেন্টগুলির প্রেরণের দ্বারা চিহ্নিত৷ এগুলি টকব্যাক এবং অ্যান্ড্রয়েডের স্ক্রিন রিডার ব্যবহারকারীদের জন্য অসামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারে এবং বিকল্পগুলি Android এর বিভিন্ন সহায়ক প্রযুক্তি জুড়ে ব্যবহারকারীর চাহিদার বিস্তৃত পরিসরকে আরও ভালভাবে পরিবেশন করে৷

বিকল্পের উদাহরণ:

অপ্রচলিত announceForAccessibility API-এর রেফারেন্স ডকুমেন্টেশনে প্রস্তাবিত বিকল্পগুলি সম্পর্কে আরও বিশদ অন্তর্ভুক্ত রয়েছে৷

3-বোতাম নেভিগেশন জন্য সমর্থন

Android 16 সঠিকভাবে ভবিষ্যদ্বাণীমূলক ব্যাক-এ স্থানান্তরিত অ্যাপগুলির জন্য 3-বোতাম নেভিগেশনে ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন নিয়ে আসে। পিছনের বোতামটি দীর্ঘক্ষণ চাপলে একটি ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন শুরু হয়, যা আপনাকে পিছনের সোয়াইপ আপনাকে কোথায় নিয়ে যায় তার একটি পূর্বরূপ দেয়।

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

3-বোতাম নেভিগেশন মোডে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন।

ডিভাইস ফর্ম ফ্যাক্টর

ভার্চুয়াল ডিভাইস মালিকদের ডিসপ্লেতে প্রজেক্ট করার সময় Android 16 অ্যাপগুলির জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।

ভার্চুয়াল ডিভাইস মালিক ওভাররাইড করে

A virtual device owner is a trusted or privileged app that creates and manages a virtual device. Virtual device owners run apps on a virtual device and then project the apps to the display of a remote device, such as a personal computer, virtual reality device, or car infotainment system. The virtual device owner is on a local device, such as a mobile phone.

Virtual device owner on phone creates virtual device that projects app to remote display.

Per-app overrides

On devices running Android 16, virtual device owners can override app settings on select virtual devices that the virtual device owners manage. For example, to improve app layout, a virtual device owner can ignore orientation, aspect ratio, and resizability restrictions when projecting apps onto an external display.

Common breaking changes

The Android 16 behavior might impact your app's UI on large screen form factors such as car displays or Chromebooks, especially layouts that were designed for small displays in portrait orientation. To learn how to make your app adaptive for all device form factors, see About adaptive layouts.

References

Companion app streaming

নিরাপত্তা

অ্যান্ড্রয়েড 16-এ এমন পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাপ এবং ব্যবহারকারীদের দূষিত অ্যাপ থেকে রক্ষা করতে সিস্টেম নিরাপত্তার প্রচার করে।

ইন্টেন্ট পুনঃনির্দেশ আক্রমণের বিরুদ্ধে উন্নত নিরাপত্তা

অ্যান্ড্রয়েড 16 সাধারণ Intent পুনঃনির্দেশ আক্রমণের বিরুদ্ধে ডিফল্ট নিরাপত্তা প্রদান করে, ন্যূনতম সামঞ্জস্যতা এবং বিকাশকারী পরিবর্তনের প্রয়োজন।

আমরা Intent রিডাইরেকশন শোষণের জন্য বাই-ডিফল্ট নিরাপত্তা শক্ত করার সমাধান প্রবর্তন করছি। বেশিরভাগ ক্ষেত্রে, যে অ্যাপগুলি সাধারণত উদ্দেশ্যগুলি ব্যবহার করে সেগুলি কোনও সামঞ্জস্যের সমস্যা অনুভব করবে না; কোন অ্যাপগুলি ভেঙে যেতে পারে তা নিরীক্ষণ করতে আমরা আমাদের বিকাশ প্রক্রিয়া জুড়ে মেট্রিক্স সংগ্রহ করেছি।

অ্যান্ড্রয়েডে ইন্টেন্ট রিডাইরেকশন ঘটে যখন একজন আক্রমণকারী একটি দুর্বল অ্যাপের প্রেক্ষাপটে একটি নতুন কম্পোনেন্ট লঞ্চ করার জন্য ব্যবহৃত একটি অভিপ্রায়ের বিষয়বস্তুকে আংশিক বা সম্পূর্ণ নিয়ন্ত্রণ করতে পারে, যখন শিকার অ্যাপটি একটি ("টপ-লেভেল") অভিপ্রায়ের অতিরিক্ত ক্ষেত্রে একটি অবিশ্বস্ত উপ-স্তরের অভিপ্রায় চালু করে। এটি আক্রমণকারী অ্যাপের শিকার অ্যাপের প্রেক্ষাপটে ব্যক্তিগত উপাদান চালু করতে, বিশেষ সুবিধাপ্রাপ্ত অ্যাকশনগুলিকে ট্রিগার করতে বা সংবেদনশীল ডেটাতে URI অ্যাক্সেস পেতে পারে, সম্ভাব্যভাবে ডেটা চুরি এবং নির্বিচারে কোড সম্পাদনের দিকে পরিচালিত করতে পারে।

ইন্টেন্ট রিডাইরেকশন হ্যান্ডলিং থেকে অপ্ট আউট করুন

অ্যান্ড্রয়েড 16 একটি নতুন API প্রবর্তন করেছে যা অ্যাপগুলিকে লঞ্চ সুরক্ষা সুরক্ষা থেকে অপ্ট আউট করতে দেয়৷ এটি নির্দিষ্ট ক্ষেত্রে প্রয়োজনীয় হতে পারে যেখানে ডিফল্ট নিরাপত্তা আচরণ বৈধ অ্যাপ ব্যবহারের ক্ষেত্রে হস্তক্ষেপ করে।

Android 16 SDK বা উচ্চতর সংস্করণের সাথে কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য৷

আপনি ইন্টেন্ট অবজেক্টে সরাসরি removeLaunchSecurityProtection() পদ্ধতি ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent")
iSublevel?.removeLaunchSecurityProtection() // Opt out from hardening
iSublevel?.let { startActivity(it) }
অ্যান্ড্রয়েড 15 (এপিআই লেভেল 35) বা তার চেয়ে কম কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য

প্রস্তাবিত না হলেও, আপনি removeLaunchSecurityProtection() পদ্ধতি অ্যাক্সেস করতে প্রতিফলন ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent", Intent::class.java)
try {
    val removeLaunchSecurityProtection = Intent::class.java.getDeclaredMethod("removeLaunchSecurityProtection")
    removeLaunchSecurityProtection.invoke(iSublevel)
} catch (e: Exception) {
    // Handle the exception, e.g., log it
} // Opt-out from the security hardening using reflection
iSublevel?.let { startActivity(it) }

সংযোগ

পেরিফেরাল ডিভাইসের সাথে সংযোগ উন্নত করতে ব্লুটুথ স্ট্যাকের নিম্নলিখিত পরিবর্তনগুলিকে Android 16-এ অন্তর্ভুক্ত করা হয়েছে।

উন্নত বন্ড ক্ষতি হ্যান্ডলিং

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

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

,

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

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

,

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

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

,

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

শুধুমাত্র Android 16 টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন আচরণের পরিবর্তনগুলির তালিকা পর্যালোচনা করা নিশ্চিত করুন।

মূল কার্যকারিতা

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে৷

চাকরির সময়সূচি কোটা অপ্টিমাইজেশান

অ্যান্ড্রয়েড 16 থেকে শুরু করে, আমরা নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সামঞ্জস্য করছি:

  • অ্যাপ্লিকেশানটি কোন অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে : Android 16-এ, সক্রিয় স্ট্যান্ডবাই বাকেটগুলি উদার রানটাইম কোটা দ্বারা প্রয়োগ করা শুরু হবে৷
  • অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন চাকরিটি কার্যকর করা শুরু করলে : Android 16-এ, অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান থাকাকালীন চাকরি শুরু হয় এবং অ্যাপটি অদৃশ্য হয়ে যাওয়ার পরেও চলতে থাকে, চাকরির রানটাইম কোটা মেনে চলবে।
  • যদি একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় কাজটি কার্যকর করা হয় : Android 16-এ, একটি ফোরগ্রাউন্ড পরিষেবার সাথে একযোগে কাজ চালানোর সময় চাকরির রানটাইম কোটা মেনে চলবে। আপনি যদি ব্যবহারকারীর সূচনাকৃত ডেটা স্থানান্তরের জন্য কাজের সুবিধা নিয়ে থাকেন, তবে পরিবর্তে ব্যবহারকারীর সূচিত ডেটা স্থানান্তর কাজগুলি ব্যবহার করার কথা বিবেচনা করুন।

এই পরিবর্তনটি WorkManager, JobScheduler, এবং DownloadManager ব্যবহার করে নির্ধারিত কাজগুলিকে প্রভাবিত করে৷ কেন একটি কাজ বন্ধ করা হয়েছিল তা ডিবাগ করার জন্য, আমরা WorkInfo.getStopReason() (JobScheduler কাজের জন্য, JobParameters.getStopReason() ) কল করে কল করে কেন আপনার কাজ বন্ধ করা হয়েছিল তা লগ করার পরামর্শ দিই।

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

আমরা Android 16-এ প্রবর্তিত নতুন JobScheduler#getPendingJobReasonsHistory API ব্যবহার করার পরামর্শ দিচ্ছি কেন একটি চাকরি কার্যকর করা হয়নি তা বোঝার জন্য।

টেস্টিং

আপনার অ্যাপের আচরণ পরীক্ষা করার জন্য, আপনি নির্দিষ্ট চাকরির কোটা অপ্টিমাইজেশনের ওভাররাইড সক্ষম করতে পারেন যতক্ষণ না অ্যাপটি একটি Android 16 ডিভাইসে চলছে।

"শীর্ষ রাষ্ট্র চাকরীর রানটাইম কোটা মেনে চলবে" এর প্রয়োগ অক্ষম করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME

"যে কাজগুলি একযোগে একটি ফোরগ্রাউন্ড পরিষেবার সাথে কাজ চালানোর সময় কাজ রানটাইম কোটা মেনে চলবে" এর প্রয়োগকে নিষ্ক্রিয় করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME

নির্দিষ্ট অ্যাপ স্ট্যান্ডবাই বালতি আচরণ পরীক্ষা করতে, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট সেট করতে পারেন:

adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted

আপনার অ্যাপটি যে অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে তা বোঝার জন্য, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট পেতে পারেন:

adb shell am get-standby-bucket APP_PACKAGE_NAME

পরিত্যক্ত খালি কাজ বন্ধ কারণ

An abandoned job occurs when the JobParameters object associated with the job has been garbage collected, but JobService#jobFinished(JobParameters, boolean) has not been called to signal job completion. This indicates that the job may be running and being rescheduled without the app's awareness.

Apps that rely on JobScheduler, don't maintain a strong reference to the JobParameters object, and timeout will now be granted the new job stop reason STOP_REASON_TIMEOUT_ABANDONED, instead of STOP_REASON_TIMEOUT.

If there are frequent occurrences of the new abandoned stop reason, the system will take mitigation steps to reduce job frequency.

Apps should use the new stop reason to detect and reduce abandoned jobs.

If you're using WorkManager, AsyncTask, or DownloadManager, you aren't impacted because these APIs manage the job lifecycle on your app's behalf.

JobInfo#setImportantWhileForeground সম্পূর্ণরূপে অবজ্ঞা করা হচ্ছে

The JobInfo.Builder#setImportantWhileForeground(boolean) method indicates the importance of a job while the scheduling app is in the foreground or when temporarily exempted from background restrictions.

This method has been deprecated since Android 12 (API level 31). Starting in Android 16, it no longer functions effectively and calling this method will be ignored.

This removal of functionality also applies to JobInfo#isImportantWhileForeground(). Starting in Android 16, if the method is called, the method returns false.

আদেশকৃত সম্প্রচার অগ্রাধিকার সুযোগ আর বিশ্বব্যাপী নয়

Android apps are allowed to define priorities on broadcast receivers to control the order in which the receivers receive and process the broadcast. For manifest-declared receivers, apps can use the android:priority attribute to define the priority and for context-registered receivers, apps can use the IntentFilter#setPriority() API to define the priority. When a broadcast is sent, the system delivers it to receivers in order of their priority, from highest to lowest.

In Android 16, broadcast delivery order using the android:priority attribute or IntentFilter#setPriority() across different processes will not be guaranteed. Broadcast priorities will only be respected within the same application process rather than across all processes.

Also, broadcast priorities will be automatically confined to the range (SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1). Only system components will be allowed to set SYSTEM_LOW_PRIORITY, SYSTEM_HIGH_PRIORITY as broadcast priority.

Your app might be impacted if it does either of the following:

  1. Your application has declared multiple processes with the same broadcast intent, and has expectations around receiving those intents in a certain order based on the priority.
  2. Your application process interacts with other processes and has expectations around receiving a broadcast intent in a certain order.

If the processes need to coordinate with each other, they should communicate using other coordination channels.

ART অভ্যন্তরীণ পরিবর্তন

Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher.

As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates.

Relying on internal structures (such as non-SDK interfaces) can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on and they go out to over a billion devices through Google Play system updates.

All developers should check whether their app is impacted by testing their apps thoroughly on Android 16. In addition, check the known issues to see if your app depends on any libraries that we've identified that rely on internal ART structures. If you do have app code or library dependencies that are affected, seek public API alternatives whenever possible and request public APIs for new use cases by creating a feature request in our issue tracker.

16 KB পৃষ্ঠার আকার সামঞ্জস্য মোড

প্ল্যাটফর্মের কর্মক্ষমতা অপ্টিমাইজ করতে Android 15 16 KB মেমরি পৃষ্ঠাগুলির জন্য সমর্থন চালু করেছে। Android 16 একটি সামঞ্জস্যপূর্ণ মোড যোগ করে, যা 4 KB মেমরি পৃষ্ঠাগুলির জন্য নির্মিত কিছু অ্যাপকে 16 KB মেমরি পৃষ্ঠাগুলির জন্য কনফিগার করা ডিভাইসে চালানোর অনুমতি দেয়।

যদি অ্যান্ড্রয়েড শনাক্ত করে যে আপনার অ্যাপে 4 KB সারিবদ্ধ মেমরি পৃষ্ঠা রয়েছে, তাহলে এটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য মোড ব্যবহার করে এবং ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ডায়ালগ প্রদর্শন করে। পিছনের দিকের সামঞ্জস্য মোড সক্ষম করতে AndroidManifest.xmlandroid:pageSizeCompat বৈশিষ্ট্য সেট করা আপনার অ্যাপ চালু হওয়ার সময় ডায়ালগ প্রদর্শনকে বাধা দেবে৷ সর্বোত্তম কর্মক্ষমতা, নির্ভরযোগ্যতা এবং স্থিতিশীলতার জন্য, আপনার অ্যাপটি এখনও 16 KB সারিবদ্ধ হওয়া উচিত। আরও বিশদ বিবরণের জন্য 16 KB মেমরি পৃষ্ঠাগুলিকে সমর্থন করার জন্য আপনার অ্যাপগুলি আপডেট করার বিষয়ে আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন৷

কম্প্যাটিবিলিটি মোড ডায়ালগ যা প্রদর্শন করে যখন সিস্টেম শনাক্ত করে যে 16 KB সারিবদ্ধ হলে একটি 4 KB-সারিবদ্ধ অ্যাপ আরও ভালোভাবে চলতে পারে।

ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে৷

ব্যাঘাতমূলক অ্যাক্সেসিবিলিটি ঘোষণাগুলিকে অবজ্ঞা করা হচ্ছে

Android 16 অ্যাকসেসিবিলিটি ঘোষণাগুলিকে বাতিল করে, যা announceForAccessibility ব্যবহার বা TYPE_ANNOUNCEMENT অ্যাক্সেসিবিলিটি ইভেন্টগুলির প্রেরণের দ্বারা চিহ্নিত৷ এগুলি টকব্যাক এবং অ্যান্ড্রয়েডের স্ক্রিন রিডার ব্যবহারকারীদের জন্য অসামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারে এবং বিকল্পগুলি Android এর বিভিন্ন সহায়ক প্রযুক্তি জুড়ে ব্যবহারকারীর চাহিদার বিস্তৃত পরিসরকে আরও ভালভাবে পরিবেশন করে৷

বিকল্পের উদাহরণ:

অপ্রচলিত announceForAccessibility API-এর রেফারেন্স ডকুমেন্টেশনে প্রস্তাবিত বিকল্পগুলি সম্পর্কে আরও বিশদ অন্তর্ভুক্ত রয়েছে৷

3-বোতাম নেভিগেশন জন্য সমর্থন

Android 16 সঠিকভাবে ভবিষ্যদ্বাণীমূলক ব্যাক-এ স্থানান্তরিত অ্যাপগুলির জন্য 3-বোতাম নেভিগেশনে ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন নিয়ে আসে। পিছনের বোতামটি দীর্ঘক্ষণ চাপলে একটি ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন শুরু হয়, যা আপনাকে পিছনের সোয়াইপ আপনাকে কোথায় নিয়ে যায় তার একটি পূর্বরূপ দেয়।

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

3-বোতাম নেভিগেশন মোডে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন।

ডিভাইস ফর্ম ফ্যাক্টর

ভার্চুয়াল ডিভাইস মালিকদের ডিসপ্লেতে প্রজেক্ট করার সময় Android 16 অ্যাপগুলির জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।

ভার্চুয়াল ডিভাইস মালিক ওভাররাইড করে

A virtual device owner is a trusted or privileged app that creates and manages a virtual device. Virtual device owners run apps on a virtual device and then project the apps to the display of a remote device, such as a personal computer, virtual reality device, or car infotainment system. The virtual device owner is on a local device, such as a mobile phone.

Virtual device owner on phone creates virtual device that projects app to remote display.

Per-app overrides

On devices running Android 16, virtual device owners can override app settings on select virtual devices that the virtual device owners manage. For example, to improve app layout, a virtual device owner can ignore orientation, aspect ratio, and resizability restrictions when projecting apps onto an external display.

Common breaking changes

The Android 16 behavior might impact your app's UI on large screen form factors such as car displays or Chromebooks, especially layouts that were designed for small displays in portrait orientation. To learn how to make your app adaptive for all device form factors, see About adaptive layouts.

References

Companion app streaming

নিরাপত্তা

অ্যান্ড্রয়েড 16-এ এমন পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাপ এবং ব্যবহারকারীদের দূষিত অ্যাপ থেকে রক্ষা করতে সিস্টেম নিরাপত্তার প্রচার করে।

ইন্টেন্ট পুনঃনির্দেশ আক্রমণের বিরুদ্ধে উন্নত নিরাপত্তা

অ্যান্ড্রয়েড 16 সাধারণ Intent পুনঃনির্দেশ আক্রমণের বিরুদ্ধে ডিফল্ট নিরাপত্তা প্রদান করে, ন্যূনতম সামঞ্জস্যতা এবং বিকাশকারী পরিবর্তনের প্রয়োজন।

আমরা Intent রিডাইরেকশন শোষণের জন্য বাই-ডিফল্ট নিরাপত্তা শক্ত করার সমাধান প্রবর্তন করছি। বেশিরভাগ ক্ষেত্রে, যে অ্যাপগুলি সাধারণত উদ্দেশ্যগুলি ব্যবহার করে সেগুলি কোনও সামঞ্জস্যের সমস্যা অনুভব করবে না; কোন অ্যাপগুলি ভেঙে যেতে পারে তা নিরীক্ষণ করতে আমরা আমাদের বিকাশ প্রক্রিয়া জুড়ে মেট্রিক্স সংগ্রহ করেছি।

অ্যান্ড্রয়েডে ইন্টেন্ট রিডাইরেকশন ঘটে যখন একজন আক্রমণকারী একটি দুর্বল অ্যাপের প্রেক্ষাপটে একটি নতুন কম্পোনেন্ট লঞ্চ করার জন্য ব্যবহৃত একটি অভিপ্রায়ের বিষয়বস্তুকে আংশিক বা সম্পূর্ণ নিয়ন্ত্রণ করতে পারে, যখন শিকার অ্যাপটি একটি ("টপ-লেভেল") অভিপ্রায়ের অতিরিক্ত ক্ষেত্রে একটি অবিশ্বস্ত উপ-স্তরের অভিপ্রায় চালু করে। এটি আক্রমণকারী অ্যাপের শিকার অ্যাপের প্রেক্ষাপটে ব্যক্তিগত উপাদান চালু করতে, বিশেষ সুবিধাপ্রাপ্ত অ্যাকশনগুলিকে ট্রিগার করতে বা সংবেদনশীল ডেটাতে URI অ্যাক্সেস পেতে পারে, সম্ভাব্যভাবে ডেটা চুরি এবং নির্বিচারে কোড সম্পাদনের দিকে পরিচালিত করতে পারে।

ইন্টেন্ট রিডাইরেকশন হ্যান্ডলিং থেকে অপ্ট আউট করুন

অ্যান্ড্রয়েড 16 একটি নতুন API প্রবর্তন করেছে যা অ্যাপগুলিকে লঞ্চ সুরক্ষা সুরক্ষা থেকে অপ্ট আউট করতে দেয়৷ এটি নির্দিষ্ট ক্ষেত্রে প্রয়োজনীয় হতে পারে যেখানে ডিফল্ট নিরাপত্তা আচরণ বৈধ অ্যাপ ব্যবহারের ক্ষেত্রে হস্তক্ষেপ করে।

Android 16 SDK বা উচ্চতর সংস্করণের সাথে কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য৷

আপনি ইন্টেন্ট অবজেক্টে সরাসরি removeLaunchSecurityProtection() পদ্ধতি ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent")
iSublevel?.removeLaunchSecurityProtection() // Opt out from hardening
iSublevel?.let { startActivity(it) }
অ্যান্ড্রয়েড 15 (এপিআই লেভেল 35) বা তার চেয়ে কম কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য

প্রস্তাবিত না হলেও, আপনি removeLaunchSecurityProtection() পদ্ধতি অ্যাক্সেস করতে প্রতিফলন ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent", Intent::class.java)
try {
    val removeLaunchSecurityProtection = Intent::class.java.getDeclaredMethod("removeLaunchSecurityProtection")
    removeLaunchSecurityProtection.invoke(iSublevel)
} catch (e: Exception) {
    // Handle the exception, e.g., log it
} // Opt-out from the security hardening using reflection
iSublevel?.let { startActivity(it) }

সংযোগ

পেরিফেরাল ডিভাইসের সাথে সংযোগ উন্নত করতে ব্লুটুথ স্ট্যাকের নিম্নলিখিত পরিবর্তনগুলিকে Android 16-এ অন্তর্ভুক্ত করা হয়েছে।

উন্নত বন্ড ক্ষতি হ্যান্ডলিং

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

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

,

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

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

,

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

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

,

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

শুধুমাত্র Android 16 টার্গেট করা অ্যাপগুলিকে প্রভাবিত করে এমন আচরণের পরিবর্তনগুলির তালিকা পর্যালোচনা করা নিশ্চিত করুন।

মূল কার্যকারিতা

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে৷

চাকরির সময়সূচি কোটা অপ্টিমাইজেশান

অ্যান্ড্রয়েড 16 থেকে শুরু করে, আমরা নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সামঞ্জস্য করছি:

  • অ্যাপ্লিকেশানটি কোন অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে : Android 16-এ, সক্রিয় স্ট্যান্ডবাই বাকেটগুলি উদার রানটাইম কোটা দ্বারা প্রয়োগ করা শুরু হবে৷
  • অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন চাকরিটি কার্যকর করা শুরু করলে : Android 16-এ, অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান থাকাকালীন চাকরি শুরু হয় এবং অ্যাপটি অদৃশ্য হয়ে যাওয়ার পরেও চলতে থাকে, চাকরির রানটাইম কোটা মেনে চলবে।
  • যদি একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় কাজটি কার্যকর করা হয় : Android 16-এ, একটি ফোরগ্রাউন্ড পরিষেবার সাথে একযোগে কাজ চালানোর সময় চাকরির রানটাইম কোটা মেনে চলবে। আপনি যদি ব্যবহারকারীর সূচনাকৃত ডেটা স্থানান্তরের জন্য কাজের সুবিধা নিয়ে থাকেন, তবে পরিবর্তে ব্যবহারকারীর সূচিত ডেটা স্থানান্তর কাজগুলি ব্যবহার করার কথা বিবেচনা করুন।

এই পরিবর্তনটি WorkManager, JobScheduler, এবং DownloadManager ব্যবহার করে নির্ধারিত কাজগুলিকে প্রভাবিত করে৷ কেন একটি কাজ বন্ধ করা হয়েছিল তা ডিবাগ করার জন্য, আমরা WorkInfo.getStopReason() (JobScheduler কাজের জন্য, JobParameters.getStopReason() ) কল করে কল করে কেন আপনার কাজ বন্ধ করা হয়েছিল তা লগ করার পরামর্শ দিই।

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

আমরা Android 16-এ প্রবর্তিত নতুন JobScheduler#getPendingJobReasonsHistory API ব্যবহার করার পরামর্শ দিচ্ছি কেন একটি চাকরি কার্যকর করা হয়নি তা বোঝার জন্য।

টেস্টিং

আপনার অ্যাপের আচরণ পরীক্ষা করার জন্য, আপনি নির্দিষ্ট চাকরির কোটা অপ্টিমাইজেশনের ওভাররাইড সক্ষম করতে পারেন যতক্ষণ না অ্যাপটি একটি Android 16 ডিভাইসে চলছে।

"শীর্ষ রাষ্ট্র চাকরীর রানটাইম কোটা মেনে চলবে" এর প্রয়োগ অক্ষম করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME

"যে কাজগুলি একযোগে একটি ফোরগ্রাউন্ড পরিষেবার সাথে কাজ চালানোর সময় কাজ রানটাইম কোটা মেনে চলবে" এর প্রয়োগকে নিষ্ক্রিয় করতে, নিম্নলিখিত adb কমান্ডটি চালান:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME

নির্দিষ্ট অ্যাপ স্ট্যান্ডবাই বালতি আচরণ পরীক্ষা করতে, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট সেট করতে পারেন:

adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted

আপনার অ্যাপটি যে অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে তা বোঝার জন্য, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট পেতে পারেন:

adb shell am get-standby-bucket APP_PACKAGE_NAME

পরিত্যক্ত খালি কাজ বন্ধ কারণ

An abandoned job occurs when the JobParameters object associated with the job has been garbage collected, but JobService#jobFinished(JobParameters, boolean) has not been called to signal job completion. This indicates that the job may be running and being rescheduled without the app's awareness.

Apps that rely on JobScheduler, don't maintain a strong reference to the JobParameters object, and timeout will now be granted the new job stop reason STOP_REASON_TIMEOUT_ABANDONED, instead of STOP_REASON_TIMEOUT.

If there are frequent occurrences of the new abandoned stop reason, the system will take mitigation steps to reduce job frequency.

Apps should use the new stop reason to detect and reduce abandoned jobs.

If you're using WorkManager, AsyncTask, or DownloadManager, you aren't impacted because these APIs manage the job lifecycle on your app's behalf.

JobInfo#setImportantWhileForeground সম্পূর্ণরূপে অবজ্ঞা করা হচ্ছে

The JobInfo.Builder#setImportantWhileForeground(boolean) method indicates the importance of a job while the scheduling app is in the foreground or when temporarily exempted from background restrictions.

This method has been deprecated since Android 12 (API level 31). Starting in Android 16, it no longer functions effectively and calling this method will be ignored.

This removal of functionality also applies to JobInfo#isImportantWhileForeground(). Starting in Android 16, if the method is called, the method returns false.

আদেশকৃত সম্প্রচার অগ্রাধিকার সুযোগ আর বিশ্বব্যাপী নয়

Android apps are allowed to define priorities on broadcast receivers to control the order in which the receivers receive and process the broadcast. For manifest-declared receivers, apps can use the android:priority attribute to define the priority and for context-registered receivers, apps can use the IntentFilter#setPriority() API to define the priority. When a broadcast is sent, the system delivers it to receivers in order of their priority, from highest to lowest.

In Android 16, broadcast delivery order using the android:priority attribute or IntentFilter#setPriority() across different processes will not be guaranteed. Broadcast priorities will only be respected within the same application process rather than across all processes.

Also, broadcast priorities will be automatically confined to the range (SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1). Only system components will be allowed to set SYSTEM_LOW_PRIORITY, SYSTEM_HIGH_PRIORITY as broadcast priority.

Your app might be impacted if it does either of the following:

  1. Your application has declared multiple processes with the same broadcast intent, and has expectations around receiving those intents in a certain order based on the priority.
  2. Your application process interacts with other processes and has expectations around receiving a broadcast intent in a certain order.

If the processes need to coordinate with each other, they should communicate using other coordination channels.

ART অভ্যন্তরীণ পরিবর্তন

Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher.

As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates.

Relying on internal structures (such as non-SDK interfaces) can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on and they go out to over a billion devices through Google Play system updates.

All developers should check whether their app is impacted by testing their apps thoroughly on Android 16. In addition, check the known issues to see if your app depends on any libraries that we've identified that rely on internal ART structures. If you do have app code or library dependencies that are affected, seek public API alternatives whenever possible and request public APIs for new use cases by creating a feature request in our issue tracker.

16 KB পৃষ্ঠার আকার সামঞ্জস্য মোড

প্ল্যাটফর্মের কর্মক্ষমতা অপ্টিমাইজ করতে Android 15 16 KB মেমরি পৃষ্ঠাগুলির জন্য সমর্থন চালু করেছে। Android 16 একটি সামঞ্জস্যপূর্ণ মোড যোগ করে, যা 4 KB মেমরি পৃষ্ঠাগুলির জন্য নির্মিত কিছু অ্যাপকে 16 KB মেমরি পৃষ্ঠাগুলির জন্য কনফিগার করা ডিভাইসে চালানোর অনুমতি দেয়।

যদি অ্যান্ড্রয়েড শনাক্ত করে যে আপনার অ্যাপে 4 KB সারিবদ্ধ মেমরি পৃষ্ঠা রয়েছে, তাহলে এটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য মোড ব্যবহার করে এবং ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ডায়ালগ প্রদর্শন করে। পিছনের দিকের সামঞ্জস্য মোড সক্ষম করতে AndroidManifest.xmlandroid:pageSizeCompat বৈশিষ্ট্য সেট করা আপনার অ্যাপ চালু হওয়ার সময় ডায়ালগ প্রদর্শনকে বাধা দেবে৷ সর্বোত্তম কর্মক্ষমতা, নির্ভরযোগ্যতা এবং স্থিতিশীলতার জন্য, আপনার অ্যাপটি এখনও 16 KB সারিবদ্ধ হওয়া উচিত। আরও বিশদ বিবরণের জন্য 16 KB মেমরি পৃষ্ঠাগুলিকে সমর্থন করার জন্য আপনার অ্যাপগুলি আপডেট করার বিষয়ে আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন৷

কম্প্যাটিবিলিটি মোড ডায়ালগ যা প্রদর্শন করে যখন সিস্টেম শনাক্ত করে যে 16 KB সারিবদ্ধ হলে একটি 4 KB-সারিবদ্ধ অ্যাপ আরও ভালোভাবে চলতে পারে।

ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI

Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে৷

ব্যাঘাতমূলক অ্যাক্সেসিবিলিটি ঘোষণাগুলিকে অবজ্ঞা করা হচ্ছে

Android 16 অ্যাকসেসিবিলিটি ঘোষণাগুলিকে বাতিল করে, যা announceForAccessibility ব্যবহার বা TYPE_ANNOUNCEMENT অ্যাক্সেসিবিলিটি ইভেন্টগুলির প্রেরণের দ্বারা চিহ্নিত৷ এগুলি টকব্যাক এবং অ্যান্ড্রয়েডের স্ক্রিন রিডার ব্যবহারকারীদের জন্য অসামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারে এবং বিকল্পগুলি Android এর বিভিন্ন সহায়ক প্রযুক্তি জুড়ে ব্যবহারকারীর চাহিদার বিস্তৃত পরিসরকে আরও ভালভাবে পরিবেশন করে৷

বিকল্পের উদাহরণ:

অপ্রচলিত announceForAccessibility API-এর রেফারেন্স ডকুমেন্টেশনে প্রস্তাবিত বিকল্পগুলি সম্পর্কে আরও বিশদ অন্তর্ভুক্ত রয়েছে৷

3-বোতাম নেভিগেশন জন্য সমর্থন

Android 16 সঠিকভাবে ভবিষ্যদ্বাণীমূলক ব্যাক-এ স্থানান্তরিত অ্যাপগুলির জন্য 3-বোতাম নেভিগেশনে ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন নিয়ে আসে। পিছনের বোতামটি দীর্ঘক্ষণ চাপলে একটি ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন শুরু হয়, যা আপনাকে পিছনের সোয়াইপ আপনাকে কোথায় নিয়ে যায় তার একটি পূর্বরূপ দেয়।

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

3-বোতাম নেভিগেশন মোডে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন।

ডিভাইস ফর্ম ফ্যাক্টর

ভার্চুয়াল ডিভাইস মালিকদের ডিসপ্লেতে প্রজেক্ট করার সময় Android 16 অ্যাপগুলির জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।

ভার্চুয়াল ডিভাইস মালিক ওভাররাইড করে

A virtual device owner is a trusted or privileged app that creates and manages a virtual device. Virtual device owners run apps on a virtual device and then project the apps to the display of a remote device, such as a personal computer, virtual reality device, or car infotainment system. The virtual device owner is on a local device, such as a mobile phone.

Virtual device owner on phone creates virtual device that projects app to remote display.

Per-app overrides

On devices running Android 16, virtual device owners can override app settings on select virtual devices that the virtual device owners manage. For example, to improve app layout, a virtual device owner can ignore orientation, aspect ratio, and resizability restrictions when projecting apps onto an external display.

Common breaking changes

The Android 16 behavior might impact your app's UI on large screen form factors such as car displays or Chromebooks, especially layouts that were designed for small displays in portrait orientation. To learn how to make your app adaptive for all device form factors, see About adaptive layouts.

References

Companion app streaming

নিরাপত্তা

অ্যান্ড্রয়েড 16-এ এমন পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাপ এবং ব্যবহারকারীদের দূষিত অ্যাপ থেকে রক্ষা করতে সিস্টেম নিরাপত্তার প্রচার করে।

ইন্টেন্ট পুনঃনির্দেশ আক্রমণের বিরুদ্ধে উন্নত নিরাপত্তা

অ্যান্ড্রয়েড 16 সাধারণ Intent পুনঃনির্দেশ আক্রমণের বিরুদ্ধে ডিফল্ট নিরাপত্তা প্রদান করে, ন্যূনতম সামঞ্জস্যতা এবং বিকাশকারী পরিবর্তনের প্রয়োজন।

আমরা Intent রিডাইরেকশন শোষণের জন্য বাই-ডিফল্ট নিরাপত্তা শক্ত করার সমাধান প্রবর্তন করছি। বেশিরভাগ ক্ষেত্রে, যে অ্যাপগুলি সাধারণত উদ্দেশ্যগুলি ব্যবহার করে সেগুলি কোনও সামঞ্জস্যের সমস্যা অনুভব করবে না; কোন অ্যাপগুলি ভেঙে যেতে পারে তা নিরীক্ষণ করতে আমরা আমাদের বিকাশ প্রক্রিয়া জুড়ে মেট্রিক্স সংগ্রহ করেছি।

অ্যান্ড্রয়েডে ইন্টেন্ট রিডাইরেকশন ঘটে যখন একজন আক্রমণকারী একটি দুর্বল অ্যাপের প্রেক্ষাপটে একটি নতুন কম্পোনেন্ট লঞ্চ করার জন্য ব্যবহৃত একটি অভিপ্রায়ের বিষয়বস্তুকে আংশিক বা সম্পূর্ণ নিয়ন্ত্রণ করতে পারে, যখন শিকার অ্যাপটি একটি ("টপ-লেভেল") অভিপ্রায়ের অতিরিক্ত ক্ষেত্রে একটি অবিশ্বস্ত উপ-স্তরের অভিপ্রায় চালু করে। এটি আক্রমণকারী অ্যাপের শিকার অ্যাপের প্রেক্ষাপটে ব্যক্তিগত উপাদান চালু করতে, বিশেষ সুবিধাপ্রাপ্ত অ্যাকশনগুলিকে ট্রিগার করতে বা সংবেদনশীল ডেটাতে URI অ্যাক্সেস পেতে পারে, সম্ভাব্যভাবে ডেটা চুরি এবং নির্বিচারে কোড সম্পাদনের দিকে পরিচালিত করতে পারে।

ইন্টেন্ট রিডাইরেকশন হ্যান্ডলিং থেকে অপ্ট আউট করুন

অ্যান্ড্রয়েড 16 একটি নতুন API প্রবর্তন করেছে যা অ্যাপগুলিকে লঞ্চ সুরক্ষা সুরক্ষা থেকে অপ্ট আউট করতে দেয়৷ এটি নির্দিষ্ট ক্ষেত্রে প্রয়োজনীয় হতে পারে যেখানে ডিফল্ট নিরাপত্তা আচরণ বৈধ অ্যাপ ব্যবহারের ক্ষেত্রে হস্তক্ষেপ করে।

Android 16 SDK বা উচ্চতর সংস্করণের সাথে কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য৷

আপনি ইন্টেন্ট অবজেক্টে সরাসরি removeLaunchSecurityProtection() পদ্ধতি ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent")
iSublevel?.removeLaunchSecurityProtection() // Opt out from hardening
iSublevel?.let { startActivity(it) }
অ্যান্ড্রয়েড 15 (এপিআই লেভেল 35) বা তার চেয়ে কম কম্পাইল করা অ্যাপ্লিকেশনগুলির জন্য

প্রস্তাবিত না হলেও, আপনি removeLaunchSecurityProtection() পদ্ধতি অ্যাক্সেস করতে প্রতিফলন ব্যবহার করতে পারেন।

val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent", Intent::class.java)
try {
    val removeLaunchSecurityProtection = Intent::class.java.getDeclaredMethod("removeLaunchSecurityProtection")
    removeLaunchSecurityProtection.invoke(iSublevel)
} catch (e: Exception) {
    // Handle the exception, e.g., log it
} // Opt-out from the security hardening using reflection
iSublevel?.let { startActivity(it) }

সংযোগ

পেরিফেরাল ডিভাইসের সাথে সংযোগ উন্নত করতে ব্লুটুথ স্ট্যাকের নিম্নলিখিত পরিবর্তনগুলিকে Android 16-এ অন্তর্ভুক্ত করা হয়েছে।

উন্নত বন্ড ক্ষতি হ্যান্ডলিং

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

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

,

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

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

,

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

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