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

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

এছাড়াও আচরণ পরিবর্তনের তালিকা পর্যালোচনা করতে ভুলবেন না যা শুধুমাত্র Android 15 কে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে

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

Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।

প্যাকেজ পরিবর্তন স্টপ অবস্থা

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

উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED , বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।

অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped() পদ্ধতিতে কল করতে পারেন।

16 KB পৃষ্ঠার আকারের জন্য সমর্থন

Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, AOSP supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. Without recompiling, apps might not work on 16 KB devices when they are productionized in future Android releases.

To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).

সুবিধা এবং কর্মক্ষমতা লাভ

16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:

  • সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
  • অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
  • দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
  • উন্নত সিস্টেম বুট সময়: গড়ে 8% (প্রায় 950 মিলিসেকেন্ড) দ্বারা উন্নত

এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। যদি আপনি নিশ্চিত না হন যে আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে, তাহলে আপনি APK বিশ্লেষক ব্যবহার করে সনাক্ত করতে পারেন যে কোনও নেটিভ কোড উপস্থিত আছে কিনা এবং তারপরে আপনি যে কোনও ভাগ করা লাইব্রেরির জন্য ELF বিভাগগুলির সারিবদ্ধতা পরীক্ষা করতে পারেন

যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন

ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন

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

সব অ্যাপ

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

মেডিকেল অ্যাপস

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

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

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

লঞ্চার অ্যাপস

আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  1. আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ, ROLE_HOME ভূমিকার অধিকারী৷
  2. আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ACCESS_HIDDEN_PROFILES স্বাভাবিক অনুমতি ঘোষণা করতে হবে।

লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:

  1. ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে getLauncherUserInfo() পদ্ধতি ব্যবহার করুন।
  2. ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
  3. ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে ( true পাস করে) বা আনলক করতে ( false পাস করে) করার জন্য requestQuietModeEnabled() পদ্ধতি ব্যবহার করুন।
  4. লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত ACTION_PROFILE_AVAILABLE এবং ACTION_PROFILE_UNAVAILABLE সম্প্রচারের জন্য একটি রিসিভার নিবন্ধন করা এবং ব্যক্তিগত স্থান কন্টেইনারের লক বা আনলক করা অবস্থার পরিবর্তন হলে আপনার অ্যাপে UI আপডেট করা উচিত। এই দুটি সম্প্রচারের মধ্যে রয়েছে EXTRA_USER , যা আপনার অ্যাপ ব্যক্তিগত প্রোফাইল ব্যবহারকারীকে উল্লেখ করতে ব্যবহার করতে পারে৷

    ব্যক্তিগত স্থান প্রোফাইল লক করা আছে কিনা তা পরীক্ষা করতে আপনি isQuietModeEnabled() পদ্ধতি ব্যবহার করতে পারেন।

অ্যাপ স্টোর অ্যাপস

ব্যক্তিগত স্থানটিতে একটি "অ্যাপস ইনস্টল করুন" বোতাম রয়েছে যা ব্যবহারকারীর ব্যক্তিগত স্থানে অ্যাপগুলি ইনস্টল করার একটি অন্তর্নিহিত অভিপ্রায় চালু করে৷ আপনার অ্যাপটি এই অন্তর্নিহিত অভিপ্রায়টি পাওয়ার জন্য, CATEGORY_APP_MARKET এর <category> সহ আপনার অ্যাপের ম্যানিফেস্ট ফাইলে একটি <intent-filter> ঘোষণা করুন।

PNG-ভিত্তিক ইমোজি ফন্ট সরানো হয়েছে

উত্তরাধিকার, PNG-ভিত্তিক ইমোজি ফন্ট ফাইল ( NotoColorEmojiLegacy.ttf ) সরানো হয়েছে, শুধুমাত্র ভেক্টর-ভিত্তিক ফাইলটি রেখে। অ্যান্ড্রয়েড 13 (API লেভেল 33) থেকে শুরু করে, সিস্টেম ইমোজি রেন্ডারার দ্বারা ব্যবহৃত ইমোজি ফন্ট ফাইলটি একটি PNG-ভিত্তিক ফাইল থেকে ভেক্টর ভিত্তিক ফাইলে পরিবর্তিত হয়েছে । সিস্টেমটি সামঞ্জস্যের কারণে অ্যান্ড্রয়েড 13 এবং 14 এ লিগ্যাসি ফন্ট ফাইলটি ধরে রেখেছে, যাতে তাদের নিজস্ব ফন্ট রেন্ডারার সহ অ্যাপগুলি আপগ্রেড করতে সক্ষম না হওয়া পর্যন্ত লিগ্যাসি ফন্ট ফাইলটি ব্যবহার করা চালিয়ে যেতে পারে।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে, NotoColorEmojiLegacy.ttf ফাইলের রেফারেন্সের জন্য আপনার অ্যাপের কোড খুঁজুন।

আপনি বিভিন্ন উপায়ে আপনার অ্যাপটিকে মানিয়ে নিতে বেছে নিতে পারেন:

  • টেক্সট রেন্ডারিংয়ের জন্য প্ল্যাটফর্ম API ব্যবহার করুন। আপনি একটি বিটম্যাপ-ব্যাকড Canvas পাঠ্য রেন্ডার করতে পারেন এবং প্রয়োজনে একটি কাঁচা চিত্র পেতে এটি ব্যবহার করতে পারেন।
  • আপনার অ্যাপে COLRv1 ফন্ট সমর্থন যোগ করুন। FreeType ওপেন সোর্স লাইব্রেরি 2.13.0 এবং উচ্চতর সংস্করণে COLRv1 সমর্থন করে।
  • শেষ অবলম্বন হিসাবে, আপনি আপনার APK-এ লিগ্যাসি ইমোজি ফন্ট ফাইল ( NotoColorEmoji.ttf ) বান্ডিল করতে পারেন, যদিও সেই ক্ষেত্রে আপনার অ্যাপটি সাম্প্রতিক ইমোজি আপডেটগুলি অনুপস্থিত থাকবে৷ আরও তথ্যের জন্য, নোটো ইমোজি গিটহাব প্রকল্প পৃষ্ঠাটি দেখুন।

23 থেকে 24 তে ন্যূনতম লক্ষ্য SDK সংস্করণ বৃদ্ধি করা হয়েছে৷

অ্যান্ড্রয়েড 15 অ্যান্ড্রয়েড 14-এ করা পরিবর্তনগুলির উপর ভিত্তি করে তৈরি করে এবং এই নিরাপত্তাকে আরও প্রসারিত করে। অ্যান্ড্রয়েড 15-এ, 24-এর কম targetSdkVersion সহ অ্যাপগুলি ইনস্টল করা যাবে না। আধুনিক API স্তরগুলি পূরণ করার জন্য অ্যাপগুলির প্রয়োজন আরও ভাল নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে সহায়তা করে৷

উচ্চতর Android সংস্করণে প্রবর্তিত নিরাপত্তা এবং গোপনীয়তা সুরক্ষাগুলিকে বাইপাস করার জন্য ম্যালওয়্যার প্রায়ই নিম্ন API স্তরগুলিকে লক্ষ্য করে৷ উদাহরণস্বরূপ, Android 6.0 Marshmallow (API স্তর 23) দ্বারা 2015 সালে চালু করা রানটাইম অনুমতি মডেলের শিকার হওয়া এড়াতে কিছু ম্যালওয়্যার অ্যাপ 22-এর একটি targetSdkVersion ব্যবহার করে। এই Android 15 পরিবর্তন নিরাপত্তা এবং গোপনীয়তার উন্নতি এড়াতে ম্যালওয়্যারের জন্য কঠিন করে তোলে। একটি নিম্ন API স্তর লক্ষ্য করে একটি অ্যাপ ইনস্টল করার চেষ্টা করার ফলে একটি ইনস্টলেশন ব্যর্থতা দেখা দেয়, নিম্নলিখিতগুলির মত একটি বার্তা Logcat-এ উপস্থিত হয়:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Android 15-এ আপগ্রেড করা ডিভাইসগুলিতে, 24-এর কম targetSdkVersion সহ যেকোনও অ্যাপ ইনস্টল থাকে।

