یادداشت های انتشار اندروید 10

این صفحه ویژگی های اصلی نسخه اندروید 10 را خلاصه می کند و پیوندهایی به اطلاعات اضافی ارائه می دهد. این خلاصه ویژگی ها بر اساس مکان مستندات ویژگی در این سایت سازماندهی شده اند.

ساخت

java_sdk_library

اندروید 10 java_sdk_library معرفی می‌کند، یک قانون ساخت جدید برای رفع مشکلات سازگاری برای کتابخانه‌های مشترک جاوا. سازندگان دستگاه‌ها می‌توانند از این مکانیسم برای کتابخانه‌های جاوای مشترک خود برای حفظ سازگاری با APIهای خود استفاده کنند.

معماری

اجزای سیستم مدولار

اندروید 10 برخی از اجزای سیستم اندروید را ماژولار می کند و آنها را قادر می سازد خارج از چرخه انتشار عادی اندروید به روز شوند. برخی از ماژول ها عبارتند از:

لایه انتزاعی سخت افزاری (HAL)

اندروید 10 پشتیبانی از HAL ها را اضافه می کند تا در صورت نداشتن کلاینت به طور خودکار خاموش شوند .

هسته

ABI

Android 10 شامل پشتیبانی از ابزارهای نظارتی جدید ABI برای کمک به مقایسه، ردیابی و کاهش تغییرات ABI هسته است که بر سازگاری با ماژول‌های هسته تأثیر می‌گذارد.

اندروید 10 همچنین یک بررسی کننده استفاده از ABI مبتنی بر نماد را معرفی می کند. جستجوگر می تواند باینری های از پیش ساخته شده قدیمی را در زمان ساخت شناسایی کند، به طوری که توسعه دهندگان کتابخانه مشترک می توانند بدانند کدام باینری های از پیش ساخته شده ممکن است با تغییرشان شکسته شوند و کدام باینری های از پیش ساخته شده باید دوباره ساخته شوند.

Android Live-Lock Daemon

Android 10 شامل Android Live-Lock Daemon (llkd) است که برای گرفتن و کاهش بن بست های هسته طراحی شده است.

vDSO32 در ARM64

اندروید 10 از استفاده از vDSO32 بر روی هسته های 64 بیتی پشتیبانی می کند که باعث افزایش 0.4 درصدی عمر باتری و سایر بهبودهای عملکرد می شود.

ورودی های fstab برای پارتیشن های نصب شده اولیه

اندروید 10 به دستگاه ها نیاز دارد که ورودی های fstab را برای پارتیشن های نصب شده اولیه با استفاده از یک فایل fstab در مرحله اول ramdisk مشخص کنند.

HIDL

Offload BroadcastQueue

اندروید 10 شامل یک بارگذاری جدید BroadcastQueue به صف‌های پس‌زمینه و پیش‌زمینه موجود است. صف تخلیه دارای اولویت و رفتار مهلت زمانی مشابه صف پس‌زمینه است. برای جلوگیری از مسدود شدن صف پس‌زمینه، جایی که پخش‌های جالب‌تر یا قابل مشاهده‌تر توسط کاربر ممکن است اتفاق بیفتد، صف offload پخش BOOT_COMPLETED را مدیریت می‌کند، که بسیاری از برنامه‌ها به آن گوش می‌دهند و ممکن است مدت زیادی طول بکشد تا تکمیل شود. صف Offload در حال حاضر فقط پخش BOOT_COMPLETED را انجام می دهد، اما به طور بالقوه می تواند پخش طولانی دیگر را انجام دهد.

سرویس SystemSuspend

Android 10 رشته ای را در libsuspend که مسئول شروع تعلیق سیستم است با سرویس SystemSuspend HIDL جایگزین می کند. این پیاده سازی عملکردی معادل نسخه های قبلی را ارائه می دهد و در عین حال از مزایای زیرساخت Android HIDL بهره می برد.

safe_union در HIDL

Android 10 safe_union معرفی می‌کند، یک نوع اتحادیه با برچسب صریح، در HIDL.

پیکربندی

ConfigStore HAL

اندروید 10 به دلیل مصرف زیاد حافظه و استفاده دشوار، ConfigStore HAL را منسوخ می‌کند و ویژگی‌های سیستم را جایگزین HAL می‌کند.

Config File Schema API

پلتفرم اندروید حاوی تعداد زیادی فایل XML برای ذخیره داده های پیکربندی است. بسیاری از فایل های XML در پارتیشن vendor هستند، اما در پارتیشن system خوانده می شوند. در این مورد، طرح فایل XML به عنوان رابط بین دو پارتیشن عمل می کند، و بنابراین طرحواره باید به صراحت مشخص شود و باید به شیوه ای سازگار با عقب تکامل یابد. قبل از اندروید 10، این پلتفرم مکانیسم‌هایی را برای نیاز به تعیین و استفاده از طرحواره XML یا جلوگیری از تغییرات ناسازگار در طرح ارائه نمی‌کرد. اندروید 10 این مکانیسم را به نام Config File Schema API ارائه می‌کند.

ویژگی های سیستم به عنوان API

ویژگی‌های سیستمی که از طریق پارتیشن‌ها به آن‌ها دسترسی پیدا می‌کنند، در فایل‌های توضیحات sysprop شمات می‌شوند و APIها برای دسترسی به ویژگی‌ها به عنوان توابع مشخص برای C++ و کلاس‌ها برای جاوا تولید می‌شوند.

شیء رابط فروشنده (VINTF).

VINTF

تغییرات VINTF در اندروید 10 عبارتند از:

  • منسوخ شدن برچسب های نسخه AVB
  • افزودن اطلاعات هسته در بسته های OTA
  • ساخت ODM به طور رسمی آشکار می شود
  • افزودن ماتریس سازگاری محصول
  • ارتباط یک ورودی مانیفست با یک ماژول HAL در سیستم ساخت

بوت لودر

رامدیسک

در اندروید 10، سیستم فایل ریشه دیگر در ramdisk.img گنجانده نمی شود و در عوض در system.img ادغام می شود.

ساخت پارتیشن های ODM

اندروید 10 شامل پشتیبانی از ساخت پارتیشن های odm با استفاده از سیستم ساخت اندروید است. می‌توانید از یک پارتیشن /odm جداگانه برای سفارشی‌سازی‌ها استفاده کنید، که به شما امکان می‌دهد از یک تصویر فروشنده برای چندین SKU سخت‌افزاری استفاده کنید. این به تولیدکنندگان طراحی اصلی (ODM) امکان می‌دهد تا بسته‌های پشتیبانی برد فروشنده (BSPs) سیستم روی تراشه (SoC) را برای دستگاه‌های خاص خود (بردهایشان) سفارشی کنند. آن‌ها می‌توانند ماژول‌های هسته را برای اجزای برد خاص، دیمون‌های مخصوص برد یا ویژگی‌های خودشان بر روی لایه‌های انتزاعی سخت‌افزاری (HAL) پیاده‌سازی کنند. آنها همچنین ممکن است اجزای SoC را جایگزین یا سفارشی کنند.

نسخه هدر تصویر را بوت کنید

اندروید 10 هدر تصویر بوت را به نسخه 2 به روز می کند که شامل بخشی برای ذخیره تصویر حباب درخت دستگاه (DTB) است. تست‌های Android 10 VTS تأیید می‌کنند که همه دستگاه‌هایی که با Android 10 راه‌اندازی می‌شوند از هدر تصویر بوت نسخه 2 استفاده می‌کنند و یک تصویر DTB معتبر به‌عنوان بخشی از تصاویر راه‌اندازی/بازیابی دارند.

بازیابی تصاویر برای دستگاه های غیر A/B

در اندروید 9 و بالاتر، تصویر بازیابی دستگاه باید حاوی اطلاعاتی از تصویر همپوشانی باشد . سازندگان دستگاه می توانند از DeviceTree یا Advanced Configuration and Power Interface (ACPI) برای توصیف همه دستگاه های غیرقابل کشف استفاده کنند. Android 10 و بالاتر شامل پشتیبانی از معماری هایی است که به جای DeviceTree blob برای پوشش (DTBO) از ACPI استفاده می کنند.

AIDL پایدار

Android 10 پشتیبانی از زبان تعریف رابط اندروید (AIDL) را اضافه می کند، روشی جدید برای پیگیری رابط برنامه کاربردی (API)/رابط باینری برنامه (ABI) ارائه شده توسط رابط های AIDL.

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

اندروید 10 با جابجایی اجرای fastboot از بوت لودر به فضای کاربری، پشتیبانی از پارتیشن‌های قابل تغییر اندازه را اضافه می‌کند.

نمایش

پخش ویدئو HDR

اندروید 10 از پخش HDR10، VP9 و HDR10+ پشتیبانی می‌کند.

طبقه بندی متن

طبقه بندی متن از تکنیک های یادگیری ماشینی برای کمک به توسعه دهندگان در طبقه بندی متن استفاده می کند. اندروید 10 دو روش را به TextClassifier API معرفی می کند: suggestConversationActions و detectLanguage . روش suggestConversationActions پاسخ‌ها و اقدامات پیشنهادی را از یک مکالمه مشخص می‌کند و روش detectLanguage زبان متن را تشخیص می‌دهد.

پشتیبانی از رندر فونت Zawgyi

Zawgyi محبوب ترین فونت در میانمار است. اندروید 9 و پایین‌تر از رندر Zawgyi پشتیبانی نمی‌کند زیرا با یونیکد سازگار نیست . اندروید 10 با گنجاندن فونت یونیکد که قادر به رندر کردن یونیکد برمه ای و زاوگی با هم است، این مشکل را برطرف می کند. برای پشتیبانی از رندر فونت Zawgyi در دستگاه‌هایی که با Android 10 راه‌اندازی می‌شوند، هیچ کار پیاده‌سازی لازم نیست. اگر دستگاه‌های شما یک پیاده‌سازی سفارشی برای پشتیبانی از Zawgyi دارند، می‌توانید:

  • آن تغییرات را برگردانید و از روش پشتیبانی شده از پلتفرم استفاده کنید.
  • فونت رایج Zawgyi را در سیستم خود نگه دارید و از کد محلی my-qaag در fonts.xml خود استفاده کنید. برای اطلاعات بیشتر، به یادداشت‌های انتشار Unicode CLDR در Zawgyi (Qaag) مراجعه کنید.

محدودیت های پنهان کردن آیکون های برنامه

اندروید 10 توانایی برنامه‌ها برای مخفی کردن نمادهای راه‌انداز خود را محدود می‌کند. اگر یک برنامه فعالیت راه‌انداز را فعال نکرده باشد، سیستم یک فعالیت ترکیبی را در راه‌انداز نمایش می‌دهد. این فعالیت ترکیبی صفحه جزئیات برنامه را در تنظیمات سیستم نشان می دهد.

برای اطلاعات بیشتر در مورد منطق مورد استفاده برای نمایش نمادهای برنامه، از جمله انواع برنامه هایی که نمادهای برنامه آنها نشان داده نمی شود، به مستندات getActivityList() در مرجع API مراجعه کنید.

تنظیمات

برای بهبود دسترس‌پذیری، Android 10 شامل تنظیمات زمان‌بندی قابل تنظیم توسط کاربر است. تغییرات API و تنظیمات با Android 10 ارائه می‌شوند. اگر تنظیمات خود را سفارشی می‌کنید، مطمئن شوید که این ویژگی پشتیبانی می‌شود. اگر عناصر رابط کاربری دارید که در دستگاه شما زمان اتمام آنها به پایان می رسد، از API وقفه در آن استفاده کنید. برای اطلاعات بیشتر، دستورالعمل‌های دسترسی برنامه‌نویس Android را ببینید.

