نمای کلی ویژگی‌ها و میاناهای برنامه‌سازی کاربردی

Android 14 ویژگی‌ها و میاناهای برنامه‌سازی کاربردی فوق‌العاده‌ای را برای توسعه‌دهندگان معرفی می‌کند. موارد زیر به شما کمک می‌کند با ویژگی‌های برنامه‌هایتان آشنا شوید و کار با میاناهای برنامه‌سازی کاربردی مربوطه را شروع کنید.

برای مشاهده فهرست دقیق میاناهای برنامه‌سازی کاربردی اضافه‌شده، اصلاح‌شده، و برداشته‌شده، گزارش تفاوت میانای برنامه‌سازی کاربردی را بخوانید. برای جزئیات مربوط به میاناهای برنامه‌سازی کاربردی اضافه‌شده، به مرجع میانای برنامه‌سازی کاربردی Android مراجعه کنید — برای Android 14، میاناهای برنامه‌سازی کاربردی را که در سطح میانای برنامه‌سازی کاربردی ۳۴ اضافه شده‌اند جستجو کنید. برای آشنایی با بخش‌هایی که تغییرات پلاتفرم ممکن است بر برنامه‌هایتان تأثیر بگذارد، حتماً تغییرات رفتاری Android 14 را برای برنامه‌هایی که Android 14 را هدف‌یابی می‌کنند و برای همه برنامه‌ها بررسی کنید.

بین‌المللی‌سازی

اولویت‌های زبان هر برنامه

Android 14 ویژگی های زبان هر برنامه را که در Android 13 (سطح API 33) معرفی شده بود با این قابلیت های اضافی گسترش می دهد:

  • ایجاد خودکار localeConfig یک برنامه : با شروع Android Studio Giraffe Canary 7 و AGP 8.1.0-alpha07، می‌توانید برنامه خود را به گونه‌ای پیکربندی کنید که از اولویت‌های زبان هر برنامه به‌طور خودکار پشتیبانی کند. بر اساس منابع پروژه شما، افزونه Android Gradle فایل LocaleConfig را تولید می کند و یک مرجع به آن در فایل مانیفست نهایی اضافه می کند، بنابراین دیگر نیازی به ایجاد یا به روز رسانی فایل به صورت دستی ندارید. AGP از منابع موجود در پوشه‌های res ماژول‌های برنامه شما و هر وابستگی ماژول کتابخانه‌ای برای تعیین مکان‌های گنجاندن در فایل LocaleConfig استفاده می‌کند.

  • به‌روزرسانی‌های پویا برای localeConfig یک برنامه : از روش‌های setOverrideLocaleConfig() و getOverrideLocaleConfig() در LocaleManager برای به‌روزرسانی پویا فهرست زبان‌های پشتیبانی‌شده برنامه خود در تنظیمات سیستم دستگاه استفاده کنید. از این انعطاف‌پذیری برای سفارشی‌سازی فهرست زبان‌های پشتیبانی‌شده در هر منطقه، اجرای آزمایش‌های A/B یا ارائه فهرست به‌روزرسانی‌شده از مناطق استفاده کنید، اگر برنامه شما از فشارهای سمت سرور برای محلی‌سازی استفاده می‌کند.

  • قابلیت مشاهده زبان برنامه برای ویرایشگرهای روش ورودی (IME) : IMEها می توانند از متد getApplicationLocales() برای بررسی زبان برنامه فعلی و تطبیق زبان IME با آن زبان استفاده کنند.

Grammatical Inflection API

3 میلیارد نفر به زبان‌های جنسیتی صحبت می‌کنند: زبان‌هایی که دسته‌های دستوری (مانند اسم‌ها، افعال، صفت‌ها و حروف اضافه) بر اساس جنسیت افراد و اشیایی که با آنها صحبت می‌کنید یا درباره آنها صحبت می‌کنید، عطف می‌شوند. به طور سنتی، بسیاری از زبان های جنسیتی از جنسیت دستوری مذکر به عنوان جنسیت پیش فرض یا عمومی استفاده می کنند.