আপনি যদি একটি পুরানো API স্তর লক্ষ্য করে একটি অ্যাপ্লিকেশন পরীক্ষা করতে চান, নিম্নলিখিত ADB কমান্ড ব্যবহার করুন:

adb install --bypass-low-target-sdk-block FILENAME.apk

নিরাপত্তা এবং গোপনীয়তা

Android 15 introduces robust measures to combat one-time passcode (OTP) fraud and to protect the user's sensitive content, focusing on hardening the Notification Listener Service and screenshare protections. Key enhancements include redacting OTPs from notifications accessible to untrusted apps, hiding notifications during screenshare, and securing app activities when OTPs are posted. These changes aim to keep the user's sensitive content safe from unauthorized actors.

Developers need to be aware of the following to ensure their apps are compatible with the changes in Android 15:

OTP Redaction

Android will stop untrusted apps that implement a NotificationListenerService from reading unredacted content from notifications where an OTP has been detected. Trusted apps such as companion device manager associations are exempt from these restrictions.

Screenshare Protection

  • Notification content is hidden during screen sharing sessions to preserve the user's privacy. If the app implements setPublicVersion(), Android shows the public version of the notification which serves as a replacement notification in insecure contexts. Otherwise, the notification content is redacted without any further context.
  • Sensitive content like password input is hidden from remote viewers to prevent revealing the user's sensitive information.
  • Activities from apps that post notifications during screenshare where an OTP has been detected will be hidden. App content is hidden from the remote viewer when launched.
  • Beyond Android's automatic identification of sensitive fields, developers can manually mark parts of their app as sensitive using setContentSensitivity, which is hidden from remote viewers during screenshare.
  • Developers can choose to toggle the Disable screen share protections option under Developer Options to be exempted from the screenshare protections for demo or testing purposes. The default system screen recorder is exempted from these changes, since the recordings remain on-device.

ক্যামেরা এবং মিডিয়া

Android 15 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷

প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়

অ্যান্ড্রয়েড 15-এর আগে, অন্য অ্যাপ অডিও চালানোর সময় যদি কোনও অ্যাপ সরাসরি বা অফলোড অডিও প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, অ্যাপটি একটি নতুন AudioTrack খুলতে ব্যর্থ হবে।

অ্যান্ড্রয়েড 15 থেকে শুরু করে, যখন কোনো অ্যাপ সরাসরি বা অফলোড প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, তখন সিস্টেমটি বর্তমানে খোলা AudioTrack অবজেক্টকে বাতিল করে দেয় যা নতুন ট্র্যাকের অনুরোধ পূরণ করতে বাধা দেয়।

(সরাসরি এবং অফলোড অডিও ট্র্যাকগুলি সাধারণত সংকুচিত অডিও ফর্ম্যাটগুলির প্লেব্যাকের জন্য খোলা হয়৷ সরাসরি অডিও চালানোর জন্য সাধারণ ব্যবহারের ক্ষেত্রে HDMI এর মাধ্যমে একটি টিভিতে এনকোডেড অডিও স্ট্রিম করা অন্তর্ভুক্ত৷ অফলোড ট্র্যাকগুলি সাধারণত হার্ডওয়্যার ডিএসপি সহ একটি মোবাইল ডিভাইসে সংকুচিত অডিও চালানোর জন্য ব্যবহৃত হয়৷ ত্বরণ।)

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

অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।

অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷

অ্যান্ড্রয়েড 15 থেকে শুরু করে, ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনের জন্য বিকাশকারী বিকল্পটি সরানো হয়েছে। সিস্টেম অ্যানিমেশন যেমন ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি এখন এমন অ্যাপগুলির জন্য উপস্থিত হয় যেগুলি সম্পূর্ণরূপে বা কোনও কার্যকলাপ স্তরে পূর্বাভাসমূলক ব্যাক জেসচারে বেছে নিয়েছে ৷ আপনার অ্যাপ প্রভাবিত হলে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  • ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার ব্যবহার করতে আপনার অ্যাপটি সঠিকভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত করুন।
  • নিশ্চিত করুন যে আপনার টুকরো রূপান্তরগুলি পূর্বাভাসমূলক ব্যাক নেভিগেশনের সাথে কাজ করে৷
  • অ্যানিমেশন এবং ফ্রেমওয়ার্ক ট্রানজিশন থেকে দূরে সরে যান এবং পরিবর্তে অ্যানিমেটর এবং অ্যান্ড্রয়েডক্স ট্রানজিশন ব্যবহার করুন।
  • FragmentManager জানেন না এমন ব্যাক স্ট্যাকগুলি থেকে দূরে স্থানান্তর করুন৷ এর পরিবর্তে FragmentManager বা নেভিগেশন উপাদান দ্বারা পরিচালিত ব্যাক স্ট্যাকগুলি ব্যবহার করুন৷

ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়

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

পরের বার ব্যবহারকারী যখন অ্যাপটি চালু করেন তখন সিস্টেমটি সেই উইজেটগুলিকে পুনরায় সক্ষম করে৷

আরও তথ্যের জন্য, প্যাকেজ বন্ধ অবস্থায় পরিবর্তন দেখুন।

মিডিয়া প্রজেকশন স্ট্যাটাস বার চিপ ব্যবহারকারীদের স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিং সম্পর্কে সতর্ক করে

স্ক্রীন প্রজেকশন শোষণ ব্যক্তিগত ব্যবহারকারীর ডেটা যেমন আর্থিক তথ্য প্রকাশ করে কারণ ব্যবহারকারীরা বুঝতে পারে না যে তাদের ডিভাইসের স্ক্রিন ভাগ করা হচ্ছে।

Android 15 QPR1 বা উচ্চতর ডিভাইসে চলমান অ্যাপ্লিকেশানগুলির জন্য, একটি স্ট্যাটাস বার চিপ যা বড় এবং বিশিষ্ট যেকোন চলমান স্ক্রীন প্রজেকশনে ব্যবহারকারীদের সতর্ক করে। ব্যবহারকারীরা তাদের স্ক্রীন শেয়ার করা, কাস্ট করা বা রেকর্ড করা থেকে বন্ধ করতে চিপটিতে ট্যাপ করতে পারেন। এছাড়াও, ডিভাইসের স্ক্রিন লক হয়ে গেলে স্ক্রিন প্রজেকশন স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিংয়ের জন্য স্ট্যাটাস বার চিপ।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

ডিফল্টরূপে, আপনার অ্যাপে স্ট্যাটাস বার চিপ অন্তর্ভুক্ত থাকে এবং লক স্ক্রিন সক্রিয় হলে স্বয়ংক্রিয়ভাবে স্ক্রিন প্রজেকশন স্থগিত করে।

এই ব্যবহারের ক্ষেত্রে আপনার অ্যাপটি কীভাবে পরীক্ষা করবেন সে সম্পর্কে আরও জানতে, স্ট্যাটাস বার চিপ এবং অটো স্টপ দেখুন।

পটভূমি নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধতা

In Android 15, apps that start a network request outside of a valid process lifecycle receive an exception. Typically, an UnknownHostException or other socket-related IOException. Network requests that happen outside of a valid lifecycle are usually due to apps unknowingly continuing a network request even after the app is no longer active.

To mitigate this exception, ensure your network requests are lifecycle aware and cancelled upon leaving a valid process lifecycle by using lifecycle aware components. If it is important that the network request should happen even when the user leaves the application, consider scheduling the network request using WorkManager or continue a user visible task using Foreground Service.

অবজ্ঞা

প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷

অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।

,

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

এছাড়াও আচরণ পরিবর্তনের তালিকা পর্যালোচনা করতে ভুলবেন না যা শুধুমাত্র Android 15 কে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে

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

Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।