سازگاری

سند تعریف سازگاری اندروید (CDD)

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

تست ها

مجموعه تست سازگاری (CTS)

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

دانلودهای CTS

بسته های CTS که از اندروید 10 پشتیبانی می کنند در صفحه دانلودهای CTS موجود هستند. کد منبع برای تست های ارائه شده را می توان با تگ android-cts-10_r1 در درخت منبع باز همگام سازی کرد.

CTS شیم APEX

اندروید 10 بسته‌ای به نام CtsShimApex را معرفی می‌کند که برای نوشتن تست‌های CTS برای مدیریت APEX باید از قبل روی دستگاه نصب شود.

حالت مهار تست

حالت مهار تست CTS به توسعه دهندگان کمک می کند تا تست یک دستگاه یا ناوگانی از دستگاه ها را خودکار کنند.

حالت برنامه های فوری

با شروع Android 10، CTS در حالت برنامه‌های فوری اجرا می‌شود، به این معنی که APK آزمایشی را به‌عنوان یک برنامه فوری نصب کنید و آزمایش‌ها را اجرا کنید.

علاوه بر حالت CTS برای برنامه‌های فوری، اندروید 10 دارای تأییدکننده CTS برای برنامه‌های فوری است.

تست صوتی CTS Verifier pro

Android 10 یک آزمایش تأییدکننده CTS برای سازگاری Pro Audio اضافه می‌کند.

تست های MIDI تایید کننده CTS

در Android 10، تست CTS Verifier MIDI عملکرد MIDI را با رابط های USB MIDI، رابط های MIDI بلوتوث و یک مسیر دستگاه MIDI مجازی آزمایش می کند.

تفسیر تست CTS

اندروید 10 مکانیسم تفسیر نتایج CTS را به روز می کند.

مجموعه تست فروشنده (VTS)

تست VTS با دیباگ ramdisk

در اندروید 10، تصویر سیستم عمومی (GSI) مورد استفاده برای اجرای تست انطباق CTS-on-GSI/VTS از userdebug به نوع ساخت کاربر تغییر می کند، زیرا GSI دارای امضای انتشار است. با این حال، دستور adb root که به یک میزبان مجوزهای root را به دستگاه اندرویدی تحت آزمایش می دهد، در ساخت کاربر موجود نیست. این یک مشکل است زیرا VTS برای اجرا adb root نیاز دارد.

ramdisk اشکال زدایی برای ایجاد adb root در صورت باز بودن قفل دستگاه معرفی شده است. این امر با استفاده مجدد از همان ساخت کاربر system.img (یا GSI یا system.img OEM) جریان آزمایش را ساده می‌کند.

اعتبار سنجی آهنگساز سخت افزار

اندروید 10 یک کلاس تست VTS جدید برای اعتبارسنجی Hardware Composer از طریق رابط readback در IComposerClient.hal اضافه می‌کند. اگر فروشندگان readback پیاده سازی نکنند، آزمایش ها به طور خودکار انجام می شود.

اشکال زدایی

کتابخانه های مشترک را با بارگذارهای کلاس مختلف بارگیری کنید

در اندروید 9 و نسخه‌های پایین‌تر، برنامه‌ها کتابخانه‌های مشترک جاوای مرتبط خود را در بارگیری کلاس برنامه بارگیری کردند. در Android 10، این فریم ورک از یک بارکننده کلاس متفاوت از بارکننده کلاس برنامه برای بارگیری کتابخانه های مشترک جاوا که از طریق uses-library یا uses-static-library مرتبط هستند، استفاده می کند.

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

سازندگان دستگاه ممکن است هنگام آزمایش دستگاه های خود که دارای Android 10 هستند، مشکلات سازگاری برنامه را ببینند.

ویژگی های امنیتی

برای فهرست کامل‌تری از پیشرفت‌های مربوط به امنیت و حریم خصوصی، صفحه پیشرفت‌های امنیتی و حریم خصوصی Android 10 را ببینید.

احراز هویت چهره

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

دسترسی گسترده

عوامل اعتماد، مکانیسم اساسی که توسط مکانیسم‌های احراز هویت ثالث مانند قفل هوشمند استفاده می‌شود، فقط می‌تواند در Android 10 بازگشایی شود. نمایندگان اعتماد دیگر نمی‌توانند قفل دستگاه قفل شده را باز کنند و فقط می‌توانند دستگاه را حداکثر تا چهار ساعت باز نگه دارند.

رمزگذاری

OEMCrypto

اندروید 10 از OEMCrypto API نسخه 15 استفاده می کند.

تست کردن

ضدعفونی کننده مرزها

اندروید 10 از BoundsSanitizer (BoundSan) در بلوتوث و کدک ها استفاده می کند. BoundSan از ضدعفونی کننده محدوده UBSan استفاده می کند. این کاهش در سطح هر ماژول فعال است. این کمک می کند تا اجزای حیاتی اندروید را ایمن نگه دارد و نباید غیرفعال شود. BoundSan در کدک های زیر فعال است:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

پاکسازی سرریز عدد صحیح

اندروید 10 پاکسازی سرریز عدد صحیح (IntSan) را در کدک های نرم افزاری فعال می کند. مطمئن شوید که عملکرد پخش برای کدک‌هایی که در سخت‌افزار دستگاه پشتیبانی نمی‌شوند، قابل قبول است. IntSan در کدک های زیر فعال است:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

حافظه فقط اجرا

به‌طور پیش‌فرض، بخش‌های کد اجرایی برای باینری‌های سیستم AArch64 فقط اجرا (غیرقابل خواندن) به‌عنوان یک کاهش سخت‌تر در برابر حملات استفاده مجدد از کد به‌موقع علامت‌گذاری می‌شوند. کدی که داده‌ها و کدها را با هم ترکیب می‌کند و کدهایی که به طور هدفمند این بخش‌ها را بررسی می‌کنند (بدون اینکه ابتدا بخش‌های حافظه را به‌عنوان قابل خواندن دوباره نقشه‌برداری کنند) دیگر عمل نمی‌کنند. اگر برنامه بخواهد بخش‌های کد کتابخانه‌های سیستم فقط اجرا (XOM) را در حافظه بخواند، بدون اینکه ابتدا بخش را به‌عنوان خوانا علامت‌گذاری کند، برنامه‌های دارای SDK هدف Android 10 (سطح API 29 یا بالاتر) تحت تأثیر قرار می‌گیرند.

اسکودو

Scudo یک تخصیص دهنده حافظه پویا در حالت کاربر است که به گونه ای طراحی شده است که در برابر آسیب پذیری های مرتبط با heap انعطاف پذیرتر باشد. این استانداردهای اولیه تخصیص و توزیع C و همچنین C++ اولیه را ارائه می دهد.

ShadowCallStack

ShadowCallStack (SCS) یک حالت ابزار دقیق LLVM است که با ذخیره آدرس بازگشتی یک تابع در یک نمونه ShadowCallStack به طور جداگانه در پیش‌نویس توابع غیربرگی و بارگیری آدرس برگشتی از نمونه ShadowCallStack در برابر بازنویسی آدرس برگشتی (مانند سرریزهای بافر پشته) محافظت می‌کند. اپیلوگ عملکرد

صوتی

HAL صوتی

اندروید 10 شامل قابلیت های جدید زیر برای HAL صوتی است.

  • AudioSource
  • AudioFormat
  • AudioChannelMask

الزامات اضافی برای اجرای HAL صوتی و زیرسیستم اضافه شده است.

اثرات پیش پردازش

اندروید افکت‌های پیش‌پردازش را ارائه می‌کند، مانند لغو اکو آکوستیک، کنترل بهره‌گیری خودکار، و سرکوب نویز. Android 10 شامل الزامات جدیدی برای عکسبرداری با VOICE_COMMUNICATION است.

مدیر خط مشی صوتی

اندروید 10 شامل بازسازی قابل توجهی از مدیر خط مشی صدا برای ارائه انعطاف پذیری بیشتر برای پشتیبانی از موارد استفاده پیچیده از خودرو است.

صدای با وضوح بالا

اندروید 10 شامل بهبودهای زیر برای صدای با وضوح بالا است.

  • پشتیبانی شناور
  • پشتیبانی از فرکانس 192 کیلوهرتز
  • پشتیبانی هشت کاناله
  • گنجاندن اطلاعات زمان بندی

ضبط همزمان

Android 10 تجربه کاربر ضبط همزمان را بهبود می بخشد که به بیش از یک ضبط صوتی فعال به طور همزمان نیاز دارد.

AudioPlaybackCapture

اندروید 10 حاوی یک API جدید به نام AudioPlaybackCapture است که به برنامه‌ها این امکان را می‌دهد تا صدای پخش شده توسط برنامه‌های دیگر را کپی کنند. این ویژگی مشابه تصویربرداری از صفحه نمایش است، اما برای صدا. مورد استفاده اصلی این است که برنامه های پخش جریانی را فعال کنید تا صدایی را که بازی ها پخش می کنند ضبط کنند.

API ضبط بر تأخیر برنامه ای که صدای آن ضبط می شود تأثیر نمی گذارد.

MIDI

Android 10 انتقال برنامه های صوتی حرفه ای با استفاده از MIDI را به پلتفرم اندروید با استفاده از AMidi NDK API آسان می کند.

دوربین

برای خلاصه‌ای از تغییرات ایجاد شده در دوربین API، دوربین HAL و ماژول دوربین معرفی‌شده در اندروید 10، به‌روزرسانی‌های دوربین Android 10 را ببینید.

بهبود حریم خصوصی چارچوب دوربین

اندروید 10 بهبودهای حریم خصوصی را در چارچوب دوربین معرفی می کند. برای جلوگیری از افشای اطلاعات بالقوه حساس دوربین استاتیک در CameraCharacteristics بدون رضایت کاربر، برنامه‌ها باید مجوز CAMERA را برای بازیابی فراداده استاتیک با یک برچسب حساس به حریم خصوصی با استفاده از روش getCameraCharacteristics دریافت کنند.

برای دریافت لیستی از کلیدهای مشخصه دوربین که به مجوز CAMERA نیاز دارند، روش getKeysNeedingPermission فراخوانی کنید.

جستار پیکربندی مجدد جلسه

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

APIهای مدیریت بافر دوربین HAL3

اندروید 10 APIهای اختیاری مدیریت بافر دوربین HAL3 را معرفی می کند که به شما امکان می دهد منطق مدیریت بافر را برای دستیابی به حافظه های مختلف و ثبت معاوضه تاخیر در اجرای HAL دوربین پیاده سازی کنید.

سوئیچ دوربین فیزیکی پویا دوربین HAL

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

پشتیبانی از مخفی کردن دوربین های فیزیکی

در اندروید 10، دوربین HAL می‌تواند تعداد دوربین‌های فیزیکی را که مستقیماً توسط یک برنامه باز می‌شوند، کاهش دهد. برای جزئیات بیشتر، به پشتیبانی از چند دوربین مراجعه کنید.

Camera2 VNDK API

در Android 10، ماژول‌های فروشنده می‌توانند از طریق دو رابط استاندارد HIDL جدید، android.frameworks.cameraservice.service@2.0 و android.frameworks.cameraservice.device@2.0 ، به دستگاه‌های دوربین دسترسی پیدا کرده و آن‌ها را کنترل کنند. برای راحت‌تر کردن استفاده از رابط‌های HIDL، Android 10 یک کتابخانه در دسترس فروشنده، libcamera2_vendor نیز معرفی می‌کند. این کتابخانه مشابه کتابخانه Camera NDK است، با چند تغییر جزئی.

تنظیمات جریان

