يقدّم نظام التشغيل Android 14 ميزات وواجهات برمجة تطبيقات رائعة للمطوّرين. تساعدك المعلومات التالية في التعرّف على ميزات تطبيقاتك والبدء في استخدام واجهات برمجة التطبيقات ذات الصلة.
للحصول على قائمة مفصّلة بواجهات برمجة التطبيقات التي تمت إضافتها وتعديلها وإزالتها، يُرجى قراءة تقرير الاختلافات في واجهات برمجة التطبيقات. للحصول على تفاصيل حول واجهات برمجة التطبيقات المضافة، يُرجى الانتقال إلى مرجع واجهات برمجة تطبيقات Android. بالنسبة إلى نظام التشغيل Android 14، ابحث عن واجهات برمجة التطبيقات التي تمت إضافتها في المستوى 34 لواجهة برمجة التطبيقات. للتعرّف على المجالات التي قد تؤثر فيها التغييرات في النظام الأساسي على تطبيقاتك، احرص على الاطّلاع على التغييرات في سلوك الإصدار 14 من نظام التشغيل Android للتطبيقات التي تستهدف الإصدار 14 من نظام التشغيل Android ولجميع التطبيقات.
التوافق مع أسواق عالمية
إعدادات اللغة المخصصة حسب التطبيقات
يقدّم نظام التشغيل Android 14 ميزات إضافية لكل تطبيق باللغة تم تقديمها في Android 13 (المستوى 33 لواجهة برمجة التطبيقات)، وهي:
إنشاء
localeConfig
للتطبيق تلقائيًا: بدءًا من الإصدار Android Studio Giraffe Canary 7 والإصدار AGP 8.1.0-alpha07، يمكنك ضبط تطبيقك ليعمل تلقائيًا على إتاحة الإعدادات المفضّلة للغة لكل تطبيق. استنادًا إلى موارد مشروعك، ينشئ المكوّن الإضافي لنظام Gradle المتوافق مع Android ملفLocaleConfig
ويضيف إليه إشارة في ملف البيان النهائي، ما يغنيك عن إنشاء الملف أو تعديله يدويًا. يستخدم AGP الموارد في مجلداتres
الخاصة بوحدات تطبيقك وأي ملحقات لوحدات المكتبة لتحديد اللغات المطلوب تضمينها فيملفLocaleConfig
.التحديثات الديناميكية لقائمة
localeConfig
للتطبيق: استخدِم الطريقتَينsetOverrideLocaleConfig()
وgetOverrideLocaleConfig()
فيLocaleManager
لتعديل قائمة اللغات المتاحة في تطبيقك ديناميكيًا في إعدادات نظام الجهاز. يمكنك الاستفادة من هذه المرونة لتخصيص قائمة اللغات المتاحة لكل منطقة، أو إجراء تجارب أ/ب، أو تقديم قائمة محدّثة للغات إذا كان تطبيقك يستخدم عمليات الإرسال من جهة الخادم لعملية التعريب.إظهار لغة التطبيق لمحرّري أساليب الإدخال (IME): يمكن لمحرّري أساليب الإدخال استخدام الأسلوب
getApplicationLocales()
للتحقّق من لغة التطبيق الحالي ومطابقة لغة محرّر أسلوب الإدخال مع هذه اللغة.
Grammatical Inflection API
يتحدّث 3 مليارات شخص لغات جنسانية: وهي لغات تتغيّر فيها فئاتها النحوية، مثل الأسماء والأفعال والصفات وحروف الجر، وفقًا للجنس الذي يحدّده الشخص أو الشيء الذي تتحدث عنه. في العادة، تستخدم العديد من اللغات التي تراعي الجنس النوع النحوي الذكوري كجنس تلقائي أو عام.
يمكن أن يؤدي استخدام الجنس النحوي غير الصحيح للمستخدمين، مثل مخاطبة النساء باستخدام الجنس النحوي للذكور، إلى التأثير سلبًا في أدائهم وسلوكهم. في المقابل، يمكن أن يؤدي استخدام واجهة مستخدم تتضمّن لغة تمثل بشكلٍ صحيح الجنس النحوي للمستخدم إلى تحسين تفاعله مع التطبيق وتوفير تجربة أكثر تخصيصًا وطبيعية.
لمساعدتك في إنشاء واجهة مستخدم تركّز على المستخدم للغات التي تراعي الجنس، يوفّر الإصدار 14 من Android واجهة برمجة التطبيقات Grammatical Inflection API، التي تتيح لك إضافة ميزة مراعاة الجنس النحوي بدون إعادة صياغة تطبيقك.
الإعدادات المفضّلة للمنطقة
تتيح الإعدادات المفضّلة الإقليمية للمستخدمين تخصيص وحدات درجة الحرارة، وهي أول ويوم من الأسبوع وأنظمة الترقيم. أوروبي يعيش في الولايات المتحدة قد يفضلون أن تكون وحدات درجة الحرارة بالدرجة المئوية بدلاً من الفهرنهايت التي تتعامل مع يوم الاثنين على أنه بداية الأسبوع بدلاً من الوضع الافتراضي في الولايات المتحدة الأحد
توفّر قوائم إعدادات Android الجديدة لهذه الإعدادات المفضّلة للمستخدمين مكانًا
يسهل العثور عليه ويكون مركزيًا لتغيير الإعدادات المفضّلة للتطبيقات. هذه
والتفضيلات أيضًا من خلال النسخ الاحتياطي والاستعادة. هناك العديد من واجهات برمجة التطبيقات
الأهداف - مثل
getTemperatureUnit
أو
getFirstDayOfWeek
—
منح تطبيقك إذن الوصول للقراءة إلى إعدادات المستخدم المفضّلة، حتى يتمكّن التطبيق من تعديل إعداداته
تعرض المعلومات. يمكنك أيضًا تسجيل
خيار "BroadcastReceiver
" مفعَّل
ACTION_LOCALE_CHANGED
لمعالجة تغييرات إعدادات اللغة عند تغيير الإعدادات المفضّلة للمنطقة.
للعثور على هذه الإعدادات، افتح تطبيق "الإعدادات" وانتقِل إلى النظام > اللغات والإدخال > الإعدادات المفضّلة على مستوى المنطقة.