প্যাকেজ পরিবর্তন স্টপ অবস্থা

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

উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED , বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।

অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped() পদ্ধতিতে কল করতে পারেন।

16 KB পৃষ্ঠার আকারের জন্য সমর্থন

Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, AOSP supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. Without recompiling, apps might not work on 16 KB devices when they are productionized in future Android releases.

To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).

সুবিধা এবং কর্মক্ষমতা লাভ

16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:

  • সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
  • অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
  • দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
  • উন্নত সিস্টেম বুট সময়: গড়ে 8% (প্রায় 950 মিলিসেকেন্ড) দ্বারা উন্নত

এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। যদি আপনি নিশ্চিত না হন যে আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে, তাহলে আপনি APK বিশ্লেষক ব্যবহার করে সনাক্ত করতে পারেন যে কোনও নেটিভ কোড উপস্থিত আছে কিনা এবং তারপরে আপনি যে কোনও ভাগ করা লাইব্রেরির জন্য ELF বিভাগগুলির সারিবদ্ধতা পরীক্ষা করতে পারেন

যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন

ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন

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

সব অ্যাপ

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

মেডিকেল অ্যাপস

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

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

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

লঞ্চার অ্যাপস

আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  1. আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ, ROLE_HOME ভূমিকার অধিকারী৷
  2. আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ACCESS_HIDDEN_PROFILES স্বাভাবিক অনুমতি ঘোষণা করতে হবে।

লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:

  1. ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে getLauncherUserInfo() পদ্ধতি ব্যবহার করুন।
  2. ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
  3. ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে ( true পাস করে) বা আনলক করতে ( false পাস করে) করার জন্য requestQuietModeEnabled() পদ্ধতি ব্যবহার করুন।
  4. লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত ACTION_PROFILE_AVAILABLE এবং ACTION_PROFILE_UNAVAILABLE সম্প্রচারের জন্য একটি রিসিভার নিবন্ধন করা এবং ব্যক্তিগত স্থান কন্টেইনারের লক বা আনলক করা অবস্থার পরিবর্তন হলে আপনার অ্যাপে UI আপডেট করা উচিত। এই দুটি সম্প্রচারের মধ্যে রয়েছে EXTRA_USER , যা আপনার অ্যাপ ব্যক্তিগত প্রোফাইল ব্যবহারকারীকে উল্লেখ করতে ব্যবহার করতে পারে৷

    ব্যক্তিগত স্থান প্রোফাইল লক করা আছে কিনা তা পরীক্ষা করতে আপনি isQuietModeEnabled() পদ্ধতি ব্যবহার করতে পারেন।

অ্যাপ স্টোর অ্যাপস

ব্যক্তিগত স্থানটিতে একটি "অ্যাপস ইনস্টল করুন" বোতাম রয়েছে যা ব্যবহারকারীর ব্যক্তিগত স্থানে অ্যাপগুলি ইনস্টল করার একটি অন্তর্নিহিত অভিপ্রায় চালু করে৷ আপনার অ্যাপটি এই অন্তর্নিহিত অভিপ্রায়টি পাওয়ার জন্য, CATEGORY_APP_MARKET এর <category> সহ আপনার অ্যাপের ম্যানিফেস্ট ফাইলে একটি <intent-filter> ঘোষণা করুন।

PNG-ভিত্তিক ইমোজি ফন্ট সরানো হয়েছে

উত্তরাধিকার, PNG-ভিত্তিক ইমোজি ফন্ট ফাইল ( NotoColorEmojiLegacy.ttf ) সরানো হয়েছে, শুধুমাত্র ভেক্টর-ভিত্তিক ফাইলটি রেখে। অ্যান্ড্রয়েড 13 (API লেভেল 33) থেকে শুরু করে, সিস্টেম ইমোজি রেন্ডারার দ্বারা ব্যবহৃত ইমোজি ফন্ট ফাইলটি একটি PNG-ভিত্তিক ফাইল থেকে ভেক্টর ভিত্তিক ফাইলে পরিবর্তিত হয়েছে । সিস্টেমটি সামঞ্জস্যের কারণে অ্যান্ড্রয়েড 13 এবং 14 এ লিগ্যাসি ফন্ট ফাইলটি ধরে রেখেছে, যাতে তাদের নিজস্ব ফন্ট রেন্ডারার সহ অ্যাপগুলি আপগ্রেড করতে সক্ষম না হওয়া পর্যন্ত লিগ্যাসি ফন্ট ফাইলটি ব্যবহার করা চালিয়ে যেতে পারে।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে, NotoColorEmojiLegacy.ttf ফাইলের রেফারেন্সের জন্য আপনার অ্যাপের কোড খুঁজুন।

আপনি বিভিন্ন উপায়ে আপনার অ্যাপটিকে মানিয়ে নিতে বেছে নিতে পারেন:

  • টেক্সট রেন্ডারিংয়ের জন্য প্ল্যাটফর্ম API ব্যবহার করুন। আপনি একটি বিটম্যাপ-ব্যাকড Canvas পাঠ্য রেন্ডার করতে পারেন এবং প্রয়োজনে একটি কাঁচা চিত্র পেতে এটি ব্যবহার করতে পারেন।
  • আপনার অ্যাপে COLRv1 ফন্ট সমর্থন যোগ করুন। FreeType ওপেন সোর্স লাইব্রেরি 2.13.0 এবং উচ্চতর সংস্করণে COLRv1 সমর্থন করে।
  • শেষ অবলম্বন হিসাবে, আপনি আপনার APK-এ লিগ্যাসি ইমোজি ফন্ট ফাইল ( NotoColorEmoji.ttf ) বান্ডিল করতে পারেন, যদিও সেই ক্ষেত্রে আপনার অ্যাপটি সাম্প্রতিক ইমোজি আপডেটগুলি অনুপস্থিত থাকবে৷ আরও তথ্যের জন্য, নোটো ইমোজি গিটহাব প্রকল্প পৃষ্ঠাটি দেখুন।

23 থেকে 24 তে ন্যূনতম লক্ষ্য SDK সংস্করণ বৃদ্ধি করা হয়েছে৷

অ্যান্ড্রয়েড 15 অ্যান্ড্রয়েড 14-এ করা পরিবর্তনগুলির উপর ভিত্তি করে তৈরি করে এবং এই নিরাপত্তাকে আরও প্রসারিত করে। অ্যান্ড্রয়েড 15-এ, 24-এর কম targetSdkVersion সহ অ্যাপগুলি ইনস্টল করা যাবে না। আধুনিক API স্তরগুলি পূরণ করার জন্য অ্যাপগুলির প্রয়োজন আরও ভাল নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে সহায়তা করে৷

উচ্চতর Android সংস্করণে প্রবর্তিত নিরাপত্তা এবং গোপনীয়তা সুরক্ষাগুলিকে বাইপাস করার জন্য ম্যালওয়্যার প্রায়ই নিম্ন API স্তরগুলিকে লক্ষ্য করে৷ উদাহরণস্বরূপ, Android 6.0 Marshmallow (API স্তর 23) দ্বারা 2015 সালে চালু করা রানটাইম অনুমতি মডেলের শিকার হওয়া এড়াতে কিছু ম্যালওয়্যার অ্যাপ 22-এর একটি targetSdkVersion ব্যবহার করে। এই Android 15 পরিবর্তন নিরাপত্তা এবং গোপনীয়তার উন্নতি এড়াতে ম্যালওয়্যারের জন্য কঠিন করে তোলে। একটি নিম্ন API স্তর লক্ষ্য করে একটি অ্যাপ ইনস্টল করার চেষ্টা করার ফলে একটি ইনস্টলেশন ব্যর্থতা দেখা দেয়, নিম্নলিখিতগুলির মত একটি বার্তা Logcat-এ উপস্থিত হয়:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Android 15-এ আপগ্রেড করা ডিভাইসগুলিতে, 24-এর কম targetSdkVersion সহ যেকোনও অ্যাপ ইনস্টল থাকে।