Android 10 ویژگی‌هایی را اضافه می‌کند که به فروشندگان دوربین اجازه می‌دهد جریان‌های پیشنهادی دوربین را برای مشتریان دوربین تبلیغ کنند و از یک API برای جستجوی ترکیب‌های جریان پشتیبانی کنند.

الزامات ترکیب جریان دوربین

دستگاه‌های دارای Android 10 دیگر نیازی به پشتیبانی از ترکیب‌های جریان با جریان‌های فیزیکی زیر دوربین ندارند. با این حال، دستگاه‌های دارای Android 10 با دوربین دستگاه HAL نسخه 3.5 باید از isStreamCombinationSupported() پشتیبانی کنند تا به برنامه‌ها اجازه دهند پرس و جو کنند که آیا ترکیبی از جریان حاوی جریان‌های فیزیکی پشتیبانی می‌شود یا خیر.

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

تصویربرداری HEIF

اندروید 10 برای تصاویر با فرمت فایل تصویری با کارایی بالا (HEIF) پشتیبانی می‌کند که کیفیت تصویر بهبود یافته و اندازه‌های کوچک‌تر را نسبت به تصاویر JPEG ارائه می‌دهد. دستگاه ها باید دارای رمزگذار HEIC یا HEVC برای پشتیبانی از تصاویر HEIF باشند.

دوربین های تک رنگ

اندروید 10 پشتیبانی بیشتری از فرمت پخش جریانی Y8، ابرداده‌های استاتیک فیلتر رنگی تک رنگ و مادون قرمز نزدیک (NIR) و عملکردهای DngCreator برای دوربین‌های تک رنگ ارائه می‌کند.

قابلیت اتصال

تماس و پیام

شماره های اضطراری و تماس اضطراری

Android 10 پشتیبانی بهبود یافته ای را برای تماس اضطراری ارائه می دهد. در مواقع اضطراری، دستگاه‌هایی که از IRadio HAL نسخه 1.4 پشتیبانی می‌کنند، می‌توانند با استفاده از شماره‌های اضطراری بازیابی شده از منبعی مانند سیم‌کارت، سیگنال شبکه یا پایگاه داده Android، تماس اضطراری را آغاز کنند. اعداد را می توان بر اساس دسته های خدمات اضطراری مانند پلیس، آتش نشانی و آمبولانس دسته بندی کرد.

APIهای تماس گروهی

APIهای تماس گروهی توسعه‌ای از APIهای eMBMS هستند که در Android 9 اضافه شده‌اند. APIهای جدید استانداردی را برای برنامه‌ها برای پیوستن و پخش در تماس‌های گروهی پخش سلولی از طریق تعامل با بسته‌های میان‌افزار eMBMS تعریف می‌کنند. تماس های گروهی برای عملکرد صحیح نیاز به پشتیبانی از فروشنده چیپ ست، فروشنده میان افزار و حامل سلولی دارند. اسناد برنامه‌نویس در developer.google.com قرار دارد.

قابلیت سیم کارت از راه دور

اندروید 10 قابلیت‌های سیم‌کارت از راه دور را معرفی می‌کند که به برنامه‌های پیام‌رسان در دستگاه میزبان اندروید اجازه می‌دهد پیام‌های SMS را از طریق تلفن‌ها با استفاده از مکانیسم‌هایی مانند بلوتوث ارسال کنند. برای اطلاعات بیشتر، به مستندات مرجع برای روش getSubscriptionType و ثابت SUBSCRIPTION_TYPE_REMOTE_SIM مراجعه کنید.

چند eSIM

در Android 10، کلاس EuiccManager از دستگاه‌هایی با چند سیم‌کارت جاسازی‌شده (eSIM) یا eUICC پشتیبانی می‌کند.

به روز رسانی eSIM

برای دستگاه‌های دارای Android 10 که از سیم‌کارت‌های الکترونیکی پشتیبانی می‌کنند، باید آرایه شناسه اسلات eUICC غیرقابل جابجایی تعریف شود. دستگاه ها همچنین باید IRadio HAL v1.4 و IRadioConfig HAL v1.2 را پشتیبانی کنند. برای اطلاعات بیشتر، به اجرای الزامات eSIM و HAL مراجعه کنید.

5G غیر مستقل (NSA)

اندروید 10 پشتیبانی از 5G غیر مستقل (NSA) را اضافه می کند. 5G NSA راه حلی برای شبکه های 5G است که در آن شبکه توسط زیرساخت 4G موجود پشتیبانی می شود. در اندروید 10، وقتی دستگاهی به شبکه 5G متصل می شود، دستگاه ها می توانند نماد 5G را در نوار وضعیت نمایش دهند.

پیشنهاد حساب تلفن

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

حامل

انتقال تنظیمات شبکه تلفن همراه

اندروید 10 کد UI تنظیمات شبکه تلفن همراه را مجدداً معماری کرد و آن را از پشته تلفن به پشته تنظیمات منتقل کرد. برای پشتیبانی از کد انتقال یافته، مقادیر پیکربندی تنظیمات شبکه موبایل زیر را از منابع Android به منابع CarrierConfig تغییر دهید:

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

شناسه های دستگاه

شناسه‌های دائمی دستگاه (IMEI/MEID، IMSI، و سریال ساخت) توسط یک مجوز ممتاز محافظت می‌شوند و به برنامه‌های مالک دستگاه و نمایه نیز دسترسی داده شده است. از آنجایی که شماره سریال IMSI و سیم کارت توسط شرکت مخابراتی ارائه شده است، دسترسی به این شناسه ها به بسته هایی با امتیازات اپراتور اعطا می شود.

وای فای

انتخاب شبکه

اندروید به طور مداوم کیفیت شبکه متصل را ارزیابی می کند و کیفیت شبکه های موجود را ارزیابی می کند. اندروید 10 الگوریتم‌ها و رویه‌هایی را برای انتخاب و جابه‌جایی بین شبکه‌های Wi-Fi به‌روزرسانی کرده است.

اسکن تخلیه بار شبکه ترجیحی Wi-Fi

Android 10 یک روش API اختیاری به نام setDeviceMobilityState() را در WifiManager معرفی می‌کند که فاصله بین اسکن‌های تخلیه شبکه ترجیحی (PNO) را در زمانی که دستگاه ثابت است افزایش می‌دهد تا مصرف انرژی را کاهش دهد.

وای فای حامل

در Android 10، دستگاه‌های دارای ویژگی Wi-Fi شرکت مخابراتی به‌طور خودکار به شبکه‌های Wi-Fi شرکت مخابراتی پیکربندی شده (شبکه‌هایی با گواهی‌های کلید عمومی) متصل می‌شوند.

Wi-Fi Easy Connect

در Android 10، دستگاه‌ها می‌توانند از Wi-Fi Easy Connect استفاده کنند که از پروتکل تأمین دستگاه (DPP) معرفی شده توسط Wi-Fi Alliance (WFA) برای تهیه و پیکربندی دستگاه‌های Wi-Fi استفاده می‌کند.

حالت تأخیر کم وای فای

اندروید 10 حالت کم تأخیر وای فای را معرفی می کند که تراشه وای فای را برای کاهش تأخیر پیکربندی می کند.

سرور DHCP به روز شد

به عنوان بخشی از تشکیل یک چتر سرویس "IP Server"، dnsmasq در حال حذف است. Android 10 استفاده عملکردی سرور DHCPv4 خود را با یک مؤلفه جداگانه جایگزین می‌کند، که عمدتاً به زبان جاوا نوشته شده است تا بهتر با صفحه کنترل چارچوب جاوا ادغام شود. این امر امنیت و قابلیت به روز رسانی را برای سرور DHCP بهبود می بخشد. برای جزئیات بیشتر، به packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java مراجعه کنید.

هیچ اقدامی برای اجرای این تغییر لازم نیست: همه دستگاه‌هایی که منتشر می‌شوند و به Android 10 ارتقا می‌یابند به‌طور پیش‌فرض از DhcpServer استفاده می‌کنند. اگر سفارشی‌سازی‌هایی برای سرور DHCP دارید، می‌توانید با تنظیم تنظیمات کلی tether_enable_legacy_dhcp_server=1 به رفتار Android 9 برگردید. DhcpServer جدید در ماژول اجزای شبکه گنجانده شده است، بنابراین هر گونه سفارشی سازی برای عملکرد سرور DHCP باید در بالادستی انجام شود.

WPA3 و Wi-Fi Enhanced Open

Android 10 پشتیبانی از Wi-Fi Protected Access 3 (WPA3) و استانداردهای امنیتی Wi-Fi Enhanced Open را اضافه می کند تا حریم خصوصی و استحکام بهتری در برابر حملات شناخته شده ارائه دهد.

وای فای دایرکت

Wi-Fi Direct که با نام Wi-Fi P2P نیز شناخته می‌شود، به دستگاه‌های پشتیبانی اجازه می‌دهد مستقیماً با استفاده از پروتکل Wi-Fi Direct بدون دسترسی به اینترنت یا شبکه تلفن همراه، یکدیگر را کشف کرده و به یکدیگر متصل شوند.

پیشرفت تصادفی سازی MAC

از Android 10، تصادفی سازی MAC به طور پیش فرض برای حالت مشتری، SoftAp و Wi-Fi Direct فعال است. دستگاه ها باید گزینه ای برای فعال یا غیرفعال کردن تصادفی سازی MAC برای هر SSID در رابط کاربری سیستم ارائه دهند.

رمز عبور R2

اندروید 10 از ویژگی های Passpoint R2 پشتیبانی می کند. Passpoint R2 ثبت نام آنلاین (OSU) را پیاده سازی می کند، یک روش استاندارد برای ارائه پروفایل های جدید Passpoint. اندروید 10 از ارائه پروفایل های EAP-TTLS با استفاده از SOAP-XML پشتیبانی می کند.

NFC

NFC ایمن

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

پرتو Android منسوخ شده است

در اندروید 10 دیگر نیازی به Android Beam نیست و رابط ها و روش های زیر منسوخ شده اند.

رابط ها:

روش ها:

برای استفاده از Android Beam، ثابت ویژگی android.sofware.nfc.beam را گزارش دهید.

گرافیک

ASurfaceControl

اندروید 10 ASurfaceControl اضافه می کند، راهی جدید برای SurfaceFlinger برای پذیرش بافرها.

پیاده سازی گرافیک

لایه های OpenGL ES

اندروید 10 یک سیستم لایه بندی برای GLES معرفی می کند.

EGL 1.5

اندروید 10 رابط کاربری EGL 1.5 را پیاده سازی می کند. برای اطلاعات در مورد ویژگی های جدید در EGL 1.5، مشخصات Khronos Releases EGL 1.5 را مشاهده کنید.

ولکان

اندروید 10 از گرافیک Vulkan 1.1 پشتیبانی می کند. این پلتفرم همچنین از VK_KHR_swapchain v70 پشتیبانی می‌کند، بنابراین برنامه Vulkan می‌تواند یک VkImage با پشتیبانی از حافظه swapchain ایجاد کند.

نرخ تازه سازی عملکرد

اندروید 10 پشتیبانی از نرخ تازه سازی عملکرد را اضافه می کند. این ویژگی به طور پیش فرض خاموش است.

تعامل

خودرو

صدای خودرو

در Android 10، Audio HAL زمینه را به AudioAttributes.usage برای شناسایی صداها نگاشت می کند. Android از یک نمونه AUDIO_DEVICE_OUT_BUS در هر زمینه پشتیبانی می کند. IAudioControl HAL الحاقات مخصوص وسیله نقلیه را برای Audio HAL فراهم می کند.

ناوبری ژست

