অ্যান্ড্রয়েড 15 প্ল্যাটফর্মে এমন আচরণের পরিবর্তন রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণের পরিবর্তনগুলি সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য যখন সেগুলি Android 15 এ চলে, targetSdkVersion
নির্বিশেষে। আপনার অ্যাপটি পরীক্ষা করা উচিত এবং তারপরে যেখানে প্রযোজ্য সেখানে সঠিকভাবে সমর্থন করার জন্য প্রয়োজন অনুসারে এটি সংশোধন করা উচিত।
মূল কার্যকারিতা
Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।
প্যাকেজ পরিবর্তন স্টপ অবস্থা
প্যাকেজ FLAG_STOPPED
অবস্থার উদ্দেশ্য (যা ব্যবহারকারীরা একটি অ্যাপ আইকনকে দীর্ঘক্ষণ চেপে এবং "ফোর্স স্টপ" নির্বাচন করে AOSP বিল্ডে নিযুক্ত হতে পারে) সর্বদা অ্যাপগুলিকে এই অবস্থায় রাখা হয়েছে যতক্ষণ না ব্যবহারকারী স্পষ্টভাবে অ্যাপটিকে এই অবস্থা থেকে সরাসরি সরিয়ে না দেয়। অ্যাপটি চালু করা বা অ্যাপের সাথে পরোক্ষভাবে ইন্টারঅ্যাক্ট করা (শেয়ারশিট বা উইজেটের মাধ্যমে, অ্যাপটিকে লাইভ ওয়ালপেপার হিসেবে নির্বাচন করা ইত্যাদি)। অ্যান্ড্রয়েড 15-এ, আমরা এই উদ্দেশ্যমূলক আচরণের সাথে সারিবদ্ধ হতে সিস্টেমের আচরণ আপডেট করেছি। অ্যাপগুলি শুধুমাত্র প্রত্যক্ষ বা পরোক্ষ ব্যবহারকারীর ক্রিয়াকলাপের মাধ্যমে থামানো অবস্থা থেকে সরানো উচিত।
উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED
, বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।
অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped()
পদ্ধতিতে কল করতে পারেন।
16 KB পৃষ্ঠার আকারের জন্য সমর্থন
ঐতিহাসিকভাবে, অ্যান্ড্রয়েড শুধুমাত্র 4 KB মেমরি পৃষ্ঠার আকার সমর্থন করে, যা অ্যান্ড্রয়েড ডিভাইসে সাধারণত থাকা মোট মেমরির গড় পরিমাণের জন্য সিস্টেম মেমরির কার্যকারিতা অপ্টিমাইজ করেছে। অ্যান্ড্রয়েড 15 দিয়ে শুরু করে, AOSP 16 KB (16 KB ডিভাইস) এর পৃষ্ঠার আকার ব্যবহার করার জন্য কনফিগার করা ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপটি SDK-এর মাধ্যমে প্রত্যক্ষ বা পরোক্ষভাবে কোনও NDK লাইব্রেরি ব্যবহার করে, তাহলে এই 16 KB ডিভাইসে কাজ করার জন্য আপনাকে আপনার অ্যাপটি পুনর্নির্মাণ করতে হবে।
যেহেতু ডিভাইস নির্মাতারা বৃহত্তর পরিমাণে ভৌত মেমরি (RAM) সহ ডিভাইসগুলি তৈরি করতে থাকে, এই ডিভাইসগুলির মধ্যে অনেকগুলি ডিভাইসের কার্যকারিতা অপ্টিমাইজ করার জন্য 16 KB (এবং শেষ পর্যন্ত আরও বড়) পৃষ্ঠার আকার গ্রহণ করবে। 16 KB পৃষ্ঠার আকারের ডিভাইসগুলির জন্য সমর্থন যোগ করা আপনার অ্যাপটিকে এই ডিভাইসগুলিতে চালানোর জন্য সক্ষম করে এবং আপনার অ্যাপটিকে সংশ্লিষ্ট কর্মক্ষমতা উন্নতি থেকে উপকৃত হতে সাহায্য করে। পুনরায় কম্পাইল না করে, অ্যাপগুলি 16 KB ডিভাইসে কাজ নাও করতে পারে যখন সেগুলি ভবিষ্যতের Android রিলিজে তৈরি করা হয়।
আপনার অ্যাপের জন্য সমর্থন যোগ করতে আপনাকে সাহায্য করার জন্য, আমরা কীভাবে আপনার অ্যাপটি প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে , কীভাবে আপনার অ্যাপটি পুনর্নির্মাণ করবেন (যদি প্রযোজ্য হয়), এবং কীভাবে এমুলেটর ব্যবহার করে (Android সহ) ব্যবহার করে আপনার অ্যাপটি 16 KB এনভায়রনমেন্টে পরীক্ষা করবেন সে সম্পর্কে নির্দেশিকা প্রদান করেছি। অ্যান্ড্রয়েড এমুলেটরের জন্য 15টি সিস্টেম চিত্র)।
Benefits and performance gains
16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:
- সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
- অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
- দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
- উন্নত সিস্টেম বুট সময়: গড়ে 1.5% (প্রায় 0.8 সেকেন্ড) দ্বারা উন্নত
এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।
Check if your app is impacted
যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে কিনা তা আপনি যদি নিশ্চিত না হন, তাহলে কোনো নেটিভ কোড আছে কিনা তা শনাক্ত করতে আপনি APK অ্যানালাইজার ব্যবহার করতে পারেন।
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন ।
ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন
ব্যক্তিগত স্থান হল Android 15-এ একটি নতুন বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের ডিভাইসে একটি পৃথক স্থান তৈরি করতে দেয় যেখানে তারা প্রমাণীকরণের অতিরিক্ত স্তরের অধীনে সংবেদনশীল অ্যাপগুলিকে চোখ থেকে দূরে রাখতে পারে। প্রাইভেট স্পেসে থাকা অ্যাপগুলির দৃশ্যমানতা সীমিত থাকার কারণে, কিছু ধরনের অ্যাপকে ব্যবহারকারীর ব্যক্তিগত স্পেসে অ্যাপ দেখতে ও ইন্টারঅ্যাক্ট করতে সক্ষম হওয়ার জন্য অতিরিক্ত পদক্ষেপ নিতে হবে।
সব অ্যাপ
যেহেতু ব্যক্তিগত স্থানের অ্যাপ্লিকেশানগুলি একটি পৃথক ব্যবহারকারীর প্রোফাইলে রাখা হয়, কাজের প্রোফাইলের মতো, অ্যাপ্লিকেশানগুলিকে মনে করা উচিত নয় যে তাদের অ্যাপের ইনস্টল করা কোনো অনুলিপি যা মূল প্রোফাইলে নেই সেগুলি কাজের প্রোফাইলে রয়েছে৷ যদি আপনার অ্যাপে কাজের প্রোফাইল অ্যাপের সাথে সম্পর্কিত যুক্তি থাকে যা এই অনুমান করে, তাহলে আপনাকে এই যুক্তি সামঞ্জস্য করতে হবে।
মেডিকেল অ্যাপস
যখন একজন ব্যবহারকারী ব্যক্তিগত স্থান লক করে, তখন ব্যক্তিগত স্থানের সমস্ত অ্যাপ্লিকেশন বন্ধ হয়ে যায় এবং সেই অ্যাপ্লিকেশনগুলি বিজ্ঞপ্তিগুলি দেখানো সহ ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে পারে না। এই আচরণ ব্যক্তিগত স্থানে ইনস্টল করা মেডিকেল অ্যাপের ব্যবহার এবং কার্যকারিতাকে সমালোচনামূলকভাবে প্রভাবিত করতে পারে।
প্রাইভেট স্পেস সেটআপ অভিজ্ঞতা ব্যবহারকারীদের সতর্ক করে যে প্রাইভেট স্পেস এমন অ্যাপগুলির জন্য উপযুক্ত নয় যেগুলিকে সমালোচনামূলক ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে হবে, যেমন মেডিকেল অ্যাপ থেকে বিজ্ঞপ্তি দেখানো। যাইহোক, অ্যাপগুলি ব্যক্তিগত জায়গায় ব্যবহার করা হচ্ছে কিনা তা নির্ধারণ করতে পারে না, তাই তারা এই ক্ষেত্রে ব্যবহারকারীকে সতর্কতা দেখাতে পারে না।
এই কারণে, আপনি যদি একটি মেডিকেল অ্যাপ তৈরি করেন, তাহলে পর্যালোচনা করুন যে এই বৈশিষ্ট্যটি কীভাবে আপনার অ্যাপকে প্রভাবিত করতে পারে এবং যথাযথ পদক্ষেপ নিতে পারে—যেমন আপনার ব্যবহারকারীদের ব্যক্তিগত জায়গায় আপনার অ্যাপ ইনস্টল না করার জন্য জানানো—সমালোচনামূলক অ্যাপের সক্ষমতা ব্যাহত না করার জন্য।
লঞ্চার অ্যাপস
আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:
- আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ,
ROLE_HOME
ভূমিকার অধিকারী৷ - আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
ACCESS_HIDDEN_PROFILES
স্বাভাবিক অনুমতি ঘোষণা করতে হবে।
লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES
অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:
- ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে
getLauncherUserInfo()
পদ্ধতি ব্যবহার করুন। - ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
- ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে (
true
পাস করে) বা আনলক করতে (false
পাস করে) করার জন্যrequestQuietModeEnabled()
পদ্ধতি ব্যবহার করুন। লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত
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 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷
প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।
অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷
Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:
- Ensure that your app has been properly migrated to use the predictive back gesture.
- Ensure that your fragment transitions work with predictive back navigation.
- Migrate away from animation and framework transitions and use animator and androidx transitions instead.
- Migrate away from back stacks that
FragmentManager
doesn't know about. Use back stacks managed byFragmentManager
or by the Navigation component instead.
ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়
If a user force-stops an app on a device running Android 15, the system temporarily disables all the app's widgets. The widgets are grayed out, and the user cannot interact with them. This is because beginning with Android 15, the system cancels all an app's pending intents when the app is force-stopped.
The system re-enables those widgets the next time the user launches the app.
For more information, see Changes to package stopped state.
অবজ্ঞা
প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷
অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।
, অ্যান্ড্রয়েড 15 প্ল্যাটফর্মে এমন আচরণের পরিবর্তন রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণের পরিবর্তনগুলি সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য যখন সেগুলি Android 15 এ চলে, targetSdkVersion
নির্বিশেষে। আপনার অ্যাপটি পরীক্ষা করা উচিত এবং তারপরে যেখানে প্রযোজ্য সেখানে সঠিকভাবে সমর্থন করার জন্য প্রয়োজন অনুসারে এটি সংশোধন করা উচিত।
মূল কার্যকারিতা
Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।
প্যাকেজ পরিবর্তন স্টপ অবস্থা
প্যাকেজ FLAG_STOPPED
অবস্থার উদ্দেশ্য (যা ব্যবহারকারীরা একটি অ্যাপ আইকনকে দীর্ঘক্ষণ চেপে এবং "ফোর্স স্টপ" নির্বাচন করে AOSP বিল্ডে নিযুক্ত হতে পারে) সর্বদা অ্যাপগুলিকে এই অবস্থায় রাখা হয়েছে যতক্ষণ না ব্যবহারকারী স্পষ্টভাবে অ্যাপটিকে এই অবস্থা থেকে সরাসরি সরিয়ে না দেয়। অ্যাপটি চালু করা বা অ্যাপের সাথে পরোক্ষভাবে ইন্টারঅ্যাক্ট করা (শেয়ারশিট বা উইজেটের মাধ্যমে, অ্যাপটিকে লাইভ ওয়ালপেপার হিসেবে নির্বাচন করা ইত্যাদি)। অ্যান্ড্রয়েড 15-এ, আমরা এই উদ্দেশ্যমূলক আচরণের সাথে সারিবদ্ধ হতে সিস্টেমের আচরণ আপডেট করেছি। অ্যাপগুলি শুধুমাত্র প্রত্যক্ষ বা পরোক্ষ ব্যবহারকারীর ক্রিয়াকলাপের মাধ্যমে থামানো অবস্থা থেকে সরানো উচিত।
উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED
, বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।
অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped()
পদ্ধতিতে কল করতে পারেন।
16 KB পৃষ্ঠার আকারের জন্য সমর্থন
ঐতিহাসিকভাবে, অ্যান্ড্রয়েড শুধুমাত্র 4 KB মেমরি পৃষ্ঠার আকার সমর্থন করে, যা অ্যান্ড্রয়েড ডিভাইসে সাধারণত থাকা মোট মেমরির গড় পরিমাণের জন্য সিস্টেম মেমরির কার্যকারিতা অপ্টিমাইজ করেছে। অ্যান্ড্রয়েড 15 দিয়ে শুরু করে, AOSP 16 KB (16 KB ডিভাইস) এর পৃষ্ঠার আকার ব্যবহার করার জন্য কনফিগার করা ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপটি SDK-এর মাধ্যমে প্রত্যক্ষ বা পরোক্ষভাবে কোনও NDK লাইব্রেরি ব্যবহার করে, তাহলে এই 16 KB ডিভাইসে কাজ করার জন্য আপনাকে আপনার অ্যাপটি পুনর্নির্মাণ করতে হবে।
যেহেতু ডিভাইস নির্মাতারা বৃহত্তর পরিমাণে ভৌত মেমরি (RAM) সহ ডিভাইসগুলি তৈরি করতে থাকে, এই ডিভাইসগুলির মধ্যে অনেকগুলি ডিভাইসের কার্যকারিতা অপ্টিমাইজ করার জন্য 16 KB (এবং শেষ পর্যন্ত আরও বড়) পৃষ্ঠার আকার গ্রহণ করবে। 16 KB পৃষ্ঠার আকারের ডিভাইসগুলির জন্য সমর্থন যোগ করা আপনার অ্যাপটিকে এই ডিভাইসগুলিতে চালানোর জন্য সক্ষম করে এবং আপনার অ্যাপটিকে সংশ্লিষ্ট কর্মক্ষমতা উন্নতি থেকে উপকৃত হতে সাহায্য করে। পুনরায় কম্পাইল না করে, অ্যাপগুলি 16 KB ডিভাইসে কাজ নাও করতে পারে যখন সেগুলি ভবিষ্যতের Android রিলিজে তৈরি করা হয়।
আপনার অ্যাপের জন্য সমর্থন যোগ করতে আপনাকে সাহায্য করার জন্য, আমরা কীভাবে আপনার অ্যাপটি প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে , কীভাবে আপনার অ্যাপটি পুনর্নির্মাণ করবেন (যদি প্রযোজ্য হয়), এবং কীভাবে এমুলেটর ব্যবহার করে (Android সহ) ব্যবহার করে আপনার অ্যাপটি 16 KB এনভায়রনমেন্টে পরীক্ষা করবেন সে সম্পর্কে নির্দেশিকা প্রদান করেছি। অ্যান্ড্রয়েড এমুলেটরের জন্য 15টি সিস্টেম চিত্র)।
Benefits and performance gains
16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:
- সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
- অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
- দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
- উন্নত সিস্টেম বুট সময়: গড়ে 1.5% (প্রায় 0.8 সেকেন্ড) দ্বারা উন্নত
এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।
Check if your app is impacted
যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে কিনা তা আপনি যদি নিশ্চিত না হন, তাহলে কোনো নেটিভ কোড আছে কিনা তা শনাক্ত করতে আপনি APK অ্যানালাইজার ব্যবহার করতে পারেন।
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন ।
ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন
ব্যক্তিগত স্থান হল Android 15-এ একটি নতুন বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের ডিভাইসে একটি পৃথক স্থান তৈরি করতে দেয় যেখানে তারা প্রমাণীকরণের অতিরিক্ত স্তরের অধীনে সংবেদনশীল অ্যাপগুলিকে চোখ থেকে দূরে রাখতে পারে। প্রাইভেট স্পেসে থাকা অ্যাপগুলির দৃশ্যমানতা সীমিত থাকার কারণে, কিছু ধরনের অ্যাপকে ব্যবহারকারীর ব্যক্তিগত স্পেসে অ্যাপ দেখতে ও ইন্টারঅ্যাক্ট করতে সক্ষম হওয়ার জন্য অতিরিক্ত পদক্ষেপ নিতে হবে।
সব অ্যাপ
যেহেতু ব্যক্তিগত স্থানের অ্যাপ্লিকেশানগুলি একটি পৃথক ব্যবহারকারীর প্রোফাইলে রাখা হয়, কাজের প্রোফাইলের মতো, অ্যাপ্লিকেশানগুলিকে মনে করা উচিত নয় যে তাদের অ্যাপের ইনস্টল করা কোনো অনুলিপি যা মূল প্রোফাইলে নেই সেগুলি কাজের প্রোফাইলে রয়েছে৷ যদি আপনার অ্যাপে কাজের প্রোফাইল অ্যাপের সাথে সম্পর্কিত যুক্তি থাকে যা এই অনুমান করে, তাহলে আপনাকে এই যুক্তি সামঞ্জস্য করতে হবে।
মেডিকেল অ্যাপস
যখন একজন ব্যবহারকারী ব্যক্তিগত স্থান লক করে, তখন ব্যক্তিগত স্থানের সমস্ত অ্যাপ্লিকেশন বন্ধ হয়ে যায় এবং সেই অ্যাপ্লিকেশনগুলি বিজ্ঞপ্তিগুলি দেখানো সহ ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে পারে না। এই আচরণ ব্যক্তিগত স্থানে ইনস্টল করা মেডিকেল অ্যাপের ব্যবহার এবং কার্যকারিতাকে সমালোচনামূলকভাবে প্রভাবিত করতে পারে।
প্রাইভেট স্পেস সেটআপ অভিজ্ঞতা ব্যবহারকারীদের সতর্ক করে যে প্রাইভেট স্পেস এমন অ্যাপগুলির জন্য উপযুক্ত নয় যেগুলিকে সমালোচনামূলক ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে হবে, যেমন মেডিকেল অ্যাপ থেকে বিজ্ঞপ্তি দেখানো। যাইহোক, অ্যাপগুলি ব্যক্তিগত জায়গায় ব্যবহার করা হচ্ছে কিনা তা নির্ধারণ করতে পারে না, তাই তারা এই ক্ষেত্রে ব্যবহারকারীকে সতর্কতা দেখাতে পারে না।
এই কারণে, আপনি যদি একটি মেডিকেল অ্যাপ তৈরি করেন, তাহলে পর্যালোচনা করুন যে এই বৈশিষ্ট্যটি কীভাবে আপনার অ্যাপকে প্রভাবিত করতে পারে এবং যথাযথ পদক্ষেপ নিতে পারে—যেমন আপনার ব্যবহারকারীদের ব্যক্তিগত জায়গায় আপনার অ্যাপ ইনস্টল না করার জন্য জানানো—সমালোচনামূলক অ্যাপের সক্ষমতা ব্যাহত না করার জন্য।
লঞ্চার অ্যাপস
আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:
- আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ,
ROLE_HOME
ভূমিকার অধিকারী৷ - আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
ACCESS_HIDDEN_PROFILES
স্বাভাবিক অনুমতি ঘোষণা করতে হবে।
লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES
অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:
- ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে
getLauncherUserInfo()
পদ্ধতি ব্যবহার করুন। - ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
- ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে (
true
পাস করে) বা আনলক করতে (false
পাস করে) করার জন্যrequestQuietModeEnabled()
পদ্ধতি ব্যবহার করুন। লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত
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 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷
প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।
অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷
Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:
- Ensure that your app has been properly migrated to use the predictive back gesture.
- Ensure that your fragment transitions work with predictive back navigation.
- Migrate away from animation and framework transitions and use animator and androidx transitions instead.
- Migrate away from back stacks that
FragmentManager
doesn't know about. Use back stacks managed byFragmentManager
or by the Navigation component instead.
ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়
If a user force-stops an app on a device running Android 15, the system temporarily disables all the app's widgets. The widgets are grayed out, and the user cannot interact with them. This is because beginning with Android 15, the system cancels all an app's pending intents when the app is force-stopped.
The system re-enables those widgets the next time the user launches the app.
For more information, see Changes to package stopped state.
অবজ্ঞা
প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷
অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।
, অ্যান্ড্রয়েড 15 প্ল্যাটফর্মে এমন আচরণের পরিবর্তন রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণের পরিবর্তনগুলি সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য যখন সেগুলি Android 15 এ চলে, targetSdkVersion
নির্বিশেষে। আপনার অ্যাপটি পরীক্ষা করা উচিত এবং তারপরে যেখানে প্রযোজ্য সেখানে সঠিকভাবে সমর্থন করার জন্য প্রয়োজন অনুসারে এটি সংশোধন করা উচিত।
মূল কার্যকারিতা
Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।
প্যাকেজ পরিবর্তন স্টপ অবস্থা
প্যাকেজ FLAG_STOPPED
অবস্থার উদ্দেশ্য (যা ব্যবহারকারীরা একটি অ্যাপ আইকনকে দীর্ঘক্ষণ চেপে এবং "ফোর্স স্টপ" নির্বাচন করে AOSP বিল্ডে নিযুক্ত হতে পারে) সর্বদা অ্যাপগুলিকে এই অবস্থায় রাখা হয়েছে যতক্ষণ না ব্যবহারকারী স্পষ্টভাবে অ্যাপটিকে এই অবস্থা থেকে সরাসরি সরিয়ে না দেয়। অ্যাপটি চালু করা বা অ্যাপের সাথে পরোক্ষভাবে ইন্টারঅ্যাক্ট করা (শেয়ারশিট বা উইজেটের মাধ্যমে, অ্যাপটিকে লাইভ ওয়ালপেপার হিসেবে নির্বাচন করা ইত্যাদি)। অ্যান্ড্রয়েড 15-এ, আমরা এই উদ্দেশ্যমূলক আচরণের সাথে সারিবদ্ধ হতে সিস্টেমের আচরণ আপডেট করেছি। অ্যাপগুলি শুধুমাত্র প্রত্যক্ষ বা পরোক্ষ ব্যবহারকারীর ক্রিয়াকলাপের মাধ্যমে থামানো অবস্থা থেকে সরানো উচিত।
উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED
, বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।
অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped()
পদ্ধতিতে কল করতে পারেন।
16 KB পৃষ্ঠার আকারের জন্য সমর্থন
ঐতিহাসিকভাবে, অ্যান্ড্রয়েড শুধুমাত্র 4 KB মেমরি পৃষ্ঠার আকার সমর্থন করে, যা অ্যান্ড্রয়েড ডিভাইসে সাধারণত থাকা মোট মেমরির গড় পরিমাণের জন্য সিস্টেম মেমরির কার্যকারিতা অপ্টিমাইজ করেছে। অ্যান্ড্রয়েড 15 দিয়ে শুরু করে, AOSP 16 KB (16 KB ডিভাইস) এর পৃষ্ঠার আকার ব্যবহার করার জন্য কনফিগার করা ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপটি SDK-এর মাধ্যমে প্রত্যক্ষ বা পরোক্ষভাবে কোনও NDK লাইব্রেরি ব্যবহার করে, তাহলে এই 16 KB ডিভাইসে কাজ করার জন্য আপনাকে আপনার অ্যাপটি পুনর্নির্মাণ করতে হবে।
যেহেতু ডিভাইস নির্মাতারা বৃহত্তর পরিমাণে ভৌত মেমরি (RAM) সহ ডিভাইসগুলি তৈরি করতে থাকে, এই ডিভাইসগুলির মধ্যে অনেকগুলি ডিভাইসের কার্যকারিতা অপ্টিমাইজ করার জন্য 16 KB (এবং শেষ পর্যন্ত আরও বড়) পৃষ্ঠার আকার গ্রহণ করবে। 16 KB পৃষ্ঠার আকারের ডিভাইসগুলির জন্য সমর্থন যোগ করা আপনার অ্যাপটিকে এই ডিভাইসগুলিতে চালানোর জন্য সক্ষম করে এবং আপনার অ্যাপটিকে সংশ্লিষ্ট কর্মক্ষমতা উন্নতি থেকে উপকৃত হতে সাহায্য করে। পুনরায় কম্পাইল না করে, অ্যাপগুলি 16 KB ডিভাইসে কাজ নাও করতে পারে যখন সেগুলি ভবিষ্যতের Android রিলিজে তৈরি করা হয়।
আপনার অ্যাপের জন্য সমর্থন যোগ করতে আপনাকে সাহায্য করার জন্য, আমরা কীভাবে আপনার অ্যাপটি প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে , কীভাবে আপনার অ্যাপটি পুনর্নির্মাণ করবেন (যদি প্রযোজ্য হয়), এবং কীভাবে এমুলেটর ব্যবহার করে (Android সহ) ব্যবহার করে আপনার অ্যাপটি 16 KB এনভায়রনমেন্টে পরীক্ষা করবেন সে সম্পর্কে নির্দেশিকা প্রদান করেছি। অ্যান্ড্রয়েড এমুলেটরের জন্য 15টি সিস্টেম চিত্র)।
Benefits and performance gains
16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:
- সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
- অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
- দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
- উন্নত সিস্টেম বুট সময়: গড়ে 1.5% (প্রায় 0.8 সেকেন্ড) দ্বারা উন্নত
এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।
Check if your app is impacted
যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে কিনা তা আপনি যদি নিশ্চিত না হন, তাহলে কোনো নেটিভ কোড আছে কিনা তা শনাক্ত করতে আপনি APK অ্যানালাইজার ব্যবহার করতে পারেন।
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন ।
ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন
ব্যক্তিগত স্থান হল Android 15-এ একটি নতুন বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের ডিভাইসে একটি পৃথক স্থান তৈরি করতে দেয় যেখানে তারা প্রমাণীকরণের অতিরিক্ত স্তরের অধীনে সংবেদনশীল অ্যাপগুলিকে চোখ থেকে দূরে রাখতে পারে। প্রাইভেট স্পেসে থাকা অ্যাপগুলির দৃশ্যমানতা সীমিত থাকার কারণে, কিছু ধরনের অ্যাপকে ব্যবহারকারীর ব্যক্তিগত স্পেসে অ্যাপ দেখতে ও ইন্টারঅ্যাক্ট করতে সক্ষম হওয়ার জন্য অতিরিক্ত পদক্ষেপ নিতে হবে।
সব অ্যাপ
যেহেতু ব্যক্তিগত স্থানের অ্যাপ্লিকেশানগুলি একটি পৃথক ব্যবহারকারীর প্রোফাইলে রাখা হয়, কাজের প্রোফাইলের মতো, অ্যাপ্লিকেশানগুলিকে মনে করা উচিত নয় যে তাদের অ্যাপের ইনস্টল করা কোনো অনুলিপি যা মূল প্রোফাইলে নেই সেগুলি কাজের প্রোফাইলে রয়েছে৷ যদি আপনার অ্যাপে কাজের প্রোফাইল অ্যাপের সাথে সম্পর্কিত যুক্তি থাকে যা এই অনুমান করে, তাহলে আপনাকে এই যুক্তি সামঞ্জস্য করতে হবে।
মেডিকেল অ্যাপস
যখন একজন ব্যবহারকারী ব্যক্তিগত স্থান লক করে, তখন ব্যক্তিগত স্থানের সমস্ত অ্যাপ্লিকেশন বন্ধ হয়ে যায় এবং সেই অ্যাপ্লিকেশনগুলি বিজ্ঞপ্তিগুলি দেখানো সহ ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে পারে না। এই আচরণ ব্যক্তিগত স্থানে ইনস্টল করা মেডিকেল অ্যাপের ব্যবহার এবং কার্যকারিতাকে সমালোচনামূলকভাবে প্রভাবিত করতে পারে।
প্রাইভেট স্পেস সেটআপ অভিজ্ঞতা ব্যবহারকারীদের সতর্ক করে যে প্রাইভেট স্পেস এমন অ্যাপগুলির জন্য উপযুক্ত নয় যেগুলিকে সমালোচনামূলক ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে হবে, যেমন মেডিকেল অ্যাপ থেকে বিজ্ঞপ্তি দেখানো। যাইহোক, অ্যাপগুলি ব্যক্তিগত জায়গায় ব্যবহার করা হচ্ছে কিনা তা নির্ধারণ করতে পারে না, তাই তারা এই ক্ষেত্রে ব্যবহারকারীকে সতর্কতা দেখাতে পারে না।
এই কারণে, আপনি যদি একটি মেডিকেল অ্যাপ তৈরি করেন, তাহলে পর্যালোচনা করুন যে এই বৈশিষ্ট্যটি কীভাবে আপনার অ্যাপকে প্রভাবিত করতে পারে এবং যথাযথ পদক্ষেপ নিতে পারে—যেমন আপনার ব্যবহারকারীদের ব্যক্তিগত জায়গায় আপনার অ্যাপ ইনস্টল না করার জন্য জানানো—সমালোচনামূলক অ্যাপের সক্ষমতা ব্যাহত না করার জন্য।
লঞ্চার অ্যাপস
আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:
- আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ,
ROLE_HOME
ভূমিকার অধিকারী৷ - আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
ACCESS_HIDDEN_PROFILES
স্বাভাবিক অনুমতি ঘোষণা করতে হবে।
লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES
অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:
- ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে
getLauncherUserInfo()
পদ্ধতি ব্যবহার করুন। - ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
- ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে (
true
পাস করে) বা আনলক করতে (false
পাস করে) করার জন্যrequestQuietModeEnabled()
পদ্ধতি ব্যবহার করুন। লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত
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 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷
প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।
অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷
Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:
- Ensure that your app has been properly migrated to use the predictive back gesture.
- Ensure that your fragment transitions work with predictive back navigation.
- Migrate away from animation and framework transitions and use animator and androidx transitions instead.
- Migrate away from back stacks that
FragmentManager
doesn't know about. Use back stacks managed byFragmentManager
or by the Navigation component instead.
ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়
If a user force-stops an app on a device running Android 15, the system temporarily disables all the app's widgets. The widgets are grayed out, and the user cannot interact with them. This is because beginning with Android 15, the system cancels all an app's pending intents when the app is force-stopped.
The system re-enables those widgets the next time the user launches the app.
For more information, see Changes to package stopped state.
অবজ্ঞা
প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷
অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।
, অ্যান্ড্রয়েড 15 প্ল্যাটফর্মে এমন আচরণের পরিবর্তন রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণের পরিবর্তনগুলি সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য যখন সেগুলি Android 15 এ চলে, targetSdkVersion
নির্বিশেষে। আপনার অ্যাপটি পরীক্ষা করা উচিত এবং তারপরে যেখানে প্রযোজ্য সেখানে সঠিকভাবে সমর্থন করার জন্য প্রয়োজন অনুসারে এটি সংশোধন করা উচিত।
মূল কার্যকারিতা
Android 15 অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে।
প্যাকেজ পরিবর্তন স্টপ অবস্থা
প্যাকেজ FLAG_STOPPED
অবস্থার উদ্দেশ্য (যা ব্যবহারকারীরা একটি অ্যাপ আইকনকে দীর্ঘক্ষণ চেপে এবং "ফোর্স স্টপ" নির্বাচন করে AOSP বিল্ডে নিযুক্ত হতে পারে) সর্বদা অ্যাপগুলিকে এই অবস্থায় রাখা হয়েছে যতক্ষণ না ব্যবহারকারী স্পষ্টভাবে অ্যাপটিকে এই অবস্থা থেকে সরাসরি সরিয়ে না দেয়। অ্যাপটি চালু করা বা অ্যাপের সাথে পরোক্ষভাবে ইন্টারঅ্যাক্ট করা (শেয়ারশিট বা উইজেটের মাধ্যমে, অ্যাপটিকে লাইভ ওয়ালপেপার হিসেবে নির্বাচন করা ইত্যাদি)। অ্যান্ড্রয়েড 15-এ, আমরা এই উদ্দেশ্যমূলক আচরণের সাথে সারিবদ্ধ হতে সিস্টেমের আচরণ আপডেট করেছি। অ্যাপগুলি শুধুমাত্র প্রত্যক্ষ বা পরোক্ষ ব্যবহারকারীর ক্রিয়াকলাপের মাধ্যমে থামানো অবস্থা থেকে সরানো উচিত।
উদ্দিষ্ট আচরণকে সমর্থন করার ACTION_BOOT_COMPLETED
, বিদ্যমান বিধিনিষেধগুলি ছাড়াও, সিস্টেমটি সমস্ত মুলতুবি থাকা অভিপ্রায়গুলি বাতিল করে যখন অ্যাপটি Android 15 চালিত একটি ডিভাইসে থামানো অবস্থায় প্রবেশ করে। যেকোন মুলতুবি থাকা অভিপ্রায় পুনরায় নিবন্ধনের সুযোগ প্রদান করে অ্যাপে বিতরণ করা হয়।
অ্যাপটিকে বন্ধ অবস্থায় রাখা হয়েছে কিনা তা নিশ্চিত করতে আপনি নতুন ApplicationStartInfo.wasForceStopped()
পদ্ধতিতে কল করতে পারেন।
16 KB পৃষ্ঠার আকারের জন্য সমর্থন
ঐতিহাসিকভাবে, অ্যান্ড্রয়েড শুধুমাত্র 4 KB মেমরি পৃষ্ঠার আকার সমর্থন করে, যা অ্যান্ড্রয়েড ডিভাইসে সাধারণত থাকা মোট মেমরির গড় পরিমাণের জন্য সিস্টেম মেমরির কার্যকারিতা অপ্টিমাইজ করেছে। অ্যান্ড্রয়েড 15 দিয়ে শুরু করে, AOSP 16 KB (16 KB ডিভাইস) এর পৃষ্ঠার আকার ব্যবহার করার জন্য কনফিগার করা ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপটি SDK-এর মাধ্যমে প্রত্যক্ষ বা পরোক্ষভাবে কোনও NDK লাইব্রেরি ব্যবহার করে, তাহলে এই 16 KB ডিভাইসে কাজ করার জন্য আপনাকে আপনার অ্যাপটি পুনর্নির্মাণ করতে হবে।
যেহেতু ডিভাইস নির্মাতারা বৃহত্তর পরিমাণে ভৌত মেমরি (RAM) সহ ডিভাইসগুলি তৈরি করতে থাকে, এই ডিভাইসগুলির মধ্যে অনেকগুলি ডিভাইসের কার্যকারিতা অপ্টিমাইজ করার জন্য 16 KB (এবং শেষ পর্যন্ত আরও বড়) পৃষ্ঠার আকার গ্রহণ করবে। 16 KB পৃষ্ঠার আকারের ডিভাইসগুলির জন্য সমর্থন যোগ করা আপনার অ্যাপটিকে এই ডিভাইসগুলিতে চালানোর জন্য সক্ষম করে এবং আপনার অ্যাপটিকে সংশ্লিষ্ট কর্মক্ষমতা উন্নতি থেকে উপকৃত হতে সাহায্য করে। পুনরায় কম্পাইল না করে, অ্যাপগুলি 16 KB ডিভাইসে কাজ নাও করতে পারে যখন সেগুলি ভবিষ্যতের Android রিলিজে তৈরি করা হয়।
আপনার অ্যাপের জন্য সমর্থন যোগ করতে আপনাকে সাহায্য করার জন্য, আমরা কীভাবে আপনার অ্যাপটি প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে , কীভাবে আপনার অ্যাপটি পুনর্নির্মাণ করবেন (যদি প্রযোজ্য হয়), এবং কীভাবে এমুলেটর ব্যবহার করে (Android সহ) ব্যবহার করে আপনার অ্যাপটি 16 KB এনভায়রনমেন্টে পরীক্ষা করবেন সে সম্পর্কে নির্দেশিকা প্রদান করেছি। অ্যান্ড্রয়েড এমুলেটরের জন্য 15টি সিস্টেম চিত্র)।
Benefits and performance gains
16 KB পৃষ্ঠার আকারের সাথে কনফিগার করা ডিভাইসগুলি গড়ে সামান্য বেশি মেমরি ব্যবহার করে, তবে সিস্টেম এবং অ্যাপ উভয়ের জন্য বিভিন্ন কর্মক্ষমতা উন্নতিও লাভ করে:
- সিস্টেম মেমরির চাপে থাকাকালীন অ্যাপ লঞ্চের সময় কম: গড়ে 3.16% কম, কিছু অ্যাপের জন্য আরও উল্লেখযোগ্য উন্নতি (30% পর্যন্ত) যা আমরা পরীক্ষা করেছি
- অ্যাপ লঞ্চের সময় পাওয়ার ড্র কম হয়েছে: গড়ে 4.56% হ্রাস
- দ্রুত ক্যামেরা লঞ্চ: গড়ে 4.48% দ্রুত গরম শুরু হয় এবং গড়ে 6.60% দ্রুত ঠান্ডা শুরু হয়
- উন্নত সিস্টেম বুট সময়: গড়ে 1.5% (প্রায় 0.8 সেকেন্ড) দ্বারা উন্নত
এই উন্নতিগুলি আমাদের প্রাথমিক পরীক্ষার উপর ভিত্তি করে করা হয়েছে এবং প্রকৃত ডিভাইসগুলির ফলাফলগুলি সম্ভবত আলাদা হতে পারে৷ আমরা আমাদের পরীক্ষা চালিয়ে যাওয়ার সাথে সাথে অ্যাপগুলির সম্ভাব্য লাভের অতিরিক্ত বিশ্লেষণ প্রদান করব।
Check if your app is impacted
যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে , তাহলে আপনার অ্যাপটিকে 16 KB ডিভাইসের জন্য সমর্থন সহ পুনর্নির্মাণ করা উচিত। আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে কিনা তা আপনি যদি নিশ্চিত না হন, তাহলে কোনো নেটিভ কোড আছে কিনা তা শনাক্ত করতে আপনি APK অ্যানালাইজার ব্যবহার করতে পারেন।
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি ইতিমধ্যেই 16 KB ডিভাইস সমর্থন করে। তবুও, আমরা সুপারিশ করছি যে আপনি অ্যাপের আচরণে কোনো অপ্রত্যাশিত রিগ্রেশন নেই তা যাচাই করতে 16 KB পরিবেশে আপনার অ্যাপটি পরীক্ষা করুন ।
ব্যক্তিগত স্থান সমর্থন করার জন্য কিছু অ্যাপের জন্য প্রয়োজনীয় পরিবর্তন
ব্যক্তিগত স্থান হল Android 15-এ একটি নতুন বৈশিষ্ট্য যা ব্যবহারকারীদের তাদের ডিভাইসে একটি পৃথক স্থান তৈরি করতে দেয় যেখানে তারা প্রমাণীকরণের অতিরিক্ত স্তরের অধীনে সংবেদনশীল অ্যাপগুলিকে চোখ থেকে দূরে রাখতে পারে। প্রাইভেট স্পেসে থাকা অ্যাপগুলির দৃশ্যমানতা সীমিত থাকার কারণে, কিছু ধরনের অ্যাপকে ব্যবহারকারীর ব্যক্তিগত স্পেসে অ্যাপ দেখতে ও ইন্টারঅ্যাক্ট করতে সক্ষম হওয়ার জন্য অতিরিক্ত পদক্ষেপ নিতে হবে।
সব অ্যাপ
যেহেতু ব্যক্তিগত স্থানের অ্যাপ্লিকেশানগুলি একটি পৃথক ব্যবহারকারীর প্রোফাইলে রাখা হয়, কাজের প্রোফাইলের মতো, অ্যাপ্লিকেশানগুলিকে মনে করা উচিত নয় যে তাদের অ্যাপের ইনস্টল করা কোনো অনুলিপি যা মূল প্রোফাইলে নেই সেগুলি কাজের প্রোফাইলে রয়েছে৷ যদি আপনার অ্যাপে কাজের প্রোফাইল অ্যাপের সাথে সম্পর্কিত যুক্তি থাকে যা এই অনুমান করে, তাহলে আপনাকে এই যুক্তি সামঞ্জস্য করতে হবে।
মেডিকেল অ্যাপস
যখন একজন ব্যবহারকারী ব্যক্তিগত স্থান লক করে, তখন ব্যক্তিগত স্থানের সমস্ত অ্যাপ্লিকেশন বন্ধ হয়ে যায় এবং সেই অ্যাপ্লিকেশনগুলি বিজ্ঞপ্তিগুলি দেখানো সহ ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে পারে না। এই আচরণ ব্যক্তিগত স্থানে ইনস্টল করা মেডিকেল অ্যাপের ব্যবহার এবং কার্যকারিতাকে সমালোচনামূলকভাবে প্রভাবিত করতে পারে।
প্রাইভেট স্পেস সেটআপ অভিজ্ঞতা ব্যবহারকারীদের সতর্ক করে যে প্রাইভেট স্পেস এমন অ্যাপগুলির জন্য উপযুক্ত নয় যেগুলিকে সমালোচনামূলক ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড ক্রিয়াকলাপ সম্পাদন করতে হবে, যেমন মেডিকেল অ্যাপ থেকে বিজ্ঞপ্তি দেখানো। যাইহোক, অ্যাপগুলি ব্যক্তিগত জায়গায় ব্যবহার করা হচ্ছে কিনা তা নির্ধারণ করতে পারে না, তাই তারা এই ক্ষেত্রে ব্যবহারকারীকে সতর্কতা দেখাতে পারে না।
এই কারণে, আপনি যদি একটি মেডিকেল অ্যাপ তৈরি করেন, তাহলে পর্যালোচনা করুন যে এই বৈশিষ্ট্যটি কীভাবে আপনার অ্যাপকে প্রভাবিত করতে পারে এবং যথাযথ পদক্ষেপ নিতে পারে—যেমন আপনার ব্যবহারকারীদের ব্যক্তিগত জায়গায় আপনার অ্যাপ ইনস্টল না করার জন্য জানানো—সমালোচনামূলক অ্যাপের সক্ষমতা ব্যাহত না করার জন্য।
লঞ্চার অ্যাপস
আপনি যদি একটি লঞ্চার অ্যাপ তৈরি করেন, তাহলে ব্যক্তিগত স্থানের অ্যাপগুলি দৃশ্যমান হওয়ার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:
- আপনার অ্যাপটিকে ডিভাইসের জন্য ডিফল্ট লঞ্চার অ্যাপ হিসেবে বরাদ্দ করতে হবে—অর্থাৎ,
ROLE_HOME
ভূমিকার অধিকারী৷ - আপনার অ্যাপকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
ACCESS_HIDDEN_PROFILES
স্বাভাবিক অনুমতি ঘোষণা করতে হবে।
লঞ্চার অ্যাপগুলি যেগুলি ACCESS_HIDDEN_PROFILES
অনুমতি ঘোষণা করে তাদের অবশ্যই নিম্নলিখিত ব্যক্তিগত স্থান ব্যবহারের ক্ষেত্রে পরিচালনা করতে হবে:
- ব্যক্তিগত জায়গায় ইনস্টল করা অ্যাপগুলির জন্য আপনার অ্যাপে একটি পৃথক লঞ্চার কন্টেইনার থাকতে হবে। কোন ধরনের ব্যবহারকারী প্রোফাইল পরিচালনা করা হচ্ছে তা নির্ধারণ করতে
getLauncherUserInfo()
পদ্ধতি ব্যবহার করুন। - ব্যবহারকারীকে অবশ্যই ব্যক্তিগত স্থানের ধারকটি লুকাতে এবং দেখাতে সক্ষম হতে হবে।
- ব্যবহারকারী ব্যক্তিগত স্থান ধারক লক এবং আনলক করতে সক্ষম হতে হবে. ব্যক্তিগত স্থানটি লক করতে (
true
পাস করে) বা আনলক করতে (false
পাস করে) করার জন্যrequestQuietModeEnabled()
পদ্ধতি ব্যবহার করুন। লক থাকা অবস্থায়, ব্যক্তিগত স্থানের পাত্রে কোনো অ্যাপ দৃশ্যমান বা অনুসন্ধানের মতো প্রক্রিয়ার মাধ্যমে আবিষ্কার করা উচিত নয়। আপনার অ্যাপের উচিত
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 সমস্ত অ্যাপের জন্য ক্যামেরা এবং মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি করে৷
প্রত্যক্ষ এবং অফলোড অডিও প্লেব্যাক পূর্বে খোলা সরাসরি বা অফলোড অডিও ট্র্যাকগুলি অবৈধ করে যখন সংস্থান সীমা পৌঁছে যায়
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড 15-এ এমন কিছু পরিবর্তন রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।
অপ্ট-ইন করা অ্যাপগুলির জন্য ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন সক্ষম করা হয়েছে৷
Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:
- Ensure that your app has been properly migrated to use the predictive back gesture.
- Ensure that your fragment transitions work with predictive back navigation.
- Migrate away from animation and framework transitions and use animator and androidx transitions instead.
- Migrate away from back stacks that
FragmentManager
doesn't know about. Use back stacks managed byFragmentManager
or by the Navigation component instead.
ব্যবহারকারী যখন কোনো অ্যাপকে জোর করে থামিয়ে দেয় তখন উইজেট অক্ষম করা হয়
If a user force-stops an app on a device running Android 15, the system temporarily disables all the app's widgets. The widgets are grayed out, and the user cannot interact with them. This is because beginning with Android 15, the system cancels all an app's pending intents when the app is force-stopped.
The system re-enables those widgets the next time the user launches the app.
For more information, see Changes to package stopped state.
অবজ্ঞা
প্রতিটি প্রকাশের সাথে, নির্দিষ্ট Android APIগুলি অপ্রচলিত হয়ে যেতে পারে বা আরও ভাল বিকাশকারীর অভিজ্ঞতা প্রদান করতে বা নতুন প্ল্যাটফর্মের সক্ষমতাগুলিকে সমর্থন করার জন্য পুনরায় ফ্যাক্টর করতে হবে৷ এই ক্ষেত্রে, আমরা আনুষ্ঠানিকভাবে অপ্রচলিত API গুলিকে অবমূল্যায়ন করি এবং পরিবর্তে ব্যবহার করার জন্য বিকল্প APIগুলিতে বিকাশকারীদের নির্দেশ করি৷
অবচয় মানে আমরা API-এর জন্য অফিসিয়াল সমর্থন বন্ধ করে দিয়েছি, কিন্তু সেগুলি ডেভেলপারদের কাছে উপলব্ধ থাকবে। অ্যান্ড্রয়েডের এই রিলিজে উল্লেখযোগ্য অবচয় সম্পর্কে আরও জানতে, অবচয় পৃষ্ঠাটি দেখুন।