مخاطب قرار دادن کاربران در جنسیت دستوری اشتباه، مانند خطاب قرار دادن زنان در جنسیت دستوری مذکر، می تواند بر عملکرد و نگرش آنها تأثیر منفی بگذارد . در مقابل، یک رابط کاربری با زبانی که به درستی جنسیت گرامری کاربر را منعکس می‌کند، می‌تواند تعامل کاربر را بهبود بخشد و تجربه کاربری شخصی‌تر و طبیعی‌تر را ارائه دهد.

برای کمک به ایجاد یک رابط کاربر محور برای زبان‌های جنسیتی، Android 14 Grammatical Inflection API را معرفی می‌کند که به شما امکان می‌دهد بدون تغییر دادن برنامه خود، از جنسیت دستوری پشتیبانی کنید.

،

برای کمک به ایجاد یک رابط کاربر محور برای زبان‌های جنسیتی، Android 14 Grammatical Inflection API را معرفی می‌کند که به شما امکان می‌دهد بدون تغییر دادن برنامه خود، از جنسیت دستوری پشتیبانی کنید.

،

برای کمک به ایجاد یک رابط کاربر محور برای زبان‌های جنسیتی، Android 14 Grammatical Inflection API را معرفی می‌کند که به شما امکان می‌دهد بدون تغییر دادن برنامه خود، از جنسیت دستوری پشتیبانی کنید.

،

برای کمک به ایجاد یک رابط کاربر محور برای زبان‌های جنسیتی، Android 14 Grammatical Inflection API را معرفی می‌کند که به شما امکان می‌دهد بدون تغییر دادن برنامه خود، از جنسیت دستوری پشتیبانی کنید.

اولویت‌های منطقه‌ای

تنظیمات برگزیده منطقه ای به کاربران امکان می دهد واحدهای دما، روز اول هفته و سیستم های شماره گذاری را شخصی کنند. اروپایی‌ای که در ایالات متحده زندگی می‌کند ممکن است ترجیح دهد واحدهای دما بر حسب سانتیگراد باشد تا فارنهایت و برنامه‌ها به جای پیش‌فرض یکشنبه ایالات متحده، دوشنبه را به‌عنوان آغاز هفته در نظر بگیرند.

منوهای جدید تنظیمات Android برای این تنظیمات برگزیده، مکانی قابل شناسایی و متمرکز را برای تغییر تنظیمات برگزیده برنامه در اختیار کاربران قرار می دهد. این تنظیمات از طریق پشتیبان گیری و بازیابی نیز ادامه می یابد. چندین API و intent - مانند getTemperatureUnit و getFirstDayOfWeek - به برنامه شما اجازه خواندن به تنظیمات برگزیده کاربر را می دهند، بنابراین برنامه شما می تواند نحوه نمایش اطلاعات را تنظیم کند. همچنین می‌توانید یک BroadcastReceiver را در ACTION_LOCALE_CHANGED ثبت کنید تا با تغییر تنظیمات منطقه‌ای، تغییرات پیکربندی محلی را مدیریت کنید.

برای پیدا کردن این تنظیمات، برنامه تنظیمات را باز کنید و به سیستم > زبان‌ها و ورودی > تنظیمات برگزیده منطقه‌ای بروید.

صفحه تنظیمات برگزیده منطقه ای در تنظیمات سیستم Android.
گزینه های دما برای تنظیمات برگزیده منطقه ای در تنظیمات سیستم Android.

دسترس‌پذیری

مقیاس‌بندی غیرخطی قلم تا ۲۰۰٪

Starting in Android 14, the system supports font scaling up to 200%, providing users with additional accessibility options.

To prevent large text elements on screen from scaling too large, the system applies a nonlinear scaling curve. This scaling strategy means that large text doesn't scale at the same rate as smaller text. Nonlinear font scaling helps preserve the proportional hierarchy between elements of different sizes while mitigating issues with linear text scaling at high degrees (such as text being cut off or text that becomes harder to read due to an extremely large display sizes).

Test your app with nonlinear font scaling

Enable the maximum font size in a device's accessibility settings to test your app.

If you already use scaled pixels (sp) units to define text sizing, then these additional options and scaling improvements are applied automatically to the text in your app. However, you should still perform UI testing with the maximum font size enabled (200%) to ensure that your app applies the font sizes correctly and can accommodate larger font sizes without impacting usability.