আপনি যদি একটি পুরানো API স্তর লক্ষ্য করে একটি অ্যাপ্লিকেশন পরীক্ষা করতে চান, নিম্নলিখিত ADB কমান্ড ব্যবহার করুন:

adb install --bypass-low-target-sdk-block FILENAME.apk

নিরাপত্তা এবং গোপনীয়তা

Android 15 introduces robust measures to combat one-time passcode (OTP) fraud and to protect the user's sensitive content, focusing on hardening the Notification Listener Service and screenshare protections. Key enhancements include redacting OTPs from notifications accessible to untrusted apps, hiding notifications during screenshare, and securing app activities when OTPs are posted. These changes aim to keep the user's sensitive content safe from unauthorized actors.

Developers need to be aware of the following to ensure their apps are compatible with the changes in Android 15:

OTP Redaction

Android will stop untrusted apps that implement a NotificationListenerService from reading unredacted content from notifications where an OTP has been detected. Trusted apps such as companion device manager associations are exempt from these restrictions.

Screenshare Protection

  • Notification content is hidden during screen sharing sessions to preserve the user's privacy. If the app implements setPublicVersion(), Android shows the public version of the notification which serves as a replacement notification in insecure contexts. Otherwise, the notification content is redacted without any further context.
  • Sensitive content like password input is hidden from remote viewers to prevent revealing the user's sensitive information.
  • Activities from apps that post notifications during screenshare where an OTP has been detected will be hidden. App content is hidden from the remote viewer when launched.
  • Beyond Android's automatic identification of sensitive fields, developers can manually mark parts of their app as sensitive using setContentSensitivity, which is hidden from remote viewers during screenshare.
  • Developers can choose to toggle the Disable screen share protections option under Developer Options to be exempted from the screenshare protections for demo or testing purposes. The default system screen recorder is exempted from these changes, since the recordings remain on-device.

ক্যামেরা এবং মিডিয়া

Android 15 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷

প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়

অ্যান্ড্রয়েড 15-এর আগে, অন্য অ্যাপ অডিও চালানোর সময় যদি কোনও অ্যাপ সরাসরি বা অফলোড অডিও প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, অ্যাপটি একটি নতুন AudioTrack খুলতে ব্যর্থ হবে।

অ্যান্ড্রয়েড 15 থেকে শুরু করে, যখন কোনো অ্যাপ সরাসরি বা অফলোড প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, তখন সিস্টেমটি বর্তমানে খোলা AudioTrack অবজেক্টকে বাতিল করে দেয় যা নতুন ট্র্যাকের অনুরোধ পূরণ করতে বাধা দেয়।

(সরাসরি এবং অফলোড অডিও ট্র্যাকগুলি সাধারণত সংকুচিত অডিও ফর্ম্যাটগুলির প্লেব্যাকের জন্য খোলা হয়৷ সরাসরি অডিও চালানোর জন্য সাধারণ ব্যবহারের ক্ষেত্রে HDMI এর মাধ্যমে একটি টিভিতে এনকোডেড অডিও স্ট্রিম করা অন্তর্ভুক্ত৷ অফলোড ট্র্যাকগুলি সাধারণত হার্ডওয়্যার ডিএসপি সহ একটি মোবাইল ডিভাইসে সংকুচিত অডিও চালানোর জন্য ব্যবহৃত হয়৷ ত্বরণ।)

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

অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।

অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷

অ্যান্ড্রয়েড 15 থেকে শুরু করে, ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনের জন্য বিকাশকারী বিকল্পটি সরানো হয়েছে। সিস্টেম অ্যানিমেশন যেমন ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি এখন এমন অ্যাপগুলির জন্য উপস্থিত হয় যেগুলি সম্পূর্ণরূপে বা কোনও কার্যকলাপ স্তরে পূর্বাভাসমূলক ব্যাক জেসচারে বেছে নিয়েছে ৷ আপনার অ্যাপ প্রভাবিত হলে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  • ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার ব্যবহার করতে আপনার অ্যাপটি সঠিকভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত করুন।
  • নিশ্চিত করুন যে আপনার টুকরো রূপান্তরগুলি পূর্বাভাসমূলক ব্যাক নেভিগেশনের সাথে কাজ করে৷
  • অ্যানিমেশন এবং ফ্রেমওয়ার্ক ট্রানজিশন থেকে দূরে সরে যান এবং পরিবর্তে অ্যানিমেটর এবং অ্যান্ড্রয়েডক্স ট্রানজিশন ব্যবহার করুন।
  • FragmentManager জানেন না এমন ব্যাক স্ট্যাকগুলি থেকে দূরে স্থানান্তর করুন৷ এর পরিবর্তে FragmentManager বা নেভিগেশন উপাদান দ্বারা পরিচালিত ব্যাক স্ট্যাকগুলি ব্যবহার করুন৷

ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়

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

পরের বার ব্যবহারকারী যখন অ্যাপটি চালু করেন তখন সিস্টেমটি সেই উইজেটগুলিকে পুনরায় সক্ষম করে৷

আরও তথ্যের জন্য, প্যাকেজ বন্ধ অবস্থায় পরিবর্তন দেখুন।

মিডিয়া প্রজেকশন স্ট্যাটাস বার চিপ ব্যবহারকারীদের স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিং সম্পর্কে সতর্ক করে

স্ক্রীন প্রজেকশন শোষণ ব্যক্তিগত ব্যবহারকারীর ডেটা যেমন আর্থিক তথ্য প্রকাশ করে কারণ ব্যবহারকারীরা বুঝতে পারে না যে তাদের ডিভাইসের স্ক্রিন ভাগ করা হচ্ছে।

Android 15 QPR1 বা উচ্চতর ডিভাইসে চলমান অ্যাপ্লিকেশানগুলির জন্য, একটি স্ট্যাটাস বার চিপ যা বড় এবং বিশিষ্ট যেকোন চলমান স্ক্রীন প্রজেকশনে ব্যবহারকারীদের সতর্ক করে। ব্যবহারকারীরা তাদের স্ক্রীন শেয়ার করা, কাস্ট করা বা রেকর্ড করা থেকে বন্ধ করতে চিপটিতে ট্যাপ করতে পারেন। এছাড়াও, ডিভাইসের স্ক্রিন লক হয়ে গেলে স্ক্রিন প্রজেকশন স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিংয়ের জন্য স্ট্যাটাস বার চিপ।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

ডিফল্টরূপে, আপনার অ্যাপে স্ট্যাটাস বার চিপ অন্তর্ভুক্ত থাকে এবং লক স্ক্রিন সক্রিয় হলে স্বয়ংক্রিয়ভাবে স্ক্রিন প্রজেকশন স্থগিত করে।

এই ব্যবহারের ক্ষেত্রে আপনার অ্যাপটি কীভাবে পরীক্ষা করবেন সে সম্পর্কে আরও জানতে, স্ট্যাটাস বার চিপ এবং অটো স্টপ দেখুন।

পটভূমি নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধতা

In Android 15, apps that start a network request outside of a valid process lifecycle receive an exception. Typically, an UnknownHostException or other socket-related IOException. Network requests that happen outside of a valid lifecycle are usually due to apps unknowingly continuing a network request even after the app is no longer active.

To mitigate this exception, ensure your network requests are lifecycle aware and cancelled upon leaving a valid process lifecycle by using lifecycle aware components. If it is important that the network request should happen even when the user leaves the application, consider scheduling the network request using WorkManager or continue a user visible task using Foreground Service.

অবজ্ঞা

প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷

অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।

,

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

এছাড়াও আচরণ পরিবর্তনের তালিকা পর্যালোচনা করতে ভুলবেন না যা শুধুমাত্র Android 15 কে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে

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

Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।

প্যাকেজ পরিবর্তন স্টপ অবস্থা

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

উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED , বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।

অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped() পদ্ধতিতে কল করতে পারেন।

