این صفحه خلاصهای از ویژگیهای اصلی نسخه اندروید ۱۰ را ارائه میدهد و پیوندهایی به اطلاعات تکمیلی ارائه میدهد. این خلاصه ویژگیها بر اساس محل مستندات هر ویژگی در این سایت سازماندهی شدهاند.
ساختن
کتابخانه java_sdk
اندروید ۱۰، java_sdk_library معرفی میکند، یک قانون ساخت جدید برای رفع مشکلات سازگاری برای کتابخانههای مشترک جاوا. تولیدکنندگان دستگاه میتوانند از این مکانیزم برای کتابخانههای مشترک جاوای خود استفاده کنند تا سازگاری معکوس را برای APIهای خود حفظ کنند.
معماری
اجزای سیستم مدولار
اندروید ۱۰ برخی از اجزای سیستم اندروید را ماژولار میکند و امکان بهروزرسانی آنها را خارج از چرخه انتشار عادی اندروید فراهم میکند. برخی از ماژولها عبارتند از:
- زمان اجرای اندروید
- رمزگذاری
- حل کننده DNS
- رابط کاربری اسناد
- خدمات خارجی
- رسانه
- ماژول فراداده
- شبکهسازی
- کنترلکنندهی مجوز
- دادههای منطقه زمانی
لایه انتزاعی سختافزار (HAL)
اندروید ۱۰ از خاموش شدن خودکار HALها در صورت عدم وجود کلاینت پشتیبانی میکند.
هسته
ای بی آی
اندروید ۱۰ شامل پشتیبانی از ابزارهای جدید نظارت بر ABI است که به مقایسه، ردیابی و کاهش تغییرات ABI هسته که بر سازگاری با ماژولهای هسته تأثیر میگذارند، کمک میکند.
اندروید ۱۰ همچنین یک بررسیکنندهی میزان استفاده از ABI مبتنی بر نماد را معرفی میکند. این بررسیکننده میتواند فایلهای باینری از پیش ساخته شدهی قدیمی را در زمان ساخت شناسایی کند، به طوری که توسعهدهندگان کتابخانههای اشتراکی میتوانند بدانند کدام فایلهای باینری از پیش ساخته شده ممکن است با تغییر آنها خراب شوند و کدام فایلهای باینری از پیش ساخته شده باید دوباره ساخته شوند.
دیمن قفل زنده اندروید
اندروید ۱۰ شامل Android Live-Lock Daemon (llkd) است که برای شناسایی و کاهش بنبستهای هسته طراحی شده است.
vDSO32 روی ARM64
اندروید ۱۰ از vDSO32 روی هستههای ۶۴ بیتی پشتیبانی میکند که باعث افزایش ۰.۴ درصدی عمر باتری و بهبودهای دیگر در عملکرد میشود.
ورودیهای fstab برای پارتیشنهای نصبشدهی اولیه
اندروید ۱۰ از دستگاهها میخواهد که ورودیهای fstab را برای پارتیشنهای مانتشدهی اولیه با استفاده از یک فایل fstab در مرحلهی اول ramdisk مشخص کنند.
هایدل
بارگیری صف پخش
اندروید ۱۰ شامل یک BroadcastQueue جدید offload به صفهای پسزمینه و پیشزمینه موجود است. صف offload همان رفتار اولویت و زمان انقضای صف پسزمینه را دارد. برای جلوگیری از مسدود شدن صف پسزمینه، جایی که پخشهای جالبتر یا قابل مشاهدهتر برای کاربر میتوانند رخ دهند، صف offload پخش BOOT_COMPLETED را مدیریت میکند، که بسیاری از برنامهها به آن گوش میدهند و تکمیل آن میتواند مدت زیادی طول بکشد. صف offload در حال حاضر فقط پخش BOOT_COMPLETED را مدیریت میکند، اما به طور بالقوه میتواند پخشهای طولانی دیگری را نیز مدیریت کند.
سرویس SystemSuspend
اندروید ۱۰ نخ موجود در libsuspend که مسئول آغاز تعلیق سیستم است را با سرویس SystemSuspend HIDL جایگزین میکند. این پیادهسازی، عملکردی معادل نسخههای قبلی ارائه میدهد و در عین حال از مزایای زیرساخت HIDL اندروید نیز بهرهمند میشود.
safe_union در HIDL
اندروید ۱۰ در HIDL، safe_union معرفی میکند که یک نوع union با برچسبگذاری صریح است.
پیکربندی
پیکربندی فروشگاه HAL
اندروید ۱۰ به دلیل مصرف زیاد حافظه و دشواری در استفاده، HAL مربوط به ConfigStore را منسوخ کرده و HAL را با ویژگیهای سیستمی جایگزین میکند.
API طرحواره فایل پیکربندی
پلتفرم اندروید شامل تعداد زیادی فایل XML برای ذخیره دادههای پیکربندی است. بسیاری از فایلهای XML در پارتیشن vendor قرار دارند، اما در پارتیشن system خوانده میشوند. در این حالت، طرحواره فایل XML به عنوان رابط بین دو پارتیشن عمل میکند و بنابراین طرحواره باید به صراحت مشخص شود و باید به شیوهای سازگار با نسخههای قبلی تکامل یابد. قبل از اندروید ۱۰، پلتفرم مکانیسمهایی برای الزام به تعیین و استفاده از طرحواره XML یا جلوگیری از تغییرات ناسازگار در طرحواره ارائه نمیکرد. اندروید ۱۰ این مکانیسم را با نام Config File Schema API ارائه میدهد.
ویژگیهای سیستم به عنوان API
ویژگیهای سیستم که از طریق پارتیشنها قابل دسترسی هستند، در فایلهای توصیفی sysprop شماتیک میشوند و APIهای دسترسی به ویژگیها به صورت توابع ملموس برای C++ و کلاسها برای جاوا تولید میشوند.
شیء رابط فروشنده (VINTF)
وینتف
تغییرات VINTF در اندروید ۱۰ شامل موارد زیر است:
- منسوخ کردن برچسبهای نسخه AVB
- افزودن اطلاعات کرنل در بستههای OTA
- ساخت و ساز رسمی ODM manifests
- اضافه کردن ماتریس سازگاری محصول
- مرتبط کردن یک ورودی مانیفست با یک ماژول HAL در سیستم ساخت
بوت لودر
رمدیسک
در اندروید ۱۰، فایل سیستم ریشه دیگر در ramdisk.img قرار ندارد و در عوض در system.img ادغام شده است.
ساخت پارتیشنهای ODM
اندروید ۱۰ شامل پشتیبانی از ساخت پارتیشنهای odm با استفاده از سیستم ساخت اندروید است. شما میتوانید از یک پارتیشن جداگانه /odm برای سفارشیسازی استفاده کنید که به شما امکان میدهد از یک تصویر فروشنده واحد برای چندین SKU سختافزاری استفاده کنید. این امر به تولیدکنندگان طرح اصلی (ODM) این امکان را میدهد که بستههای پشتیبانی برد (BSP) فروشنده سیستم روی تراشه (SoC) را برای دستگاههای خاص خود (بردهای خود) سفارشی کنند. آنها میتوانند ماژولهای هسته را برای اجزای خاص برد، سرویسهای خاص برد یا ویژگیهای خاص خود در لایههای انتزاعی سختافزار (HAL) پیادهسازی کنند. آنها همچنین ممکن است اجزای SoC را جایگزین یا سفارشی کنند.
نسخهبندی هدر تصویر بوت
اندروید ۱۰ هدر تصویر بوت را به نسخه ۲ بهروزرسانی میکند، که شامل بخشی برای ذخیره تصویر درخت دستگاه (DTB) است. آزمایشهای VTS اندروید ۱۰ تأیید میکنند که همه دستگاههایی که با اندروید ۱۰ راهاندازی میشوند از هدر تصویر بوت نسخه ۲ استفاده میکنند و یک تصویر DTB معتبر را به عنوان بخشی از تصاویر بوت/بازیابی در خود جای میدهند.
تصاویر بازیابی برای دستگاههای غیر A/B
در اندروید ۹ و بالاتر، تصویر بازیابی دستگاه باید حاوی اطلاعاتی از تصویر پوششی باشد . تولیدکنندگان دستگاه میتوانند از DeviceTree یا Advanced Configuration and Power Interface (ACPI) برای توصیف همه دستگاههای غیرقابل شناسایی استفاده کنند. اندروید ۱۰ و بالاتر شامل پشتیبانی از معماریهایی است که به جای DeviceTree blob برای پوشش (DTBO) از ACPI استفاده میکنند.
AIDL پایدار
اندروید ۱۰ پشتیبانی از زبان تعریف رابط کاربری پایدار اندروید (AIDL) را اضافه میکند، روشی جدید برای پیگیری رابط برنامه کاربردی (API)/رابط دودویی برنامه (ABI) که توسط رابطهای AIDL ارائه میشود.
انتقال فستبوت به فضای کاربری
اندروید ۱۰ با انتقال پیادهسازی فستبوت از بوتلودر به فضای کاربر، پشتیبانی از پارتیشنهای قابل تغییر اندازه را اضافه میکند.
نمایش
پخش ویدئو HDR
اندروید ۱۰ از پخش HDR10، VP9 و HDR10+ پشتیبانی میکند.
طبقهبندی متن
طبقهبندی متن از تکنیکهای یادگیری ماشین برای کمک به توسعهدهندگان در طبقهبندی متن استفاده میکند. اندروید ۱۰ دو متد را به API کلاسیفایر متن معرفی میکند: suggestConversationActions و detectLanguage . متد suggestConversationActions پاسخها و اقدامات پیشنهادی را از یک مکالمه داده شده تولید میکند و متد detectLanguage زبان متن را تشخیص میدهد.
پشتیبانی از رندر فونت Zawgyi
فونت Zawgyi محبوبترین فونت در میانمار است. اندروید ۹ و پایینتر از رندر کردن Zawgyi پشتیبانی نمیکرد زیرا با یونیکد سازگار نبود . اندروید ۱۰ با اضافه کردن یک فونت یونیکد که قادر به رندر کردن همزمان هر دو زبان برمه یونیکد و Zawgyi است، این مشکل را برطرف کرده است. برای پشتیبانی از رندر کردن فونت Zawgyi در دستگاههایی که با اندروید ۱۰ عرضه میشوند، نیازی به کار پیادهسازی نیست. اگر دستگاههای شما پیادهسازی سفارشی برای پشتیبانی از Zawgyi دارند، میتوانید:
- آن تغییرات را به حالت اولیه برگردانید و از روش پشتیبانیشده توسط پلتفرم استفاده کنید.
- فونت رایج Zawgyi را در سیستم خود نگه دارید و از کد محلی
my-qaagدرfonts.xmlخود استفاده کنید. برای اطلاعات بیشتر، به یادداشتهای انتشار Unicode CLDR در مورد Zawgyi (Qaag) مراجعه کنید.
محدودیتهای پنهان کردن آیکون برنامهها
اندروید ۱۰ قابلیت پنهان کردن آیکونهای لانچر برنامهها را محدود میکند. اگر فعالیت لانچر برای یک برنامه فعال نباشد، سیستم یک فعالیت ترکیبی در لانچر نمایش میدهد؛ این فعالیت ترکیبی، صفحه جزئیات برنامه را در تنظیمات سیستم نشان میدهد.
برای اطلاعات بیشتر در مورد منطق مورد استفاده برای نمایش آیکونهای برنامه، از جمله انواع برنامههایی که آیکونهای برنامه آنها نمایش داده نمیشود، به مستندات مربوط به getActivityList() در مرجع API مراجعه کنید.
تنظیمات
برای بهبود دسترسی، اندروید ۱۰ شامل تنظیمات زمانبندی قابل تنظیم توسط کاربر است. تغییرات API و تنظیمات با اندروید ۱۰ ارائه میشوند. اگر تنظیمات خود را سفارشی میکنید، مطمئن شوید که از این ویژگی پشتیبانی میشود. اگر عناصر رابط کاربری دارید که در دستگاه شما زمانبندی میشوند، از API زمانبندی در آنها استفاده کنید. برای اطلاعات بیشتر، به دستورالعملهای دسترسی توسعهدهندگان اندروید مراجعه کنید.
سازگاری
سند تعریف سازگاری اندروید (CDD)
سند تعریف سازگاری اندروید ۱۰، نسخههای قبلی را با بهروزرسانیهایی برای ویژگیهای جدید و تغییرات در الزامات عملکردهای منتشر شده قبلی، تکرار میکند.
آزمایشها
مجموعه تست سازگاری (CTS)
اندروید CTS یک صفحه یادداشت انتشار جداگانه دارد که بسیاری از تغییرات مهم اندروید ۱۰ را فهرست میکند.
دانلودهای CTS
بستههای CTS که از اندروید ۱۰ پشتیبانی میکنند، در صفحه دانلودهای CTS موجود هستند. کد منبع برای تستهای موجود را میتوان با برچسب android-cts-10_r1 در درخت متنباز همگامسازی کرد.
شیم CTS APEX
اندروید ۱۰ بستهای به نام CtsShimApex را معرفی میکند که برای نوشتن تستهای CTS برای مدیریت APEX باید از قبل روی دستگاه نصب شده باشد.
حالت مهار تست
حالت مهار تست CTS به توسعهدهندگان کمک میکند تا تست یک دستگاه یا مجموعهای از دستگاهها را خودکار کنند.
حالت برنامههای فوری
با شروع از اندروید ۱۰، CTS در حالت Instant Apps اجرا میشود، که به معنی نصب APK آزمایشی به عنوان یک Instant App و اجرای تستها است.
علاوه بر حالت CTS برای برنامههای فوری، اندروید ۱۰ شامل تأییدکننده CTS برای برنامههای فوری نیز میشود.
تست صوتی CTS Verifier pro
اندروید ۱۰ یک تست CTS Verifier برای انطباق با Pro Audio اضافه میکند.
تستهای MIDI تأییدکننده CTS
در اندروید ۱۰، تست MIDI تأییدکننده CTS، عملکرد MIDI را با رابطهای USB MIDI، رابطهای Bluetooth MIDI و یک مسیر دستگاه MIDI مجازی آزمایش میکند.
تفسیر آزمایش CTS
اندروید ۱۰ مکانیزم تفسیر نتایج CTS را بهروزرسانی میکند.
مجموعه تست فروشنده (VTS)
تست VTS با اشکالزدایی ramdisk
در اندروید ۱۰، تصویر سیستم عمومی (GSI) که برای اجرای تست انطباق CTS-on-GSI/VTS استفاده میشود، از userdebug به نوع ساخت کاربر تغییر میکند، زیرا GSI دارای امضای انتشار است. با این حال، دستور adb root که به دستگاه اندروید تحت آزمایش، مجوزهای ریشه میزبان را میدهد، در ساخت کاربر موجود نیست. این یک مشکل است زیرا VTS برای اجرا به adb root نیاز دارد.
دیباگ ramdisk برای فعال کردن دسترسی adb root در صورت باز بودن قفل دستگاه معرفی شده است. این امر با استفاده مجدد از همان system.img ساخت کاربر (چه GSI و چه system.img سازنده اصلی دستگاه)، جریان آزمایش را ساده میکند.
اعتبارسنجی Composer سختافزاری
اندروید ۱۰ یک کلاس تست VTS جدید برای اعتبارسنجی Hardware Composer از طریق رابط readback در IComposerClient.hal اضافه میکند. اگر فروشندگان readback پیادهسازی نکنند، تستها به طور خودکار پاس میشوند.
اشکالزدایی
بارگذاری کتابخانههای مشترک با کلاس لودرهای مختلف
در اندروید ۹ و پایینتر، برنامهها کتابخانههای مشترک جاوای مرتبط خود را در بارگذار کلاس برنامه بارگذاری میکردند. در اندروید ۱۰، این فریمورک از یک بارگذار کلاس متفاوت از بارگذار کلاس برنامه برای بارگذاری کتابخانههای مشترک جاوا که از طریق uses-library یا uses-static-library مرتبط هستند، استفاده میکند.
به طور کلی، برنامهها نباید به استفاده از یک بارگذار کلاس خاص متکی باشند، بنابراین این تغییر نباید رفتار برنامه را مختل کند. با این حال، اگر یک برنامه به استفاده از یک بارگذار کلاس واحد متکی باشد، آن رفتار مختل میشود. علاوه بر این، قابلیت مشاهده خصوصی بسته کلاسها در همان بسته همچنان پشتیبانی میشود، اما در کتابخانههای مشترک پشتیبانی نمیشود.
تولیدکنندگان دستگاه ممکن است هنگام آزمایش دستگاههای خود با اندروید ۱۰، با مشکلات سازگاری برنامهها مواجه شوند.
ویژگیهای امنیتی
برای مشاهده فهرست کاملتری از بهبودهای مربوط به امنیت و حریم خصوصی، به صفحه بهبودهای امنیتی و حریم خصوصی اندروید ۱۰ مراجعه کنید.
احراز هویت با چهره
احراز هویت با چهره به کاربران این امکان را میدهد که قفل دستگاه خود را به سادگی با نگاه کردن به جلوی دستگاه خود باز کنند. اندروید ۱۰ از یک پشته جدید احراز هویت با چهره پشتیبانی میکند که میتواند فریمهای دوربین را به طور ایمن پردازش کند و امنیت و حریم خصوصی را در حین احراز هویت با چهره روی سختافزارهای پشتیبانی شده حفظ کند. اندروید ۱۰ همچنین راهی آسان برای پیادهسازیهای سازگار با امنیت فراهم میکند تا ادغام برنامهها را برای تراکنشهایی مانند بانکداری آنلاین یا سایر خدمات امکانپذیر سازد.
دسترسی گسترده
Trust agentها، مکانیزم اساسی مورد استفاده توسط مکانیزمهای احراز هویت ثالث مانند Smart Lock، فقط میتوانند در اندروید ۱۰ مدت زمان باز شدن قفل را افزایش دهند. Trust agentها دیگر نمیتوانند دستگاه قفل شده را باز کنند و فقط میتوانند دستگاه را حداکثر تا چهار ساعت قفل نشده نگه دارند.
رمزگذاری
او ام ای کریپتو
اندروید ۱۰ از نسخه ۱۵ رابط برنامهنویسی OEMCrypto استفاده میکند.
آزمایش
BoundsSanitizer
اندروید ۱۰ از BoundsSanitizer (BoundSan) در بلوتوث و کدکها استفاده میکند. BoundSan از bounds sanitizer مربوط به UBSan استفاده میکند. این کاهش در سطح هر ماژول فعال میشود. این به ایمن نگه داشتن اجزای حیاتی اندروید کمک میکند و نباید غیرفعال شود. BoundSan در کدکهای زیر فعال است:
-
libFLAC -
libavcdec -
libavcenc -
libhevcdec -
libmpeg2 -
libopus -
libvpx -
libspeexresampler -
libvorbisidec -
libaac -
libxaac
پاکسازی سرریز اعداد صحیح
اندروید ۱۰ قابلیت Integer Overflow Sanitization (IntSan) را در کدکهای نرمافزاری فعال میکند. اطمینان حاصل کنید که عملکرد پخش برای هر کدکی که در سختافزار دستگاه پشتیبانی نمیشود، قابل قبول است. IntSan در کدکهای زیر فعال است:
-
libFLAC -
libavcdec -
libavcenc -
libhevcdec -
libmpeg2 -
libopus -
libvpx -
libspeexresampler -
libvorbisidec
حافظه فقط اجرا شونده
بهطور پیشفرض، بخشهای کد اجرایی برای فایلهای باینری سیستم AArch64 به عنوان یک راهکار کاهشدهندهی حملات استفادهی مجدد از کد درجا (just-in-time) با عنوان فقط-اجرا (غیرقابل خواندن) علامتگذاری میشوند. کدی که دادهها و کد را با هم ترکیب میکند و کدی که بهطور هدفمند این بخشها را بررسی میکند (بدون اینکه ابتدا بخشهای حافظه را بهعنوان قابل خواندن بازنگاشت کند) دیگر کار نمیکند. برنامههایی با SDK هدف اندروید ۱۰ (سطح API ۲۹ یا بالاتر) در صورتی تحت تأثیر قرار میگیرند که برنامه سعی کند بخشهای کد کتابخانههای سیستم فعالشده با حافظهی فقط-اجرا (XOM) را در حافظه بخواند، بدون اینکه ابتدا آن بخش را بهعنوان قابل خواندن علامتگذاری کند.
اسکودو
اسکودو یک تخصیصدهنده حافظه پویا در حالت کاربر است که برای مقاومت بیشتر در برابر آسیبپذیریهای مربوط به پشته طراحی شده است. این برنامه، توابع اولیه تخصیص و آزادسازی حافظه استاندارد C و همچنین توابع اولیه C++ را ارائه میدهد.
ShadowCallStack
ShadowCallStack (SCS) یک حالت ابزار دقیق LLVM است که با ذخیره آدرس برگشتی یک تابع در یک نمونه ShadowCallStack که به طور جداگانه در prolog تابع توابع nonleaf اختصاص داده شده است و بارگذاری آدرس برگشتی از نمونه ShadowCallStack در epilog تابع، از بازنویسی آدرس برگشتی (مانند سرریز بافر پشته) جلوگیری میکند.
صوتی
صوتی HAL
اندروید ۱۰ شامل قابلیتهای جدید زیر برای HAL صوتی است.
-
AudioSource -
AudioFormat -
AudioChannelMask
الزامات اضافی برای پیادهسازی HAL صوتی و زیرسیستم اضافه شده است.
اثرات پیشپردازش
اندروید جلوههای پیشپردازشی مانند حذف اکوی صوتی، کنترل خودکار گین و حذف نویز را ارائه میدهد. اندروید ۱۰ شامل الزامات جدیدی برای ضبط با VOICE_COMMUNICATION است.
مدیر سیاست صوتی
اندروید ۱۰ شامل یک بازطراحی قابل توجه در مدیریت سیاستهای صوتی است تا انعطافپذیری بیشتری برای پشتیبانی از موارد پیچیده استفاده در خودرو فراهم کند.
صدای با وضوح بالا
اندروید ۱۰ شامل بهبودهای زیر برای صدای با وضوح بالا است.
- پشتیبانی شناور
- پشتیبانی از فرکانس ۱۹۲ کیلوهرتز
- پشتیبانی از هشت کانال
- گنجاندن اطلاعات زمانبندی
ضبط همزمان
اندروید ۱۰ تجربه کاربری ضبط همزمان صدا را که نیاز به بیش از یک ضبط صدای فعال به طور همزمان دارد، بهبود میبخشد.
ضبط و پخش صدا
اندروید ۱۰ شامل یک API جدید به نام AudioPlaybackCapture است که به برنامهها این امکان را میدهد تا صدای پخش شده توسط برنامههای دیگر را کپی کنند. این ویژگی مشابه ضبط صفحه نمایش است، اما برای صدا. کاربرد اصلی آن، فعال کردن برنامههای پخش جریانی برای ضبط صدای پخش شده توسط بازیها است.
API ضبط، تأخیر برنامهای که صدای آن ضبط میشود را تحت تأثیر قرار نمیدهد.
میدی
اندروید ۱۰ با استفاده از رابط برنامهنویسی کاربردی AMidi NDK ، انتقال برنامههای صوتی حرفهای با استفاده از MIDI به پلتفرم اندروید را آسانتر میکند.
دوربین
برای خلاصهای از تغییرات API دوربین، HAL دوربین و ماژول دوربین معرفیشده در اندروید ۱۰، به بهروزرسانیهای دوربین اندروید ۱۰ مراجعه کنید.
بهبودهای حریم خصوصی در چارچوب دوربین
اندروید ۱۰ بهبودهایی در حریم خصوصی فریمورک دوربین ارائه میدهد. برای جلوگیری از افشای اطلاعات استاتیک دوربین که احتمالاً حساس هستند در CameraCharacteristics بدون رضایت کاربر، برنامهها باید مجوز CAMERA را برای بازیابی فرادادههای استاتیک با برچسب حساس به حریم خصوصی با استفاده از متد getCameraCharacteristics دریافت کنند.
برای دریافت لیستی از کلیدهای مشخصه دوربین که به مجوز CAMERA نیاز دارند، متد getKeysNeedingPermission را فراخوانی کنید.
پرس و جو برای پیکربندی مجدد جلسه
اندروید ۱۰ یک ویژگی پرسوجوی پیکربندی مجدد جلسه اضافه کرده است که از طریق کنترل بیشتر بر منطق پیکربندی مجدد پارامترهای جلسه داخلی، امکان بهبود عملکرد را فراهم میکند.
API های مدیریت بافر دوربین HAL3
اندروید ۱۰ رابطهای برنامهنویسی کاربردی (API) اختیاری مدیریت بافر دوربین HAL3 را معرفی میکند که به شما امکان میدهد منطق مدیریت بافر را برای دستیابی به تعادلهای مختلف در حافظه و تأخیر ضبط در پیادهسازیهای HAL دوربین پیادهسازی کنید.
سوئیچ دوربین فیزیکی پویا HAL دوربین
اندروید ۱۰ یک تگ فراداده پویا به نام ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID معرفی کرده است که دوربین فیزیکی فعال زیرین یک دستگاه دوربین منطقی را نشان میدهد. برای اطلاعات بیشتر، به پشتیبانی از چند دوربین مراجعه کنید.
پشتیبانی از پنهان کردن دوربینهای فیزیکی
در اندروید ۱۰، دوربین HAL میتواند تعداد دوربینهای فیزیکی که میتوانند مستقیماً توسط یک برنامه باز شوند را کاهش دهد. برای جزئیات بیشتر، به پشتیبانی از چند دوربین مراجعه کنید.
رابط برنامهنویسی نرمافزار VNDK دوربین۲
در اندروید ۱۰، ماژولهای فروشنده میتوانند از طریق دو رابط استاندارد جدید HIDL، android.frameworks.cameraservice.service@2.0 و android.frameworks.cameraservice.device@2.0 ، به دستگاههای دوربین دسترسی داشته و آنها را کنترل کنند. برای راحتتر کردن استفاده از رابطهای HIDL، اندروید ۱۰ یک کتابخانه در دسترس فروشنده، libcamera2_vendor را نیز معرفی میکند. این کتابخانه مشابه کتابخانه Camera NDK است، با چند تغییر جزئی.
پیکربندیهای جریان
اندروید ۱۰ ویژگیهایی را اضافه میکند که به فروشندگان دوربین اجازه میدهد جریانهای دوربین پیشنهادی را به مشتریان دوربین تبلیغ کنند و از یک API برای جستجوی ترکیبهای جریان پشتیبانی کنند.
الزامات ترکیب جریان دوربین
دستگاههایی که اندروید ۱۰ را اجرا میکنند دیگر نیازی به پشتیبانی از ترکیب جریان با جریانهای فیزیکی زیردوربین ندارند. با این حال، دستگاههایی که اندروید ۱۰ را با دوربین HAL نسخه ۳.۵ اجرا میکنند، باید از isStreamCombinationSupported() پشتیبانی کنند تا به برنامهها اجازه دهند تا بررسی کنند که آیا ترکیب جریان حاوی جریانهای فیزیکی پشتیبانی میشود یا خیر.
برای اطلاعات بیشتر، به پشتیبانی از چند دوربین مراجعه کنید.
تصویربرداری HEIF
اندروید ۱۰ پشتیبانی دوربین بومی از تصاویر با فرمت فایل تصویری با راندمان بالا (HEIF) را ارائه میدهد که کیفیت تصویر بهبود یافته و اندازههای کوچکتری نسبت به تصاویر JPEG ارائه میدهند. دستگاهها برای پشتیبانی از تصاویر HEIF باید دارای رمزگذار HEIC یا HEVC باشند.
دوربینهای تک رنگ
اندروید ۱۰ پشتیبانی بیشتری از فرمت جریان Y8، ابردادههای استاتیک آرایه فیلتر رنگ تک رنگ و نزدیک به مادون قرمز (NIR) و توابع DngCreator برای دوربینهای تک رنگ ارائه میدهد.
اتصال
تماس و پیام رسانی
شمارههای اضطراری و تماسهای اضطراری
اندروید ۱۰ پشتیبانی بهتری از تماس اضطراری ارائه میدهد. در مواقع اضطراری، دستگاههایی که از IRadio HAL نسخه ۱.۴ پشتیبانی میکنند، میتوانند با استفاده از شمارههای اضطراری بازیابی شده از منبعی مانند سیم کارت، سیگنال شبکه یا پایگاه داده اندروید، تماس اضطراری برقرار کنند. شمارهها را میتوان بر اساس دستههای خدمات اضطراری مانند پلیس، آتش نشانی و آمبولانس طبقهبندی کرد.
APIهای تماس گروهی
APIهای تماس گروهی، افزونهای از APIهای eMBMS هستند که در اندروید ۹ اضافه شدهاند. APIهای جدید، استانداردی را برای برنامهها تعریف میکنند تا با تعامل با بستههای میانافزار eMBMS، به تماسهای گروهی پخش سلولی بپیوندند و در آنها پخش کنند. تماسهای گروهی برای عملکرد صحیح نیاز به پشتیبانی از فروشنده چیپست، فروشنده میانافزار و اپراتور تلفن همراه دارند. مستندات توسعهدهنده در developer.google.com قرار دارد.
قابلیتهای سیمکارت از راه دور
اندروید ۱۰ قابلیتهای سیمکارت از راه دور را معرفی میکند که به برنامههای پیامرسان روی دستگاه میزبان اندروید اجازه میدهد تا با استفاده از مکانیسمهایی مانند بلوتوث، از طریق تلفنها پیامک ارسال کنند. برای اطلاعات بیشتر، به مستندات مرجع برای متد getSubscriptionType و ثابت SUBSCRIPTION_TYPE_REMOTE_SIM مراجعه کنید.
چندین سیمکارت الکترونیکی
در اندروید ۱۰، کلاس EuiccManager از دستگاههایی با چندین سیمکارت تعبیهشده (eSIM) یا eUICC پشتیبانی میکند.
بهروزرسانیهای eSIM
برای دستگاههایی که اندروید ۱۰ را اجرا میکنند و از eSIM پشتیبانی میکنند، باید یک آرایه شناسه اسلات eUICC غیرقابل جابجایی تعریف شود. دستگاهها همچنین باید از IRadio HAL نسخه ۱.۴ و IRadioConfig HAL نسخه ۱.۲ پشتیبانی کنند. برای اطلاعات بیشتر، به پیادهسازی الزامات eSIM و HAL مراجعه کنید.
5G غیرمستقل (NSA)
اندروید ۱۰ پشتیبانی از ۵G غیرمستقل (NSA) را اضافه میکند. ۵G NSA راهکاری برای شبکههای ۵G است که در آنها شبکه توسط زیرساخت ۴G موجود پشتیبانی میشود. در اندروید ۱۰، دستگاهها میتوانند هنگام اتصال به شبکه ۵G، یک نماد ۵G را در نوار وضعیت نمایش دهند.
پیشنهاد حساب کاربری تلفنی
اندروید ۱۰ سرویس پیشنهاد حساب کاربری تلفن را معرفی میکند که به کاربران اجازه میدهد هنگام برقراری تماس، پیشنهادهایی برای حسابهای کاربری تلفن خود دریافت کنند.
حامل
تنظیمات شبکه تلفن همراه را منتقل کنید
اندروید ۱۰ کد رابط کاربری تنظیمات شبکه تلفن همراه را دوباره معماری کرد و آن را از پشته Telephony به پشته Settings منتقل کرد. برای پشتیبانی از کد منتقل شده، مقادیر پیکربندی تنظیمات شبکه تلفن همراه زیر را از منابع اندروید به منابع 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 و شماره سریال سیمکارت توسط اپراتور ارائه میشوند، دسترسی به این شناسهها به بستههایی با امتیازات اپراتور اعطا میشود.
وایفای
انتخاب شبکه
اندروید به طور مداوم کیفیت شبکه متصل و کیفیت شبکههای موجود را ارزیابی میکند. اندروید ۱۰ الگوریتمها و رویههای بهروز شدهای برای انتخاب و جابجایی بین شبکههای وایفای دارد.
اسکن تخلیه بار شبکه ترجیحی Wi-Fi
اندروید ۱۰ یک متد API اختیاری به نام setDeviceMobilityState() را در WifiManager معرفی میکند که فاصله بین اسکنهای ترجیحی تخلیه بار شبکه (PNO) را در زمانی که دستگاه ثابت است، افزایش میدهد تا مصرف برق کاهش یابد.
وایفای اپراتور
در اندروید ۱۰، دستگاههایی که دارای قابلیت وایفای اپراتور هستند، بهطور خودکار به شبکههای وایفای پیکربندیشده اپراتور (شبکههایی با گواهیهای کلید عمومی) متصل میشوند.
اتصال آسان وایفای
در اندروید ۱۰، دستگاهها میتوانند از Wi-Fi Easy Connect که از پروتکل تأمین دستگاه (DPP) معرفی شده توسط اتحادیه Wi-Fi (WFA) استفاده میکند، برای تأمین و پیکربندی دستگاههای Wi-Fi استفاده کنند.
حالت تأخیر کم وایفای
اندروید ۱۰ حالت وایفای با تأخیر کم را معرفی میکند که تراشه وایفای را برای کاهش تأخیر پیکربندی میکند.
سرور DHCP بهروزرسانی شد
به عنوان بخشی از تشکیل چتر سرویس "IP Server"، dnsmasq در حال حذف شدن است. اندروید ۱۰، کاربرد عملکردی سرور DHCPv4 خود را با یک جزء جداگانه جایگزین میکند که عمدتاً با زبان جاوا نوشته شده است تا بهتر با صفحه کنترل چارچوب جاوا ادغام شود. این امر امنیت و قابلیت بهروزرسانی سرور DHCP را بهبود میبخشد. برای جزئیات بیشتر، به packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java مراجعه کنید.
برای اجرای این تغییر نیازی به هیچ اقدامی نیست: همه دستگاههایی که به اندروید ۱۰ ارتقا یافته و منتشر میشوند، به طور پیشفرض DhcpServer استفاده میکنند. اگر تنظیماتی در سرور DHCP دارید، میتوانید با تنظیم تنظیم سراسری tether_enable_legacy_dhcp_server=1 ، به رفتار اندروید ۹ برگردید. DhcpServer جدید در ماژول اجزای شبکه گنجانده شده است، بنابراین هرگونه سفارشیسازی در عملکرد سرور DHCP باید به صورت upstream انجام شود.
WPA3 و Wi-Fi Enhanced Open
اندروید ۱۰ پشتیبانی از استانداردهای امنیتی Wi-Fi Protected Access 3 (WPA3) و Wi-Fi Enhanced Open را اضافه میکند تا حریم خصوصی و مقاومت بهتری در برابر حملات شناخته شده ارائه دهد.
وایفای دایرکت
وایفای دایرکت که با نام وایفای P2P نیز شناخته میشود، به دستگاههای پشتیبانیکننده اجازه میدهد تا با استفاده از پروتکل وایفای دایرکت، بدون دسترسی به اینترنت یا شبکه تلفن همراه، یکدیگر را کشف کرده و مستقیماً به یکدیگر متصل شوند.
بهبودهای تصادفیسازی MAC
از اندروید ۱۰، تصادفیسازی مک (MAC randomization) به طور پیشفرض برای حالت کلاینت، SoftAp و Wi-Fi Direct فعال است. دستگاهها باید گزینهای را برای فعال یا غیرفعال کردن تصادفیسازی مک برای هر SSID در رابط کاربری سیستم ارائه دهند.
نقطه عبور R2
اندروید ۱۰ پشتیبانی از ویژگیهای Passpoint R2 را معرفی میکند. Passpoint R2 ثبتنام آنلاین (OSU) را پیادهسازی میکند، که روشی استاندارد برای ارائه پروفایلهای Passpoint جدید است. اندروید ۱۰ از ارائه پروفایلهای EAP-TTLS با استفاده از SOAP-XML پشتیبانی میکند.
ان اف سی
NFC امن
NFC امن اجازه میدهد شبیهسازی کارت NFC خارج از میزبان فقط زمانی فعال شود که صفحه نمایش دستگاه قفل نباشد. پیادهسازی این ویژگی به کاربران این امکان را میدهد که NFC امن را برای بهبود امنیت فعال کنند.
اندروید بیم منسوخ شد
در اندروید ۱۰، دیگر نیازی به Android Beam نیست و رابطها و متدهای زیر منسوخ شدهاند.
رابطها:
-
NfcAdapter.CreateBeamUrisCallback -
NfcAdapter.CreateNdefMessageCallback -
NfcAdapter.OnNdefPushCompleteCallback
روشها:
-
createBeamUris -
invokeBeam -
isNdefPushEnabled -
setBeamPushUris -
setBeamPushUrisCallback -
setNdefPushMessage -
setNdefPushMessageCallback -
setOnNdefPushCompleteCallback -
createNdefMessageCallback -
onNdefPushCompleteCallback
برای استفاده از Android Beam، ثابت ویژگی android.sofware.nfc.beam را گزارش دهید.
گرافیک
کنترل سطحی
اندروید ۱۰، ASurfaceControl را اضافه میکند، روشی جدید برای SurfaceFlinger جهت پذیرش بافرها.
پیادهسازی گرافیک
لایههای OpenGL ES
اندروید ۱۰ یک سیستم لایهبندی برای GLES معرفی میکند.
EGL 1.5
اندروید ۱۰ رابط EGL 1.5 را پیادهسازی میکند. برای اطلاعات بیشتر در مورد ویژگیهای جدید EGL 1.5، به مشخصات انتشارهای Khronos EGL 1.5 مراجعه کنید.
ولکان
اندروید ۱۰ از گرافیک Vulkan 1.1 پشتیبانی میکند. این پلتفرم همچنین از VK_KHR_swapchain نسخه ۷۰ پشتیبانی میکند، بنابراین برنامه Vulkan قادر به ایجاد VkImage با پشتیبانی حافظه swapchain است.
نرخ تازهسازی عملکرد
اندروید ۱۰ پشتیبانی از نرخ تازهسازی عملکرد را اضافه میکند. این ویژگی به طور پیشفرض غیرفعال است.
تعامل
خودرو
سیستم صوتی خودرو
در اندروید ۱۰، زمینه Audio HAL برای شناسایی صداها به AudioAttributes.usage نگاشت میشود. اندروید از یک نمونه AUDIO_DEVICE_OUT_BUS به ازای هر زمینه پشتیبانی میکند. IAudioControl HAL افزونههای مخصوص خودرو را برای Audio HAL فراهم میکند.
ناوبری حرکتی
اندروید ۱۰ گزینهای برای ناوبری سیستمی کاملاً مبتنی بر اشاره معرفی میکند. برای اطلاعات بیشتر در مورد نحوه آمادهسازی برنامهها برای استفاده از این ویژگی، به صفحه ناوبری مبتنی بر اشاره در سایت توسعهدهندگان اندروید مراجعه کنید.
شبکههای عصبی
اندروید ۱۰ بهروزرسانیهایی را برای API شبکههای عصبی و HAL شبکههای عصبی معرفی میکند. برای خلاصهای از تغییرات، به شبکههای عصبی مراجعه کنید.
مستندات جدید و بهروز شده شبکههای عصبی برای اندروید ۱۰:
- نمای کلی
- بافر سختافزاری
- اجرای پشت سر هم و صفهای پیام سریع
- ذخیرهسازی کامپایل
- کشف و تخصیص دستگاه
- افزونههای فروشنده
حسگرها
حسگرها HAL 2.0
حسگرها HAL 2.0 از صفهای پیام سریع (FMQ) برای ارسال رویدادهای حسگر از HAL به چارچوب حسگرهای اندروید پشتیبانی میکند.
حسگرها خاموش هستند
اندروید ۱۰ شامل تنظیماتی برای توسعهدهندگان است که به آنها اجازه میدهد تمام حسگرهای دستگاه را خاموش کنند . این ویژگی به توسعهدهندگان کمک میکند تا عملکرد برنامه خود را در موقعیتهایی که حسگرها از دسترس خارج میشوند، آزمایش کنند و همچنین به کاربران راهی برای کنترل حسگرهای دستگاه خود میدهد.
اگر دستگاههای شما از پیادهسازی پیشفرض SensorService ، CameraService و AudioPolicyService استفاده میکنند، نیازی به سفارشیسازی اضافی در طراحی مرجع نیست. اگر حسگرهای دیگری دارید، برای جزئیات بیشتر در مورد پشتیبانی از این ویژگی، به بخش «سفارشیسازی» مراجعه کنید.
رسانه
اجزای رسانهای قابل بهروزرسانی
اندروید ۱۰ اجزای رسانهای قابل بهروزرسانی را ارائه میدهد که بهروزرسانی اجزای سیستم ماژولار مرتبط با رسانه را از طریق زیرساخت فروشگاه گوگل پلی یا از طریق مکانیسم بیسیم (OTA) ارائه شده توسط شرکا امکانپذیر میکند.
مدیریت حقوق دیجیتال رسانه
اندروید ۱۰ کارایی و قابلیت استفاده از APIهای MediaDrm Java و NDK را بهبود میبخشد.
رمزگشایی
اندروید ۱۰ از رمزگشایی AV1 SW پشتیبانی میکند.
مجوزها
اندروید ۱۰ تنظیمات مجوز بیشتری را برای شفافیت و حفظ حریم خصوصی کاربر ارائه میدهد.
اطلاعات تماس ارائه دهنده و وابستگیها
از اندروید ۱۰ به بعد، دسترسی به دادههای مربوط به وابستگی مخاطبین که توسط کامپوننت Contacts Provider مدیریت میشوند، نسبت به اندروید ۹ و پایینتر، متفاوت است. این تغییرات در مورد دسترسی به دادهها، حریم خصوصی کاربر را در تمام دستگاههای اندروید ۱۰ که از کامپوننت Contacts Provider استفاده میکنند، بهبود میبخشد. پایگاه داده اصلی دیگر حاوی دادههای وابستگی مخاطبین نیست. بنابراین برنامهها نمیتوانند در آن بنویسند یا از آن بخوانند.
انتظار میرود تغییرات اندروید ۱۰ تأثیر زیادی بر APIها داشته باشد. اگر برنامههای شما به ویژگیهای منسوخشدهای که در Contacts Provider و Affinities Information ذکر شده است، متکی هستند، ممکن است بخواهید برنامههای خود را برای جبران هرگونه تغییر بهروزرسانی کنید. علاوه بر این، اگر از نسخهای دستکاریشده از Contacts Provider استفاده میکنید، باید Contacts Provider خود را بهروزرسانی کنید.
مجوزهای موقعیت مکانی Tristate
مجوزهای موقعیت مکانی سهگانه در اندروید ۱۰ به کاربران کنترل بیشتری بر نحوه دسترسی برنامهها به موقعیت مکانی دستگاهشان میدهد.
یادآوری دسترسی به موقعیت مکانی در پسزمینه
اندروید ۱۰ دارای یک یادآوری موقعیت مکانی دسترسی در پسزمینه است که شفافیت در مورد میزان دسترسی برنامهها به موقعیت مکانی دستگاه را افزایش میدهد و به کاربران کمک میکند تا کنترل چنین دسترسیهایی را حفظ کنند.
محدود کردن مکانهای فرصتطلب
وقتی یک برنامه موقعیت مکانی یک دستگاه را درخواست میکند، برنامه میتواند منتظر پاسخ درخواست بماند یا با استفاده از شنوندههای موقعیت مکانی فعال، بهروزرسانی موقعیت مکانی فرصتطلبانه را دریافت کند. از اندروید ۱۰ به بعد، برای دریافت بهروزرسانیهای موقعیت مکانی فرصتطلبانه ، توسعهدهندگان باید مشخص کنند که به بهروزرسانیهای موقعیت مکانی غیرفعال از کلاس FusedLocationProviderClient نیاز دارند.
اجرای برنامههای پسزمینه
در اندروید ۱۰، برنامههای بدون مجوز که پنجرهی قابل مشاهدهای ندارند، نمیتوانند بهطور خودکار در پسزمینه اجرا شوند. این تغییر، نمایش تبلیغات پاپآپ و دسترسیهای مخرب را مسدود میکند. برای فعال کردن این قابلیت، نیازی به انجام هیچ کاری نیست.
سندباکس کردن برنامه
در اندروید ۱۰، برنامهها نمای خام محدودی از سیستم فایل دارند و دسترسی مستقیمی به مسیرهایی مانند /sdcard/DCIM ندارند. با این حال، برنامهها دسترسی خام کامل به مسیرهای خاص بسته خود را حفظ میکنند، همانطور که توسط هر روش قابل اجرا مانند Context.getExternalFilesDir() برگردانده میشود. برنامهها همچنان دسترسی خام کامل به مسیرهای خاص بسته خود دارند.
برای ارائه جزئیات مناسب در مورد اشتراکگذاری دادهها، از دستورالعملهای جعبه شنی برنامه برای اشتراکگذاری فایلها استفاده کنید.
محدود کردن دسترسی به کلیپبورد برنامه
در اندروید ۱۰، دسترسی به کلیپبورد تغییر کرده است، به طوری که محتوای کلیپبورد را نمیتوان با فراخوانی ClipboardManager.getPrimaryClip یا با اضافه کردن یک شنونده onPrimaryClipChangedListener برای اطلاعرسانی هنگام تغییر کلیپبورد مشاهده کرد. این امر باعث افزایش حریم خصوصی کاربر و غیرفعال کردن برنامههای مخرب از تغییر کلیپبورد میشود.
در اندروید ۱۰، دسترسی خواندن فقط به برنامه فعلی با فوکوس ورودی یا به صفحه کلید فعلی مجاز است. اکنون فراخوانی شنونده ClipboardManager.onPrimaryClipChanged() فقط برای برنامههایی که چنین محدودیتهایی را رعایت میکنند، اجرا میشود. ClipboardManager.getPrimaryClip و ClipboardManager.getPrimaryClipDescription در صورتی که برنامه درخواستکننده ویرایشگر روش ورودی پیشفرض (IME) نباشد یا فوکوس ورودی نداشته باشد، null را برمیگردانند.
مجوزهای زمان اجرا شامل تشخیص فعالیت میشوند
کاربران اکنون وقتی یک برنامه در پسزمینه به موقعیت مکانی دستگاه دسترسی پیدا میکند، یک پنجره تشخیص فعالیت را مشاهده میکنند. مجوزهای زمان اجرا با محدودیت شدید باید به درستی در اندروید ۱۰ در لیست سفید قرار گیرند.
مجوز MANAGE_DEVICE_ADMINS
اندروید ۱۰ مجوز MANAGE_DEVICE_ADMINS را از امضا یا ممتاز به فقط امضا تغییر میدهد. این بدان معناست که فقط برنامههای امضا شده توسط پلتفرم میتوانند برنامههای دیگر را به عنوان مدیر دستگاه تنظیم کنند.
اشتراکگذاری بهبودهای API
اندروید ۱۰ تعدادی ویژگی جدید API پلتفرم اندروید مربوط به اشتراکگذاری را ارائه میدهد. اگر کد Share Sheet را در پیادهسازی خود تغییر دادهاید، مطمئن شوید که پیادهسازی شما از این ویژگیهای جدید پشتیبانی میکند. اگر کد Share Sheet را در پیادهسازی خود تغییر ندادهاید، نیازی به انجام کاری برای پشتیبانی از این ویژگیهای جدید ندارید.
زمان اجرای اندروید (ART)
پیکربندی امضا شده
ویژگی Signed Config امکان تعبیه پیکربندی محدودیتهای رابط کاربری غیر SDK را در APKها فراهم میکند. این امر امکان حذف رابطهای کاربری غیر SDK خاص از لیست سیاه را فراهم میکند تا AndroidX بتواند با خیال راحت از آنها استفاده کند. با این تغییر، AndroidX میتواند پشتیبانی از ویژگیهای جدید را در نسخههای قدیمیتر اندروید اضافه کند.
عملکرد
لایه انتزاعی Cgroup
اندروید ۱۰ شامل یک لایه انتزاعی cgroup و پروفایلهای وظیفه است که توسعهدهندگان میتوانند از آنها برای توصیف مجموعهای از محدودیتها برای اعمال روی یک نخ یا یک فرآیند استفاده کنند.
دیمن قاتل حافظه کم (lmkd)
اندروید ۱۰ از حالت جدید lmkd پشتیبانی میکند که از مانیتورهای اطلاعات توقف فشار هسته (PSI) برای تشخیص فشار حافظه استفاده میکند.
قدرت
مدیریت توان پلتفرم
در اندروید ۱۰، حالت Doze را میتوان هم در دستگاههای همیشه روشن و هم در دستگاههای باتریدار فعال کرد.
صرفهجویی در مصرف باتری به صورت روتین
اندروید ۱۰ یک گزینه جدید برای زمانبندی صرفهجویی در مصرف باتری به نام « بر اساس روال» معرفی میکند. صرفهجویی در مصرف باتری روال به برنامهای که توسط سازنده اصلی (OEM) انتخاب شده است، اجازه میدهد تا سیگنالهایی را برای زمانبندی هوشمندانهتر صرفهجویی در مصرف باتری به سیستم ارائه دهد. این گزینه نیاز به پیکربندی دارد و پیادهسازی آن اختیاری است.
آمار قدرت 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:
-
getCurrentThermalStatus()returns the current thermal status of the device as an integer, unless the device is undergoing throttling. -
addThermalStatusListener()adds a listener. -
removeThermalStatusListener()removes a previously added listener.
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 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.