اندروید 10 گزینه ای را برای ناوبری سیستم کاملاً حرکتی معرفی می کند. برای اطلاعات در مورد نحوه آماده سازی برنامه ها برای استفاده از این ویژگی، به صفحه ناوبری Gesural در سایت برنامه نویس Android مراجعه کنید.

شبکه های عصبی

اندروید 10 به‌روزرسانی‌هایی را برای API شبکه‌های عصبی و HAL شبکه‌های عصبی معرفی می‌کند. برای خلاصه ای از تغییرات، شبکه های عصبی را ببینید.

مستندات جدید و به روز شده شبکه های عصبی برای اندروید 10:

حسگرها

سنسور HAL 2.0

Sensors HAL 2.0 از استفاده از صف‌های پیام سریع (FMQ) برای ارسال رویدادهای حسگر از HAL به چارچوب سنسورهای Android پشتیبانی می‌کند.

سنسورها خاموش

اندروید 10 شامل تنظیمات توسعه دهنده برای خاموش کردن همه حسگرهای یک دستگاه است. این ویژگی به توسعه دهندگان کمک می کند تا عملکرد برنامه خود را در شرایطی که آن حسگرها در دسترس نیستند آزمایش کنند و همچنین راهی برای کنترل سنسورهای دستگاه خود در اختیار کاربران قرار می دهد.

اگر دستگاه‌های شما از اجرای پیش‌فرض SensorService ، CameraService ، و AudioPolicyService استفاده می‌کنند، دیگر نیازی به سفارشی‌سازی اضافی برای طراحی مرجع نیست. اگر سنسورهای دیگری دارید، برای جزئیات بیشتر در مورد پشتیبانی از این ویژگی، به سفارشی سازی مراجعه کنید.

رسانه ها

اجزای رسانه قابل به روز رسانی

Android 10 مؤلفه‌های رسانه قابل به‌روزرسانی را ارائه می‌کند که امکان به‌روزرسانی مؤلفه‌های سیستم مدولار مرتبط با رسانه را از طریق زیرساخت فروشگاه Google Play یا از طریق مکانیسم OTA (OTA) فراهم می‌کند.

رسانه DRM

Android 10 ابزار و قابلیت استفاده از MediaDrm Java و API های NDK را بهبود می بخشد.

رمزگشایی

اندروید 10 از رمزگشایی AV1 SW پشتیبانی می کند.

مجوزها

Android 10 تنظیمات مجوز اضافی را برای شفافیت و حفظ حریم خصوصی کاربر فراهم می کند.

اطلاعات ارائه دهنده تماس و وابستگی ها

در Android 10، داده‌های مرتبط با مخاطبین، که توسط مؤلفه ارائه‌دهنده مخاطبین مدیریت می‌شود، متفاوت از Android 9 و پایین‌تر قابل دسترسی هستند. این تغییرات در مورد دسترسی به داده ها، حریم خصوصی کاربر را در همه دستگاه های Android 10 که از مؤلفه Contacts Provider استفاده می کنند، بهبود می بخشد. پایگاه داده زیربنایی دیگر حاوی داده های وابستگی تماس نیست. بنابراین برنامه ها نمی توانند روی آن بنویسند یا از آن بخوانند.

انتظار می رود تغییرات اندروید 10 تاثیر زیادی بر API ها داشته باشد. اگر برنامه‌های شما به ویژگی‌های منسوخ ذکر شده در اطلاعات ارائه‌دهنده مخاطبین و Affinities متکی هستند، ممکن است بخواهید برنامه‌های خود را برای جبران هرگونه تغییر به‌روزرسانی کنید. بعلاوه، اگر از نسخه فورک شده Contacts Provider استفاده می کنید، باید Contacts Provider خود را به روز کنید.

مجوزهای موقعیت مکانی Tristate

مجوزهای موقعیت مکانی Tristate در اندروید 10 به کاربران کنترل بیشتری بر نحوه دسترسی برنامه ها به مکان های دستگاهشان می دهد.

یادآوری دسترسی به موقعیت مکانی پس‌زمینه

Android 10 دارای یک یادآوری موقعیت دسترسی پس‌زمینه است که شفافیت را در میزان دسترسی برنامه‌ها به مکان دستگاه افزایش می‌دهد و به کاربران کمک می‌کند تا کنترل این دسترسی‌ها را حفظ کنند.

مکان های فرصت طلب را محدود کنید

هنگامی که یک برنامه مکان یک دستگاه را درخواست می کند، برنامه می تواند منتظر پاسخ درخواست باشد یا با استفاده از شنونده های موقعیت مکانی فعال، به روز رسانی موقعیت مکانی فرصت طلبانه را دریافت کند. از Android 10، برای دریافت به‌روزرسانی‌های موقعیت مکانی فرصت طلب ، توسعه‌دهندگان باید مشخص کنند که به به‌روزرسانی‌های موقعیت مکانی غیرفعال از کلاس FusedLocationProviderClient نیاز دارند.

برنامه های پس زمینه راه اندازی می شوند

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

سندباکس برنامه

در اندروید 10، برنامه ها دید خام محدودی از سیستم فایل دارند، بدون دسترسی مستقیم به مسیرهایی مانند /sdcard/DCIM . با این حال، برنامه‌ها دسترسی خام کامل به مسیرهای بسته خاص خود را حفظ می‌کنند، همانطور که با روش‌های قابل اجرا مانند Context.getExternalFilesDir() بازگردانده می‌شوند. برنامه ها همچنان به مسیرهای بسته خاص خود دسترسی خام کامل دارند.

از دستورالعمل‌های جعبه ایمنی برنامه برای به اشتراک‌گذاری فایل‌ها برای ارائه جزئیات اشتراک‌گذاری داده مناسب استفاده کنید.

دسترسی به کلیپ بورد برنامه را محدود کنید

در Android 10، دسترسی به کلیپ بورد تغییر کرده است به طوری که محتوای کلیپ بورد را نمی توان با تماس با ClipboardManager.getPrimaryClip یا با افزودن یک شنونده onPrimaryClipChangedListener برای اطلاع در هنگام تغییر کلیپ بورد مشاهده کرد. این امر حریم خصوصی کاربر را افزایش می دهد و برنامه های بدافزار را از تغییر کلیپ بورد غیرفعال می کند.

در Android 10، دسترسی خواندن فقط به برنامه فعلی با فوکوس ورودی یا به صفحه کلید فعلی مجاز است. تماس شنونده ClipboardManager.onPrimaryClipChanged() اکنون فقط برای برنامه‌هایی فعال می‌شود که چنین محدودیت‌هایی را دارند. ClipboardManager.getPrimaryClip و ClipboardManager.getPrimaryClipDescription اگر برنامه درخواست‌کننده یا ویرایشگر روش ورودی پیش‌فرض (IME) نباشد، یا فوکوس ورودی نداشته باشد null برمی‌گردانند.

مجوزهای زمان اجرا شامل تشخیص فعالیت است

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

مجوز MANAGE_DEVICE_ADMINS

Android 10 مجوز MANAGE_DEVICE_ADMINS را از امضا یا امتیاز به فقط امضا تغییر می‌دهد. این بدان معناست که فقط برنامه‌های دارای امضای پلتفرم می‌توانند برنامه‌های دیگر را به‌عنوان سرپرست دستگاه تنظیم کنند.

به اشتراک گذاری بهبودهای API

Android 10 تعدادی ویژگی جدید API پلتفرم Android مربوط به اشتراک گذاری را ارائه می دهد. اگر کد اشتراک‌گذاری را در پیاده‌سازی خود تغییر داده‌اید، مطمئن شوید که پیاده‌سازی شما از این ویژگی‌های جدید پشتیبانی می‌کند. اگر در اجرای خود کد اشتراک‌گذاری را تغییر نداده‌اید، برای پشتیبانی از این ویژگی‌های جدید نیازی به انجام کاری ندارید.

Android Runtime (ART)

پیکربندی امضا شده

ویژگی Signed Config اجازه می دهد تا پیکربندی محدودیت های رابط غیر SDK را در APK جاسازی کنید. این امکان حذف رابط های غیر SDK خاص را از لیست سیاه فراهم می کند تا AndroidX بتواند با خیال راحت از آنها استفاده کند. با این تغییر، AndroidX می تواند پشتیبانی از ویژگی های جدید را در نسخه های قدیمی اندروید اضافه کند.

عملکرد

لایه انتزاعی Cgroup

اندروید 10 شامل یک لایه انتزاعی cgroup و پروفایل‌های وظیفه است که توسعه‌دهندگان می‌توانند از آن برای توصیف مجموعه‌ای از محدودیت‌ها برای اعمال بر روی یک رشته یا یک فرآیند استفاده کنند.

دیمون قاتل کم حافظه (lmkd)

اندروید 10 از حالت جدید lmkd پشتیبانی می کند که از مانیتورهای اطلاعات توقف فشار هسته (PSI) برای تشخیص فشار حافظه استفاده می کند.

قدرت

مدیریت توان پلتفرم

در اندروید 10، حالت Doze را می توان در دستگاه های همیشه روشن و همچنین دستگاه های با باتری فعال کرد.

صرفه جویی معمول باتری

اندروید 10 یک گزینه برنامه زمان بندی صرفه جویی باتری جدید به نام بر اساس روتین معرفی می کند. صرفه جویی معمول باتری به یک برنامه انتخاب شده توسط OEM اجازه می دهد تا سیگنال هایی را برای برنامه ریزی هوشمندتر صرفه جویی باتری به سیستم ارائه دهد. این گزینه به پیکربندی نیاز دارد و اجرای آن اختیاری است.

آمار قدرت هال

در Android 10 ، IPowerStats.hal جایگزین API های جمع آوری آمار قدرت در IPower.hal . در حالی که Power Hal هنوز از API ها پشتیبانی می کند ، آنها در آینده به طور انحصاری به آمار قدرت هال منتقل می شوند.

Power Stats HAL شامل API های جدید برای پشتیبانی از جمع آوری داده ها از اندازه گیری توان در دستگاه ، برای دستگاه های پشتیبانی شده است. API های موجود در مجموعه قدرت آمار نیز برای بهبود انعطاف پذیری به روز می شوند. API های برجسته قدرت در قدرت هال باقی مانده و در حال تغییر نیستند.

کاهش حرارتی

چارچوب حرارتی در Android 10 چکیده دستگاه برای سنسور دمای زیر سیستم حرارتی ، از جمله CPU ، GPU ، باتری ، پوست و دستگاه خنک کننده. این چارچوب یک رابط رأی دهی برای پرس و جو از وضعیت حرارتی برای شروع لرزش و رابط پاسخ به تماس برای ارسال پیام به کاربر هنگام فراتر از آستانه ارائه می دهد.

Android 10 با استفاده از این سه روش جدید ، انواع داده های جدید را از طریق رابط IThermalService ارائه می دهد:

برنامه ها شنوندگان را اضافه و حذف می کنند و به وضعیت دما در کلاس PowerManager دسترسی می یابند. فقط یک سرویس سیستم قابل اعتماد مانند ANDROID API یا تولید کننده دستگاه API می تواند به اطلاعات مربوط به وقایع علیت مرتبط دسترسی پیدا کند. تولید کنندگان دستگاه یا سازندگان SOC باید thermal HAL 2.0 پیاده سازی کنند تا عملکرد کامل چارچوب حرارتی جدید امکان پذیر باشد.

برای مثال اجرای کاهش حرارتی ، به اجرای مرجع مراجعه کنید.

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

قالب پرونده apex

Android Pony Express (APEX) یک قالب کانتینر جدید است که در جریان نصب برای اجزای سیستم مدولار استفاده می شود.

پارتیشن های پویا

