اندروید ۱۴ ویژگیها و APIهای فوقالعادهای را برای توسعهدهندگان معرفی میکند. موارد زیر به شما کمک میکند تا در مورد ویژگیهای برنامههای خود اطلاعات کسب کنید و با APIهای مرتبط شروع به کار کنید.
برای مشاهده لیست کاملی از APIهای اضافه شده، اصلاح شده و حذف شده، گزارش تفاوت API را مطالعه کنید. برای جزئیات بیشتر در مورد APIهای اضافه شده، به مرجع API اندروید مراجعه کنید - برای اندروید ۱۴، به دنبال APIهایی باشید که در سطح API ۳۴ اضافه شدهاند. برای کسب اطلاعات در مورد حوزههایی که تغییرات پلتفرم ممکن است بر برنامههای شما تأثیر بگذارد، حتماً تغییرات رفتاری اندروید ۱۴ را برای برنامههایی که اندروید ۱۴ را هدف قرار میدهند و برای همه برنامهها بررسی کنید.
بینالمللیسازی
تنظیمات زبان برای هر برنامه
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 با آن زبان استفاده کنند.
API صرف دستوری
有 30 亿人在使用区分性别的语言,此类语言的语法类别(例如名词、动词、形容词和介词)会根据您交谈所涉及的人或物的性别而变化。传统上,许多区分性别的语言使用阳性语法性别作为默认或通用性别。
以错误的语法性别来称呼用户,例如以阳性语法性别来称呼女性,可能会对她们的表现和态度产生负面影响。相比之下,界面语言如果能正确反映用户的语法性别,就可以提高用户互动度,并提供更个性化、更自然的用户体验。
为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。
ترجیحات منطقهای
Regional preferences enable users to personalize temperature units, the first day of the week, and numbering systems. A European living in the United States might prefer temperature units to be in Celsius rather than Fahrenheit and for apps to treat Monday as the beginning of the week instead of the US default of Sunday.
New Android Settings menus for these preferences provide users with a
discoverable and centralized location to change app preferences. These
preferences also persist through backup and restore. Several APIs and
intents—such as
getTemperatureUnit
and
getFirstDayOfWeek—
grant your app read access to user preferences, so your app can adjust how it
displays information. You can also register a
BroadcastReceiver on
ACTION_LOCALE_CHANGED
to handle locale configuration changes when regional preferences change.
To find these settings, open the Settings app and navigate to System > Languages & input > Regional preferences.
دسترسیپذیری
مقیاسبندی فونت غیرخطی تا ۲۰۰٪
با شروع از اندروید ۱۴، این سیستم از مقیاسبندی فونت تا ۲۰۰٪ پشتیبانی میکند و گزینههای دسترسی بیشتری را در اختیار کاربران قرار میدهد.
برای جلوگیری از بزرگ شدن بیش از حد عناصر متنی بزرگ روی صفحه، سیستم یک منحنی مقیاسبندی غیرخطی اعمال میکند. این استراتژی مقیاسبندی به این معنی است که متن بزرگ با همان سرعت متن کوچکتر مقیاسبندی نمیشود. مقیاسبندی فونت غیرخطی به حفظ سلسله مراتب متناسب بین عناصر با اندازههای مختلف کمک میکند و در عین حال مشکلات مربوط به مقیاسبندی متن خطی در درجات بالا (مانند بریده شدن متن یا متنی که به دلیل اندازههای بسیار بزرگ صفحه نمایش، خواندن آن سختتر میشود) را کاهش میدهد.
اپلیکیشن خود را با مقیاسبندی فونت غیرخطی آزمایش کنید

