پلتفرم اندروید ۱۵ شامل تغییرات رفتاری است که ممکن است بر برنامه شما تأثیر بگذارد. تغییرات رفتاری زیر برای همه برنامهها هنگام اجرا در اندروید ۱۵، صرف نظر از targetSdkVersion ، اعمال میشود. شما باید برنامه خود را آزمایش کنید و سپس در صورت لزوم، آن را برای پشتیبانی صحیح از این موارد، در صورت لزوم، اصلاح کنید.
حتماً لیست تغییرات رفتاری که فقط روی برنامههای اندروید ۱۵ تأثیر میگذارند را نیز بررسی کنید.
عملکرد اصلی
اندروید ۱۵ قابلیتهای اصلی مختلف سیستم اندروید را تغییر داده یا گسترش میدهد.
تغییرات در وضعیت متوقف شدن بسته
هدف از وضعیت بسته FLAG_STOPPED (که کاربران می توانند با فشار طولانی یک نماد برنامه و انتخاب "توقف اجباری" در ساخت های AOSP شرکت کنند) همیشه این بوده است که برنامه ها را در این حالت نگه دارد تا زمانی که کاربر به طور مستقیم برنامه را از این حالت خارج کند. راهاندازی برنامه یا تعامل غیرمستقیم با برنامه (از طریق اشتراکگذاری یا ویجت، انتخاب برنامه به عنوان تصویر زمینه زنده و غیره). در اندروید 15، رفتار سیستم را بهروزرسانی کردهایم تا با این رفتار مورد نظر هماهنگ شود. برنامه ها فقط باید از طریق اقدام مستقیم یا غیرمستقیم کاربر از حالت توقف حذف شوند.
برای پشتیبانی از رفتار در نظر گرفته شده، علاوه بر محدودیتهای موجود، هنگامی که برنامه در دستگاه دارای Android 15 به حالت توقف وارد میشود، سیستم علاوه بر محدودیتهای موجود، تمام اهداف معلق را نیز لغو میکند. هنگامی که اقدامات کاربر برنامه را از حالت توقف خارج میکند، پخش ACTION_BOOT_COMPLETED انجام میشود. به برنامه تحویل داده می شود و فرصتی برای ثبت مجدد هرگونه نیات معلق فراهم می کند.
میتوانید متد جدید ApplicationStartInfo.wasForceStopped() را فراخوانی کنید تا تأیید کنید که آیا برنامه در حالت توقف قرار گرفته است یا خیر.
پشتیبانی از صفحات با حجم ۱۶ کیلوبایت
از لحاظ تاریخی، اندروید تنها از اندازه صفحات حافظه 4 کیلوبایتی پشتیبانی میکند که عملکرد حافظه سیستم را برای میانگین کل حافظهای که دستگاههای اندرویدی معمولا دارند بهینه میکند. با شروع Android 15، AOSP از دستگاه هایی پشتیبانی می کند که برای استفاده از اندازه صفحه 16 کیلوبایت (دستگاه های 16 کیلوبایت) پیکربندی شده اند. اگر برنامه شما از کتابخانه های NDK استفاده می کند، چه به طور مستقیم یا غیرمستقیم از طریق یک SDK، باید برنامه خود را بازسازی کنید تا بتواند روی این دستگاه های 16 کیلوبایتی کار کند.
از آنجایی که سازندگان دستگاهها به ساخت دستگاههایی با حافظه فیزیکی (RAM) بیشتر ادامه میدهند، بسیاری از این دستگاهها از اندازه صفحه ۱۶ کیلوبایت (و در نهایت بیشتر) برای بهینهسازی عملکرد دستگاه استفاده میکنند. افزودن پشتیبانی برای دستگاههای اندازه صفحه 16 کیلوبایت، برنامه شما را قادر میسازد تا در این دستگاهها اجرا شود و به برنامه شما کمک میکند از بهبودهای عملکرد مرتبط بهره مند شود. بدون کامپایل مجدد، برنامه ها در نسخه های بعدی اندروید روی دستگاه های 16 کیلوبایتی کار نخواهند کرد.
برای کمک به اضافه کردن پشتیبانی از برنامه خود، راهنمایی هایی در مورد نحوه بررسی اینکه آیا برنامه شما تحت تأثیر قرار گرفته است ، نحوه بازسازی برنامه خود (در صورت وجود) و نحوه آزمایش برنامه خود در یک محیط 16 کیلوبایتی با استفاده از شبیه سازها (از جمله تصاویر سیستم Android 15 برای شبیه ساز Android) را ارائه کرده ایم.
مزایا و دستاوردهای عملکرد
دستگاه هایی که با اندازه صفحه 16 کیلوبایت پیکربندی شده اند به طور متوسط کمی از حافظه بیشتری استفاده می کنند، اما بهبودهای عملکردی مختلفی را برای سیستم و برنامه ها نیز به دست می آورند:
- زمانهای راهاندازی برنامه کمتر زمانی که سیستم تحت فشار حافظه است: به طور متوسط 3.16٪ کمتر، با بهبودهای قابل توجه (تا 30٪) برای برخی از برنامههایی که آزمایش کردیم.
- کاهش مصرف انرژی در حین راه اندازی برنامه: به طور متوسط 4.56٪ کاهش
- راهاندازی سریعتر دوربین: به طور متوسط 4.48٪ سریعتر استارتهای گرم و 6.60٪ سریعتر شروع سرد.
- بهبود زمان بوت سیستم: به طور متوسط 8٪ (تقریباً 950 میلی ثانیه) بهبود یافته است.
این پیشرفتها بر اساس آزمایش اولیه ما هستند و نتایج روی دستگاههای واقعی احتمالاً متفاوت خواهد بود. در ادامه آزمایش خود، تجزیه و تحلیل بیشتری از دستاوردهای بالقوه برای برنامه ها ارائه خواهیم کرد.
بررسی کنید که آیا برنامه شما تحت تأثیر قرار گرفته است
اگر برنامه شما از هر کد بومی استفاده می کند ، باید برنامه خود را با پشتیبانی از دستگاه های 16 کیلوبایتی بازسازی کنید . اگر مطمئن نیستید که برنامه شما از کد بومی استفاده میکند، میتوانید از APK Analyzer برای شناسایی وجود کد بومی استفاده کنید و سپس تراز بخشهای ELF را برای کتابخانههای مشترکی که پیدا کردید بررسی کنید . Android Studio همچنین ویژگی هایی را ارائه می دهد که به شما کمک می کند تا به طور خودکار مشکلات تراز را تشخیص دهید .
اگر برنامه شما فقط از کدهای نوشته شده به زبان برنامه نویسی جاوا یا کاتلین استفاده می کند که شامل همه کتابخانه ها یا SDK می شود، برنامه شما از قبل از دستگاه های 16 کیلوبایتی پشتیبانی می کند. با این وجود، توصیه می کنیم برنامه خود را در یک محیط 16 کیلوبایتی آزمایش کنید تا مطمئن شوید که هیچ رگرسیون غیرمنتظره ای در رفتار برنامه وجود ندارد.
تغییرات لازم برای پشتیبانی برخی از برنامهها از فضای خصوصی
Private space is a new feature in Android 15 that lets users create a separate space on their device where they can keep sensitive apps away from prying eyes, under an additional layer of authentication. Because apps in the private space have restricted visibility, some types of apps need to take additional steps to be able to see and interact with apps in a user's private space.
All apps
Because apps in the private space are kept in a separate user profile, similar to work profiles, apps shouldn't assume that any installed copies of their app that aren't in the main profile are in the work profile. If your app has logic related to work profile apps that make this assumption, you'll need to adjust this logic.
Medical apps
When a user locks the private space, all apps in the private space are stopped, and those apps can't perform foreground or background activities, including showing notifications. This behavior might critically impact the use and function of medical apps installed in the private space.
The private space setup experience warns users that the private space is not suitable for apps that need to perform critical foreground or background activities, such as showing notifications from medical apps. However, apps can't determine whether or not they're being used in the private space, so they can't show a warning to the user for this case.
For these reasons, if you develop a medical app, review how this feature might impact your app and take appropriate actions—such as informing your users not to install your app in the private space—to avoid disrupting critical app capabilities.
Launcher apps
If you develop a launcher app, you must do the following before apps in the private space will be visible:
- Your app must be assigned as the default launcher app for the device—that
is, possessing the
ROLE_HOMErole. - Your app must declare the
ACCESS_HIDDEN_PROFILESnormal permission in your app's manifest file.
Launcher apps that declare the ACCESS_HIDDEN_PROFILES permission must handle
the following private space use cases:
- Your app must have a separate launcher container for apps installed in the
private space. Use the
getLauncherUserInfo()method to determine which type of user profile is being handled. - The user must be able to hide and show the private space container.
- The user must be able to lock and unlock the private space container. Use
the
requestQuietModeEnabled()method to lock (by passingtrue) or unlock (by passingfalse) the private space. While locked, no apps in the private space container should be visible or discoverable through mechanisms such as search. Your app should register a receiver for the
ACTION_PROFILE_AVAILABLEandACTION_PROFILE_UNAVAILABLEbroadcasts and update the UI in your app when the locked or unlocked state of the private space container changes. Both of these broadcasts includeEXTRA_USER, which your app can use to refer to the private profile user.You can also use the
isQuietModeEnabled()method to check whether the private space profile is locked or not.
App store apps
The private space includes an "Install Apps" button that launches an implicit
intent to install apps into the user's private space. In order for your app to
receive this implicit intent, declare an <intent-filter>
in your app's manifest file with a <category> of
CATEGORY_APP_MARKET.
فونت ایموجی مبتنی بر PNG حذف شد
فایل فونت emoji قدیمی مبتنی بر PNG ( NotoColorEmojiLegacy.ttf ) حذف شده است و فقط فایل مبتنی بر برداری باقی می ماند. با شروع Android 13 (سطح API 33)، فایل فونت emoji مورد استفاده توسط رندر ایموجی سیستم از یک فایل مبتنی بر PNG به یک فایل مبتنی بر برداری تغییر کرد . این سیستم فایل فونت قدیمی را در اندروید 13 و 14 به دلایل سازگاری حفظ کرد، به طوری که برنامههایی با ارائهدهنده فونت خود میتوانند به استفاده از فایل فونت قدیمی تا زمانی که قادر به ارتقا باشند ادامه دهند.
برای بررسی اینکه آیا برنامه شما تحت تأثیر قرار گرفته است، کد برنامه خود را برای ارجاع به فایل NotoColorEmojiLegacy.ttf جستجو کنید.
میتوانید برنامه خود را به روشهای مختلفی تطبیق دهید:
- از API های پلتفرم برای رندر متن استفاده کنید. میتوانید متن را به یک
Canvasبا پشتوانه بیتمپ رندر کنید و در صورت لزوم از آن برای دریافت تصویر خام استفاده کنید. - پشتیبانی از فونت COLRv1 را به برنامه خود اضافه کنید. کتابخانه منبع باز FreeType از COLRv1 در نسخه 2.13.0 و بالاتر پشتیبانی می کند.
- بهعنوان آخرین راهحل، میتوانید فایل فونت emoji قدیمی (
NotoColorEmoji.ttf) را در APK خود قرار دهید، اگرچه در این صورت برنامه شما آخرین بهروزرسانیهای ایموجی را از دست خواهد داد. برای اطلاعات بیشتر، به صفحه پروژه Noto Emoji GitHub مراجعه کنید.
حداقل نسخه SDK هدف از ۲۳ به ۲۴ افزایش یافت.
Android 15 builds on the
the changes that were made in Android 14 and extends this
security further. In Android 15, apps with a
targetSdkVersion lower than 24 can't be installed.
Requiring apps to meet modern API levels helps to ensure better security and
privacy.
Malware often targets lower API levels in order to bypass security and privacy
protections that have been introduced in higher Android versions. For example,
some malware apps use a targetSdkVersion of 22 to avoid being subjected to the
runtime permission model introduced in 2015 by Android 6.0 Marshmallow (API
level 23). This Android 15 change makes it harder for malware to avoid security
and privacy improvements. Attempting to install an app targeting a lower API
level results in an installation failure, with a message like the following one
appearing in Logcat:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
On devices upgrading to Android 15, any apps with a targetSdkVersion lower
than 24 remain installed.
If you need to test an app targeting an older API level, use the following ADB command:
adb install --bypass-low-target-sdk-block FILENAME.apk
امنیت و حریم خصوصی
Android 15 اقدامات قوی را برای مبارزه با تقلب با رمز عبور یکبار مصرف (OTP) و محافظت از محتوای حساس کاربر، با تمرکز بر سختتر کردن سرویس شنونده اعلان و محافظتهای اشتراکگذاری صفحه نمایش، معرفی میکند. پیشرفتهای کلیدی شامل ویرایش OTPها از اعلانهای قابل دسترسی به برنامههای غیرقابل اعتماد، پنهان کردن اعلانها در حین اشتراکگذاری صفحه، و ایمن کردن فعالیتهای برنامه هنگام پست شدن OTP است. هدف این تغییرات حفظ محتوای حساس کاربر در برابر عوامل غیرمجاز است.
توسعه دهندگان برای اطمینان از سازگاری برنامه هایشان با تغییرات اندروید 15 باید از موارد زیر آگاه باشند:
ویرایش OTP
Android برنامههای غیرقابل اعتمادی که NotificationListenerService اجرا میکنند را از خواندن محتوای ویرایش نشده از اعلانهایی که در آن OTP شناسایی شده است، متوقف میکند. برنامههای مورد اعتماد مانند انجمنهای مدیریت دستگاه همراه از این محدودیتها مستثنی هستند.
حفاظت از اشتراک گذاری صفحه نمایش
- محتوای اعلان در طول جلسات اشتراکگذاری صفحه پنهان میشود تا حریم خصوصی کاربر حفظ شود. اگر برنامه
setPublicVersion()پیاده سازی کند، Android نسخه عمومی اعلان را نشان می دهد که به عنوان یک اعلان جایگزین در زمینه های ناامن عمل می کند. در غیر این صورت، محتوای اعلان بدون هیچ زمینه دیگری ویرایش می شود. - محتوای حساس مانند ورودی رمز عبور از بینندگان راه دور پنهان می شود تا از افشای اطلاعات حساس کاربر جلوگیری شود.
- فعالیتهای برنامههایی که در حین اشتراکگذاری صفحه نمایش، جایی که OTP شناسایی شده است، اعلان ارسال میکنند، پنهان میشوند. محتوای برنامه هنگام راه اندازی از نمایشگر راه دور پنهان می شود.
- علاوه بر شناسایی خودکار فیلدهای حساس اندروید، توسعهدهندگان میتوانند با استفاده از
setContentSensitivityکه در حین اشتراکگذاری صفحه نمایش از بینندگان راه دور پنهان میشود، بهطور دستی بخشهایی از برنامه خود را بهعنوان حساس علامتگذاری کنند. - توسعهدهندگان میتوانند گزینه غیرفعال کردن محافظتهای اشتراکگذاری صفحه را در زیر گزینههای توسعهدهنده تغییر دهند تا از محافظتهای اشتراکگذاری صفحه برای اهداف آزمایشی یا آزمایشی مستثنی شوند. ضبط کننده صفحه پیش فرض سیستم از این تغییرات مستثنی است، زیرا ضبط ها روی دستگاه باقی می مانند.
Android 15 اقدامات قوی را برای مبارزه با تقلب با رمز عبور یکبار مصرف (OTP) و محافظت از محتوای حساس کاربر، با تمرکز بر سختتر کردن سرویس شنونده اعلان و محافظتهای اشتراکگذاری صفحه نمایش، معرفی میکند. پیشرفتهای کلیدی شامل ویرایش OTPها از اعلانهای قابل دسترسی به برنامههای غیرقابل اعتماد، پنهان کردن اعلانها در حین اشتراکگذاری صفحه، و ایمن کردن فعالیتهای برنامه هنگام پست شدن OTP است. هدف این تغییرات حفظ محتوای حساس کاربر در برابر عوامل غیرمجاز است.
توسعه دهندگان برای اطمینان از سازگاری برنامه هایشان با تغییرات اندروید 15 باید از موارد زیر آگاه باشند:
ویرایش OTP
Android برنامههای غیرقابل اعتمادی که NotificationListenerService اجرا میکنند را از خواندن محتوای ویرایش نشده از اعلانهایی که در آن OTP شناسایی شده است، متوقف میکند. برنامههای مورد اعتماد مانند انجمنهای مدیریت دستگاه همراه از این محدودیتها مستثنی هستند.
حفاظت از اشتراک گذاری صفحه نمایش
- محتوای اعلان در طول جلسات اشتراکگذاری صفحه پنهان میشود تا حریم خصوصی کاربر حفظ شود. اگر برنامه
setPublicVersion()پیاده سازی کند، Android نسخه عمومی اعلان را نشان می دهد که به عنوان یک اعلان جایگزین در زمینه های ناامن عمل می کند. در غیر این صورت، محتوای اعلان بدون هیچ زمینه دیگری ویرایش می شود. - محتوای حساس مانند ورودی رمز عبور از بینندگان راه دور پنهان می شود تا از افشای اطلاعات حساس کاربر جلوگیری شود.
- فعالیتهای برنامههایی که در حین اشتراکگذاری صفحه نمایش، جایی که OTP شناسایی شده است، اعلان ارسال میکنند، پنهان میشوند. محتوای برنامه هنگام راه اندازی از نمایشگر راه دور پنهان می شود.
- علاوه بر شناسایی خودکار فیلدهای حساس اندروید، توسعهدهندگان میتوانند با استفاده از
setContentSensitivityکه در حین اشتراکگذاری صفحه نمایش از بینندگان راه دور پنهان میشود، بهطور دستی بخشهایی از برنامه خود را بهعنوان حساس علامتگذاری کنند. - توسعهدهندگان میتوانند گزینه غیرفعال کردن محافظتهای اشتراکگذاری صفحه را در زیر گزینههای توسعهدهنده تغییر دهند تا از محافظتهای اشتراکگذاری صفحه برای اهداف آزمایشی یا آزمایشی مستثنی شوند. ضبط کننده صفحه پیش فرض سیستم از این تغییرات مستثنی است، زیرا ضبط ها روی دستگاه باقی می مانند.
دوربین و رسانه
اندروید ۱۵ تغییرات زیر را در رفتار دوربین و رسانه برای همه برنامهها ایجاد میکند.
پخش مستقیم و آفلود صدا، آهنگهای صوتی مستقیم یا آفلود باز قبلی را در صورت رسیدن به محدودیت منابع، نامعتبر میکند.
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.)
تجربه کاربری و رابط کاربری سیستم
اندروید ۱۵ شامل تغییراتی است که برای ایجاد یک تجربه کاربری سازگارتر و شهودیتر در نظر گرفته شدهاند.
انیمیشنهای پیشبینیکنندهی بازگشت برای برنامههایی که این قابلیت را انتخاب کردهاند، فعال شده است.
با شروع اندروید 15، گزینه توسعه دهنده برای انیمیشن های پیش بینی کننده پشت حذف شده است. اکنون انیمیشنهای سیستمی مانند بازگشت به خانه، تکلیف متقابل و فعالیت متقابل برای برنامههایی ظاهر میشوند که به طور کامل یا در سطح فعالیت در ژست بازگشت پیشبینیکننده شرکت کردهاند . اگر برنامه شما تحت تأثیر قرار گرفته است، اقدامات زیر را انجام دهید:
- مطمئن شوید که برنامه شما به درستی منتقل شده است تا از ژست بازگشت پیش بینی کننده استفاده کنید.
- اطمینان حاصل کنید که انتقال قطعه شما با ناوبری پیشبینی کننده به عقب کار میکند.
- از انتقال انیمیشن و فریمورک دور شوید و به جای آن از انتقال انیماتور و اندرویدکس استفاده کنید.
- از پشتههایی که
FragmentManagerاز آنها اطلاعی ندارد، مهاجرت کنید. به جای آن از پشته های پشته ای استفاده کنید که توسطFragmentManagerیا مؤلفه Navigation مدیریت می شوند.
ابزارکها هنگام توقف اجباری برنامه توسط کاربر غیرفعال میشوند
اگر کاربر به زور برنامه ای را در دستگاهی که اندروید 15 دارد متوقف کند، سیستم به طور موقت تمام ویجت های برنامه را غیرفعال می کند. ویجت ها خاکستری هستند و کاربر نمی تواند با آنها تعامل داشته باشد. این به این دلیل است که با شروع اندروید 15، سیستم تمام اهداف معلق برنامه را با توقف اجباری برنامه لغو می کند.
دفعه بعد که کاربر برنامه را راه اندازی می کند، سیستم دوباره آن ویجت ها را فعال می کند.
برای اطلاعات بیشتر، به تغییرات وضعیت بسته بسته مراجعه کنید.
تراشه نوار وضعیت نمایش رسانه، کاربران را از اشتراکگذاری، پخش و ضبط صفحه نمایش مطلع میکند.
بهرهبرداریهای پیشبینی صفحه، دادههای خصوصی کاربر مانند اطلاعات مالی را در معرض دید کاربران قرار میدهند، زیرا کاربران متوجه نمیشوند که صفحه دستگاهشان به اشتراک گذاشته میشود.
برای برنامههایی که روی دستگاههای دارای Android 15 QPR1 یا بالاتر اجرا میشوند، یک تراشه نوار وضعیت که بزرگ و برجسته است، به کاربران هشدار میدهد که هر گونه نمایش صفحه نمایش در حال پیشرفت را نشان دهند. کاربران میتوانند روی تراشه ضربه بزنند تا از اشتراکگذاری، پخش یا ضبط صفحه نمایش خود جلوگیری کنند. همچنین، با قفل شدن صفحه نمایش دستگاه، نمایش صفحه به طور خودکار متوقف می شود.