پارتیشن های پویا یک سیستم پارتیشن بندی فضای کاربر را به Android معرفی می کنند و اجازه می دهند پارتیشن ها در طی به روزرسانی های OTA ایجاد ، تغییر اندازه یا نابود شوند. سازندگان دستگاه نیازی به نگرانی در مورد اندازه های جداگانه پارتیشن ها مانند system ، vendor و product ندارند. در عوض ، یک پارتیشن super بزرگ اختصاص داده می شود ، و زیر بخش ها می توانند به صورت پویا در درون آن اندازه بگیرند.

به روزرسانی های سیستم پویا

به روزرسانی های سیستم Dynamic (DSU) به شما امکان می دهد یک تصویر سیستم اندرویدی را تهیه کنید که کاربران بتوانند از اینترنت بارگیری کنند و بدون خطر فاسد کردن تصویر سیستم فعلی امتحان کنند.

پشتیبان گیری از چند گوش و بازیابی

Android 10 از پشتیبان گیری و بازیابی عملکرد همه کاربران در یک دستگاه پشتیبانی می کند. پیش از این ، پشتیبان گیری و بازیابی فقط برای کاربر سیستم در دسترس بود. پشتیبان گیری و بازیابی برای کاربران Nonsystem به طور پیش فرض خاموش است زیرا فقط پوشش جزئی برای تنظیمات ، کاغذ دیواری و اجزای سیستم دارد.

روکش

کاربرانی که با userdebug یا eng Builds کار می کنند ، انتظار دارند که بتوانند پارتیشن سیستم را به عنوان خواندن نوشتن به طور موثر بازیابی کنند و سپس هر تعداد فایل را بدون بازتاب تصویر سیستم اضافه یا اصلاح کنند. می توانید از Overlayfs استفاده کنید ، که به طور خودکار ذخیره پشتیبان را برای یک سیستم فایل قابل نوشتن به عنوان یک مرجع بالا تنظیم می کند و در قسمت پایین قرار می گیرد. این اقدامات در درخواست های adb disable-verity و adb remount اتفاق می افتد. برای اطلاعات بیشتر ، به Overlayfs Readme در AOSP مراجعه کنید.

پشتیبانی از کتابخانه مشترک در حالت بازیابی

در Android 10 ، کتابخانه های مشترک در پارتیشن بازیابی در دسترس هستند که نیاز به همه اجرایی حالت بازیابی را از بین می برد. کتابخانه های مشترک در فهرست /system/lib (یا /system/lib64 برای دستگاه های 64 بیتی) در پارتیشن قرار دارند.

برای افزودن یک کتابخانه مشترک جدید به پارتیشن بازیابی ، recovery_available: true یا recovery: true to Android.bp از کتابخانه مشترک. سابق این کتابخانه را هم به سیستم و هم برای پارتیشن های بازیابی نصب می کند ، در حالی که دومی آن را فقط در پارتیشن بازیابی نصب می کند.

پشتیبانی از کتابخانه مشترک را نمی توان با سیستم ساخت مبتنی بر آندروید ساخته شد. برای تبدیل یک استاتیک موجود برای حالت بازیابی به حالت پویا ، حذف LOCAL_FORCE_STATIC_EXECUTABLE := true در Android.mk یا static_executable: true (در Android.bp ).

پاسگاه داده کاربر (UDC)

Android 10 ویژگی بازرسی داده های کاربر (UDC) را معرفی می کند ، که به Android اجازه می دهد تا در صورت عدم موفقیت به روزرسانی Android Over-the-Air (OTA) ، به حالت قبلی خود برگردد.

،

این صفحه ویژگی های اصلی نسخه Android 10 را خلاصه می کند و پیوندهایی به اطلاعات اضافی ارائه می دهد. این خلاصه های ویژگی با توجه به مکان مستندات ویژگی در این سایت سازماندهی می شوند.

ساخت

java_sdk_library

Android 10 java_sdk_library معرفی می کند ، یک قانون جدید برای رفع مشکلات سازگاری برای کتابخانه های مشترک جاوا. تولید کنندگان دستگاه می توانند از این مکانیسم برای کتابخانه های مشترک جاوا خود برای حفظ سازگاری عقب مانده برای API خود استفاده کنند.

معماری

اجزای سیستم مدولار

Android 10 برخی از مؤلفه های سیستم Android را مدولار می کند و آنها را قادر می سازد در خارج از چرخه انتشار عادی Android به روز شوند. برخی از ماژول ها عبارتند از:

لایه انتزاع سخت افزار (HAL)

Android 10 پشتیبانی از HAL ها را اضافه می کند تا در صورت عدم مشتری ، به طور خودکار خاموش شوند .

هسته

ABI

Android 10 شامل پشتیبانی از برنامه های جدید نظارت بر ABI برای کمک به مقایسه ، ردیابی و کاهش تغییرات هسته ABI است که بر سازگاری با ماژول های هسته تأثیر می گذارد.

Android 10 همچنین یک Checker Usages Usages مبتنی بر نماد را معرفی می کند. چکر می تواند باینری های پیش ساخته منسوخ شده را در زمان ساخت تشخیص دهد ، به طوری که توسعه دهندگان مشترک کتابخانه می توانند بدانند که با تغییر آنها ممکن است باینری های پیش ساخته شکسته شود و کدام یک از باینری های از پیش ساخته باید بازسازی شود.

Daemon-Live-Lock Live-Lock

Android 10 شامل Android Live-Lock Daemon (LLKD) است که برای گرفتن و کاهش بن بست های هسته طراحی شده است.

VDSO32 در ARM64

Android 10 با استفاده از VDSO32 در هسته های 64 بیتی پشتیبانی می کند ، که باعث افزایش 0.4 درصدی عمر باتری و سایر پیشرفت های عملکرد می شود.

ورودی های FSTAB برای پارتیشن های اولیه نصب شده

Android 10 به دستگاه هایی نیاز دارد تا ورودی های fstab را برای پارتیشن های اولیه نصب شده با استفاده از یک فایل fstab در مرحله اول RAMDISK مشخص کنند.

HIDL

پخش پخش

Android 10 شامل یک BroadcastQueue جدید بارگذاری بار در پس زمینه و صف های پیش زمینه موجود است. صف بارگیری همان اولویت و رفتار زمان بندی را با صف پس زمینه دارد. برای جلوگیری از مسدود کردن صف پس زمینه ، جایی که پخش های جالب تر یا قابل مشاهده با کاربر می تواند اتفاق بیفتد ، صف بار بارگیری BOOT_COMPLETED را اجرا می کند ، که بسیاری از برنامه ها به آن گوش می دهند و می توانند مدت زمان طولانی را انجام دهند. صف بار در حال حاضر فقط پخش BOOT_COMPLETED را کنترل می کند ، اما به طور بالقوه می تواند سایر پخش های طولانی را اداره کند.

سرویس سیستم تعلیق

Android 10 جایگزین موضوع در libsuspend مسئول شروع سیستم تعلیق با سرویس HIDL SystemSuspend می شود. این پیاده سازی عملکردهای معادل نسخه های قبلی را در حالی که از مزایای زیرساخت های Android Hidl استفاده می کند ، ارائه می دهد.

SAFE_UNION در HIDL

Android 10 safe_union ، یک نوع اتحادیه صریح برچسب ، در HIDL را معرفی می کند.

پیکربندی

پیکربندی هال

Android 10 به دلیل مصرف زیاد حافظه و استفاده دشوار ، HAL پیکربندی را کاهش می دهد و HAL را با خصوصیات سیستم جایگزین می کند.

پیکربندی پرونده Schema API

پلت فرم Android شامل تعداد زیادی از پرونده های XML برای ذخیره داده های پیکربندی است. بسیاری از پرونده های XML در پارتیشن vendor قرار دارند ، اما در پارتیشن system خوانده می شوند. در این حالت ، طرح پرونده XML به عنوان رابط در دو پارتیشن عمل می کند ، بنابراین طرح باید به صراحت مشخص شود و باید به روشی سازگار با عقب تکامل یابد. قبل از Android 10 ، این پلتفرم مکانیسم هایی را برای تعیین و استفاده از طرح XML یا جلوگیری از تغییرات ناسازگار در طرحواره فراهم نمی کند. Android 10 این مکانیزم را به نام پیکربندی فایل Schema API فراهم می کند.

خصوصیات سیستم به عنوان API

خصوصیات سیستم قابل دسترسی در قسمتهای پارتیشن ها به پرونده های توضیحات sysprop تبدیل می شوند و API ها برای دسترسی به خصوصیات به عنوان توابع بتونی برای C ++ و کلاس های جاوا تولید می شوند.

رابط فروشنده (vintf) شیء

پرنعمت

تغییرات در VINTF در Android 10 شامل موارد زیر است:

  • کاهش برچسب های نسخه AVB
  • اضافه کردن اطلاعات هسته در بسته های OTA
  • ساختمان ODM به طور رسمی تجلی می یابد
  • اضافه کردن ماتریس سازگاری محصول
  • ارتباط یک ورودی مانیفست با یک ماژول HAL در سیستم ساخت

بوت لودر

رامدیسک

در Android 10 ، سیستم فایل ریشه دیگر در ramdisk.img گنجانده نشده است و در عوض در system.img ادغام می شود.

پارتیشن های ODM بسازید

Android 10 شامل پشتیبانی از ساخت پارتیشن های odm با استفاده از سیستم ساخت Android است. می توانید از یک پارتیشن جداگانه /odm برای سفارشی سازی استفاده کنید ، که به شما امکان می دهد از یک تصویر فروشنده واحد برای SKU های سخت افزاری چندگانه استفاده کنید. این امر باعث می شود تا تولید کنندگان طراحی اصلی (ODMS) بتوانند بسته های پشتیبانی هیئت مدیره فروشنده سیستم-تراشه (SOC) (BSP) را به دستگاه های خاص خود (تابلوهای آنها) سفارشی کنند. آنها می توانند ماژول های هسته را برای مؤلفه های خاص تخته ، Daemons اختصاصی تخته یا ویژگی های خاص خود در لایه های انتزاع سخت افزاری (HALS) پیاده سازی کنند. آنها همچنین ممکن است مؤلفه های SOC را جایگزین یا سفارشی کنند.

نسخه هدر تصویر بوت

Android 10 عنوان بوت تصویر را به نسخه 2 به روز می کند ، که شامل بخشی برای ذخیره تصویر Blob Tree Tree (DTB) است. تست های Android 10 VTS تأیید می کنند که کلیه دستگاه های راه اندازی شده با Android 10 از Header Boot Image نسخه 2 استفاده می کنند و شامل یک تصویر معتبر DTB به عنوان بخشی از تصاویر بوت/بازیابی هستند.

تصاویر بازیابی برای دستگاه های غیر A/B

در Android 9 و بالاتر ، تصویر بازیابی دستگاه باید حاوی اطلاعاتی از تصویر پوشش باشد . تولید کنندگان دستگاه می توانند از DeviceTree یا پیکربندی پیشرفته و رابط برق (ACPI) برای توصیف کلیه دستگاه های قابل کشف استفاده کنند. Android 10 و بالاتر شامل پشتیبانی از معماری هایی هستند که از ACPI به جای حباب Devicetree برای پوشش (DTBO) استفاده می کنند.

AIDL پایدار

Android 10 پشتیبانی از زبان تعریف رابط آندروید پایدار (AIDL) را اضافه می کند ، روشی جدید برای پیگیری رابط برنامه برنامه (API)/رابط باینری برنامه (ABI) ارائه شده توسط رابط های AIDL.

Fastboot را به فضای کاربر منتقل کنید