تسهيل الاستخدام
الضبط غير الخطي لحجم الخط بنسبة 200%
بدءًا من الإصدار Android 14، يتيح النظام زيادة حجم الخط بنسبة تصل إلى %200، ما يوفّر ضعاف البصر مع خيارات إمكانية الوصول الإضافية التي تتوافق مع إرشادات إتاحة المحتوى (WCAG):
لمنع تكبير عناصر النص الكبيرة على الشاشة بشكلٍ كبير جدًا، يطبّق النظام منحنى تكبير غير خطي. تعني استراتيجية تغيير الحجم هذه أنّ النص الكبير لا يتم تغيير حجمه بالمعدل نفسه الذي يتم به تغيير حجم النص الأصغر. يساعد الضبط غير الخطّي لحجم الخط في الحفاظ على التسلسل الهرمي النسبي بين العناصر ذات الأحجام المختلفة مع الحد من المشاكل المتعلّقة بتغيير حجم النص بشكل خطي بدرجات عالية (مثل اقتطاع النص أو صعوبة قراءته بسبب أحجام الشاشة الكبيرة جدًا).
اختبار تطبيقك باستخدام ميزة الضبط غير الخطّي لحجم الخط

إذا كنت تستخدم بالفعل وحدات البكسل المُعدَّل لتحديد حجم النص، خيارات إضافية وتحسينات التوسعة تلقائيًا على النص في تطبيقك. ومع ذلك، لا يزال يتعين عليك إجراء اختبار واجهة المستخدم بأقصى تم تفعيل حجم الخط (%200) لضمان استخدام التطبيق لأحجام الخط بشكل صحيح ويمكن أن تستوعب أحجام خطوط أكبر دون التأثير على سهولة الاستخدام.
لتفعيل حجم الخط بنسبة %200، اتّبِع الخطوات التالية:
- افتح تطبيق الإعدادات وانتقل إلى إمكانية الوصول > حجم العرض النص.
- بالنسبة إلى خيار حجم الخط، انقر على رمز علامة الجمع (+) إلى أن يتم ضبط الحدّ الأقصى للخط. تم تمكين إعداد الحجم، كما هو موضح في الصورة المصاحبة لهذا .
استخدام وحدات البكسل المعدَّلة (sp) لتحديد أحجام النصوص
احرص دائمًا على تحديد أحجام النص بوحدات sp. فعندما تطبيقك يستخدم وحدات وحدات بكسل قابلة للتوسّع، ويمكن لنظام Android تطبيق حجم النص المفضَّل للمستخدم وتوسيع نطاقه بشكل مناسب.
لا تستخدِم وحدات sp للمساحة الفارغة أو حدِّد ارتفاعات العرض بافتراض وجود مساحة فارغة ضمنية: مع تغيير حجم الخط غير الخطي، قد لا تكون سمات sp متناسبة، لذا قد لا يساوي 4sp + 20sp 24sp.
تحويل وحدات البكسل المقاسة (sp)
استخدِم TypedValue.applyDimension()
للتحويل من وحدات sp
إلى وحدات البكسل، واستخدِم TypedValue.deriveDimension()
لتحويل وحدات البكسل إلى وحدات sp. تطبِّق هذه الطرق منحنى التوسيع غير الخطي المناسب تلقائيًا.
تجنُّب معادلات الترميز الثابت باستخدام
Configuration.fontScale
أو
DisplayMetrics.scaledDensity
نظرًا لأن تكبير الخط
غير خطي، فلن يكون الحقل scaledDensity
دقيقًا. يجب استخدام الحقل fontScale
لأغراض إعلامية فقط لأنّه لم يعُد يتم
تصغير الخطوط باستخدام قيمة متّجهية واحدة.
استخدام وحدات sp مع lineHeight
تعريف android:lineHeight
دائمًا باستخدام وحدات sp بدلاً من ذلك
من dp، وبالتالي يتغير ارتفاع السطر مع النص. بخلاف ذلك، إذا كان النص
بوحدة sp ولكن lineHeight
بوحدة dp أو px، لن يتم تغيير حجمه وسيبدو مزدحمًا.
تصحح ميزة TextView lineHeight
تلقائيًا حتى يتم
يتم الحفاظ على النسب، ولكن فقط إذا كانت كل من textSize
وlineHeight
محددة بوحدات sp.
الكاميرا والوسائط
دقة HDR فائقة للصور

