يتضمّن نظام التشغيل Android 15 تغييرات في السلوك قد تؤثر في تطبيقك.
تنطبق تغييرات السلوك التالية على جميع التطبيقات عند تشغيلها على Android 15،
بغض النظر عن targetSdkVersion
. عليك اختبار تطبيقك ثم تعديله
حسب الحاجة لتفعيل هذه الميزات بشكل صحيح، حيثما ينطبق ذلك.
احرص أيضًا على مراجعة قائمة التغييرات في السلوك التي تؤثر فقط في التطبيقات التي تستهدف الإصدار 15 من Android.
الوظيفة الأساسية
يعدّل نظام Android 15 أو يوسّع إمكانات نظام Android الأساسية المختلفة.
التغييرات في حالة الحزمة المتوقفة
软件包 FLAG_STOPPED
状态(用户可以通过在 AOSP build 中长按应用图标并选择“强制停止”来启用此状态)的用途一直是让应用保持在此状态,直到用户通过直接启动应用或间接与应用互动(通过 Sharesheet 或 widget、将应用选择为动态壁纸等)来明确将应用从此状态移除。在 Android 15 中,我们更新了系统行为,使其与此预期行为保持一致。应用应仅通过直接或间接的用户操作从停止状态移除。
为了支持预期行为,除了现有限制之外,当应用在搭载 Android 15 的设备上进入停止状态时,系统还会取消所有待处理 intent。当用户的操作将应用从停止状态移除时,系统会将 ACTION_BOOT_COMPLETED
广播传送到应用,以便应用有机会重新注册所有待处理 intent。
您可以调用新的 ApplicationStartInfo.wasForceStopped()
方法来确认应用是否已进入停止状态。
إتاحة صفحات بحجم 16 كيلوبايت
Android 过去仅支持 4 KB 内存页面大小, 优化了系统内存性能,以针对 Android 设备通常具备的功能。从 Android 15 开始,AOSP 支持 配置为使用 16 KB (16 KB) 页面大小的设备 设备)。如果您的应用使用任何 NDK 库,请直接使用 或者通过 SDK 间接创建,那么,您需要重新构建自己的应用 支持这些 16KB 设备。
随着设备制造商不断打造出 物理内存 (RAM),许多此类设备都会采用 16KB(以及 页面大小以优化设备的性能。正在添加 支持 16 KB 页面大小的设备,可使您的应用在这些设备上运行 并有助于您的应用从相关的广告效果中获益 改进。如果不重新编译,应用可能无法在 16KB 设备上运行 在未来的 Android 版本中正式推出。
为帮助您为应用添加支持,我们提供了有关如何检查 如果您的应用受到影响 重新构建您的应用(如果适用),以及如何在 Google Play 中 使用模拟器(包括 Android 15)的 16 KB 环境 系统映像)。
Benefits and performance gains
配置为使用 16 KB 页面大小的设备平均会使用略多一些的内存,但系统和应用的性能也会得到各种提升:
- 缩短了系统内存压力时的应用启动时间:平均降低了 3.16%;对于我们测试的某些应用而言,改进幅度更大(最高可达 30%)
- 应用启动期间的功耗降低:平均降低了 4.56%
- 相机启动更快:热启动速度平均提高了 4.48%,冷启动速度平均提高了 6.60%
- 缩短了系统启动时间:平均缩短了 8%(约 950 毫秒)
这些改进基于我们的初始测试,实际设备上的结果可能会有所不同。随着测试的继续进行,我们将进一步分析应用的潜在收益。
Check if your app is impacted
إذا كان تطبيقك يستخدم أي رمز أصلي، عليك إعادة بناء تطبيقك ليتوافق مع الأجهزة التي تبلغ سعة ذاكرتها 16 كيلوبايت. إذا لم تكن متأكّدًا مما إذا كان تطبيقك يستخدم رمزًا أصليًا، يمكنك استخدام أداة APK Analyzer لتحديد ما إذا كان هناك أي رمز أصلي، ثم التحقّق من محاذاة أقسام ELF لذى أي مكتبات مشترَكة تعثر عليها.
إذا كان تطبيقك يستخدم فقط رمزًا برمجيًا مكتوبًا بلغة Java أو Kotlin، بما في ذلك جميع المكتبات أو حِزم SDK، يعني ذلك أنّ تطبيقك متوافق مع الأجهزة التي تبلغ سعتها 16 كيلوبايت. ومع ذلك، ننصحك باختبار تطبيقك في بيئة حجمها 16 كيلوبايت للتأكّد من عدم حدوث تدهورٍ unexpected في سلوك التطبيق.
التغييرات المطلوبة لبعض التطبيقات لتتوافق مع المساحة الخاصة
المساحة الخاصة هي ميزة جديدة في Android 15 تتيح للمستخدمين إنشاء مساحة منفصلة على أجهزتهم للحفاظ على خصوصية التطبيقات الحسّاسة من خلال طبقة مصادقة إضافية. بما أنّ التطبيقات في المساحة الخاصة لها إذن وصول محدود، يجب أن تتّخذ بعض أنواع التطبيقات خطوات إضافية لتتمكّن من رؤية التطبيقات في المساحة الخاصة للمستخدم والتفاعل معها.
جميع التطبيقات
بما أنّ التطبيقات في المساحة الخاصة يتم الاحتفاظ بها في ملف شخصي منفصل للمستخدم، على غرار الملفات الشخصية للعمل، يجب ألا تفترض التطبيقات أنّ أي نُسخ مثبَّتة من تطبيقها غير المضمّنة في الملف الشخصي الرئيسي موجودة في الملف الشخصي للعمل. إذا كان تطبيقك يتضمّن منطقًا مرتبطًا بتطبيقات الملف الشخصي للعمل يستند إلى هذا الافتراض، عليك تعديل هذا المنطق.
تطبيقات طبية
عندما يقفل المستخدم المساحة الخاصة، يتم إيقاف جميع التطبيقات في المساحة الخاصة، ولا يمكن لهذه التطبيقات تنفيذ الأنشطة في المقدّمة أو الخلفية، بما في ذلك عرض الإشعارات. قد يؤثر هذا السلوك بشكلٍ كبير في استخدام التطبيقات الطبية المثبَّتة في المساحة الخاصة و عملها.
تُحذّر تجربة إعداد المساحة الخاصة المستخدمين من أنّ المساحة الخاصة ليست مناسبة للتطبيقات التي تحتاج إلى تنفيذ أنشطة مهمة في المقدّمة أو في الخلفية، مثل عرض إشعارات من التطبيقات الطبية. ومع ذلك، لا يمكن للتطبيقات تحديد ما إذا كان يتم استخدامها في المساحة الخاصة أم لا، لذلك لا يمكنها عرض تحذير للمستخدم في هذه الحالة.
لهذه الأسباب، إذا كنت تطوّر تطبيقًا طبيًا، عليك مراجعة كيفية تأثير هذه الميزة في تطبيقك واتّخاذ الإجراءات المناسبة، مثل إبلاغ المستخدمين بعدم تثبيت تطبيقك في المساحة الخاصة، لتجنّب إيقاف وظائف التطبيق الحيوية.
تطبيقات مشغّل التطبيقات
إذا كنت تطوّر تطبيق مشغّل، عليك إجراء ما يلي قبل أن تصبح التطبيقات في المساحة الخاصة مرئية:
- يجب تعيين تطبيقك كتطبيق مشغّل تلقائي للجهاز، أي أن يكون لديه الدور
ROLE_HOME
. - يجب أن يُعلن تطبيقك عن
ACCESS_HIDDEN_PROFILES
الإذن العادي في ملف بيان تطبيقك.
على تطبيقات المشغّلات التي تذكر إذن ACCESS_HIDDEN_PROFILES
التعامل مع
حالات استخدام المساحة الخاصة التالية:
- يجب أن يتضمّن تطبيقك حاوية مشغِّل تطبيقات منفصلة للتطبيقات المثبَّتة في
المساحة الخاصة. استخدِم طريقة
getLauncherUserInfo()
لتحديد نوع الملف الشخصي للمستخدم الذي تتم معالجته. - يجب أن يتمكّن المستخدم من إخفاء حاوية المساحة الخاصة وعرضها.
- يجب أن يتمكّن المستخدم من قفل حاوية المساحة الخاصة وفتح قفلها. استخدِم
requestQuietModeEnabled()
لقفل المساحة الخاصة (بمروّرtrue
) أو فتح قفلها (بمروّرfalse
). عندما تكون المساحة الخاصة مقفلة، يجب ألا تظهر أي تطبيقات في حاوية المساحة الخاصة أو يمكن العثور عليها من خلال آليات مثل البحث. يجب أن يُسجِّل تطبيقك جهاز استقبال لبثَّي
ACTION_PROFILE_AVAILABLE
وACTION_PROFILE_UNAVAILABLE
وتعديل واجهة المستخدم في تطبيقك عند تغيُّر حالة حاوية المساحة الخاصة (مقفلة أو غير مقفلة). يتضمّن كلا البثَّينEXTRA_USER
، والذي يمكن لتطبيقك استخدامه للإشارة إلى مستخدم الملف الشخصي الخاص.يمكنك أيضًا استخدام طريقة
isQuietModeEnabled()
للتحقّق مما إذا كان الملف الشخصي للمساحة الخاصة مقفلًا أم لا.
تطبيقات متجر التطبيقات
تتضمّن المساحة الخاصة زر "تثبيت التطبيقات" الذي يطلق نية ضمنية
لتثبيت التطبيقات في المساحة الخاصة للمستخدم. لكي يتلقّى تطبيقك
هذا الإجراء الضمني، يجب إدراج <intent-filter>
في ملف بيان تطبيقك مع <category>
من
CATEGORY_APP_MARKET
.
إزالة خط رموز الإيموجي المستند إلى ملفات PNG
تم
إزالة ملف خط الرموز التعبيرية القديم المستنِد إلى تنسيق PNG (NotoColorEmojiLegacy.ttf
)، ولم يبق سوى الملف المستنِد إلى تنسيق ملفات المتجهات. بدءًا من الإصدار Android 13 (المستوى 33 من واجهة برمجة التطبيقات)، تغيّر ملف خط الرموز التعبيرية المستخدَم من قِبل أداة عرض الرموز التعبيرية في النظام من ملف يستند إلى PNG إلى ملف يستند إلى شكل مسطّح. احتفظ النظام بملف الخط القديم في Android 13 و14 لأسباب تتعلق بالتوافق، حتى تتمكّن التطبيقات التي تستخدم أدوات عرض الخطوط الخاصة بها من مواصلة استخدام ملف الخط القديم إلى أن تتمكّن من الترقية.
للتحقّق مما إذا كان تطبيقك متأثّرًا، ابحث في رمز تطبيقك عن إشارات إلى ملف
NotoColorEmojiLegacy.ttf
.
يمكنك اختيار تكييف تطبيقك بعدة طرق:
- استخدام واجهات برمجة تطبيقات النظام الأساسي لعرض النص يمكنك عرض النص على
Canvas
مستند مستنِد إلى رسومات نقطية، واستخدامه للحصول على صورة أولية إذا لزم الأمر. - أضِف ميزة استخدام خطوط COLRv1 إلى تطبيقك. تتيح مكتبة FreeType المفتوحة المصدر استخدام خطوط COLRv1 في الإصدار 2.13.0 والإصدارات الأحدث.
- كحل أخير، يمكنك تجميع ملف خط الرموز التعبيرية القديم
(
NotoColorEmoji.ttf
) في حزمة APK، ولكن في هذه الحالة سيفتقد تطبيقك أحدث تعديلات الرموز التعبيرية. للحصول على مزيد من المعلومات، يُرجى الاطّلاع على صفحة مشروع Noto Emoji على GitHub.
زيادة الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) المستهدَف من 23 إلى 24
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) وحماية المحتوى الحسّاس للمستخدم، مع التركيز على تعزيز أمان خدمة "مستمع الإشعارات" ووسائل حماية مشاركة الشاشة. تشمل التحسينات الرئيسية إخفاء الرموز المميّزة لمرة واحدة من الإشعارات التي يمكن للتطبيقات غير الموثوق بها الوصول إليها، وإخفاء الإشعارات أثناء مشاركة الشاشة، وتأمين أنشطة التطبيقات عند posted الرموز المميّزة لمرة واحدة. تهدف هذه التغييرات إلى الحفاظ على أمان المحتوى الحسّاس للمستخدمين من الجهات غير المصرّح لها.
على المطوّرين مراعاة ما يلي لضمان توافق تطبيقاتهم مع التغييرات في Android 15:
إخفاء كلمة المرور لمرة واحدة
سيمنع نظام التشغيل Android التطبيقات غير الموثوق بها التي تستخدم رمزًا مميّزًا
NotificationListenerService
من قراءة المحتوى غير المحذوف
من الإشعارات التي تم رصد رمز مميّز للوقت فقط فيها. وتُستثنى من هذه القيود التطبيقات الموثوق بها، مثل
عمليات ربط مدير الجهاز المصاحب.
ميزة "الحماية من مشاركة الشاشة"
- يتم إخفاء محتوى الإشعارات أثناء جلسات مشاركة الشاشة للحفاظ على
خصوصية المستخدم. إذا كان التطبيق ينفِّذ
setPublicVersion()
، يعرض Android الإصدار المتاح للجميع من الإشعار الذي يُستخدَم كإشعار بديل في السياقات غير الآمنة. في الحالات الأخرى، يتم إخفاء محتوى الإشعار بدون أي سياق إضافي. - يتم إخفاء المحتوى الحسّاس، مثل إدخال كلمة المرور، عن المشاهدين عن بُعد لمنع الكشف عن معلومات المستخدم الحسّاسة.
- سيتم إخفاء الأنشطة من التطبيقات التي تنشر إشعارات أثناء مشاركة الشاشة إذا تم رصد رمز مميّز لمرة واحدة. يتم إخفاء محتوى التطبيق عن شاشة العميل المستعرض عن بُعد عند تشغيله.
- بالإضافة إلى تحديد Android تلقائيًا للحقول الحسّاسة، يمكن للمطوّرين
وضع علامة يدويًا على أجزاء من تطبيقاتهم على أنّها حسّاسة باستخدام رمز
setContentSensitivity
، والذي يتم إخفاؤه عن مشاهدي الشاشة عن بُعد أثناء مشاركة الشاشة. - يمكن للمطوّرين تفعيل خيار إيقاف إجراءات الحماية المطبّقة أثناء مشاركة الشاشة ضمن خيارات المطوّر للاستفادة من استثناءات إجراءات الحماية المتعلّقة بمشاركة الشاشة لأغراض العرض التجريبي أو الاختبار. يتم استثناء مسجل شاشة النظام التلقائي من هذه التغييرات، لأنّ التسجيلات تظل على الجهاز.
الكاميرا والوسائط
يُجري نظام التشغيل Android 15 التغييرات التالية على سلوك الكاميرا والوسائط في جميع التطبيقات.
يؤدي تشغيل الصوت المباشر وتشغيل الصوت من خلال ميزة "إلغاء تحميل المحتوى" إلى إلغاء صلاحية المقاطع الصوتية المفتوحة سابقًا التي تم تشغيلها مباشرةً أو من خلال ميزة "إلغاء تحميل المحتوى" عند بلوغ حدود الموارد.
在 Android 15 之前,如果某个应用在另一个应用播放音频且达到资源限制时请求直接或分流音频播放,该应用将无法打开新的 AudioTrack
。
从 Android 15 开始,当应用请求直接播放或分流播放且达到资源限制时,系统会使任何当前打开的 AudioTrack
对象失效,以防止执行新轨道请求。
(直接音轨和分流音轨通常会打开,以播放压缩音频格式。播放直接音频的常见用例包括通过 HDMI 将编码的音频流式传输到电视。分流轨道通常用于在具有硬件 DSP 加速的移动设备上播放压缩音频。)
تجربة المستخدم وواجهة المستخدم للنظام
يتضمّن Android 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.
إيقاف التطبيقات المصغّرة عندما يوقف المستخدم أحد التطبيقات بشكلٍ قسري
إذا أوقف مستخدم تطبيقًا على جهاز يعمل بنظام Android 15 بشكلٍ قسري، سيؤدي ذلك إلى إيقاف جميع التطبيقات المصغّرة للتطبيق مؤقتًا. تكون التطبيقات المصغّرة غير مفعّلة، ولا يمكن للمستخدِم التفاعل معها. ويعود السبب في ذلك إلى أنّه بدءًا من Android 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.
قيود الوصول إلى الشبكة في الخلفية
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 معيّنة قديمة أو قد تحتاج إلى إعادة هيكلة لتوفير تجربة أفضل للمطوّرين أو إتاحة ميزات جديدة في النظام الأساسي. وفي هذه الحالات، نوقف رسميًا واجهات برمجة التطبيقات القديمة ونقترح على المطوّرين استخدام واجهات برمجة تطبيقات بديلة.
ويعني إيقاف الاستخدام نهائيًا أنّنا أوقفنا رسميًا دعم واجهات برمجة التطبيقات، ولكنّها ستظلّ متاحة للمطوّرين. للاطّلاع على مزيد من المعلومات حول الميزات التي سيتم إيقافها نهائيًا في هذا الإصدار من Android، يُرجى الاطّلاع على صفحة الميزات التي سيتم إيقافها نهائيًا.