اگر از قبل از واحدهای پیکسلهای مقیاسپذیر (sp) برای تعریف اندازه متن استفاده میکنید، این گزینههای اضافی و بهبودهای مقیاسبندی به طور خودکار روی متن برنامه شما اعمال میشوند. با این حال، شما همچنان باید تست رابط کاربری را با حداکثر اندازه فونت فعال (200٪) انجام دهید تا مطمئن شوید که برنامه شما اندازه فونتها را به درستی اعمال میکند و میتواند اندازه فونتهای بزرگتر را بدون تأثیر بر قابلیت استفاده، در خود جای دهد.
برای فعال کردن اندازه فونت ۲۰۰٪، این مراحل را دنبال کنید:
- برنامه تنظیمات را باز کنید و به بخش دسترسیها > اندازه و متن نمایش بروید.
- برای گزینه اندازه فونت ، روی نماد به علاوه (+) ضربه بزنید تا حداکثر تنظیم اندازه فونت فعال شود، همانطور که در تصویر همراه این بخش نشان داده شده است.
برای اندازه متن از واحدهای پیکسل مقیاسبندیشده (sp) استفاده کنید
به یاد داشته باشید که همیشه اندازه متن را با واحدهای sp مشخص کنید . وقتی برنامه شما از واحدهای sp استفاده میکند، اندروید میتواند اندازه متن دلخواه کاربر را اعمال کرده و آن را به طور مناسب مقیاسبندی کند.
از واحدهای sp برای padding استفاده نکنید یا ارتفاع نما را با فرض padding ضمنی تعریف نکنید: با مقیاسبندی فونت غیرخطی، ابعاد sp ممکن است متناسب نباشند، بنابراین 4sp + 20sp ممکن است برابر با 24sp نباشد.
تبدیل واحدهای پیکسل مقیاسپذیر (sp)
از TypedValue.applyDimension() برای تبدیل از واحدهای sp به پیکسل و از TypedValue.deriveDimension() برای تبدیل پیکسل به sp استفاده کنید. این روشها منحنی مقیاسبندی غیرخطی مناسب را بهطور خودکار اعمال میکنند.
از کدگذاری معادلات با استفاده از Configuration.fontScale یا DisplayMetrics.scaledDensity خودداری کنید. از آنجا که مقیاسبندی فونت غیرخطی است، فیلد scaledDensity دیگر دقیق نیست. فیلد fontScale باید فقط برای اهداف اطلاعاتی استفاده شود زیرا فونتها دیگر با یک مقدار اسکالر واحد مقیاسبندی نمیشوند.
برای ارتفاع خط از واحدهای sp استفاده کنید
همیشه android:lineHeight با استفاده از واحدهای sp به جای dp تعریف کنید، تا ارتفاع خط همراه با متن شما تغییر کند. در غیر این صورت، اگر متن شما sp باشد اما lineHeight شما بر حسب dp یا px باشد، تغییر اندازه نمیدهد و کوچک به نظر میرسد. TextView به طور خودکار lineHeight را اصلاح میکند تا نسبتهای مورد نظر شما حفظ شود، اما فقط در صورتی که هم textSize و هم lineHeight بر حسب sp تعریف شده باشند.
دوربین و رسانه
فوق العاده HDR برای تصاویر
Android 14 新增了对高动态范围 (HDR) 图片的支持,可在拍摄照片时保留更多来自传感器的信息,从而实现鲜艳的色彩和更高的对比度。Android 使用 Ultra HDR 格式,该格式与 JPEG 图片完全向后兼容,可让应用与 HDR 图片无缝互操作,并根据需要以标准动态范围 (SDR) 显示这些图片。
当您的应用选择为其 activity 窗口使用 HDR 界面(通过清单条目或通过在运行时调用 Window.setColorMode())时,框架会自动在界面中以 HDR 格式渲染这些图片。您还可以在受支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,后期编辑的灵活性就越高。与 Ultra HDR 图片关联的 Gainmap 可用于使用 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 پیکربندی کنید. این کلاس فرمت، مانند ماسک کانال، نرخ نمونه و رفتار میکسر صدا را نشان می دهد. این کلاس امکان ارسال مستقیم صدا را بدون میکس، تنظیم صدا یا جلوه های پردازشی را فراهم می کند.
بهرهوری و ابزارهای توسعهدهندگان
مدیر اعتبارنامه
Android 14 Credential Manager را بهعنوان یک API پلتفرم اضافه میکند، با پشتیبانی اضافی به دستگاههای Android 4.4 (سطح API 19) از طریق کتابخانه Jetpack با استفاده از خدمات Google Play. هدف مدیر اعتبارنامه این است که ورود به سیستم را برای کاربران با APIهایی که اعتبارنامه ها را با ارائه دهندگان اعتبار پیکربندی شده توسط کاربر بازیابی و ذخیره می کنند، آسان کند. Credential Manager از چندین روش ورود به سیستم، از جمله نام کاربری و رمز عبور، کلیدهای عبور، و راه حل های ورود به سیستم فدرال (مانند ورود با Google) در یک API پشتیبانی می کند.
کلیدهای عبور مزایای زیادی دارند. برای مثال، کلیدهای عبور بر اساس استانداردهای صنعتی ساخته شدهاند ، میتوانند در سیستمعاملهای مختلف و اکوسیستمهای مرورگر کار کنند و میتوانند هم با وبسایتها و هم با برنامهها استفاده شوند.
برای اطلاعات بیشتر، به مستندات مدیریت اعتبار و کلیدهای عبور و پست وبلاگ درباره مدیر اعتبار و کلیدهای عبور مراجعه کنید.
ارتباط با سلامت
Health Connect 是用户健康与健身数据的设备端仓库。借助该功能,用户可以在一个位置控制要与这些应用共享哪些数据,并在自己喜爱的应用之间共享数据。
在搭载 Android 14 之前的 Android 版本的设备上,Health Connect 可作为应用从 Google Play 商店下载。从 Android 14 开始,Health Connect 将成为 Android 平台的一部分,并通过 Google Play 系统更新接收更新,而无需单独下载。这样一来,Health Connect 就可以频繁更新,您的应用可以依赖于搭载 Android 14 或更高版本的设备上提供的 Health Connect。用户可以通过设备的“设置”访问 Health Connect,隐私控制功能集成到系统设置中。
Health Connect 在 Android 14 中包含多项新功能,例如锻炼路线,可让用户分享可在地图上直观呈现的锻炼路线。路线定义为在一定时间范围内保存的位置列表,您的应用可以将路线插入锻炼时段,将它们关联起来。为确保用户能够完全控制此类敏感数据,用户必须允许与其他应用共享单个路线。
如需了解详情,请参阅 Health Connect 文档以及有关 Android Health 中的新功能的博文。
بهروزرسانیهای OpenJDK 17
Android 14 将继续更新 Android 的核心库,以与最新 OpenJDK LTS 版本中的功能保持一致,包括适合应用和平台开发者的库更新和 Java 17 语言支持。
其中包含以下功能和改进:
- 将大约 300 个
java.base类更新为支持 Java 17。 - 文本块 - 为 Java 编程语言引入了多行字符串字面量。
- instanceof 模式匹配:可让对象在
instanceof中被视为具有特定类型,而无需任何额外的变量。 - 密封类:允许您限制哪些类和接口可以扩展或实现它们。
得益于 Google Play 系统更新 (Project Mainline),6 亿多台设备能够接收包含这些更改的最新 Android 运行时 (ART) 更新。我们致力于为应用提供更加一致、安全的跨设备环境,并为用户提供独立于平台版本的新功能。
Java 和 OpenJDK 是 Oracle 及/或其关联公司的商标或注册商标。
بهبودهایی برای فروشگاههای اپلیکیشن
Android 14 چندین API PackageInstaller را معرفی می کند که به فروشگاه های برنامه اجازه می دهد تا تجربه کاربری خود را بهبود بخشند.
قبل از دانلود، تأیید نصب را درخواست کنید
نصب یا بهروزرسانی یک برنامه ممکن است به تأیید کاربر نیاز داشته باشد. به عنوان مثال، هنگامی که نصب کننده ای که از مجوز REQUEST_INSTALL_PACKAGES استفاده می کند، سعی می کند یک برنامه جدید را نصب کند. در نسخههای قبلی اندروید، فروشگاههای برنامه فقط میتوانند تأیید کاربر را پس از نوشتن فایلهای APK در جلسه نصب و انجام جلسه درخواست کنند.
با شروع Android 14، متد requestUserPreapproval() به نصبکنندگان این امکان را میدهد تا قبل از انجام جلسه نصب درخواست تأیید کاربر کنند. این بهبود به فروشگاه برنامه اجازه میدهد دانلود هر فایل APK را تا زمانی که نصب توسط کاربر تأیید شود به تعویق بیاندازد. علاوه بر این، هنگامی که کاربر نصب را تأیید کرد، فروشگاه برنامه میتواند برنامه را در پسزمینه دانلود و نصب کند بدون اینکه کاربر مزاحم شود.
مسئولیت به روز رسانی های آینده را به عهده بگیرید
متد setRequestUpdateOwnership() به نصب کننده اجازه می دهد تا به سیستم نشان دهد که قصد دارد مسئول به روز رسانی های بعدی برنامه ای باشد که در حال نصب است. این قابلیت اجرای مالکیت بهروزرسانی را فعال میکند، به این معنی که فقط مالک بهروزرسانی مجاز است بهروزرسانیهای خودکار را برای برنامه نصب کند. اجرای مالکیت بهروزرسانی کمک میکند تا اطمینان حاصل شود که کاربران بهروزرسانیها را فقط از فروشگاه برنامه مورد انتظار دریافت میکنند.
هر نصبکننده دیگری، از جمله کسانی که از مجوز INSTALL_PACKAGES استفاده میکنند، باید تأیید صریح کاربر را برای نصب بهروزرسانی دریافت کنند. اگر کاربری تصمیم بگیرد بهروزرسانی را از منبع دیگری ادامه دهد، مالکیت بهروزرسانی از بین میرود.
برنامهها را در زمانهای کمتر بهروزرسانی کنید
فروشگاههای برنامه معمولاً میخواهند از بهروزرسانی برنامهای که به طور فعال در حال استفاده است اجتناب کنند، زیرا این امر منجر به از بین رفتن فرآیندهای در حال اجرا برنامه میشود، که به طور بالقوه کاری را که کاربر انجام میداد قطع میکند.
با شروع Android 14، InstallConstraints API راهی را به نصبکنندگان میدهد تا اطمینان حاصل کنند که بهروزرسانیهای برنامهشان در یک لحظه مناسب انجام میشود. به عنوان مثال، یک فروشگاه برنامه می تواند متد commitSessionAfterInstallConstraintsAreMet() را فراخوانی کند تا مطمئن شود که به روز رسانی تنها زمانی انجام می شود که کاربر دیگر با برنامه مورد نظر تعامل نداشته باشد.
یکپارچه تقسیم های اختیاری را نصب کنید
با تقسیمبندی APK، ویژگیهای یک برنامه را میتوان در فایلهای APK جداگانه به جای یک APK یکپارچه ارائه کرد. Split APK به فروشگاههای برنامه اجازه میدهد تا تحویل اجزای مختلف برنامه را بهینه کنند. به عنوان مثال، فروشگاه های برنامه ممکن است بر اساس ویژگی های دستگاه مورد نظر بهینه سازی کنند. PackageInstaller API از زمان معرفی آن در سطح 22 API از تقسیمات پشتیبانی می کند.
در اندروید 14، متد setDontKillApp() به نصب کننده اجازه می دهد تا نشان دهد که فرآیندهای در حال اجرا برنامه نباید در هنگام نصب اسپلیت های جدید از بین بروند. فروشگاه های برنامه می توانند از این ویژگی برای نصب یکپارچه ویژگی های جدید یک برنامه در زمانی که کاربر از برنامه استفاده می کند استفاده کنند.
بستههای فراداده برنامه
从 Android 14 开始,Android 软件包安装程序可让您指定应用元数据(例如数据安全做法),以在 Google Play 等应用商店页面上架。
تشخیص زمان گرفتن اسکرینشات توسط کاربران
برای ایجاد یک تجربه استانداردتر برای تشخیص اسکرینشاتها، اندروید ۱۴ یک API تشخیص اسکرینشات با حفظ حریم خصوصی معرفی میکند. این API به برنامهها اجازه میدهد تا بر اساس هر فعالیت، فراخوانیهای برگشتی را ثبت کنند. این فراخوانیهای برگشتی هنگامی که کاربر در حالی که آن فعالیت قابل مشاهده است، اسکرینشات میگیرد، فراخوانی میشوند و به کاربر اطلاع داده میشود.
تجربه کاربری
اقدامات سفارشی Sharesheet و رتبهبندی بهبود یافته
Android 14 اشتراکگذاری سیستم را بهروزرسانی میکند تا از اقدامات برنامه سفارشی و نتایج پیشنمایش آموزندهتر برای کاربران پشتیبانی کند.
افزودن اقدامات سفارشی
با Android 14، برنامه شما میتواند اقدامات سفارشی را به صفحه اشتراک سیستمی که فراخوانی میکند اضافه کند .

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