To enable 200% font size, follow these steps:

  1. Open the Settings app and navigate to Accessibility > Display size and text.
  2. For the Font size option, tap the plus (+) icon until the maximum font size setting is enabled, as shown in the image that accompanies this section.

Use scaled pixel (sp) units for text-sizes

Remember to always specify text sizes in sp units. When your app uses sp units, Android can apply the user's preferred text size and scale it appropriately.

Don't use sp units for padding or define view heights assuming implicit padding: with nonlinear font scaling sp dimensions might not be proportional, so 4sp + 20sp might not equal 24sp.

Convert scaled pixel (sp) units

Use TypedValue.applyDimension() to convert from sp units to pixels, and use TypedValue.deriveDimension() to convert pixels to sp. These methods apply the appropriate nonlinear scaling curve automatically.

Avoid hardcoding equations using Configuration.fontScale or DisplayMetrics.scaledDensity. Because font scaling is nonlinear, the scaledDensity field is no longer accurate. The fontScale field should be used for informational purposes only because fonts are no longer scaled with a single scalar value.

Use sp units for lineHeight

Always define android:lineHeight using sp units instead of dp, so the line height scales along with your text. Otherwise, if your text is sp but your lineHeight is in dp or px, it doesn't scale and looks cramped. TextView automatically corrects the lineHeight so that your intended proportions are preserved, but only if both textSize and lineHeight are defined in sp units.

دوربین و رسانه

وضوح فوق‌العاده بالا برای تصاویر

تصویری از محدوده دینامیکی استاندارد (SDR) در مقابل کیفیت تصویر با محدوده دینامیکی بالا (HDR).

اندروید 14 از تصاویر با محدوده دینامیکی بالا (HDR) پشتیبانی می کند که اطلاعات بیشتری را از حسگر هنگام عکس گرفتن حفظ می کند، که رنگ های زنده و کنتراست بیشتر را امکان پذیر می کند. اندروید از فرمت Ultra HDR استفاده می‌کند که کاملاً با تصاویر JPEG سازگار است و به برنامه‌ها اجازه می‌دهد تا به طور یکپارچه با تصاویر HDR تعامل داشته باشند و در صورت نیاز آنها را در محدوده دینامیک استاندارد (SDR) نمایش دهند.

رندر کردن این تصاویر در رابط کاربری در HDR زمانی که برنامه شما استفاده از رابط کاربری HDR را برای پنجره فعالیت خود انتخاب می‌کند، چه از طریق ورودی مانیفست یا در زمان اجرا با فراخوانی Window.setColorMode() به طور خودکار توسط چارچوب انجام می‌شود. همچنین می توانید تصاویر ثابت Ultra HDR فشرده شده را در دستگاه های پشتیبانی شده ضبط کنید. با بازیابی رنگ های بیشتر از حسگر، ویرایش در پست می تواند انعطاف پذیرتر باشد. Gainmap مرتبط با تصاویر Ultra HDR می تواند برای رندر آنها با استفاده از OpenGL یا Vulkan استفاده شود.

،
تصویری از محدوده دینامیکی استاندارد (SDR) در مقابل کیفیت تصویر با محدوده دینامیکی بالا (HDR).

اندروید 14 از تصاویر با محدوده دینامیکی بالا (HDR) پشتیبانی می کند که اطلاعات بیشتری را از حسگر هنگام عکس گرفتن حفظ می کند، که رنگ های زنده و کنتراست بیشتر را امکان پذیر می کند. اندروید از فرمت Ultra HDR استفاده می‌کند که کاملاً با تصاویر JPEG سازگار است و به برنامه‌ها اجازه می‌دهد تا به طور یکپارچه با تصاویر HDR تعامل داشته باشند و در صورت نیاز آنها را در محدوده دینامیک استاندارد (SDR) نمایش دهند.

رندر کردن این تصاویر در رابط کاربری در HDR زمانی که برنامه شما استفاده از رابط کاربری HDR را برای پنجره فعالیت خود انتخاب می‌کند، چه از طریق ورودی مانیفست یا در زمان اجرا با فراخوانی Window.setColorMode() به طور خودکار توسط چارچوب انجام می‌شود. همچنین می توانید تصاویر ثابت Ultra HDR فشرده شده را در دستگاه های پشتیبانی شده ضبط کنید. با بازیابی رنگ های بیشتر از حسگر، ویرایش در پست می تواند انعطاف پذیرتر باشد. Gainmap مرتبط با تصاویر Ultra HDR می تواند برای رندر آنها با استفاده از OpenGL یا Vulkan استفاده شود.