16 KB পৃষ্ঠার আকারের জন্য সমর্থন

Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, AOSP supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. Without recompiling, apps might not work on 16 KB devices when they are productionized in future Android releases.

To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).

সুবিধা এবং কর্মক্ষমতা লাভ

16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:

  • সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
  • অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
  • দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
  • উন্নত সিস্টেম বুট সময়: গড়ে 8% (প্রায় 950 মিলিসেকেন্ড) দ্বারা উন্নত

এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। যদি আপনি নিশ্চিত না হন যে আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে, তাহলে আপনি APK বিশ্লেষক ব্যবহার করে সনাক্ত করতে পারেন যে কোনও নেটিভ কোড উপস্থিত আছে কিনা এবং তারপরে আপনি যে কোনও ভাগ করা লাইব্রেরির জন্য ELF বিভাগগুলির সারিবদ্ধতা পরীক্ষা করতে পারেন

যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন

ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন

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

সব অ্যাপ

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

মেডিকেল অ্যাপস

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

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

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

লঞ্চার অ্যাপস

আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  1. আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ, ROLE_HOME ভূমিকার অধিকারী৷
  2. আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ACCESS_HIDDEN_PROFILES স্বাভাবিক অনুমতি ঘোষণা করতে হবে।

লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:

  1. ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে getLauncherUserInfo() পদ্ধতি ব্যবহার করুন।
  2. ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
  3. ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে ( true পাস করে) বা আনলক করতে ( false পাস করে) করার জন্য requestQuietModeEnabled() পদ্ধতি ব্যবহার করুন।
  4. লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত ACTION_PROFILE_AVAILABLE এবং ACTION_PROFILE_UNAVAILABLE সম্প্রচারের জন্য একটি রিসিভার নিবন্ধন করা এবং ব্যক্তিগত স্থান কন্টেইনারের লক বা আনলক করা অবস্থার পরিবর্তন হলে আপনার অ্যাপে UI আপডেট করা উচিত। এই দুটি সম্প্রচারের মধ্যে রয়েছে EXTRA_USER , যা আপনার অ্যাপ ব্যক্তিগত প্রোফাইল ব্যবহারকারীকে উল্লেখ করতে ব্যবহার করতে পারে৷

    ব্যক্তিগত স্থান প্রোফাইল লক করা আছে কিনা তা পরীক্ষা করতে আপনি isQuietModeEnabled() পদ্ধতি ব্যবহার করতে পারেন।

অ্যাপ স্টোর অ্যাপস

ব্যক্তিগত স্থানটিতে একটি "অ্যাপস ইনস্টল করুন" বোতাম রয়েছে যা ব্যবহারকারীর ব্যক্তিগত স্থানে অ্যাপগুলি ইনস্টল করার একটি অন্তর্নিহিত অভিপ্রায় চালু করে৷ আপনার অ্যাপটি এই অন্তর্নিহিত অভিপ্রায়টি পাওয়ার জন্য, CATEGORY_APP_MARKET এর <category> সহ আপনার অ্যাপের ম্যানিফেস্ট ফাইলে একটি <intent-filter> ঘোষণা করুন।

PNG-ভিত্তিক ইমোজি ফন্ট সরানো হয়েছে

উত্তরাধিকার, PNG-ভিত্তিক ইমোজি ফন্ট ফাইল ( NotoColorEmojiLegacy.ttf ) সরানো হয়েছে, শুধুমাত্র ভেক্টর-ভিত্তিক ফাইলটি রেখে। অ্যান্ড্রয়েড 13 (API লেভেল 33) থেকে শুরু করে, সিস্টেম ইমোজি রেন্ডারার দ্বারা ব্যবহৃত ইমোজি ফন্ট ফাইলটি একটি PNG-ভিত্তিক ফাইল থেকে ভেক্টর ভিত্তিক ফাইলে পরিবর্তিত হয়েছে । সিস্টেমটি সামঞ্জস্যের কারণে অ্যান্ড্রয়েড 13 এবং 14 এ লিগ্যাসি ফন্ট ফাইলটি ধরে রেখেছে, যাতে তাদের নিজস্ব ফন্ট রেন্ডারার সহ অ্যাপগুলি আপগ্রেড করতে সক্ষম না হওয়া পর্যন্ত লিগ্যাসি ফন্ট ফাইলটি ব্যবহার করা চালিয়ে যেতে পারে।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে, NotoColorEmojiLegacy.ttf ফাইলের রেফারেন্সের জন্য আপনার অ্যাপের কোড খুঁজুন।

আপনি বিভিন্ন উপায়ে আপনার অ্যাপটিকে মানিয়ে নিতে বেছে নিতে পারেন:

  • টেক্সট রেন্ডারিংয়ের জন্য প্ল্যাটফর্ম API ব্যবহার করুন। আপনি একটি বিটম্যাপ-ব্যাকড Canvas পাঠ্য রেন্ডার করতে পারেন এবং প্রয়োজনে একটি কাঁচা চিত্র পেতে এটি ব্যবহার করতে পারেন।
  • আপনার অ্যাপে COLRv1 ফন্ট সমর্থন যোগ করুন। FreeType ওপেন সোর্স লাইব্রেরি 2.13.0 এবং উচ্চতর সংস্করণে COLRv1 সমর্থন করে।
  • শেষ অবলম্বন হিসাবে, আপনি আপনার APK-এ লিগ্যাসি ইমোজি ফন্ট ফাইল ( NotoColorEmoji.ttf ) বান্ডিল করতে পারেন, যদিও সেই ক্ষেত্রে আপনার অ্যাপটি সাম্প্রতিক ইমোজি আপডেটগুলি অনুপস্থিত থাকবে৷ আরও তথ্যের জন্য, নোটো ইমোজি গিটহাব প্রকল্প পৃষ্ঠাটি দেখুন।

23 থেকে 24 তে ন্যূনতম লক্ষ্য SDK সংস্করণ বৃদ্ধি করা হয়েছে৷

অ্যান্ড্রয়েড 15 অ্যান্ড্রয়েড 14-এ করা পরিবর্তনগুলির উপর ভিত্তি করে তৈরি করে এবং এই নিরাপত্তাকে আরও প্রসারিত করে। অ্যান্ড্রয়েড 15-এ, 24-এর কম targetSdkVersion সহ অ্যাপগুলি ইনস্টল করা যাবে না। আধুনিক API স্তরগুলি পূরণ করার জন্য অ্যাপগুলির প্রয়োজন আরও ভাল নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে সহায়তা করে৷

উচ্চতর Android সংস্করণে প্রবর্তিত নিরাপত্তা এবং গোপনীয়তা সুরক্ষাগুলিকে বাইপাস করার জন্য ম্যালওয়্যার প্রায়ই নিম্ন API স্তরগুলিকে লক্ষ্য করে৷ উদাহরণস্বরূপ, Android 6.0 Marshmallow (API স্তর 23) দ্বারা 2015 সালে চালু করা রানটাইম অনুমতি মডেলের শিকার হওয়া এড়াতে কিছু ম্যালওয়্যার অ্যাপ 22-এর একটি targetSdkVersion ব্যবহার করে। এই Android 15 পরিবর্তন নিরাপত্তা এবং গোপনীয়তার উন্নতি এড়াতে ম্যালওয়্যারের জন্য কঠিন করে তোলে। একটি নিম্ন API স্তর লক্ষ্য করে একটি অ্যাপ ইনস্টল করার চেষ্টা করার ফলে একটি ইনস্টলেশন ব্যর্থতা দেখা দেয়, নিম্নলিখিতগুলির মত একটি বার্তা Logcat-এ উপস্থিত হয়:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Android 15-এ আপগ্রেড করা ডিভাইসগুলিতে, 24-এর কম targetSdkVersion সহ যেকোনও অ্যাপ ইনস্টল থাকে।

আপনি যদি একটি পুরানো API স্তর লক্ষ্য করে একটি অ্যাপ্লিকেশন পরীক্ষা করতে চান, নিম্নলিখিত ADB কমান্ড ব্যবহার করুন:

adb install --bypass-low-target-sdk-block FILENAME.apk

নিরাপত্তা এবং গোপনীয়তা

Android 15 introduces robust measures to combat one-time passcode (OTP) fraud and to protect the user's sensitive content, focusing on hardening the Notification Listener Service and screenshare protections. Key enhancements include redacting OTPs from notifications accessible to untrusted apps, hiding notifications during screenshare, and securing app activities when OTPs are posted. These changes aim to keep the user's sensitive content safe from unauthorized actors.

Developers need to be aware of the following to ensure their apps are compatible with the changes in Android 15:

OTP Redaction

Android will stop untrusted apps that implement a NotificationListenerService from reading unredacted content from notifications where an OTP has been detected. Trusted apps such as companion device manager associations are exempt from these restrictions.

Screenshare Protection

  • Notification content is hidden during screen sharing sessions to preserve the user's privacy. If the app implements setPublicVersion(), Android shows the public version of the notification which serves as a replacement notification in insecure contexts. Otherwise, the notification content is redacted without any further context.
  • Sensitive content like password input is hidden from remote viewers to prevent revealing the user's sensitive information.
  • Activities from apps that post notifications during screenshare where an OTP has been detected will be hidden. App content is hidden from the remote viewer when launched.
  • Beyond Android's automatic identification of sensitive fields, developers can manually mark parts of their app as sensitive using setContentSensitivity, which is hidden from remote viewers during screenshare.
  • Developers can choose to toggle the Disable screen share protections option under Developer Options to be exempted from the screenshare protections for demo or testing purposes. The default system screen recorder is exempted from these changes, since the recordings remain on-device.

ক্যামেরা এবং মিডিয়া

Android 15 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷

প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়

অ্যান্ড্রয়েড 15-এর আগে, অন্য অ্যাপ অডিও চালানোর সময় যদি কোনও অ্যাপ সরাসরি বা অফলোড অডিও প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, অ্যাপটি একটি নতুন AudioTrack খুলতে ব্যর্থ হবে।

অ্যান্ড্রয়েড 15 থেকে শুরু করে, যখন কোনো অ্যাপ সরাসরি বা অফলোড প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, তখন সিস্টেমটি বর্তমানে খোলা AudioTrack অবজেক্টকে বাতিল করে দেয় যা নতুন ট্র্যাকের অনুরোধ পূরণ করতে বাধা দেয়।

(সরাসরি এবং অফলোড অডিও ট্র্যাকগুলি সাধারণত সংকুচিত অডিও ফর্ম্যাটগুলির প্লেব্যাকের জন্য খোলা হয়৷ সরাসরি অডিও চালানোর জন্য সাধারণ ব্যবহারের ক্ষেত্রে HDMI এর মাধ্যমে একটি টিভিতে এনকোডেড অডিও স্ট্রিম করা অন্তর্ভুক্ত৷ অফলোড ট্র্যাকগুলি সাধারণত হার্ডওয়্যার ডিএসপি সহ একটি মোবাইল ডিভাইসে সংকুচিত অডিও চালানোর জন্য ব্যবহৃত হয়৷ ত্বরণ।)

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

অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।

অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷

অ্যান্ড্রয়েড 15 থেকে শুরু করে, ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনের জন্য বিকাশকারী বিকল্পটি সরানো হয়েছে। সিস্টেম অ্যানিমেশন যেমন ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি এখন এমন অ্যাপগুলির জন্য উপস্থিত হয় যেগুলি সম্পূর্ণরূপে বা কোনও কার্যকলাপ স্তরে পূর্বাভাসমূলক ব্যাক জেসচারে বেছে নিয়েছে ৷ আপনার অ্যাপ প্রভাবিত হলে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  • ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার ব্যবহার করতে আপনার অ্যাপটি সঠিকভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত করুন।
  • নিশ্চিত করুন যে আপনার টুকরো রূপান্তরগুলি পূর্বাভাসমূলক ব্যাক নেভিগেশনের সাথে কাজ করে৷
  • অ্যানিমেশন এবং ফ্রেমওয়ার্ক ট্রানজিশন থেকে দূরে সরে যান এবং পরিবর্তে অ্যানিমেটর এবং অ্যান্ড্রয়েডক্স ট্রানজিশন ব্যবহার করুন।
  • FragmentManager জানেন না এমন ব্যাক স্ট্যাকগুলি থেকে দূরে স্থানান্তর করুন৷ এর পরিবর্তে FragmentManager বা নেভিগেশন উপাদান দ্বারা পরিচালিত ব্যাক স্ট্যাকগুলি ব্যবহার করুন৷

ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়

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

পরের বার ব্যবহারকারী যখন অ্যাপটি চালু করেন তখন সিস্টেমটি সেই উইজেটগুলিকে পুনরায় সক্ষম করে৷

আরও তথ্যের জন্য, প্যাকেজ বন্ধ অবস্থায় পরিবর্তন দেখুন।

মিডিয়া প্রজেকশন স্ট্যাটাস বার চিপ ব্যবহারকারীদের স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিং সম্পর্কে সতর্ক করে

স্ক্রীন প্রজেকশন শোষণ ব্যক্তিগত ব্যবহারকারীর ডেটা যেমন আর্থিক তথ্য প্রকাশ করে কারণ ব্যবহারকারীরা বুঝতে পারে না যে তাদের ডিভাইসের স্ক্রিন ভাগ করা হচ্ছে।

Android 15 QPR1 বা উচ্চতর ডিভাইসে চলমান অ্যাপ্লিকেশানগুলির জন্য, একটি স্ট্যাটাস বার চিপ যা বড় এবং বিশিষ্ট যেকোন চলমান স্ক্রীন প্রজেকশনে ব্যবহারকারীদের সতর্ক করে। ব্যবহারকারীরা তাদের স্ক্রীন শেয়ার করা, কাস্ট করা বা রেকর্ড করা থেকে বন্ধ করতে চিপটিতে ট্যাপ করতে পারেন। এছাড়াও, ডিভাইসের স্ক্রিন লক হয়ে গেলে স্ক্রিন প্রজেকশন স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিংয়ের জন্য স্ট্যাটাস বার চিপ।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

ডিফল্টরূপে, আপনার অ্যাপে স্ট্যাটাস বার চিপ অন্তর্ভুক্ত থাকে এবং লক স্ক্রিন সক্রিয় হলে স্বয়ংক্রিয়ভাবে স্ক্রিন প্রজেকশন স্থগিত করে।

এই ব্যবহারের ক্ষেত্রে আপনার অ্যাপটি কীভাবে পরীক্ষা করবেন সে সম্পর্কে আরও জানতে, স্ট্যাটাস বার চিপ এবং অটো স্টপ দেখুন।

পটভূমি নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধতা

In Android 15, apps that start a network request outside of a valid process lifecycle receive an exception. Typically, an UnknownHostException or other socket-related IOException. Network requests that happen outside of a valid lifecycle are usually due to apps unknowingly continuing a network request even after the app is no longer active.

To mitigate this exception, ensure your network requests are lifecycle aware and cancelled upon leaving a valid process lifecycle by using lifecycle aware components. If it is important that the network request should happen even when the user leaves the application, consider scheduling the network request using WorkManager or continue a user visible task using Foreground Service.

অবজ্ঞা

প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷

অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।

,

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

এছাড়াও আচরণ পরিবর্তনের তালিকা পর্যালোচনা করতে ভুলবেন না যা শুধুমাত্র Android 15 কে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে

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

Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।

প্যাকেজ পরিবর্তন স্টপ অবস্থা

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

উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED , বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।

অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped() পদ্ধতিতে কল করতে পারেন।

16 KB পৃষ্ঠার আকারের জন্য সমর্থন

Historically, Android has only supported 4 KB memory page sizes, which has optimized system memory performance for the average amount of total memory that Android devices have typically had. Beginning with Android 15, AOSP supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