يتيح نظام التشغيل Android 14 استخدام صور النطاق العالي الديناميكية (HDR) التي تحتفظ بمزيد من المعلومات الواردة من أداة الاستشعار عند التقاط صورة، ما يتيح الحصول على ألوان زاهية ودرجة تباين أكبر. يستخدم نظام Android تنسيق Ultra HDR، وهو متوافق تمامًا مع صور JPEG القديمة، ما يسمح للتطبيقات بالعمل بسلاسة مع صور HDR وعرضها بنطاق ديناميكي عادي (SDR) عند الحاجة.
ويتم عرض هذه الصور في واجهة المستخدم بتنسيق HDR تلقائيًا من خلال إطار العمل
عندما يختار تطبيقك استخدام واجهة مستخدم بتنسيق HDR لـ "نافذة النشاط"، إما من خلال أحد إدخالات ملف البيان أو أثناء التشغيل من خلال استدعاء Window.setColorMode()
. يمكنك أيضًا التقاط صور ثابتة فائقة
التباين الديناميكي (HDR) المضغوطة على الأجهزة المتوافقة. من خلال استرداد المزيد من الألوان
من أداة الاستشعار، يمكن أن يكون التعديل في مرحلة ما بعد الإنتاج أكثر مرونة. يمكن استخدام رمز الترميز
Gainmap
المرتبط بالصور ذات النطاق العالي الديناميكية الفائق لعرضها
باستخدام OpenGL أو Vulkan.
التكبير والتركيز والمعاينة بعد الالتقاط والمزيد في إضافات الكاميرا
Android 14 upgrades and improves camera extensions, allowing apps to handle longer processing times, which enables improved images using compute-intensive algorithms like low-light photography on supported devices. These features give users an even more robust experience when using camera extension capabilities. Examples of these improvements include:
- Dynamic still capture processing latency estimation provides much more
accurate still capture latency estimates based on the current scene and
environment conditions. Call
CameraExtensionSession.getRealtimeStillCaptureLatency()
to get aStillCaptureLatency
object that has two latency estimation methods. ThegetCaptureLatency()
method returns the estimated latency betweenonCaptureStarted
andonCaptureProcessStarted()
, and thegetProcessingLatency()
method returns the estimated latency betweenonCaptureProcessStarted()
and the final processed frame being available. - Support for capture progress callbacks so that apps can display the current
progress of long-running, still-capture processing operations. You can check
if this feature is available with
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
, and if it is, you implement theonCaptureProcessProgressed()
callback, which has the progress (from 0 to 100) passed in as a parameter. Extension specific metadata, such as
CaptureRequest.EXTENSION_STRENGTH
for dialing in the amount of an extension effect, such as the amount of background blur withEXTENSION_BOKEH
.Postview Feature for Still Capture in camera extensions, which provides a less-processed image more quickly than the final image. If an extension has increased processing latency, a postview image could be provided as a placeholder to improve UX and switched out later for the final image. You can check if this feature is available with
CameraExtensionCharacteristics.isPostviewAvailable
. Then you can pass anOutputConfiguration
toExtensionSessionConfiguration.setPostviewOutputConfiguration
.Support for
SurfaceView
allowing for a more optimized and power-efficient preview render path.Support for tap to focus and zoom during extension usage.
التكبير داخل المستشعر
عندما يحتوي REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
في
CameraCharacteristics
على
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
، يمكن لتطبيقك
استخدام إمكانات أداة الاستشعار المتقدّمة لتوفير بثّ RAW مقطّع يحتوي على كثافة بكسل مماثلة لكثافة بكسل مجال العرض الكامل باستخدام CaptureRequest
مع هدف RAW تم ضبط حالة استخدام البث عليه على
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
.
من خلال تنفيذ عناصر التحكّم في إلغاء الطلبات، تمنح الكاميرا المعدَّلة المستخدمين إمكانية التحكّم في التكبير/التصغير حتى قبل أن تصبح عناصر التحكّم الأخرى في الكاميرا جاهزة.
صوت عالي الدقة عبر USB
يتيح نظام Android 14 استخدام تنسيقات الصوت غير القابل للفقد لتوفير تجارب رائعة تتعلّق بالصوت عبر سماعات الرأس السلكية USB. يمكنك الاستعلام عن جهاز USB للحصول على
سمات أداة المزج المفضّلة، وتسجيل مستمع للتغييرات فيسمات أداة المزج المفضّلة، وضبط سمات أداة المزج باستخدام فئة
AudioMixerAttributes
. تمثّل هذه الفئة
التنسيق، مثل قناع القناة ومعدّل أخذ العينات وسلوك أداة مزج الصوت. تسمح
الفئة بإرسال الصوت مباشرةً، بدون مزج أو
تعديل مستوى الصوت أو تطبيق تأثيرات المعالجة.
إنتاجية المطوّرين وأدواتهم
مدير بيانات الاعتماد
يضيف الإصدار 14 من Android واجهة برمجة التطبيقات Credential Manager كواجهة برمجة تطبيقات لمنصّة Android، مع إتاحة استخدامها على أجهزة Android 4.4 (المستوى 19 من واجهة برمجة التطبيقات) والإصدارات الأقدم من خلال مكتبة Jetpack باستخدام "خدمات Google Play". يهدف Credential Manager إلى تسهيل تسجيل الدخول للمستخدمين من خلال واجهات برمجة التطبيقات التي تسترجع بيانات الاعتماد وتخزّنها باستخدام موفّري بيانات الاعتماد الذين يضبطهم المستخدم. توفِّر واجهة برمجة التطبيقات Credential Manager طُرق تسجيل دخول متعدّدة، بما في ذلك اسم المستخدم وكلمة المرور ومفاتيح المرور، وحلول تسجيل الدخول الموحَّدة (مثل "تسجيل الدخول باستخدام حساب Google") في واجهة برمجة تطبيقات واحدة.
توفّر مفاتيح المرور العديد من المزايا. على سبيل المثال، تم إنشاء مفاتيح المرور استنادًا إلى المعايير المتّبعة في المجال، ويمكن استخدامها في مختلَف أنظمة التشغيل والمنظومات المتكاملة للمتصفِّحات، ويمكن استخدامها مع كلٍّ من المواقع الإلكترونية والتطبيقات.
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات "مدير بيانات الاعتماد" ومفاتيح المرور ومقالة المدونة حول "مدير بيانات الاعتماد" ومفاتيح المرور.
Health Connect
Health Connect هو مستودع على الجهاز لبيانات الصحة واللياقة البدنية للمستخدم. ويسمح الإعداد للمستخدمين بمشاركة البيانات بين تطبيقاتهم المفضّلة، مع توفير مكان واحد للتحكّم في البيانات التي يريدون مشاركتها مع هذه التطبيقات.
على الأجهزة التي تعمل بإصدارات Android أقدم من Android 14، يمكن تنزيل تطبيق Health Connect من متجر Google Play. بدءًا من الإصدار Android 14، أصبح تطبيق Health Connect جزءًا من المنصة ويتلقّى تحديثات من خلال تحديثات نظام Google Play بدون الحاجة إلى تنزيله بشكل منفصل. وبفضل ذلك، يمكن تحديث Health Connect بشكل متكرّر، ويمكن لتطبيقاتك الاعتماد على توفّر Health Connect على الأجهزة التي تعمل بالإصدار 14 من نظام Android أو الإصدارات الأحدث. يمكن للمستخدمين الوصول إلى Health Connect من خلال "الإعدادات" في أجهزتهم، مع دمج عناصر التحكّم في الخصوصية في إعدادات النظام.