بزرگ‌نمایی، فوکوس، نمای پس‌از عکاسی، و موارد دیگر در افزونه‌های دوربین

Android 14 افزونه‌های دوربین را ارتقا و بهبود می‌بخشد، به برنامه‌ها اجازه می‌دهد تا زمان‌های پردازش طولانی‌تری را مدیریت کنند، که با استفاده از الگوریتم‌های محاسباتی فشرده مانند عکاسی در نور کم در دستگاه‌های پشتیبانی‌شده، تصاویر بهبودیافته را ممکن می‌سازد. این ویژگی ها هنگام استفاده از قابلیت های افزونه دوربین، تجربه قوی تری را به کاربران می دهد. نمونه هایی از این پیشرفت ها عبارتند از:

  • تخمین تأخیر پردازش عکسبرداری پویا برآوردهای تأخیر ثبت عکس را بر اساس شرایط فعلی صحنه و محیط ارائه می دهد. برای دریافت یک شی StillCaptureLatency که دارای دو روش تخمین تأخیر است، CameraExtensionSession.getRealtimeStillCaptureLatency() را فراخوانی کنید. متد getCaptureLatency() تاخیر تخمینی بین onCaptureStarted و onCaptureProcessStarted() را برمی گرداند و متد getProcessingLatency() تاخیر تخمینی بین onCaptureProcessStarted() و فریم پردازش شده نهایی موجود را برمی گرداند.
  • پشتیبانی از تماس‌های پیشروی ضبط به‌گونه‌ای که برنامه‌ها می‌توانند پیشرفت فعلی عملیات پردازش طولانی‌مدت را نشان دهند. می‌توانید بررسی کنید که آیا این ویژگی با CameraExtensionCharacteristics.isCaptureProcessProgressAvailable در دسترس است یا خیر، و در صورت وجود، پاسخ تماس onCaptureProcessProgressed() پیاده‌سازی می‌کنید که دارای پیشرفت (از 0 تا 100) به عنوان پارامتر است.
  • فراداده ویژه برنامه افزودنی، مانند CaptureRequest.EXTENSION_STRENGTH برای شماره گیری در مقدار افکت افزونه، مانند میزان تاری پس زمینه با EXTENSION_BOKEH .

  • ویژگی Postview برای Still Capture در پسوندهای دوربین، که تصویری با پردازش کمتر سریعتر از تصویر نهایی ارائه می دهد. اگر یک برنامه افزودنی تأخیر پردازش را افزایش داده باشد، می‌توان یک تصویر پس‌نمایش به‌عنوان جای‌بانی برای بهبود UX ارائه کرد و بعداً برای تصویر نهایی جایگزین شد. می توانید بررسی کنید که آیا این ویژگی با CameraExtensionCharacteristics.isPostviewAvailable موجود است یا خیر. سپس می توانید یک OutputConfiguration به ExtensionSessionConfiguration.setPostviewOutputConfiguration ارسال کنید.

  • پشتیبانی از SurfaceView که امکان یک مسیر رندر پیش نمایش بهینه تر و کم مصرف تر را فراهم می کند.

  • پشتیبانی از ضربه برای فوکوس و زوم در طول استفاده از برنامه افزودنی.

بزرگ‌نمایی درون‌حسگر

وقتی REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE در CameraCharacteristics حاوی SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW است، برنامه شما می‌تواند از قابلیت‌های حسگر پیشرفته استفاده کند تا یک جریان RAW برش داده شده، با استفاده از یک جریان RAW، از همان فیلد CaptureRequest استفاده کند CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW . با اجرای کنترل های لغو درخواست، دوربین به روز شده کنترل زوم را حتی قبل از آماده شدن سایر کنترل های دوربین به کاربران می دهد.

صدای USB بی‌اتلاف