As device manufacturers continue to build devices with larger amounts of physical memory (RAM), many of these devices will adopt 16 KB (and eventually greater) page sizes to optimize the device's performance. Adding support for 16 KB page size devices enables your app to run on these devices and helps your app benefit from the associated performance improvements. Without recompiling, apps might not work on 16 KB devices when they are productionized in future Android releases.

To help you add support for your app, we've provided guidance on how to check if your app is impacted, how to rebuild your app (if applicable), and how to test your app in a 16 KB environment using emulators (including Android 15 system images for the Android Emulator).

সুবিধা এবং কর্মক্ষমতা লাভ

16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:

  • সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
  • অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
  • দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
  • উন্নত সিস্টেম বুট সময়: গড়ে 8% (প্রায় 950 মিলিসেকেন্ড) দ্বারা উন্নত

এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। যদি আপনি নিশ্চিত না হন যে আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে, তাহলে আপনি APK বিশ্লেষক ব্যবহার করে সনাক্ত করতে পারেন যে কোনও নেটিভ কোড উপস্থিত আছে কিনা এবং তারপরে আপনি যে কোনও ভাগ করা লাইব্রেরির জন্য ELF বিভাগগুলির সারিবদ্ধতা পরীক্ষা করতে পারেন

যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন

ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন

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

সব অ্যাপ

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

মেডিকেল অ্যাপস

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

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

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

লঞ্চার অ্যাপস

আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  1. আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ, ROLE_HOME ভূমিকার অধিকারী৷
  2. আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ACCESS_HIDDEN_PROFILES স্বাভাবিক অনুমতি ঘোষণা করতে হবে।

লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:

  1. ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে getLauncherUserInfo() পদ্ধতি ব্যবহার করুন।
  2. ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
  3. ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে ( true পাস করে) বা আনলক করতে ( false পাস করে) করার জন্য requestQuietModeEnabled() পদ্ধতি ব্যবহার করুন।
  4. লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত ACTION_PROFILE_AVAILABLE এবং ACTION_PROFILE_UNAVAILABLE সম্প্রচারের জন্য একটি রিসিভার নিবন্ধন করা এবং ব্যক্তিগত স্থান কন্টেইনারের লক বা আনলক করা অবস্থার পরিবর্তন হলে আপনার অ্যাপে UI আপডেট করা উচিত। এই দুটি সম্প্রচারের মধ্যে রয়েছে EXTRA_USER , যা আপনার অ্যাপ ব্যক্তিগত প্রোফাইল ব্যবহারকারীকে উল্লেখ করতে ব্যবহার করতে পারে৷

    ব্যক্তিগত স্থান প্রোফাইল লক করা আছে কিনা তা পরীক্ষা করতে আপনি isQuietModeEnabled() পদ্ধতি ব্যবহার করতে পারেন।

অ্যাপ স্টোর অ্যাপস

ব্যক্তিগত স্থানটিতে একটি "অ্যাপস ইনস্টল করুন" বোতাম রয়েছে যা ব্যবহারকারীর ব্যক্তিগত স্থানে অ্যাপগুলি ইনস্টল করার একটি অন্তর্নিহিত অভিপ্রায় চালু করে৷ আপনার অ্যাপটি এই অন্তর্নিহিত অভিপ্রায়টি পাওয়ার জন্য, CATEGORY_APP_MARKET এর <category> সহ আপনার অ্যাপের ম্যানিফেস্ট ফাইলে একটি <intent-filter> ঘোষণা করুন।

PNG-ভিত্তিক ইমোজি ফন্ট সরানো হয়েছে

উত্তরাধিকার, PNG-ভিত্তিক ইমোজি ফন্ট ফাইল ( NotoColorEmojiLegacy.ttf ) সরানো হয়েছে, শুধুমাত্র ভেক্টর-ভিত্তিক ফাইলটি রেখে। অ্যান্ড্রয়েড 13 (API লেভেল 33) থেকে শুরু করে, সিস্টেম ইমোজি রেন্ডারার দ্বারা ব্যবহৃত ইমোজি ফন্ট ফাইলটি একটি PNG-ভিত্তিক ফাইল থেকে ভেক্টর ভিত্তিক ফাইলে পরিবর্তিত হয়েছে । সিস্টেমটি সামঞ্জস্যের কারণে অ্যান্ড্রয়েড 13 এবং 14 এ লিগ্যাসি ফন্ট ফাইলটি ধরে রেখেছে, যাতে তাদের নিজস্ব ফন্ট রেন্ডারার সহ অ্যাপগুলি আপগ্রেড করতে সক্ষম না হওয়া পর্যন্ত লিগ্যাসি ফন্ট ফাইলটি ব্যবহার করা চালিয়ে যেতে পারে।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে, NotoColorEmojiLegacy.ttf ফাইলের রেফারেন্সের জন্য আপনার অ্যাপের কোড খুঁজুন।

আপনি বিভিন্ন উপায়ে আপনার অ্যাপটিকে মানিয়ে নিতে বেছে নিতে পারেন:

  • টেক্সট রেন্ডারিংয়ের জন্য প্ল্যাটফর্ম API ব্যবহার করুন। আপনি একটি বিটম্যাপ-ব্যাকড Canvas পাঠ্য রেন্ডার করতে পারেন এবং প্রয়োজনে একটি কাঁচা চিত্র পেতে এটি ব্যবহার করতে পারেন।
  • আপনার অ্যাপে COLRv1 ফন্ট সমর্থন যোগ করুন। FreeType ওপেন সোর্স লাইব্রেরি 2.13.0 এবং উচ্চতর সংস্করণে COLRv1 সমর্থন করে।
  • শেষ অবলম্বন হিসাবে, আপনি আপনার APK-এ লিগ্যাসি ইমোজি ফন্ট ফাইল ( NotoColorEmoji.ttf ) বান্ডিল করতে পারেন, যদিও সেই ক্ষেত্রে আপনার অ্যাপটি সাম্প্রতিক ইমোজি আপডেটগুলি অনুপস্থিত থাকবে৷ আরও তথ্যের জন্য, নোটো ইমোজি গিটহাব প্রকল্প পৃষ্ঠাটি দেখুন।

23 থেকে 24 তে ন্যূনতম লক্ষ্য SDK সংস্করণ বৃদ্ধি করা হয়েছে৷

অ্যান্ড্রয়েড 15 অ্যান্ড্রয়েড 14-এ করা পরিবর্তনগুলির উপর ভিত্তি করে তৈরি করে এবং এই নিরাপত্তাকে আরও প্রসারিত করে। অ্যান্ড্রয়েড 15-এ, 24-এর কম targetSdkVersion সহ অ্যাপগুলি ইনস্টল করা যাবে না। আধুনিক API স্তরগুলি পূরণ করার জন্য অ্যাপগুলির প্রয়োজন আরও ভাল নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে সহায়তা করে৷

উচ্চতর Android সংস্করণে প্রবর্তিত নিরাপত্তা এবং গোপনীয়তা সুরক্ষাগুলিকে বাইপাস করার জন্য ম্যালওয়্যার প্রায়ই নিম্ন API স্তরগুলিকে লক্ষ্য করে৷ উদাহরণস্বরূপ, Android 6.0 Marshmallow (API স্তর 23) দ্বারা 2015 সালে চালু করা রানটাইম অনুমতি মডেলের শিকার হওয়া এড়াতে কিছু ম্যালওয়্যার অ্যাপ 22-এর একটি targetSdkVersion ব্যবহার করে। এই Android 15 পরিবর্তন নিরাপত্তা এবং গোপনীয়তার উন্নতি এড়াতে ম্যালওয়্যারের জন্য কঠিন করে তোলে। একটি নিম্ন API স্তর লক্ষ্য করে একটি অ্যাপ ইনস্টল করার চেষ্টা করার ফলে একটি ইনস্টলেশন ব্যর্থতা দেখা দেয়, নিম্নলিখিতগুলির মত একটি বার্তা Logcat-এ উপস্থিত হয়:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