Android 10 با جابجایی اجرای FastBoot از bootloader به فضای کاربر ، پشتیبانی از پارتیشن های قابل انعطاف را اضافه می کند.

نمایش

پخش ویدیوی HDR

Android 10 از پخش HDR10 ، VP9 و HDR10+ پشتیبانی می کند.

طبقه بندی متن

طبقه بندی متن از تکنیک های یادگیری ماشین برای کمک به توسعه دهندگان طبقه بندی متن استفاده می کند. Android 10 دو روش را به API TextClassifer معرفی می کند: suggestConversationActions و detectLanguage . روش suggestConversationActions پاسخ ها و اقدامات پیشنهادی را از یک مکالمه معین ایجاد می کند و روش detectLanguage زبان متن را تشخیص می دهد.

پشتیبانی از رندر قلم Zawgyi

Zawgyi محبوب ترین قلم در میانمار است. Android 9 و Lower از ارائه Zawgyi پشتیبانی نمی کنند زیرا سازگار با یونیکد نیست . Android 10 با شامل یک فونت یونیکد که قادر به ارائه هر دو یونیکد برمه و زاوگی با هم است ، این موضوع را مورد بررسی قرار می دهد. برای پشتیبانی از رندر فونت Zawgyi در دستگاه های راه اندازی با Android 10 کار لازم نیست. اگر دستگاه های شما برای پشتیبانی از Zawgyi یک پیاده سازی سفارشی دارند ، می توانید:

  • این تغییرات را برگردانید و از روش پشتیبانی شده با سیستم عامل استفاده کنید.
  • قلم مشترک Zawgyi را در سیستم خود نگه دارید و از کد محلی my-qaag در fonts.xml خود استفاده کنید. برای اطلاعات بیشتر ، به یادداشت های انتشار Unicode CLDR در Zawgyi (QAAG) مراجعه کنید.

محدودیت برای مخفی کردن نمادهای برنامه

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

برای کسب اطلاعات بیشتر در مورد منطق مورد استفاده برای نشان دادن نمادهای برنامه ، از جمله انواع برنامه هایی که نمادهای برنامه آنها نشان داده نشده است ، به اسناد مربوط به getActivityList() در مرجع API مراجعه کنید.

تنظیمات

برای بهبود دسترسی ، Android 10 شامل تنظیمات زمانبندی قابل استفاده در کاربر است. تغییرات API و تنظیمات با Android 10 همراه است. اگر تنظیمات خود را سفارشی کنید ، حتماً از این ویژگی پشتیبانی شود. اگر عناصر UI را در آن زمان روی دستگاه خود دارید ، از API Timeouts در آن استفاده کنید. برای اطلاعات بیشتر ، به دستورالعمل های دسترسی به توسعه دهنده Android مراجعه کنید.

سازگاری

سند تعریف سازگاری اندرویدی (CDD)

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

تست ها

مجموعه تست سازگاری (CTS)

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

بارگیری CTS

بسته های CTS پشتیبانی از Android 10 در صفحه بارگیری CTS موجود است. کد منبع برای تست های موجود را می توان با برچسب android-cts-10_r1 در درخت منبع باز همگام سازی کرد.

cts shim apex

Android 10 بسته ای به نام CtsShimApex را معرفی می کند ، که برای نوشتن تست های CTS برای مدیریت Apex باید در یک دستگاه از قبل نصب شود.

حالت مهار آزمون

حالت مهار تست CTS به توسعه دهندگان کمک می کند تا آزمایش یک دستگاه یا ناوگان دستگاه ها را به صورت خودکار انجام دهند.

حالت برنامه های فوری

با شروع در Android 10 ، CTS در حالت برنامه های فوری اجرا می شود ، این به معنای نصب APK تست به عنوان یک برنامه فوری و اجرای تست ها است.

علاوه بر حالت CTS برای برنامه های فوری ، Android 10 شامل تأیید کننده CTS برای برنامه های فوری است

تست صوتی CTS Verifer Pro

Android 10 یک تست تأیید کننده CTS را برای انطباق صوتی حرفه ای اضافه می کند.

تست های MIDI تأیید کننده CTS

در Android 10 ، آزمایش CTS تأیید MIDI عملکرد MIDI با رابط های USB MIDI ، رابط های MIDI بلوتوث و یک مسیر دستگاه MIDI مجازی را آزمایش می کند.

تفسیر آزمون CTS

Android 10 مکانیسم تفسیر نتایج CTS را به روز می کند.

مجموعه تست فروشنده (VTS)

آزمایش VTS با اشکال زدایی ramdisk

در Android 10 ، تصویر سیستم عمومی (GSI) برای اجرای تغییرات آزمایش انطباق CTS-ON-GSI/VTS از UserDebug به نوع ساخت کاربر استفاده می شود ، زیرا GSI به امضا رسیده است. با این حال ، دستور adb root که مجوزهای ریشه میزبان را به دستگاه Android تحت آزمایش می دهد در ساخت کاربر در دسترس نیست. این یک مشکل است زیرا VTS برای اجرای آن نیاز به adb root دارد.