اندروید 14 از فرمت‌های صوتی بدون اتلاف برای تجربه در سطح دوستداران صوتی از طریق هدست‌های سیمی USB پشتیبانی می‌کند. می‌توانید از یک دستگاه USB برای ویژگی‌های میکسر ترجیحی آن پرس و جو کنید، یک شنونده را برای تغییرات در ویژگی‌های میکسر ترجیحی ثبت کنید، و ویژگی‌های میکسر را با استفاده از کلاس AudioMixerAttributes پیکربندی کنید. این کلاس فرمت، مانند ماسک کانال، نرخ نمونه و رفتار میکسر صدا را نشان می دهد. این کلاس امکان ارسال مستقیم صدا را بدون میکس، تنظیم صدا یا جلوه های پردازشی را فراهم می کند.

بهره‌وری و ابزارهای توسعه‌دهنده

مدیر اطلاعات اعتباری

اندروید ۱۴، Credential Manager را به عنوان یک API پلتفرم اضافه می‌کند و از طریق کتابخانه Jetpack با استفاده از سرویس‌های گوگل پلی، پشتیبانی بیشتری را برای دستگاه‌های اندروید ۴.۴ (سطح API ۱۹) ارائه می‌دهد. Credential Manager با استفاده از APIهایی که اعتبارنامه‌ها را با ارائه‌دهندگان اعتبارنامه پیکربندی‌شده توسط کاربر بازیابی و ذخیره می‌کنند، قصد دارد ورود به سیستم را برای کاربران آسان‌تر کند. Credential Manager از چندین روش ورود به سیستم، از جمله نام کاربری و رمز عبور، کلیدهای عبور و راه‌حل‌های ورود به سیستم فدرال (مانند ورود با گوگل) در یک API واحد پشتیبانی می‌کند.

کلیدهای عبور مزایای زیادی دارند. به عنوان مثال، کلیدهای عبور بر اساس استانداردهای صنعتی ساخته شده‌اند ، می‌توانند در سیستم عامل‌ها و اکوسیستم‌های مرورگر مختلف کار کنند و می‌توانند هم با وب‌سایت‌ها و هم با برنامه‌ها مورد استفاده قرار گیرند.

برای اطلاعات بیشتر، به مستندات Credential Manager and passkeys و پست وبلاگ در مورد Credential Manager and passkeys مراجعه کنید.

‫Health Connect

Health Connect is an on-device repository for user health and fitness data. It allows users to share data between their favorite apps, with a single place to control what data they want to share with these apps.

On devices running Android versions prior to Android 14, Health Connect is available to download as an app on the Google Play store. Starting with Android 14, Health Connect is part of the platform and receives updates through Google Play system updates without requiring a separate download. With this, Health Connect can be updated frequently, and your apps can rely on Health Connect being available on devices running Android 14 or higher. Users can access Health Connect from the Settings in their device, with privacy controls integrated into the system settings.

Users can get started using Health Connect without a separate app download on devices running Android 14 or higher.
Users can control which apps have access to their health and fitness data through system settings.

Health Connect includes several new features in Android 14, such as exercise routes, allowing users to share a route of their workout which can be visualized on a map. A route is defined as a list of locations saved within a window of time, and your app can insert routes into exercise sessions, tying them together. To ensure that users have complete control over this sensitive data, users must allow sharing individual routes with other apps.

For more information, see the Health Connection documentation and the blogpost on What's new in Android Health.

به‌روزرسانی‌های OpenJDK 17

Android 14 به کار تازه کردن کتابخانه‌های اصلی Android ادامه می‌دهد تا با ویژگی‌های جدیدترین نسخه OpenJDK LTS، از جمله به‌روزرسانی‌های کتابخانه و پشتیبانی از زبان جاوا 17 برای توسعه‌دهندگان برنامه‌ها و پلت‌فرم‌ها، هماهنگ شود.

ویژگی ها و بهبودهای زیر گنجانده شده است:

  • تقریباً 300 کلاس java.base به پشتیبانی جاوا 17 به روز شد.
  • بلوک های متنی که رشته های چند خطی را به زبان برنامه نویسی جاوا معرفی می کند.
  • تطبیق الگو برای instanceof ، که به یک شی اجازه می دهد تا بدون هیچ متغیر اضافی در یک instanceof یک نوع خاص در نظر گرفته شود.
  • کلاس‌های مهر و موم شده ، که به شما امکان می‌دهند کلاس‌ها و رابط‌هایی را که می‌توانند آنها را گسترش یا پیاده‌سازی کنند محدود کنید.