يتضمّن Health Connect العديد من الميزات الجديدة في Android 14، مثل مسار التمارين، ما يتيح للمستخدمين مشاركة مسار تمرينهم الذي يمكن عرضه visually على خريطة. يتم تعريف المسار على أنّه قائمة بالمواقع الجغرافية المحفوظة خلال فترة زمنية معيّنة، ويمكن لتطبيقك إدراج المسارات في جلسات التمارين، وربطها معًا. لضمان حصول المستخدمين على التحكّم الكامل في هذه البيانات الحسّاسة، يجب أن يسمح المستخدمون بمشاركة مسارات فردية مع تطبيقات أخرى.
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Health Connect والمقالة في المدونة حول الميزات الجديدة في تطبيق "صحة Android".
تعديلات OpenJDK 17
يواصل نظام التشغيل Android 14 العمل على تحديث المكتبات الأساسية في Android لمواءمتها مع الميزات في أحدث إصدارات OpenJDK LTS، بما في ذلك تحديثات مكتبة ودعم لغة Java 17 لمطوّري التطبيقات والمنصات.
تشمل الميزات والتحسينات التالية:
- تم تعديل 300 فئة تقريبًا من فئات
java.base
لتتوافق مع Java 17. - كتل النصوص التي تُعرِض سلاسل نصية حرفية متعددة الأسطر في لغة البرمجة Java
- مطابقة الأنماط لـ instanceof، التي تسمح بالتعامل مع عنصر على أنّه يملك نوعًا معيّنًا في
instanceof
بدون أي متغيّرات إضافية - الفئات المُغلقة، التي تتيح لك فرض قيود على الفئات والواجهات التي يمكنها توسيع نطاقها أو تنفيذها
بفضل تحديثات نظام Google Play (Project Mainline)، تم تفعيل أكثر من 600 مليون جهاز لتلقّي آخر تحديثات Android Runtime (ART) التي تتضمن هذه التغييرات. يأتي ذلك في إطار التزامنا بتوفير بيئة أكثر اتساقًا وأمانًا للتطبيقات على جميع الأجهزة، وتقديم ميزات و إمكانات جديدة للمستخدمين بغض النظر عن إصدارات المنصة.
Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو شركائها التابعين.
تحسينات على متاجر التطبيقات
Android 14 introduces several PackageInstaller
APIs that
allow app stores to improve their user experience.
Request install approval before downloading
Installing or updating an app might require user approval.
For example, when an installer making use of the
REQUEST_INSTALL_PACKAGES
permission attempts to install a
new app. In prior Android versions, app stores can only request user approval
after APKs are written to the install session and the
session is committed.
Starting with Android 14, the requestUserPreapproval()
method lets installers request user approval before committing the install
session. This improvement lets an app store defer downloading any APKs until
after the installation has been approved by the user. Furthermore, once a user
has approved installation, the app store can download and install the app in the
background without interrupting the user.
Claim responsibility for future updates
The setRequestUpdateOwnership()
method allows an installer
to indicate to the system that it intends to be responsible for future updates
to an app it is installing. This capability enables update ownership
enforcement, meaning that only the update owner is permitted
to install automatic updates to the app. Update ownership enforcement helps to
ensure that users receive updates only from the expected app store.
Any other installer, including those making use of the
INSTALL_PACKAGES
permission, must receive explicit user
approval in order to install an update. If a user decides to proceed with an
update from another source, update ownership is lost.
Update apps at less-disruptive times
App stores typically want to avoid updating an app that is actively in use because this leads to the app's running processes being killed, which potentially interrupts what the user was doing.
Starting with Android 14, the InstallConstraints
API
gives installers a way to ensure that their app updates happen at an opportune
moment. For example, an app store can call the
commitSessionAfterInstallConstraintsAreMet()
method to
make sure that an update is only committed when the user is no longer
interacting with the app in question.
Seamlessly install optional splits
With split APKs, features of an app can be delivered in separate APK files,
rather than as a monolithic APK. Split APKs allow app stores to optimize the
delivery of different app components. For example, app stores might optimize
based on the properties of the target device. The
PackageInstaller
API has supported splits since its
introduction in API level 22.
In Android 14, the setDontKillApp()
method allows an
installer to indicate that the app's running processes shouldn't be killed when
new splits are installed. App stores can use this feature to seamlessly install
new features of an app while the user is using the app.
حِزم البيانات الوصفية للتطبيق
Starting in Android 14, the Android package installer lets you specify app metadata, such as data safety practices, to include on app store pages such as Google Play.
رصد وقت أخذ المستخدمين لقطات شاشة للجهاز
لإنشاء تجربة أكثر توحيدًا في ما يتعلّق برصد لقطات الشاشة، يقدّم نظام التشغيل Android 14 واجهة برمجة تطبيقات لرصد لقطات الشاشة تحافظ على الخصوصية. تتيح واجهة برمجة التطبيقات هذه للتطبيقات تسجيل عمليات رد الاتصال على أساس كل نشاط على حدة. يتم استدعاء عمليات الرجوع هذه وإرسال إشعار إلى المستخدم عندما يلتقط لقطة شاشة أثناء ظهور هذا النشاط.
تجربة المستخدم
الإجراءات المخصّصة في ورقة المشاركة والترتيب المحسّن
يُعدّل نظام التشغيل Android 14 جدول مشاركة النظام ليتيح إجراءات التطبيقات المخصّصة ونتائج معاينة أكثر فائدة للمستخدمين.
إضافة إجراءات مخصّصة
باستخدام الإصدار 14 من نظام التشغيل Android، يمكن لتطبيقك إضافة إجراءات مخصّصة إلى جدول مشاركة النظام الذي يستدعيه.