Check if your app is impacted
By default, your app includes the status bar chip and automatically suspends screen projection when the lock screen activates.
To learn more about how to test your app for these use cases, see Status bar chip and auto stop.
محدودیتهای دسترسی به شبکه در پسزمینه
در Android 15، برنامههایی که درخواست شبکه را خارج از چرخه حیات فرآیند معتبر شروع میکنند، استثنا دریافت میکنند. به طور معمول، یک UnknownHostException یا دیگر IOException مربوط به سوکت. درخواستهای شبکه که خارج از یک چرخه حیات معتبر اتفاق میافتند، معمولاً به این دلیل است که برنامهها ناآگاهانه درخواست شبکه را حتی پس از فعال نشدن برنامه ادامه میدهند.
برای کاهش این استثنا، اطمینان حاصل کنید که درخواستهای شبکه شما از چرخه حیات آگاه هستند و با خروج از چرخه حیات فرآیند معتبر با استفاده از مؤلفههای آگاه از چرخه حیات لغو میشوند. اگر مهم است که درخواست شبکه حتی زمانی که کاربر برنامه را ترک میکند اتفاق بیفتد، زمانبندی درخواست شبکه را با استفاده از WorkManager در نظر بگیرید یا با استفاده از خدمات پیشزمینه، یک کار قابل مشاهده توسط کاربر را ادامه دهید.
منسوخشدهها
با هر نسخه، ممکن است APIهای خاص اندروید منسوخ شوند یا نیاز به اصلاح داشته باشند تا تجربه بهتری برای توسعهدهندگان فراهم شود یا از قابلیتهای جدید پلتفرم پشتیبانی کنند. در این موارد، ما رسماً APIهای منسوخ را منسوخ میکنیم و توسعهدهندگان را به سمت APIهای جایگزین هدایت میکنیم تا به جای آنها استفاده کنند.
منسوخ شدن به این معنی است که ما پشتیبانی رسمی از APIها را پایان دادهایم، اما آنها همچنان برای توسعهدهندگان در دسترس خواهند بود. برای کسب اطلاعات بیشتر در مورد منسوخ شدنهای قابل توجه در این نسخه از اندروید، به صفحه منسوخ شدنها مراجعه کنید.