به لطف به‌روزرسانی‌های سیستم Google Play (Project Mainline)، بیش از 600 میلیون دستگاه برای دریافت آخرین به‌روزرسانی‌های Android Runtime (ART) فعال هستند که شامل این تغییرات می‌شود. این بخشی از تعهد ما برای دادن محیطی سازگارتر و امن‌تر به برنامه‌ها در سراسر دستگاه‌ها و ارائه ویژگی‌ها و قابلیت‌های جدید به کاربران مستقل از نسخه‌های پلتفرم است.

جاوا و 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.

دسته‌های فراداده برنامه

با شروع Android 14، نصب‌کننده بسته Android به شما امکان می‌دهد ابرداده‌های برنامه مانند شیوه‌های ایمنی داده را برای درج در صفحات فروشگاه برنامه مانند Google Play مشخص کنید .

تشخیص دادن زمان ثبت نماگرفت از دستگاه توسط کاربران

To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.

تجربه کاربری

کنش‌های سفارشی برگه هم‌رسانی و رتبه‌بندی بهبودیافته

Android 14 اشتراک‌گذاری سیستم را به‌روزرسانی می‌کند تا از اقدامات برنامه سفارشی و نتایج پیش‌نمایش آموزنده‌تر برای کاربران پشتیبانی کند.

افزودن اقدامات سفارشی

با Android 14، برنامه شما می‌تواند اقدامات سفارشی را به صفحه اشتراک سیستمی که فراخوانی می‌کند اضافه کند .

تصویری از اقدامات سفارشی در برگه اشتراک.

بهبود رتبه بندی اهداف اشتراک مستقیم

Android 14 از سیگنال‌های بیشتری از برنامه‌ها برای تعیین رتبه‌بندی اهداف اشتراک مستقیم استفاده می‌کند تا نتایج مفیدتری برای کاربر ارائه دهد. برای ارائه مفیدترین سیگنال برای رتبه‌بندی، راهنمای بهبود رتبه‌بندی اهداف اشتراک مستقیم خود را دنبال کنید. برنامه های ارتباطی همچنین می توانند استفاده از میانبر برای پیام های خروجی و دریافتی را گزارش کنند .

ردیف اشتراک مستقیم در برگه اشتراک، همانطور که با 1 نشان داده شده است

پشتیبانی از پویانمایی‌های داخلی و سفارشی برای «اشاره برگشت پیش‌گویانه»

ویدئو: انیمیشن های پیش بینی کننده

اندروید 13 انیمیشن پیش بینی بازگشت به خانه را پشت گزینه توسعه دهنده معرفی کرد. هنگامی که در یک برنامه پشتیبانی شده با فعال بودن گزینه توسعه دهنده استفاده می شود، کشیدن انگشت به عقب انیمیشنی را نشان می دهد که نشان می دهد حرکت برگشت از برنامه به صفحه اصلی خارج می شود.

Android 14 شامل چندین بهبود و راهنمایی جدید برای Predictive Back است:

با این نسخه پیش‌نمایش اندروید 14، تمام ویژگی‌های Predictive Back پشت یک گزینه توسعه‌دهنده باقی می‌ماند. راهنمای برنامه‌نویس برای انتقال برنامه‌تان به پیش‌بینی ، و همچنین راهنمای توسعه‌دهنده ایجاد انتقال‌های سفارشی درون‌برنامه را ببینید.

لغوهای هر برنامه سازنده دستگاه با صفحه‌نمایش بزرگ

لغو هر برنامه به سازندگان دستگاه امکان می دهد تا رفتار برنامه ها را در دستگاه های صفحه بزرگ تغییر دهند. به عنوان مثال، لغو FORCE_RESIZE_APP به سیستم دستور می‌دهد تا اندازه برنامه را برای اندازه‌گیری ابعاد نمایش تغییر دهد (جلوگیری از حالت سازگاری با اندازه) حتی اگر resizeableActivity="false" در مانیفست برنامه تنظیم شده باشد.

