نمای کلی ویژگی ها و API ها

اندروید ۱۴ ویژگی‌ها و 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 صرف دستوری

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.

دسترسی‌پذیری

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

با شروع از اندروید ۱۴، این سیستم از مقیاس‌بندی فونت تا ۲۰۰٪ پشتیبانی می‌کند و گزینه‌های دسترسی بیشتری را در اختیار کاربران قرار می‌دهد.

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

اپلیکیشن خود را با مقیاس‌بندی فونت غیرخطی آزمایش کنید

برای آزمایش برنامه، حداکثر اندازه فونت را در تنظیمات دسترسی دستگاه فعال کنید.

اگر از قبل از واحدهای پیکسل‌های مقیاس‌پذیر (sp) برای تعریف اندازه متن استفاده می‌کنید، این گزینه‌های اضافی و بهبودهای مقیاس‌بندی به طور خودکار روی متن برنامه شما اعمال می‌شوند. با این حال، شما همچنان باید تست رابط کاربری را با حداکثر اندازه فونت فعال (200٪) انجام دهید تا مطمئن شوید که برنامه شما اندازه فونت‌ها را به درستی اعمال می‌کند و می‌تواند اندازه فونت‌های بزرگتر را بدون تأثیر بر قابلیت استفاده، در خود جای دهد.

برای فعال کردن اندازه فونت ۲۰۰٪، این مراحل را دنبال کنید:

  1. برنامه تنظیمات را باز کنید و به بخش دسترسی‌ها > اندازه و متن نمایش بروید.
  2. برای گزینه اندازه فونت ، روی نماد به علاوه (+) ضربه بزنید تا حداکثر تنظیم اندازه فونت فعال شود، همانطور که در تصویر همراه این بخش نشان داده شده است.

برای اندازه متن از واحدهای پیکسل مقیاس‌بندی‌شده (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 برای تصاویر

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 14 adds support for High Dynamic Range (HDR) images that retain more of the information from the sensor when taking a photo, which enables vibrant colors and greater contrast. Android uses the Ultra HDR format, which is fully backward compatible with JPEG images, allowing apps to seamlessly interoperate with HDR images, displaying them in Standard Dynamic Range (SDR) as needed.

Rendering these images in the UI in HDR is done automatically by the framework when your app opts in to using HDR UI for its Activity Window, either through a manifest entry or at runtime by calling Window.setColorMode(). You can also capture compressed Ultra HDR still images on supported devices. With more colors recovered from the sensor, editing in post can be more flexible. The Gainmap associated with Ultra HDR images can be used to render them using OpenGL or 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 بدون افت کیفیت

Android 14 gains support for lossless audio formats for audiophile-level experiences over USB wired headsets. You can query a USB device for its preferred mixer attributes, register a listener for changes in preferred mixer attributes, and configure mixer attributes using the AudioMixerAttributes class. This class represents the format, such as channel mask, sample rate, and behavior of the audio mixer. The class allows for audio to be sent directly, without mixing, volume adjustment, or processing effects.

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

مدیر اعتبارنامه

Android 14 Credential Manager را به‌عنوان یک API پلتفرم اضافه می‌کند، با پشتیبانی اضافی به دستگاه‌های Android 4.4 (سطح API 19) از طریق کتابخانه Jetpack با استفاده از خدمات Google Play. هدف مدیر اعتبارنامه این است که ورود به سیستم را برای کاربران با APIهایی که اعتبارنامه ها را با ارائه دهندگان اعتبار پیکربندی شده توسط کاربر بازیابی و ذخیره می کنند، آسان کند. Credential Manager از چندین روش ورود به سیستم، از جمله نام کاربری و رمز عبور، کلیدهای عبور، و راه حل های ورود به سیستم فدرال (مانند ورود با Google) در یک API پشتیبانی می کند.

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

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

ارتباط با سلامت

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.

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

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.

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

برای ایجاد یک تجربه استانداردتر برای تشخیص اسکرین‌شات‌ها، اندروید ۱۴ یک API تشخیص اسکرین‌شات با حفظ حریم خصوصی معرفی می‌کند. این API به برنامه‌ها اجازه می‌دهد تا بر اساس هر فعالیت، فراخوانی‌های برگشتی را ثبت کنند. این فراخوانی‌های برگشتی هنگامی که کاربر در حالی که آن فعالیت قابل مشاهده است، اسکرین‌شات می‌گیرد، فراخوانی می‌شوند و به کاربر اطلاع داده می‌شود.

تجربه کاربری

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

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 کاربران را قادر می‌سازد تا با استفاده از منوی تنظیمات جدید در دستگاه‌های صفحه‌نمایش بزرگ، نادیده‌گیری‌های هر برنامه را اعمال کنند.

اشتراک گذاری صفحه نمایش برنامه

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

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

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

پاسخ هوشمند مبتنی بر LLM در 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 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.

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

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

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

رندرکننده بافر سخت‌افزاری برای Canvas

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