تحسين ترتيب استهدافات المشاركة المباشرة
يستخدم الإصدار 14 من نظام التشغيل Android المزيد من الإشارات من التطبيقات لتحديد ترتيب استهدافات مشاركة المحتوى المباشر من أجل تقديم نتائج أكثر فائدة للمستخدم. لتقديم الإشارة الأكثر فائدة للترتيب، اتّبِع الإرشادات المتعلقة ب تحسين ترتيب استهدافات "المشاركة المباشرة". يمكن أيضًا لتطبيقات التواصل الإبلاغ عن استخدام الاختصارات للرسائل المغادرة والواردة.

إتاحة صور متحركة مضمّنة ومخصّصة لإيماءة "الرجوع التنبؤي"
Android 13 introduced the predictive back-to-home animation behind a developer option. When used in a supported app with the developer option enabled, swiping back shows an animation indicating that the back gesture exits the app back to the home screen.
Android 14 includes multiple improvements and new guidance for Predictive Back:
- You can set
android:enableOnBackInvokedCallback=true
to opt in to predictive back system animations per-Activity instead of for the entire app. - We've added new system animations to accompany the back-to-home animation from Android 13. The new system animations are cross-activity and cross-task, which you get automatically after migrating to Predictive Back.
- We've added new Material Component animations for Bottom sheets, Side sheets, and Search.
- We've created design guidance for creating custom in-app animations and transitions.
- We've added new APIs to support custom in-app transition animations:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Use
overrideActivityTransition
instead ofoverridePendingTransition
for transitions that respond as the user swipes back.
With this Android 14 preview release, all features of Predictive Back remain behind a developer option. See the developer guide to migrate your app to predictive back, as well as the developer guide to creating custom in-app transitions.
عمليات إلغاء إعدادات التطبيق لكل جهاز من قِبل الشركة المصنّعة للأجهزة ذات الشاشات الكبيرة
تتيح عمليات إلغاء الإعدادات على مستوى التطبيق لصنّاع الأجهزة تغيير سلوك التطبيقات على الأجهزة ذات الشاشات الكبيرة. على سبيل المثال، عند إلغاء FORCE_RESIZE_APP
، يتم توجيه النظام لتغيير حجم التطبيق ليلائم أبعاد العرض (وتجنُّب وضع توافق الحجم) حتى في حال ضبط resizeableActivity="false"
في بيان التطبيق.
تهدف عمليات الإلغاء إلى تحسين تجربة المستخدم على الشاشات الكبيرة.
تتيح لك سمات البيان الجديدة إيقاف بعض عمليات إلغاء الشركة المصنّعة للجهاز لتطبيقك.
عمليات إلغاء على مستوى التطبيق لمستخدمي الشاشات الكبيرة
تؤدي عمليات التجاوز لكل تطبيق إلى تغيير سلوك التطبيقات على الأجهزة ذات الشاشات الكبيرة. على سبيل المثال، يمكن للشركة المصنّعة للجهاز OVERRIDE_MIN_ASPECT_RATIO_LARGE
إلغاء الإعدادات وضبط نسبة عرض إلى ارتفاع التطبيق على 16:9 بغض النظر عن إعدادات التطبيق.
يتيح الإصدار 1 من الربع الثاني من العام 2021 من نظام التشغيل Android 14 للمستخدمين تطبيق عمليات إلغاء على مستوى كل تطبيق من خلال قائمة إعدادات جديدة على الأجهزة ذات الشاشات الكبيرة.
مشاركة شاشة التطبيق
تتيح ميزة "مشاركة شاشة التطبيق" للمستخدمين مشاركة نافذة تطبيق بدلاً من شاشة الجهاز بالكامل أثناء تسجيل محتوى الشاشة.
عند مشاركة شاشة التطبيق، يتم استبعاد شريط الحالة وشريط التنقّل والإشعارات وعناصر واجهة مستخدم النظام الأخرى من الشاشة المشترَكة. تتم مشاركة محتوى التطبيق المحدّد فقط.
تعمل ميزة "مشاركة شاشة التطبيق" على تحسين الإنتاجية والخصوصية من خلال السماح للمستخدمين بتشغيل تطبيقات متعددة مع حصر مشاركة المحتوى بتطبيق واحد.
ميزة "الرد السريع" المستندة إلى نماذج اللغات الكبيرة في Gboard على هاتف Pixel 8 Pro
على أجهزة Pixel 8 Pro التي تم تثبيت حزمة ميزات شهر كانون الأول (ديسمبر) عليها، يمكن للمطوّرين تجربة ردود سريعة بجودة أعلى في Gboard، وذلك باستخدام نماذج لغوية كبيرة (LLM) على الجهاز تعمل على معالج Google Tensor.
تتوفّر هذه الميزة في إصدار تجريبي محدود باللغة الإنجليزية (الولايات المتحدة) في WhatsApp وLine وKakaoTalk. تتطلّب الميزة استخدام جهاز Pixel 8 Pro مع Gboard ك keyboard.
لتجربة هذه الميزة، عليك أولاً تفعيلها من خلال الانتقال إلى الإعدادات > خيارات المطوّرين > إعدادات AICore > تفعيل ميزة Aicore Persistent.
بعد ذلك، افتح محادثة في تطبيق متوافق للاطّلاع على ميزة "الرد السريع" المستندة إلى نموذج اللغة الكبيرة في شريط اقتراحات Gboard استجابةً للرسائل الواردة.
الرسومات
يمكن البحث عن المسارات وتعديلها.
Android's Path
API is a powerful and flexible mechanism for
creating and rendering vector graphics, with the ability to stroke or fill a
path, construct a path from line segments or quadratic or cubic curves, perform
boolean operations to get even more complex shapes, or all of these
simultaneously. One limitation is the ability to find out what is actually in a
Path object; the internals of the object are opaque to callers after creation.
To create a Path
, you call methods such as
moveTo()
, lineTo()
, and
cubicTo()
to add path segments. But there has been no way to
ask that path what the segments are, so you must retain that information at
creation time.
Starting in Android 14, you can query paths to find out what's inside of them.
First, you need to get a PathIterator
object using the
Path.getPathIterator
API:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
Next, you can call PathIterator
to iterate through the segments
one by one, retrieving all of the necessary data for each segment. This example
uses PathIterator.Segment
objects, which packages up the data
for you:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
also has a non-allocating version of next()
where you can pass
in a buffer to hold the point data.
One of the important use cases of querying Path
data is interpolation. For
example, you might want to animate (or morph) between two different paths. To
further simplify that use case, Android 14 also includes the
interpolate()
method on Path
. Assuming the two paths have
the same internal structure, the interpolate()
method creates a new Path
with that interpolated result. This example returns a path whose shape is
halfway (a linear interpolation of .5) between path
and otherPath
:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
The Jetpack graphics-path library enables similar APIs for earlier versions of Android as well.
شبكات مخصّصة مع مظلّلات الرؤوس والأجزاء
منذ فترة طويلة، يتيح Android رسم شبكات مثلثية باستخدام تظليل مخصّص، ولكن كان تنسيق شبكة الإدخال يقتصر على بعض مجموعات السمات المحدّدة مسبقًا. يتيح نظام Android 14 استخدام الشبكات المخصّصة التي يمكن تحديدها على أنّها مثلثات أو شرائح مثلثية، ويمكن فهرستها اختياريًا. يتم تحديد هذه الشبكات باستخدام سمات مخصّصة وخطوات رؤوس العناصر المتغيّرة وبرامج تشويش رؤوس العناصر والعناصر الصغيرة المكتوبة بلغة AGSL.
يحدّد برنامج تظليل رؤوس المضلّعات المتغيّرات، مثل الموضع واللون، في حين يمكن لبرنامج تظليل العناصر تحديد لون البكسل اختياريًا، عادةً باستخدام المتغيّرات التي أنشأها برنامج تظليل رؤوس المضلّعات. إذا كان اللون مقدَّمًا منshader
القطعة، يتم دمجه بعد ذلك مع Paint
اللون الحالي باستخدام وضع الدمج الذي تم اختياره عند
رسم الشبكة. يمكن تمرير المتجانسات
إلى برامج تظليل الشرائح والرؤوس للحصول على مرونة إضافية.
أداة العرض في المخزن المؤقت للأجهزة في Canvas
للمساعدة في استخدام واجهة برمجة التطبيقات Canvas
في Android للرسم باستخدام
التسارع في الأجهزة في HardwareBuffer
، يوفّر الإصدار 14 من Android HardwareBufferRenderer
. واجهة برمجة التطبيقات هذه
عندما تشتمل حالة الاستخدام على التواصل مع النظام
المكون من خلال SurfaceControl
لوقت الاستجابة المنخفض
رسم.