لغوها برای بهبود تجربه کاربر در صفحه نمایش های بزرگ در نظر گرفته شده است.

ویژگی‌های مانیفست جدید شما را قادر می‌سازد برخی از لغو‌های سازنده دستگاه را برای برنامه خود غیرفعال کنید.

لغوهای هر برنامه کاربر صفحه‌نمایش بزرگ

لغو هر برنامه رفتار برنامه ها را در دستگاه های صفحه بزرگ تغییر می دهد. برای مثال، لغو OVERRIDE_MIN_ASPECT_RATIO_LARGE سازنده دستگاه، نسبت تصویر برنامه را بدون توجه به پیکربندی برنامه روی 16:9 تنظیم می‌کند.

Android 14 QPR1 کاربران را قادر می‌سازد تا با استفاده از منوی تنظیمات جدید در دستگاه‌های صفحه‌نمایش بزرگ، نادیده‌گیری‌های هر برنامه را اعمال کنند.

هم‌رسانی صفحه‌نمایش برنامه

اشتراک‌گذاری صفحه برنامه به کاربران این امکان را می‌دهد تا در حین ضبط محتوای صفحه، یک پنجره برنامه را به جای کل صفحه دستگاه به اشتراک بگذارند.

با اشتراک‌گذاری صفحه برنامه، نوار وضعیت، نوار پیمایش، اعلان‌ها و سایر عناصر رابط کاربری سیستم از صفحه نمایش مشترک حذف می‌شوند. فقط محتوای برنامه انتخابی به اشتراک گذاشته می شود.

اشتراک‌گذاری صفحه‌نمایش برنامه، بهره‌وری و حریم خصوصی را بهبود می‌بخشد و به کاربران امکان می‌دهد چندین برنامه را اجرا کنند، اما اشتراک‌گذاری محتوا را به یک برنامه محدود می‌کند.

«پاسخ هوشمند» با بهره‌گیری از مدل زبانی بزرگ در Gboard در Pixel 8 Pro

در دستگاه‌های Pixel 8 Pro دارای ویژگی دسامبر، توسعه‌دهندگان می‌توانند پاسخ‌های هوشمند با کیفیت بالاتر را در Gboard که توسط مدل‌های زبان بزرگ (LLM) روی دستگاه اجرا می‌شوند در Google Tensor امتحان کنند.

این ویژگی به عنوان یک پیش نمایش محدود برای انگلیسی ایالات متحده در WhatsApp، Line و KakaoTalk در دسترس است. برای این کار باید از دستگاه Pixel 8 Pro با Gboard به عنوان صفحه کلید استفاده کنید.

برای امتحان کردن، ابتدا این ویژگی را در تنظیمات > گزینه‌های برنامه‌نویس > تنظیمات AiCore > فعال کردن Aicore Persistent فعال کنید.

سپس، مکالمه‌ای را در یک برنامه پشتیبانی‌شده باز کنید تا پاسخ هوشمند مبتنی بر LLM را در نوار پیشنهادی Gboard در پاسخ به پیام‌های دریافتی ببینید.

Gboard از LLM های روی دستگاه برای ارائه پاسخ های هوشمند با کیفیت بالاتر استفاده می کند.

گرافیک‌

مسیرها قابل‌پرسمان و قابل‌درون‌یابی هستند

Android's Path API مکانیزمی قدرتمند و منعطف برای ایجاد و رندر گرافیک برداری است، با قابلیت استروک یا پر کردن یک مسیر، ساخت یک مسیر از قسمت های خط یا منحنی های درجه دوم یا مکعب، انجام عملیات بولی برای به دست آوردن اشکال پیچیده تر یا همه موارد. از اینها به طور همزمان یکی از محدودیت ها توانایی یافتن آنچه در واقع در یک شی Path وجود دارد است. درونیات شی پس از ایجاد برای تماس گیرندگان مبهم است.

برای ایجاد یک Path ، متدهایی مانند moveTo() ، lineTo() و cubicTo() را فراخوانی می کنید تا بخش های مسیر را اضافه کنید. اما هیچ راهی برای پرسیدن این مسیر وجود ندارد، بنابراین شما باید آن اطلاعات را در زمان ایجاد حفظ کنید.