پشتیبانی از انیمیشنهای داخلی و سفارشی برای پیشبینی بازگشت
اندروید 13 انیمیشن پیش بینی بازگشت به خانه را پشت گزینه توسعه دهنده معرفی کرد. هنگامی که در یک برنامه پشتیبانی شده با فعال بودن گزینه توسعه دهنده استفاده می شود، کشیدن انگشت به عقب انیمیشنی را نشان می دهد که نشان می دهد حرکت برگشت از برنامه به صفحه اصلی خارج می شود.
Android 14 شامل چندین بهبود و راهنمایی جدید برای Predictive Back است:
- میتوانید
android:enableOnBackInvokedCallback=trueبرای انتخاب انیمیشنهای پیشبینیکننده سیستم در هر فعالیت به جای کل برنامه تنظیم کنید. - انیمیشنهای سیستمی جدیدی را برای همراهی انیمیشن بازگشت به خانه از Android 13 اضافه کردهایم. انیمیشنهای سیستمی جدید متقاطع و متقاطع هستند که پس از مهاجرت به Predictive Back به صورت خودکار دریافت میکنید.
- ما انیمیشنهای Material Component جدید را برای صفحات پایین ، صفحات جانبی و جستجو اضافه کردهایم.
- ما راهنمای طراحی برای ایجاد انیمیشنها و انتقالهای درونبرنامه سفارشی ایجاد کردهایم.
- ما API های جدیدی را برای پشتیبانی از انیمیشن های انتقال درون برنامه ای سفارشی اضافه کرده ایم:
-
handleOnBackStarted،handleOnBackProgressed،handleOnBackCancelledinOnBackPressedCallback -
onBackStarted،onBackProgressed،onBackCancelledinOnBackAnimationCallback - از
overrideActivityTransitionبه جایoverridePendingTransitionبرای ترانزیشن هایی استفاده کنید که با کشیدن انگشت کاربر به عقب پاسخ می دهند.
-
با این نسخه پیشنمایش اندروید 14، تمام ویژگیهای Predictive Back پشت یک گزینه توسعهدهنده باقی میماند. راهنمای برنامهنویس برای انتقال برنامهتان به پیشبینی ، و همچنین راهنمای توسعهدهنده ایجاد انتقالهای سفارشی درونبرنامه را ببینید.
تولیدکنندهی دستگاههای دارای صفحه نمایش بزرگ، به ازای هر برنامه، لغو میکند
لغو هر برنامه به سازندگان دستگاه امکان می دهد تا رفتار برنامه ها را در دستگاه های صفحه بزرگ تغییر دهند. به عنوان مثال، لغو FORCE_RESIZE_APP به سیستم دستور میدهد تا اندازه برنامه را برای اندازهگیری ابعاد نمایش تغییر دهد (جلوگیری از حالت سازگاری با اندازه) حتی اگر resizeableActivity="false" در مانیفست برنامه تنظیم شده باشد.
لغوها برای بهبود تجربه کاربر در صفحه نمایش های بزرگ در نظر گرفته شده است.
ویژگیهای مانیفست جدید شما را قادر میسازد برخی از لغوهای سازنده دستگاه را برای برنامه خود غیرفعال کنید.
کاربر در هر برنامه با صفحه نمایش بزرگ، لغو میکند
لغو هر برنامه رفتار برنامه ها را در دستگاه های صفحه بزرگ تغییر می دهد. برای مثال، لغو OVERRIDE_MIN_ASPECT_RATIO_LARGE سازنده دستگاه، نسبت تصویر برنامه را بدون توجه به پیکربندی برنامه روی 16:9 تنظیم میکند.
Android 14 QPR1 کاربران را قادر میسازد تا با استفاده از منوی تنظیمات جدید در دستگاههای صفحهنمایش بزرگ، نادیدهگیریهای هر برنامه را اعمال کنند.
اشتراک گذاری صفحه نمایش برنامه
اشتراکگذاری صفحه برنامه به کاربران این امکان را میدهد تا در حین ضبط محتوای صفحه، یک پنجره برنامه را به جای کل صفحه دستگاه به اشتراک بگذارند.
با اشتراکگذاری صفحه برنامه، نوار وضعیت، نوار پیمایش، اعلانها و سایر عناصر رابط کاربری سیستم از صفحه نمایش مشترک حذف میشوند. فقط محتوای برنامه انتخابی به اشتراک گذاشته می شود.
اشتراکگذاری صفحهنمایش برنامه، بهرهوری و حریم خصوصی را بهبود میبخشد و به کاربران امکان میدهد چندین برنامه را اجرا کنند، اما اشتراکگذاری محتوا را به یک برنامه محدود میکند.
پاسخ هوشمند مبتنی بر LLM در Gboard در Pixel 8 Pro
در دستگاههای Pixel 8 Pro دارای ویژگی دسامبر، توسعهدهندگان میتوانند پاسخهای هوشمند با کیفیت بالاتر را در Gboard که توسط مدلهای زبان بزرگ (LLM) روی دستگاه اجرا میشوند در Google Tensor امتحان کنند.
این ویژگی به عنوان یک پیش نمایش محدود برای انگلیسی ایالات متحده در WhatsApp، Line و KakaoTalk در دسترس است. برای این کار باید از دستگاه Pixel 8 Pro با Gboard به عنوان صفحه کلید استفاده کنید.
برای امتحان کردن، ابتدا این ویژگی را در تنظیمات > گزینههای برنامهنویس > تنظیمات AiCore > فعال کردن Aicore Persistent فعال کنید.
سپس، مکالمهای را در یک برنامه پشتیبانیشده باز کنید تا پاسخ هوشمند مبتنی بر LLM را در نوار پیشنهادی Gboard در پاسخ به پیامهای دریافتی ببینید.
گرافیک
مسیرها قابل پرسوجو و درونیابی هستند
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 برای ترسیم با تأخیر کم باشد.