در صورت قفل شدن دستگاه ، RAMDISK اشکال زدایی معرفی می شود تا adb root امکان پذیر شود. این کار با استفاده مجدد از همان System Build system.img (یا GSI یا OEM's system.img ) جریان آزمایش را ساده می کند.

اعتبار سنجی آهنگساز سخت افزار

Android 10 یک کلاس تست VTS جدید را برای اعتبار سنجی آهنگساز سخت افزار از طریق رابط readback در IComposerClient.hal اضافه می کند. اگر فروشندگان readback پیاده سازی نکنند ، تست ها به طور خودکار می گذرد.

اشکال زدایی

کتابخانه های مشترک را با لودرهای کلاس مختلف بارگذاری کنید

در Android 9 و پایین ، برنامه ها کتابخانه های مشترک جاوا را در لودر کلاس برنامه بارگذاری کردند. در Android 10 ، این چارچوب از یک لودر کلاس متفاوت نسبت به لودر کلاس برنامه برای بارگیری کتابخانه های مشترک جاوا که از طریق استفاده از کتاب uses-static-library uses-library یا استفاده می کند ، استفاده می کند.

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

تولید کنندگان دستگاه ممکن است هنگام تست دستگاه های خود در حال اجرا Android 10 ، مشکلات سازگاری برنامه را مشاهده کنند.

ویژگی های امنیتی

برای لیست کامل تری از پیشرفت های مربوط به امنیت و حریم خصوصی ، به صفحه امنیت و حفظ حریم خصوصی Android 10 مراجعه کنید.

احراز هویت

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

دسترسی گسترده

Trust Agents ، مکانیسم اساسی که توسط مکانیسم های احراز هویت سوم مانند قفل هوشمند استفاده می شود ، فقط می تواند باز کردن قفل در Android 10 را گسترش دهد. نمایندگان اعتماد دیگر نمی توانند یک دستگاه قفل شده را باز کنند و فقط می توانند حداکثر چهار ساعت را باز نگه دارند.

رمزگذاری

OEMCrypto

Android 10 از OEMCrypto API نسخه 15 استفاده می کند.

تست کردن

محزون

Android 10 BoundsSanitizer (Boundsan) را در بلوتوث و کدک ها مستقر می کند. Boundsan از ضد عفونی کننده Ubsan استفاده می کند. این کاهش در سطح هر ماژول فعال می شود. این کمک می کند تا اجزای مهم اندرویدی ایمن باشد و نباید از آن غیرفعال شود. Boundsan در کدک های زیر فعال است:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

ضد عفونی کننده سرریز عدد صحیح

Android 10 فعال کردن ضدعفونی کننده صحیح (Intsan) در کدک های نرم افزاری را امکان پذیر می کند. اطمینان حاصل کنید که عملکرد پخش برای هر کدک هایی که در سخت افزار دستگاه پشتیبانی نمی شوند قابل قبول است. Intsan در کدک های زیر فعال است:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

حافظه فقط اجرا

به طور پیش فرض ، بخش های کد اجرایی برای باینری های سیستم AARCH64 فقط به عنوان یک کاهش سخت تر در برابر حملات استفاده مجدد از کد ، فقط اجرا می شوند. کدی که داده ها و کد ها را با هم مخلوط می کند و کدهایی که به طور هدفمند این بخش ها را مورد بازرسی قرار می دهد (بدون اینکه ابتدا بخش های حافظه را به عنوان خواندنی بازسازی کنید) دیگر عملکردی ندارند. برنامه هایی با SDK هدف Android 10 (API سطح 29 یا بالاتر) تحت تأثیر قرار می گیرند اگر برنامه سعی در خواندن بخش های کد حافظه فقط اجرای (XOM) داشته باشد ، کتابخانه های سیستم را در حافظه فعال می کند بدون اینکه اولین بخش را به عنوان خواندنی نشان دهد.

اسکودو

Scudo یک تخصیص دهنده حافظه پویا است که به گونه ای طراحی شده است که در برابر آسیب پذیری های مرتبط با پشته مقاومت بیشتری داشته باشد. این ماده اولیه تخصیص C و DealLocation استاندارد و همچنین بدوی C ++ را فراهم می کند.

ShadowCallStack

ShadowCallStack (SCS) یک حالت ابزار دقیق LLVM است که با ذخیره آدرس بازگشت یک عملکرد به یک نمونه ShadowCallStack به طور جداگانه در پیش نویس عملکرد توابع غیر برگ و بارگیری آدرس بازگشت از ShadowCallStack Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance Instance در برابر بازنویسی آدرس (مانند سرریز بافر پشته) محافظت می کند. عملکرد اپیلوگ.

صوتی

صدا

Android 10 شامل Capatibilties جدید زیر برای Audio HAL است.

  • AudioSource
  • AudioFormat
  • AudioChannelMask

الزامات اضافی برای اجرای صوتی HAL و زیر سیستم اضافه می شود.

اثرات پیش پردازش

Android اثرات پیش پردازش ، مانند لغو اکو آکوستیک ، کنترل افزایش خودکار و سرکوب سر و صدا را ارائه می دهد. Android 10 شامل الزامات جدیدی برای ضبط با VOICE_COMMUNICATION است.

مدیر سیاست های صوتی

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

صدای با وضوح بالا

Android 10 شامل پیشرفت های زیر برای صوتی با وضوح بالا است.

  • پشتیبانی شناور
  • پشتیبانی از فرکانس 192 کیلوهرتز
  • پشتیبانی هشت کانال
  • گنجاندن اطلاعات زمان بندی

ضبط همزمان

Android 10 تجربه کاربری ضبط همزمان را بهبود می بخشد که به بیش از یک ضبط صوتی فعال نیاز دارد تا همزمان اتفاق بیفتد.

AudioplaybackCapture

Android 10 حاوی API جدید به نام AudioPlaybackCapture است که به برنامه ها امکان کپی کردن صوتی را که توسط سایر برنامه ها پخش می شود ، می دهد. این ویژگی شبیه به ضبط صفحه است ، اما برای صدا. مورد استفاده اصلی این است که برنامه های پخش را برای ضبط صوتی که توسط بازی ها پخش می شود ، فعال کنید.

API ضبط بر تأخیر برنامه ای که صدای آن ضبط می شود تأثیر نمی گذارد.

MIDI

Android 10 استفاده از برنامه های صوتی حرفه ای را با استفاده از MIDI به پلت فرم Android با استفاده از AMidi NDK API آسانتر می کند.

دوربین

برای خلاصه ای از تغییرات در API دوربین ، دوربین HAL و ماژول دوربین معرفی شده در Android 10 ، به روزرسانی های دوربین Android 10 مراجعه کنید.

چارچوب دوربین پیشرفت های حفظ حریم خصوصی

Android 10 پیشرفت های حریم خصوصی را به چارچوب دوربین معرفی می کند. برای جلوگیری از قرار گرفتن اطلاعات دوربین استاتیک بالقوه حساس در CameraCharacteristics بدون رضایت کاربر ، برنامه ها باید مجوز CAMERA برای بازیابی ابرداده استاتیک با یک برچسب حساس به حریم خصوصی با استفاده از روش getCameraCharacteristics دریافت کنند.

برای به دست آوردن لیستی از کلیدهای مشخصه دوربین که به مجوز CAMERA نیاز دارند ، با روش getKeysNeedingPermission تماس بگیرید.

پرس و جو پیکربندی مجدد جلسه

Android 10 یک ویژگی پرس و جو پیکربندی مجدد جلسه را اضافه می کند ، که امکان بهبود عملکرد را از طریق کنترل بیشتر بر منطق تنظیم مجدد پارامتر داخلی فراهم می کند.

API های مدیریت بافر HAL3 CAMERA

Android 10 API های مدیریت بافر HAL3 دوربین اختیاری را معرفی می کند که به شما امکان می دهد منطق مدیریت بافر را برای دستیابی به حافظه های مختلف و ضبط تجارت تأخیر در اجرای Camera HAL پیاده سازی کنید.

سوئیچ دوربین فیزیکی دینامیکی دوربین هال

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

پشتیبانی از مخفی کردن دوربین های فیزیکی

در Android 10 ، دوربین HAL می تواند تعداد دوربین های فیزیکی را که می توانند مستقیماً توسط یک برنامه باز شوند ، کاهش دهد. برای اطلاعات بیشتر ، به پشتیبانی چند دوربین مراجعه کنید.

camera2 vndk api

در Android 10 ، ماژول های فروشنده می توانند از طریق دو رابط استاندارد جدید Hidl ، android.frameworks.cameraservice.service@2.0 و android.frameworks.cameraservice.device@2.0 به دستگاه های دوربین دسترسی و کنترل کنند. اندروید 10 برای استفاده از رابط های Hidl راحت تر ، یک کتابخانه فروشنده در دسترس ، libcamera2_vendor معرفی می کند. این کتابخانه شبیه به کتابخانه دوربین NDK است و چند اصلاح جزئی دارد.

تنظیمات جریان

Android 10 ویژگی هایی را اضافه می کند که به فروشندگان دوربین اجازه می دهد تا جریان های دوربین توصیه شده را به مشتری های دوربین تبلیغ کنند و از API برای پرس و جو از ترکیبات جریان پشتیبانی کنند.

نیازهای ترکیبی جریان دوربین

دستگاه هایی که Android 10 را اجرا می کنند دیگر نیازی به پشتیبانی از ترکیبات جریان با جریان های فیزیکی Subcamera ندارند. با این حال ، دستگاه هایی که Android 10 را با دوربین Camera HAL نسخه 3.5 باید از isStreamCombinationSupported() پشتیبانی کنند تا برنامه ها بتوانند از این استفاده کنند که آیا ترکیبی از جریان حاوی جریانهای فیزیکی پشتیبانی می شود.

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

تصویربرداری ویزا

Android 10 پشتیبانی از دوربین بومی را برای تصاویر فایل تصویر با راندمان بالا (HEIF) ارائه می دهد ، که کیفیت تصویر بهبود یافته و اندازه های کوچکتر را نسبت به تصاویر JPEG ارائه می دهد. دستگاه ها برای پشتیبانی از تصاویر HEIF باید یک رمزگذار HEIC یا HEVC داشته باشند.

دوربین های تک رنگ

Android 10 پشتیبانی اضافی را برای فرمت جریان Y8 ، تک رنگ و مادون قرمز نزدیک (NIR) آرایه استاتیک آرایه استاتیک و عملکردهای DngCreator برای دوربین های تک رنگ فراهم می کند.

قابلیت اتصال

تماس و پیام رسانی

شماره های اضطراری و تماس اضطراری

Android 10 پشتیبانی بهبود یافته ای را برای تماس های اضطراری فراهم می کند. در مواقع اضطراری ، دستگاه هایی با پشتیبانی از Iradio HAL V1.4 می توانند با استفاده از شماره های اضطراری بازیابی شده از منبع مانند سیم کارت ، سیگنال شبکه یا پایگاه داده اندرویدی ، یک تماس اضطراری را آغاز کنند. اعداد را می توان بر اساس دسته بندی خدمات اضطراری مانند پلیس ، آتش سوزی و آمبولانس طبقه بندی کرد.

API های تماس گروهی

API های تماس گروهی ، پسوند API های ABMS در Android 9 است. API های جدید استانداردی را برای برنامه ها برای پیوستن و پخش در تماس های گروه Cell-Broadcast با تعامل با بسته های میانی EMBMS تعریف می کنند. تماس های گروهی نیاز به پشتیبانی از فروشنده چیپست ، فروشنده میان افزار و حامل سلول به درستی دارند. مستندات توسعه دهنده در Developer.google.com واقع شده است.

قابلیت های سیم کارت از راه دور

Android 10 قابلیت های سیم کارت از راه دور را معرفی می کند که به برنامه های پیام رسانی در دستگاه میزبان اندروید اجازه می دهد تا پیام های پیامکی را از طریق تلفن هایی با استفاده از مکانیسم هایی مانند بلوتوث ارسال کنند. برای اطلاعات بیشتر ، به مستندات مرجع برای روش getSubscriptionType و ثابت SUBSCRIPTION_TYPE_REMOTE_SIM مراجعه کنید.

چند ESIM

در Android 10 ، کلاس EuiccManager از دستگاه هایی با SIMS تعبیه شده متعدد (ESIMS) یا EUICC پشتیبانی می کند.

به روزرسانی های ESIM

برای دستگاه هایی که Android 10 را پشتیبانی می کنند که از ESIMS پشتیبانی می کنند ، یک آرایه شناسه اسلات EUICC غیرقابل توصیف باید تعریف شود. دستگاه ها همچنین باید از iradio hal v1.4 و iradioconfig hal v1.2 پشتیبانی کنند. برای اطلاعات بیشتر ، به اجرای الزامات ESIM و HAL مراجعه کنید.

5G غیر استاندارد (NSA)

Android 10 پشتیبانی از 5G غیر استاندارد (NSA) را اضافه می کند. 5G NSA یک راه حل برای شبکه های 5G است که در آن شبکه توسط یک زیرساخت 4G موجود پشتیبانی می شود. در Android 10 ، دستگاه ها می توانند در هنگام اتصال دستگاه به یک شبکه 5G ، یک نماد 5G را در نوار وضعیت نمایش دهند.

پیشنهاد حساب تلفن

Android 10 سرویس پیشنهادی حساب تلفن را معرفی می کند ، که این امکان را برای شما فراهم می کند که حسابهای تلفنی هنگام برقراری تماس به کاربران نشان داده شود.

حامل

تنظیمات شبکه تلفن همراه را مهاجرت کنید

Android 10 تنظیمات UI تنظیمات شبکه موبایل را مجدداً مورد استفاده قرار داد و آن را از پشته تلفنی به پشته تنظیمات منتقل کرد. برای پشتیبانی از کد مهاجرت ، مقادیر تنظیمات تنظیمات شبکه تلفن همراه زیر را از منابع Android به منابع CarrierConfig تغییر دهید:

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

شناسه های دستگاه

شناسه های مداوم دستگاه (IMEI/MEID ، IMSI و ساخت سریال) با مجوز ممتازی با دسترسی به برنامه های صاحب دستگاه و پروفایل محافظت می شوند. از آنجا که شماره سریال IMSI و SIM حامل ارائه شده است ، دسترسی به این شناسه ها به بسته هایی با امتیازات حامل اعطا می شود.

وای فای

انتخاب شبکه

اندروید به طور مداوم کیفیت شبکه متصل را ارزیابی می کند و کیفیت شبکه های موجود را ارزیابی می کند. Android 10 الگوریتم ها و رویه های انتخاب و تعویض بین شبکه های Wi-Fi را به روز کرده است.

Wi-Fi Scanning Offload Network Preferred

Android 10 یک روش API اختیاری به نام setDeviceMobilityState() را در WifiManager معرفی می کند که باعث افزایش فاصله بین اسکن بارگذاری شبکه (PNO) در هنگام ثابت بودن دستگاه برای کاهش مصرف برق می شود.

حامل Wi-Fi

در Android 10 ، دستگاه هایی با ویژگی Wi-Fi Carrier به طور خودکار به شبکه های Wi-Fi حامل پیکربندی شده (شبکه هایی با گواهینامه های کلید عمومی) متصل می شوند.

Wi-Fi Easy Connect

در Android 10 ، دستگاه ها می توانند از Wi-Fi Easy Connect استفاده کنند ، که از پروتکل ارائه دهنده دستگاه (DPP) معرفی شده توسط Wi-Fi Alliance (WFA) برای تهیه و پیکربندی دستگاه های Wi-Fi استفاده می کند.

حالت کمتری Wi-Fi

Android 10 یک حالت کم تأخیر Wi-Fi را معرفی می کند ، که تراشه Wi-Fi را برای کاهش تأخیر پیکربندی می کند.

سرور DHCP به روز شده

به عنوان بخشی از شکل گیری چتر سرویس "سرور IP" ، dnsmasq حذف می شود. Android 10 جایگزین استفاده عملکردی سرور DHCPV4 خود با یک مؤلفه جداگانه است که در درجه اول در جاوا نوشته شده است تا بهتر با صفحه کنترل چارچوب جاوا ادغام شود. این باعث بهبود امنیت و به روزرسانی سرور DHCP می شود. برای اطلاعات بیشتر ، به packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java مراجعه کنید.

برای اجرای این تغییر هیچ اقدامی لازم نیست: کلیه دستگاه های آزاد شده و به روزرسانی به Android 10 به طور پیش فرض از DhcpServer استفاده می کنند. اگر سفارشی سازی به سرور DHCP دارید ، می توانید با تنظیم تنظیم جهانی تنظیمات جهانی tether_enable_legacy_dhcp_server=1 به رفتار Android 9 برگردید. DhcpServer جدید در ماژول اجزای شبکه گنجانده شده است ، بنابراین هرگونه سفارشی سازی به عملکرد سرور DHCP باید بالادست باشد.

WPA3 و Wi-Fi بهبود یافته باز

Android 10 پشتیبانی از Wi-Fi Access Access 3 (WPA3) و Wi-Fi را استانداردهای امنیتی باز افزایش می دهد تا حریم خصوصی و استحکام بهتری را در برابر حملات شناخته شده فراهم کند.

وای فای دایرکت

Wi-Fi Direct ، همچنین به عنوان Wi-Fi P2P نیز شناخته می شود ، به دستگاه های پشتیبانی اجازه می دهد تا با استفاده از پروتکل مستقیم Wi-Fi بدون دسترسی به اینترنت یا شبکه تلفن همراه ، مستقیماً به یکدیگر کشف و متصل شوند.

پیشرفت های تصادفی MAC

از Android 10 ، تصادفی MAC به طور پیش فرض برای حالت مشتری ، SoftAP و Wi-Fi Direct فعال می شود. دستگاه ها باید گزینه ای را برای فعال یا غیرفعال کردن تصادفی MAC برای هر SSID در UI سیستم فراهم کنند.

Passpoint R2

Android 10 پشتیبانی از ویژگی های Passpoint R2 را معرفی می کند. Passpoint R2 ثبت نام آنلاین (OSU) ، یک روش استاندارد برای ارائه پروفایل های جدید Passpoint. Android 10 از تهیه پروفایل EAP-TTLS با استفاده از SOAP-XML پشتیبانی می کند.

NFC

NFC ایمن

Secure NFC اجازه می دهد تا شبیه سازی کارت NFC خارج از خانه فقط در صورت قفل صفحه دستگاه فعال شود. اجرای این ویژگی به کاربران این امکان را می دهد تا NFC ایمن را برای بهبود امنیت فعال کنند.

پرتو اندرویدی کاهش یافته است

در Android 10 ، Android Beam دیگر مورد نیاز نیست و رابط ها و روش های زیر از بین رفته است.

رابط ها:

روش ها:

برای استفاده از پرتو اندرویدی ، ویژگی android.sofware.nfc.beam را ثابت کنید.

گرافیک

asurcontrol

Android 10 ASurfaceControl اضافه می کند ، روشی جدید برای پذیرش SurfaceFlinger .

اجرای گرافیک

لایه های OpenGL

Android 10 یک سیستم لایه بندی را برای GLE ها معرفی می کند.

EGL 1.5

Android 10 رابط EGL 1.5 را پیاده سازی می کند. برای کسب اطلاعات در مورد ویژگی های جدید در EGL 1.5 ، مشخصات EGL 1.5 را منتشر می کند .

ولکان

Android 10 شامل پشتیبانی از گرافیک Vulkan 1.1 است. این پلتفرم همچنین از VK_KHR_swapchain ​​V70 پشتیبانی می کند ، بنابراین برنامه Vulkan قادر به ایجاد VkImage است که توسط حافظه Swapchain پشتیبانی می شود.

نرخ تازه سازی عملکرد

Android 10 پشتیبانی از نرخ تازه سازی عملکرد را اضافه می کند. این ویژگی به طور پیش فرض خاموش است.

تعامل

خودرو

صدای صوتی خودرو

در Android 10 ، نقشه های متن Audio HAL به AudioAttributes.usage برای شناسایی صداها. Android از یک نمونه AUDIO_DEVICE_OUT_BUS در هر زمینه پشتیبانی می کند. IAudioControl HAL پسوندهای خاص خودرو را به HAL صوتی ارائه می دهد.

ناوبری حرکتی

Android 10 گزینه ای را برای ناوبری سیستم حرکتی کاملاً معرفی می کند. برای کسب اطلاعات در مورد نحوه تهیه برنامه ها برای استفاده از این ویژگی ، به صفحه ناوبری حرکتی در سایت توسعه دهنده Android مراجعه کنید.

شبکه های عصبی

Android 10 به روزرسانی های شبکه های عصبی API و شبکه های عصبی HAL را معرفی می کند. برای خلاصه تغییرات ، به شبکه های عصبی مراجعه کنید.

مستندات شبکه های عصبی جدید و به روز شده برای Android 10:

حسگرها

سنسورهای HAL 2.0

سنسورهای HAL 2.0 با استفاده از صف پیام سریع (FMQ) برای ارسال رویدادهای سنسور از HAL به چارچوب سنسورهای اندرویدی پشتیبانی می کنند.

سنسورها خاموش

Android 10 شامل یک تنظیم کننده برای خاموش کردن تمام سنسورها در یک دستگاه است. این ویژگی به توسعه دهندگان کمک می کند تا عملکرد برنامه خود را در شرایطی که این سنسورها در دسترس نیستند آزمایش کنند و همچنین راهی برای کنترل سنسورها در دستگاه خود به کاربران می دهد.

اگر دستگاه های شما از اجرای پیش فرض SensorService ، CameraService و AudioPolicyService استفاده می کنند ، برای طراحی مرجع به سفارشی سازی اضافی لازم نیست. اگر سنسورهای دیگری دارید ، برای اطلاعات بیشتر در مورد پشتیبانی از این ویژگی ، به سفارشی سازی مراجعه کنید.

رسانه ها

اجزای رسانه ای به روز شده

Android 10 مؤلفه های رسانه ای به روز شده را فراهم می کند که به روزرسانی اجزای سیستم مدولار مربوط به رسانه را از طریق زیرساخت های فروشگاه Google Play یا از طریق مکانیسم خارج از هوا (OTA) ارائه می دهد.

DRM رسانه

Android 10 ابزار و قابلیت استفاده از API های MediaDrm Java و NDK را بهبود می بخشد.

رمزگشایی

Android 10 از رمزگشایی AV1 SW پشتیبانی می کند.

مجوزها

Android 10 پیکربندی های مجوز دیگری را برای شفافیت و حریم شخصی کاربر فراهم می کند.

اطلاعات ارائه دهنده و اطلاعات مربوط به ارتباطات

با شروع در Android 10 ، داده های مربوط به تماس با مخاطبین ، که توسط مؤلفه ارائه دهنده مخاطبین اداره می شود ، متفاوت از Android 9 و Lower قابل دسترسی است. این تغییرات در مورد دسترسی به داده ها باعث بهبود حریم خصوصی کاربر در کلیه دستگاه های Android 10 که از مؤلفه ارائه دهنده مخاطبین استفاده می کنند ، بهبود می یابد. پایگاه داده زیرین دیگر حاوی داده های پیوستگی تماس نیست. بنابراین برنامه ها نمی توانند از آن بنویسند یا بخوانند.

پیش بینی می شود تغییرات در اندروید 10 تأثیر زیادی در API ها داشته باشد. If your apps rely on the deprecated features mentioned in Contacts Provider and Affinities Information, you may want to update your apps to compensate for any changes. Additionally, if you use a forked version of the Contacts Provider, you must update your Contacts Provider.

Tristate location permissions

Tristate location permissions in Android 10 give users more control over how apps access their device locations.

Background location access reminder

Android 10 features a background access location reminder , which increases transparency into how much access apps have to a device's location and helps users maintain control over such access.

Restrict opportunistic locations

When an app requests a device's location, the app can either wait for the request response or, by using active location listeners, get an opportunistic location update. Starting in Android 10, to get opportunistic location updates , developers must specify that they need passive location updates from the FusedLocationProviderClient class.

Background apps launching

In Android 10, nonprivileged apps without a visible window can't launch themselves automatically to the foreground. This change suppresses ad popups and malicious takeovers. No action is required to enable this.

App sandboxing

In Android 10, apps have a limited raw view of the file system, with no direct access to paths like /sdcard/DCIM . However, apps retain full raw access to their package-specific paths, as returned by any applicable methods such as Context.getExternalFilesDir() . Apps still have full raw access to their package-specific paths.

Use the app sandbox guidelines for sharing files to provide appropriate data-sharing granularity.

Restrict app clipboard access

In Android 10, clipboard access has changed so that clipboard content can't be watched by calling ClipboardManager.getPrimaryClip or by adding an onPrimaryClipChangedListener listener for notification when the clipboard changes. This increases user privacy and disables malvertizing apps from modifying the clipboard.

In Android 10, read access is only allowed to either the current app with input focus, or to the current keyboard. The ClipboardManager.onPrimaryClipChanged() listener call now only fires for apps that meet such restrictions. ClipboardManager.getPrimaryClip and ClipboardManager.getPrimaryClipDescription return null if the requesting app either isn't the default input method editor (IME), or doesn't have input focus.

Runtime permissions include activity recognition

Users now see an activity recognition dialog when an app accesses device location in the background. Hard-restricted runtime permissions must be properly whitelisted in Android 10.

MANAGE_DEVICE_ADMINS permission

Android 10 changes the MANAGE_DEVICE_ADMINS permission from signature or privileged to signature only. This means that only platform-signed apps can set other apps as a device admin.

Sharing API improvements

Android 10 provides a number of new Android Platform API features related to sharing . If you've modified the Share Sheet code in your implementation, ensure that your implementation supports these new features. If you haven't modified the Share Sheet code in your implementation, you don't need to do anything to support these new features.

Android Runtime (ART)

Signed Config

The Signed Config feature allows embedding configuration of non-SDK interface restrictions in APKs. This enables removing specific non-SDK interfaces from the blacklist, so that AndroidX can safely use them. With this change, AndroidX can add support for new features on older Android versions.

عملکرد

Cgroup abstraction layer

Android 10 includes a cgroup abstraction layer and task profiles, which developers can use to describe a set of restrictions to apply to a thread or a process.

Low Memory Killer Daemon (lmkd)

Android 10 supports a new lmkd mode that uses kernel pressure stall information (PSI) monitors for memory pressure detection.

قدرت

Platform power management

In Android 10, Doze mode can be enabled on always-on devices as well as on battery-powered devices.

Routine battery saver

Android 10 introduces a new battery saver schedule option called based on routine . Routine battery saver allows an app chosen by the OEM to provide signals to the system for more intelligent battery saver scheduling. This option requires configuration, and is optional to implement.

Power stats HAL

In Android 10, IPowerStats.hal replaces the power stats collection APIs in IPower.hal . While the power HAL still supports the APIs, they'll be migrated exclusively to the power stats HAL in the future.

The power stats HAL includes new APIs to support the collection of data from on-device power measurement, for supported devices. The existing power stats collection APIs are also updated to improve flexibility. The power hinting APIs remain in power HAL and aren't changing.

Thermal mitigation

The thermal framework in Android 10 abstracts device interfaces for the thermal subsystem temperature sensor, including CPU, GPU, battery, skin, and cooling device. The framework introduces a polling interface to query thermal status to initiate throttling, and a callback interface to send a message to the user when a threshold is exceeded.

Android 10 provides the new data types through the IThermalService interface using these three new methods:

Apps add and remove listeners and access temperature status in the PowerManager class. Only a trusted system service such as an Android API or device manufacturer API can access information about associated causal events. Device manufacturers or SoC makers must implement thermal HAL 2.0 to enable the full functionality of the new thermal framework.

For a thermal mitigation implementation example, see the Reference implementation .

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

APEX file format

Android Pony EXpress (APEX) is a new container format used in the install flow for modular system components.

Dynamic partitions

Dynamic partitions introduce a userspace partitioning system to Android, allowing partitions to be created, resized, or destroyed during OTA updates. Device makers don't have to worry about the individual sizes of partitions, such as system , vendor , and product . Instead, one big super partition is allocated, and subpartitions can be sized dynamically within it.

Dynamic system updates

Dynamic system updates (DSU) allows you to make an Android system image that users can download from the internet and try out without the risk of corrupting the current system image.

Multiuser backup and restore

Android 10 supports backup and restore functionality for all users on a device. Previously, backup and restore was only available for the system user. Backup and restore for nonsystem users is turned off by default as it has only partial coverage for settings, wallpaper, and system components.

Overlayfs

Users working with userdebug or eng builds expect to be able to efficiently remount the system partition as read-write and then add or modify any number of files without reflashing the system image. You can use Overlayfs , which automatically sets up backing storage for a writable file system as an upper reference, and mounts over the lower. These actions happen in the adb disable-verity and adb remount requests. For more details, see the Overlayfs README in AOSP.

Shared library support in recovery mode

In Android 10, shared libraries are available in the recovery partition, which eliminates the need for all recovery mode executables to be static. The shared libraries are located under the /system/lib (or /system/lib64 for 64-bit devices) directory in the partition.

To add a new shared library to the recovery partition, add recovery_available: true or recovery: true to Android.bp of the shared library. The former installs the library to both the system and recovery partitions, while the latter installs it only to the recovery partition.

Shared library support can't be built with Android's make-based build system. To convert an existing static executable for the recovery mode to a dynamic one, remove LOCAL_FORCE_STATIC_EXECUTABLE := true in Android.mk or static_executable: true (in Android.bp ).

User Data Checkpoint (UDC)

Android 10 introduces the User Data Checkpoint (UDC) feature , which allows Android to roll back to its previous state when an Android over-the-air (OTA) update fails.