با شروع اندروید 14، می‌توانید مسیرها را جستجو کنید تا بفهمید داخل آنها چیست. ابتدا باید یک شی PathIterator با استفاده از Path.getPathIterator API دریافت کنید:

کاتلین

val path = Path().apply {
    moveTo(1.0f, 1.0f)
    lineTo(2.0f, 2.0f)
    close()
}
val pathIterator = path.pathIterator

جاوا

Path path = new Path();
path.moveTo(1.0F, 1.0F);
path.lineTo(2.0F, 2.0F);
path.close();
PathIterator pathIterator = path.getPathIterator();

در مرحله بعد، می‌توانید PathIterator را فراخوانی کنید تا قسمت‌ها را یک به یک تکرار کند و تمام داده‌های لازم برای هر بخش را بازیابی کند. این مثال از اشیاء PathIterator.Segment استفاده می کند که داده ها را برای شما بسته بندی می کند:

کاتلین

for (segment in pathIterator) {
    println("segment: ${segment.verb}, ${segment.points}")
}

جاوا

while (pathIterator.hasNext()) {
    PathIterator.Segment segment = pathIterator.next();
    Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints());
}

PathIterator همچنین دارای یک نسخه غیر تخصیص دهنده از next() است که در آن می توانید بافر را برای نگهداری داده های نقطه ارسال کنید.

یکی از موارد مهم استفاده از کوئری داده های Path ، درون یابی است. برای مثال، ممکن است بخواهید بین دو مسیر مختلف متحرک (یا شکل‌بندی ) کنید. برای ساده‌تر کردن این مورد، اندروید 14 متد interpolate() را در Path نیز شامل می‌شود. با فرض اینکه دو مسیر ساختار داخلی یکسانی دارند، متد interpolate() یک Path جدید با آن نتیجه درون یابی ایجاد می کند. این مثال مسیری را برمی گرداند که شکل آن در نیمه راه است (یک درونیابی خطی 0.5) بین path و otherPath :

کاتلین

val interpolatedResult = Path()
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, .5f, interpolatedResult)
}

جاوا

Path interpolatedResult = new Path();
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, 0.5F, interpolatedResult);
}

کتابخانه مسیر گرافیکی Jetpack API های مشابهی را برای نسخه های قبلی اندروید نیز فعال می کند.

مش‌های سفارشی با سایه‌زن‌های رأس و قطعه

اندروید مدت‌هاست که از ترسیم مش‌های مثلثی با سایه‌زنی سفارشی پشتیبانی می‌کند، اما قالب مش ورودی به چند ترکیب ویژگی از پیش تعریف‌شده محدود شده است. اندروید 14 پشتیبانی از مش های سفارشی را اضافه می کند که می توانند به صورت مثلث یا نوارهای مثلثی تعریف شوند و به صورت اختیاری می توانند ایندکس شوند. این مش‌ها با ویژگی‌های سفارشی ، گام‌های راس، متغیر ، و سایه‌زن‌های راس و قطعه نوشته شده در AGSL مشخص می‌شوند.

سایه‌زن رأس، تغییراتی مانند موقعیت و رنگ را تعریف می‌کند، در حالی که سایه‌زن قطعه می‌تواند به‌طور اختیاری رنگ پیکسل را مشخص کند، معمولاً با استفاده از تغییرات ایجاد شده توسط سایه‌زن رأس. اگر رنگ توسط shader قطعه ارائه شود، سپس با استفاده از حالت ترکیبی انتخاب شده هنگام کشیدن مش، با رنگ فعلی Paint ترکیب می شود. برای انعطاف بیشتر، می‌توان لباس‌های یکنواخت را به سایه‌زن‌های قطعه و رأس منتقل کرد.

پردازنده میان‌گیر سخت‌افزاری برای Canvas

برای کمک به استفاده از Canvas API Android برای ترسیم شتاب سخت‌افزاری به یک HardwareBuffer ، Android 14 HardwareBufferRenderer را معرفی می‌کند. این API به ویژه زمانی مفید است که مورد استفاده شما شامل ارتباط با ترکیب کننده سیستم از طریق SurfaceControl برای ترسیم با تأخیر کم باشد.