Android 15-এ আপগ্রেড করা ডিভাইসগুলিতে, 24-এর কম targetSdkVersion সহ যেকোনও অ্যাপ ইনস্টল থাকে।

আপনি যদি একটি পুরানো API স্তর লক্ষ্য করে একটি অ্যাপ্লিকেশন পরীক্ষা করতে চান, নিম্নলিখিত ADB কমান্ড ব্যবহার করুন:

adb install --bypass-low-target-sdk-block FILENAME.apk

নিরাপত্তা এবং গোপনীয়তা

Android 15 introduces robust measures to combat one-time passcode (OTP) fraud and to protect the user's sensitive content, focusing on hardening the Notification Listener Service and screenshare protections. Key enhancements include redacting OTPs from notifications accessible to untrusted apps, hiding notifications during screenshare, and securing app activities when OTPs are posted. These changes aim to keep the user's sensitive content safe from unauthorized actors.

Developers need to be aware of the following to ensure their apps are compatible with the changes in Android 15:

OTP Redaction

Android will stop untrusted apps that implement a NotificationListenerService from reading unredacted content from notifications where an OTP has been detected. Trusted apps such as companion device manager associations are exempt from these restrictions.

Screenshare Protection

  • Notification content is hidden during screen sharing sessions to preserve the user's privacy. If the app implements setPublicVersion(), Android shows the public version of the notification which serves as a replacement notification in insecure contexts. Otherwise, the notification content is redacted without any further context.
  • Sensitive content like password input is hidden from remote viewers to prevent revealing the user's sensitive information.
  • Activities from apps that post notifications during screenshare where an OTP has been detected will be hidden. App content is hidden from the remote viewer when launched.
  • Beyond Android's automatic identification of sensitive fields, developers can manually mark parts of their app as sensitive using setContentSensitivity, which is hidden from remote viewers during screenshare.
  • Developers can choose to toggle the Disable screen share protections option under Developer Options to be exempted from the screenshare protections for demo or testing purposes. The default system screen recorder is exempted from these changes, since the recordings remain on-device.

ক্যামেরা এবং মিডিয়া

Android 15 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷

প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়

অ্যান্ড্রয়েড 15-এর আগে, অন্য অ্যাপ অডিও চালানোর সময় যদি কোনও অ্যাপ সরাসরি বা অফলোড অডিও প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, অ্যাপটি একটি নতুন AudioTrack খুলতে ব্যর্থ হবে।

অ্যান্ড্রয়েড 15 থেকে শুরু করে, যখন কোনো অ্যাপ সরাসরি বা অফলোড প্লেব্যাকের অনুরোধ করে এবং রিসোর্স সীমা পৌঁছে যায়, তখন সিস্টেমটি বর্তমানে খোলা AudioTrack অবজেক্টকে বাতিল করে দেয় যা নতুন ট্র্যাকের অনুরোধ পূরণ করতে বাধা দেয়।

(সরাসরি এবং অফলোড অডিও ট্র্যাকগুলি সাধারণত সংকুচিত অডিও ফর্ম্যাটগুলির প্লেব্যাকের জন্য খোলা হয়৷ সরাসরি অডিও চালানোর জন্য সাধারণ ব্যবহারের ক্ষেত্রে HDMI এর মাধ্যমে একটি টিভিতে এনকোডেড অডিও স্ট্রিম করা অন্তর্ভুক্ত৷ অফলোড ট্র্যাকগুলি সাধারণত হার্ডওয়্যার ডিএসপি সহ একটি মোবাইল ডিভাইসে সংকুচিত অডিও চালানোর জন্য ব্যবহৃত হয়৷ ত্বরণ।)

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

অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।

অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷

অ্যান্ড্রয়েড 15 থেকে শুরু করে, ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনের জন্য বিকাশকারী বিকল্পটি সরানো হয়েছে। সিস্টেম অ্যানিমেশন যেমন ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি এখন এমন অ্যাপগুলির জন্য উপস্থিত হয় যেগুলি সম্পূর্ণরূপে বা কোনও কার্যকলাপ স্তরে পূর্বাভাসমূলক ব্যাক জেসচারে বেছে নিয়েছে ৷ আপনার অ্যাপ প্রভাবিত হলে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  • ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার ব্যবহার করতে আপনার অ্যাপটি সঠিকভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত করুন।
  • নিশ্চিত করুন যে আপনার টুকরো রূপান্তরগুলি পূর্বাভাসমূলক ব্যাক নেভিগেশনের সাথে কাজ করে৷
  • অ্যানিমেশন এবং ফ্রেমওয়ার্ক ট্রানজিশন থেকে দূরে সরে যান এবং পরিবর্তে অ্যানিমেটর এবং অ্যান্ড্রয়েডক্স ট্রানজিশন ব্যবহার করুন।
  • FragmentManager জানেন না এমন ব্যাক স্ট্যাকগুলি থেকে দূরে স্থানান্তর করুন৷ এর পরিবর্তে FragmentManager বা নেভিগেশন উপাদান দ্বারা পরিচালিত ব্যাক স্ট্যাকগুলি ব্যবহার করুন৷

ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়

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

পরের বার ব্যবহারকারী যখন অ্যাপটি চালু করেন তখন সিস্টেমটি সেই উইজেটগুলিকে পুনরায় সক্ষম করে৷

আরও তথ্যের জন্য, প্যাকেজ বন্ধ অবস্থায় পরিবর্তন দেখুন।

মিডিয়া প্রজেকশন স্ট্যাটাস বার চিপ ব্যবহারকারীদের স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিং সম্পর্কে সতর্ক করে

স্ক্রীন প্রজেকশন শোষণ ব্যক্তিগত ব্যবহারকারীর ডেটা যেমন আর্থিক তথ্য প্রকাশ করে কারণ ব্যবহারকারীরা বুঝতে পারে না যে তাদের ডিভাইসের স্ক্রিন ভাগ করা হচ্ছে।

Android 15 QPR1 বা উচ্চতর ডিভাইসে চলমান অ্যাপ্লিকেশানগুলির জন্য, একটি স্ট্যাটাস বার চিপ যা বড় এবং বিশিষ্ট যেকোন চলমান স্ক্রীন প্রজেকশনে ব্যবহারকারীদের সতর্ক করে। ব্যবহারকারীরা তাদের স্ক্রীন শেয়ার করা, কাস্ট করা বা রেকর্ড করা থেকে বন্ধ করতে চিপটিতে ট্যাপ করতে পারেন। এছাড়াও, ডিভাইসের স্ক্রিন লক হয়ে গেলে স্ক্রিন প্রজেকশন স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

স্ক্রিন শেয়ারিং, কাস্টিং এবং রেকর্ডিংয়ের জন্য স্ট্যাটাস বার চিপ।

আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করুন

ডিফল্টরূপে, আপনার অ্যাপে স্ট্যাটাস বার চিপ অন্তর্ভুক্ত থাকে এবং লক স্ক্রিন সক্রিয় হলে স্বয়ংক্রিয়ভাবে স্ক্রিন প্রজেকশন স্থগিত করে।

এই ব্যবহারের ক্ষেত্রে আপনার অ্যাপটি কীভাবে পরীক্ষা করবেন সে সম্পর্কে আরও জানতে, স্ট্যাটাস বার চিপ এবং অটো স্টপ দেখুন।

পটভূমি নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধতা

In Android 15, apps that start a network request outside of a valid process lifecycle receive an exception. Typically, an UnknownHostException or other socket-related IOException. Network requests that happen outside of a valid lifecycle are usually due to apps unknowingly continuing a network request even after the app is no longer active.

To mitigate this exception, ensure your network requests are lifecycle aware and cancelled upon leaving a valid process lifecycle by using lifecycle aware components. If it is important that the network request should happen even when the user leaves the application, consider scheduling the network request using WorkManager or continue a user visible task using Foreground Service.

অবজ্ঞা

প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷

অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।