این صفحه ویژگی های اصلی نسخه اندروید 10 را خلاصه می کند و پیوندهایی به اطلاعات اضافی ارائه می دهد. این خلاصه ویژگی ها بر اساس مکان مستندات ویژگی در این سایت سازماندهی شده اند.
ساخت
java_sdk_library
اندروید 10 java_sdk_library
معرفی میکند، یک قانون ساخت جدید برای رفع مشکلات سازگاری برای کتابخانههای مشترک جاوا. سازندگان دستگاهها میتوانند از این مکانیسم برای کتابخانههای جاوای مشترک خود برای حفظ سازگاری با APIهای خود استفاده کنند.
معماری
اجزای سیستم مدولار
اندروید 10 برخی از اجزای سیستم اندروید را ماژولار می کند و آنها را قادر می سازد خارج از چرخه انتشار عادی اندروید به روز شوند. برخی از ماژول ها عبارتند از:
- زمان اجرا اندروید
- مخفی کردن
- حل کننده DNS
- DocumentsUI
- ExtServices
- رسانه ها
- ModuleMetadata
- شبکه سازی
- PermissionController
- داده های منطقه زمانی
لایه انتزاعی سخت افزاری (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 برای پارتیشن های نصب شده اولیه
Android 10 requires devices to specify fstab
entries for early mounted partitions using an fstab
file in the first stage 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 در سیستم ساخت
بوت لودر
رامدیسک
در Android 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 adds support for stable Android Interface Definition Language (AIDL) , a new way to keep track of the application program interface (API)/application binary interface (ABI) provided by AIDL interfaces.
فست بوت را به فضای کاربری منتقل کنید
اندروید 10 با جابجایی اجرای fastboot از بوت لودر به فضای کاربری، پشتیبانی از پارتیشنهای قابل تغییر اندازه را اضافه میکند.
نمایش
پخش ویدئو HDR
Android 10 supports HDR10, VP9, and HDR10+ playback .
طبقه بندی متن
طبقه بندی متن از تکنیک های یادگیری ماشینی برای کمک به توسعه دهندگان در طبقه بندی متن استفاده می کند. اندروید 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 به توسعه دهندگان کمک می کند تا تست یک دستگاه یا ناوگانی از دستگاه ها را خودکار کنند.
حالت برنامه های فوری
Starting in Android 10, CTS runs in Instant Apps mode , which means installing the test APK as an Instant App and running the tests.
علاوه بر حالت 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 استفاده می کند.
تست کردن
ضدعفونی کننده مرزها
Android 10 deploys BoundsSanitizer (BoundSan) in Bluetooth and codecs. 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 improves the concurrent capture user experience that requires more than one active audio capture to happen simultaneously.
AudioPlaybackCapture
اندروید 10 حاوی یک API جدید به نام AudioPlaybackCapture
است که به برنامهها این امکان را میدهد تا صدای پخش شده توسط برنامههای دیگر را کپی کنند. این ویژگی مشابه تصویربرداری از صفحه نمایش است، اما برای صدا. مورد استفاده اصلی این است که برنامه های پخش جریانی را فعال کنید تا صدایی را که بازی ها پخش می کنند ضبط کنند.
API ضبط بر تأخیر برنامه ای که صدای آن ضبط می شود تأثیر نمی گذارد.
MIDI
Android 10 انتقال برنامه های صوتی حرفه ای با استفاده از MIDI را به پلتفرم اندروید با استفاده از AMidi
NDK API آسان می کند.
دوربین
For a summary of the changes to the camera API, camera HAL, and camera module introduced in Android 10, see Android 10 camera updates .
بهبود حریم خصوصی چارچوب دوربین
اندروید 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 باشند.
دوربین های تک رنگ
Android 10 provides additional support for the Y8 stream format, monochrome and near-infrared (NIR) color filter array static metadata, and DngCreator
functions for monochrome cameras .
قابلیت اتصال
تماس و پیام
شماره های اضطراری و تماس اضطراری
Android 10 پشتیبانی بهبود یافته ای را برای تماس اضطراری ارائه می دهد. در مواقع اضطراری، دستگاههایی که از IRadio HAL نسخه 1.4 پشتیبانی میکنند، میتوانند با استفاده از شمارههای اضطراری بازیابی شده از منبعی مانند سیمکارت، سیگنال شبکه یا پایگاه داده Android، تماس اضطراری را آغاز کنند. اعداد را می توان بر اساس دسته های خدمات اضطراری مانند پلیس، آتش نشانی و آمبولانس دسته بندی کرد.
APIهای تماس گروهی
APIهای تماس گروهی توسعهای از APIهای eMBMS هستند که در Android 9 اضافه شدهاند. APIهای جدید استانداردی را برای برنامهها برای پیوستن و پخش در تماسهای گروهی پخش سلولی از طریق تعامل با بستههای میانافزار eMBMS تعریف میکنند. تماس های گروهی برای عملکرد صحیح نیاز به پشتیبانی از فروشنده چیپ ست، فروشنده میان افزار و حامل سلولی دارند. اسناد برنامهنویس در developer.google.com قرار دارد.
قابلیت سیم کارت از راه دور
اندروید 10 قابلیتهای سیمکارت از راه دور را معرفی میکند که به برنامههای پیامرسان در دستگاه میزبان اندروید اجازه میدهد پیامهای SMS را از طریق تلفنها با استفاده از مکانیسمهایی مانند بلوتوث ارسال کنند. For more information, see the reference documentation for the getSubscriptionType
method and the SUBSCRIPTION_TYPE_REMOTE_SIM
constant.
چند 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 introduces an optional API method named setDeviceMobilityState()
in WifiManager
that increases the interval between preferred network offload (PNO) scans when the device is stationary to reduce power usage.
وای فای حامل
In Android 10, devices with the carrier Wi-Fi feature automatically connect to configured carrier Wi-Fi networks (networks with public key certificates).
Wi-Fi Easy Connect
In Android 10, devices can use Wi-Fi Easy Connect , which uses the device provisioning protocol (DPP) introduced by the Wi-Fi Alliance (WFA), to provision and configure Wi-Fi devices.
حالت تأخیر کم وای فای
اندروید 10 حالت کم تأخیر وای فای را معرفی می کند که تراشه وای فای را برای کاهش تأخیر پیکربندی می کند.
سرور DHCP به روز شد
به عنوان بخشی از تشکیل یک چتر سرویس "IP Server"، dnsmasq
در حال حذف است. Android 10 استفاده عملکردی سرور DHCPv4 خود را با یک مؤلفه جداگانه جایگزین میکند، که عمدتاً به زبان جاوا نوشته شده است تا بهتر با صفحه کنترل چارچوب جاوا ادغام شود. این امر امنیت و قابلیت به روز رسانی را برای سرور DHCP بهبود می بخشد. For more details, see 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 adds support for the Wi-Fi Protected Access 3 (WPA3) and Wi-Fi Enhanced Open security standards to provide better privacy and robustness against known attacks.
وای فای دایرکت
Wi-Fi Direct , also known as Wi-Fi P2P, allows supporting devices to discover and connect to one another directly using the Wi-Fi Direct protocol without internet or cellular network access.
پیشرفت تصادفی سازی 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 نیست و رابط ها و روش های زیر منسوخ شده اند.
رابط ها:
-
NfcAdapter.CreateBeamUrisCallback
-
NfcAdapter.CreateNdefMessageCallback
-
NfcAdapter.OnNdefPushCompleteCallback
روش ها:
-
createBeamUris
-
invokeBeam
-
isNdefPushEnabled
-
setBeamPushUris
-
setBeamPushUrisCallback
-
setNdefPushMessage
-
setNdefPushMessageCallback
-
setOnNdefPushCompleteCallback
-
createNdefMessageCallback
-
onNdefPushCompleteCallback
برای استفاده از Android Beam، ثابت ویژگی android.sofware.nfc.beam
را گزارش دهید.
گرافیک
ASurfaceControl
اندروید 10 ASurfaceControl
اضافه می کند، راهی جدید برای SurfaceFlinger
برای پذیرش بافرها.
پیاده سازی گرافیک
لایه های OpenGL ES
Android 10 introduces a layering system for GLES.
EGL 1.5
اندروید 10 رابط کاربری EGL 1.5 را پیاده سازی می کند. For information on new features in EGL 1.5, view the Khronos Releases EGL 1.5 Specification .
ولکان
اندروید 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 گزینه ای را برای ناوبری سیستم کاملاً حرکتی معرفی می کند. For information about how to prepare apps to use this feature, see the Gestural navigation page on the Android Developer site.
شبکه های عصبی
اندروید 10 بهروزرسانیهایی را برای API شبکههای عصبی و HAL شبکههای عصبی معرفی میکند. برای خلاصه ای از تغییرات، شبکه های عصبی را ببینید.
مستندات جدید و به روز شده شبکه های عصبی برای اندروید 10:
- نمای کلی
- AHardwareBuffer
- اعدام های پشت سر هم و صف های سریع پیام
- ذخیره سازی کامپایل
- کشف و تخصیص دستگاه
- برنامه های افزودنی فروشنده
حسگرها
سنسور HAL 2.0
Sensors HAL 2.0 از استفاده از صفهای پیام سریع (FMQ) برای ارسال رویدادهای حسگر از HAL به چارچوب سنسورهای Android پشتیبانی میکند.
سنسورها خاموش
Android 10 includes a developer setting to shut off all sensors on a device. این ویژگی به توسعه دهندگان کمک می کند تا عملکرد برنامه خود را در شرایطی که آن حسگرها در دسترس نیستند آزمایش کنند و همچنین راهی برای کنترل سنسورهای دستگاه خود در اختیار کاربران قرار می دهد.
If your devices use the default implementation of SensorService
, CameraService
, and AudioPolicyService
, then no additional customization is needed to the reference design. If you have other sensors, see Customization for more details about supporting this feature.
رسانه ها
اجزای رسانه قابل به روز رسانی
Android 10 provides updatable media components that enable updating media-related modular system components through the Google Play Store infrastructure or through a partner-provided over-the-air (OTA) mechanism.
رسانه DRM
Android 10 ابزار و قابلیت استفاده از MediaDrm
Java و API های NDK را بهبود می بخشد.
رمزگشایی
اندروید 10 از رمزگشایی AV1 SW پشتیبانی می کند.
مجوزها
Android 10 تنظیمات مجوز اضافی را برای شفافیت و حفظ حریم خصوصی کاربر فراهم می کند.
اطلاعات ارائه دهنده تماس و وابستگی ها
Starting in Android 10, contacts-affinity-related data, managed by the Contacts Provider component , is accessed differently than in Android 9 and lower. این تغییرات در مورد دسترسی به داده ها، حریم خصوصی کاربر را در همه دستگاه های Android 10 که از مؤلفه Contacts Provider استفاده می کنند، بهبود می بخشد. پایگاه داده زیربنایی دیگر حاوی داده های وابستگی تماس نیست. بنابراین برنامه ها نمی توانند روی آن بنویسند یا از آن بخوانند.
انتظار می رود تغییرات اندروید 10 تاثیر زیادی بر API ها داشته باشد. اگر برنامههای شما به ویژگیهای منسوخ ذکر شده در اطلاعات ارائهدهنده مخاطبین و Affinities متکی هستند، ممکن است بخواهید برنامههای خود را برای جبران هرگونه تغییر بهروزرسانی کنید. بعلاوه، اگر از نسخه فورک شده Contacts Provider استفاده می کنید، باید Contacts Provider خود را به روز کنید.
مجوزهای موقعیت مکانی Tristate
Tristate location permissions in Android 10 give users more control over how apps access their device locations.
یادآوری دسترسی به موقعیت مکانی پسزمینه
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.
مکان های فرصت طلب را محدود کنید
هنگامی که یک برنامه مکان یک دستگاه را درخواست می کند، برنامه می تواند منتظر پاسخ درخواست باشد یا با استفاده از شنونده های موقعیت مکانی فعال، به روز رسانی موقعیت مکانی فرصت طلبانه را دریافت کند. Starting in Android 10, to get opportunistic location updates , developers must specify that they need passive location updates from the FusedLocationProviderClient
class.
برنامه های پس زمینه راه اندازی می شوند
در اندروید 10، برنامههای غیرمجاز بدون پنجره قابل مشاهده نمیتوانند بهطور خودکار در پیشزمینه راهاندازی شوند. This change suppresses ad popups and malicious takeovers. هیچ اقدامی برای فعال کردن این مورد نیاز نیست.
سندباکس کردن برنامه
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()
. برنامه ها همچنان به مسیرهای بسته خاص خود دسترسی خام کامل دارند.
از دستورالعملهای جعبه ایمنی برنامه برای به اشتراکگذاری فایلها برای ارائه جزئیات اشتراکگذاری داده مناسب استفاده کنید.
دسترسی به کلیپ بورد برنامه را محدود کنید
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. این امر حریم خصوصی کاربر را افزایش می دهد و برنامه های بدافزار را از تغییر کلیپ بورد غیرفعال می کند.
در Android 10، دسترسی خواندن فقط به برنامه فعلی با فوکوس ورودی یا به صفحه کلید فعلی مجاز است. تماس شنونده ClipboardManager.onPrimaryClipChanged()
اکنون فقط برای برنامههایی فعال میشود که چنین محدودیتهایی را دارند. 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.
مجوزهای زمان اجرا شامل تشخیص فعالیت است
وقتی یک برنامه به مکان دستگاه در پسزمینه دسترسی پیدا میکند، کاربران اکنون یک گفتگوی تشخیص فعالیت را میبینند. مجوزهای زمان اجرا با محدودیت سخت باید به درستی در لیست سفید Android 10 قرار گیرند.
مجوز MANAGE_DEVICE_ADMINS
Android 10 مجوز MANAGE_DEVICE_ADMINS
را از امضا یا امتیاز به فقط امضا تغییر میدهد. این بدان معناست که فقط برنامههای دارای امضای پلتفرم میتوانند برنامههای دیگر را بهعنوان سرپرست دستگاه تنظیم کنند.
به اشتراک گذاری بهبودهای API
Android 10 تعدادی ویژگی جدید API پلتفرم Android مربوط به اشتراک گذاری را ارائه می دهد. اگر کد اشتراکگذاری را در پیادهسازی خود تغییر دادهاید، مطمئن شوید که پیادهسازی شما از این ویژگیهای جدید پشتیبانی میکند. اگر در اجرای خود کد اشتراکگذاری را تغییر ندادهاید، برای پشتیبانی از این ویژگیهای جدید نیازی به انجام کاری ندارید.
زمان اجرا اندروید (ART)
پیکربندی امضا شده
The Signed Config feature allows embedding configuration of non-SDK interface restrictions in APKs. این امکان حذف رابطهای غیر SDK خاص را از لیست سیاه فراهم میکند تا AndroidX بتواند با خیال راحت از آنها استفاده کند. با این تغییر، AndroidX می تواند پشتیبانی از ویژگی های جدید را در نسخه های قدیمی اندروید اضافه کند.
عملکرد
لایه انتزاعی Cgroup
اندروید 10 شامل یک لایه انتزاعی cgroup و پروفایلهای وظیفه است که توسعهدهندگان میتوانند از آن برای توصیف مجموعهای از محدودیتها برای اعمال بر روی یک رشته یا یک فرآیند استفاده کنند.
دیمون قاتل کم حافظه (lmkd)
Android 10 supports a new lmkd
mode that uses kernel pressure stall information (PSI) monitors for memory pressure detection.
قدرت
مدیریت توان پلت فرم
در اندروید 10، حالت Doze را می توان در دستگاه های همیشه روشن و همچنین دستگاه های با باتری فعال کرد.
صرفه جویی معمول باتری
اندروید 10 یک گزینه برنامه زمان بندی صرفه جویی باتری جدید به نام بر اساس روتین معرفی می کند. Routine battery saver allows an app chosen by the OEM to provide signals to the system for more intelligent battery saver scheduling. این گزینه نیاز به پیکربندی دارد و برای پیاده سازی اختیاری است.
آمار قدرت 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.
کاهش حرارتی
چارچوب حرارتی در Android 10 چکیده دستگاه برای سنسور دمای زیر سیستم حرارتی ، از جمله CPU ، GPU ، باتری ، پوست و دستگاه خنک کننده. این چارچوب یک رابط رأی دهی برای پرس و جو از وضعیت حرارتی برای شروع لرزش و رابط پاسخ به تماس برای ارسال پیام به کاربر هنگام فراتر از آستانه ارائه می دهد.
Android 10 با استفاده از این سه روش جدید ، انواع داده های جدید را از طریق رابط IThermalService
ارائه می دهد:
-
getCurrentThermalStatus()
returns the current thermal status of the device as an integer, unless the device is undergoing throttling. -
addThermalStatusListener()
شنونده را اضافه می کند. -
removeThermalStatusListener()
removes a previously added listener.
برنامه ها شنوندگان را اضافه و حذف می کنند و به وضعیت دما در کلاس PowerManager
دسترسی می یابند. فقط یک سرویس سیستم قابل اعتماد مانند ANDROID API یا تولید کننده دستگاه API می تواند به اطلاعات مربوط به وقایع علیت مرتبط دسترسی پیدا کند. تولید کنندگان دستگاه یا سازندگان SOC باید thermal HAL 2.0
پیاده سازی کنند تا عملکرد کامل چارچوب حرارتی جدید امکان پذیر باشد.
For a thermal mitigation implementation example, see the Reference implementation .
به روز رسانی ها
قالب پرونده apex
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. سازندگان دستگاه نیازی به نگرانی در مورد اندازه های جداگانه پارتیشن ها مانند system
، vendor
و product
ندارند. Instead, one big super
partition is allocated, and subpartitions can be sized dynamically within it.
به روزرسانی های سیستم پویا
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.
پشتیبان گیری از چند گوش و بازیابی
Android 10 supports backup and restore functionality for all users on a device. پیش از این ، پشتیبان گیری و بازیابی فقط برای کاربر سیستم در دسترس بود. پشتیبان گیری و بازیابی برای کاربران Nonsystem به طور پیش فرض خاموش است زیرا فقط پوشش جزئی برای تنظیمات ، کاغذ دیواری و اجزای سیستم دارد.
همپوشانی ها
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. برای اطلاعات بیشتر ، به 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
).
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.
،این صفحه ویژگی های اصلی نسخه Android 10 را خلاصه می کند و پیوندهایی به اطلاعات اضافی ارائه می دهد. این خلاصه های ویژگی با توجه به مکان مستندات ویژگی در این سایت سازماندهی می شوند.
ساخت
java_sdk_library
Android 10 java_sdk_library
معرفی می کند ، یک قانون جدید برای رفع مشکلات سازگاری برای کتابخانه های مشترک جاوا. تولید کنندگان دستگاه می توانند از این مکانیسم برای کتابخانه های مشترک جاوا خود برای حفظ سازگاری عقب مانده برای API خود استفاده کنند.
معماری
اجزای سیستم مدولار
Android 10 modularizes some Android system components and enables them to be updated outside of the normal Android release cycle. برخی از ماژول ها عبارتند از:
- زمان اجرا اندروید
- وجدان
- حل کننده DNS
- مستندات
- سرویس
- رسانه ها
- مدیتاداتا
- شبکه سازی
- مجوز
- داده های منطقه زمانی
لایه انتزاع سخت افزار (HAL)
Android 10 adds support for HALs to shut down automatically when they have no clients.
هسته
ABI
Android 10 includes support for new ABI monitoring utilities to help with comparing, tracking, and mitigating kernel ABI changes that affect compatibility with kernel modules.
Android 10 همچنین یک Checker Usages Usages مبتنی بر نماد را معرفی می کند. چکر می تواند باینری های پیش ساخته منسوخ شده را در زمان ساخت تشخیص دهد ، به طوری که توسعه دهندگان مشترک کتابخانه می توانند بدانند که با تغییر آنها ممکن است باینری های پیش ساخته شکسته شود و کدام یک از باینری های از پیش ساخته باید بازسازی شود.
Daemon-Live-Lock Live-Lock
Android 10 includes the Android Live-Lock Daemon (llkd) , which is designed to catch and mitigate kernel deadlocks.
VDSO32 در ARM64
Android 10 supports using vDSO32 on 64-bit kernels , which provides a 0.4 percent increase in battery life and other performance improvements.
ورودی های FSTAB برای پارتیشن های اولیه نصب شده
Android 10 requires devices to specify fstab
entries for early mounted partitions using an fstab
file in the first stage ramdisk.
مخفی کردن
پخش پخش
Android 10 شامل یک BroadcastQueue
جدید بارگذاری بار در پس زمینه و صف های پیش زمینه موجود است. صف بارگیری همان اولویت و رفتار زمان بندی را با صف پس زمینه دارد. برای جلوگیری از مسدود کردن صف پس زمینه ، جایی که پخش های جالب تر یا قابل مشاهده با کاربر می تواند اتفاق بیفتد ، صف بار بارگیری BOOT_COMPLETED
را اجرا می کند ، که بسیاری از برنامه ها به آن گوش می دهند و می توانند مدت زمان طولانی را انجام دهند. The offload queue currently only handles the BOOT_COMPLETED
broadcast, but can potentially handle other long broadcasts.
سرویس سیستم تعلیق
Android 10 جایگزین موضوع در libsuspend
مسئول شروع سیستم تعلیق با سرویس HIDL SystemSuspend می شود. این پیاده سازی عملکردهای معادل نسخه های قبلی را در حالی که از مزایای زیرساخت های Android Hidl استفاده می کند ، ارائه می دهد.
SAFE_UNION در HIDL
Android 10 introduces safe_union
, an explicitly tagged union type, in HIDL.
پیکربندی
پیکربندی هال
Android 10 به دلیل مصرف زیاد حافظه و استفاده دشوار ، HAL پیکربندی را کاهش می دهد و HAL را با خصوصیات سیستم جایگزین می کند.
پیکربندی پرونده Schema API
پلت فرم Android شامل تعداد زیادی از پرونده های XML برای ذخیره داده های پیکربندی است. Many of the XML files are in the vendor
partition, but they're read in the system
partition. در این حالت ، طرح پرونده XML به عنوان رابط در دو پارتیشن عمل می کند ، بنابراین طرح باید به صراحت مشخص شود و باید به روشی سازگار با عقب تکامل یابد. قبل از Android 10 ، این پلتفرم مکانیسم هایی را برای تعیین و استفاده از طرح XML یا جلوگیری از تغییرات ناسازگار در طرحواره فراهم نمی کند. Android 10 provides this mechanism, called the Config File Schema API .
خصوصیات سیستم به عنوان API
System properties accessed across partitions are schematized into sysprop
description files, and APIs to access properties are generated as concrete functions for C++ and classes for Java.
رابط فروشنده (vintf) شیء
VINTF
تغییرات در VINTF در Android 10 شامل موارد زیر است:
- کاهش برچسب های نسخه AVB
- اضافه کردن اطلاعات هسته در بسته های OTA
- ساختمان ODM به طور رسمی تجلی می یابد
- اضافه کردن ماتریس سازگاری محصول
- Associating a manifest entry with a HAL module in the build system
بوت لودر
قاتل
In Android 10, the root file system is no longer included in ramdisk.img
and is instead merged into system.img
.
پارتیشن های ODM بسازید
Android 10 شامل پشتیبانی از ساخت پارتیشن های odm
با استفاده از سیستم ساخت Android است. می توانید از یک پارتیشن جداگانه /odm
برای سفارشی سازی استفاده کنید ، که به شما امکان می دهد از یک تصویر فروشنده واحد برای SKU های سخت افزاری چندگانه استفاده کنید. این امر باعث می شود تا تولید کنندگان طراحی اصلی (ODMS) بتوانند بسته های پشتیبانی هیئت مدیره فروشنده سیستم-تراشه (SOC) (BSP) را به دستگاه های خاص خود (تابلوهای آنها) سفارشی کنند. آنها می توانند ماژول های هسته را برای مؤلفه های خاص تخته ، Daemons اختصاصی تخته یا ویژگی های خاص خود در لایه های انتزاع سخت افزاری (HALS) پیاده سازی کنند. آنها همچنین ممکن است مؤلفه های SOC را جایگزین یا سفارشی کنند.
نسخه هدر تصویر بوت
Android 10 updates the boot image header to version 2, which includes a section to store the device tree blob (DTB) image. تست های Android 10 VTS تأیید می کنند که کلیه دستگاه های راه اندازی شده با Android 10 از Header Boot Image نسخه 2 استفاده می کنند و شامل یک تصویر معتبر DTB به عنوان بخشی از تصاویر بوت/بازیابی هستند.
Recovery images for non-A/B devices
In Android 9 and higher, a device's recovery image must contain information from the overlay image . تولید کنندگان دستگاه می توانند از DeviceTree یا پیکربندی پیشرفته و رابط برق (ACPI) برای توصیف کلیه دستگاه های قابل کشف استفاده کنند. Android 10 و بالاتر شامل پشتیبانی از معماری هایی هستند که از ACPI به جای حباب Devicetree برای پوشش (DTBO) استفاده می کنند.
کمک پایدار
Android 10 adds support for stable Android Interface Definition Language (AIDL) , a new way to keep track of the application program interface (API)/application binary interface (ABI) provided by AIDL interfaces.
Fastboot را به فضای کاربر منتقل کنید
Android 10 adds support for resizable partitions by relocating the fastboot implementation from bootloader to user space.
نمایش
پخش ویدیوی HDR
Android 10 supports HDR10, VP9, and HDR10+ playback .
طبقه بندی متن
Text classification uses machine learning techniques to help developers classify text. Android 10 introduces two methods to the TextClassifier API: suggestConversationActions
and detectLanguage
. The suggestConversationActions
method generates suggested replies and actions from a given conversation and the detectLanguage
method detects the language of the text.
پشتیبانی از رندر قلم Zawgyi
Zawgyi محبوب ترین قلم در میانمار است. Android 9 و Lower از ارائه Zawgyi پشتیبانی نمی کنند زیرا سازگار با یونیکد نیست . Android 10 با شامل یک فونت یونیکد که قادر به ارائه هر دو یونیکد برمه و زاوگی با هم است ، این موضوع را مورد بررسی قرار می دهد. برای پشتیبانی از رندر فونت Zawgyi در دستگاه های راه اندازی با Android 10 کار لازم نیست. اگر دستگاه های شما برای پشتیبانی از Zawgyi یک پیاده سازی سفارشی دارند ، می توانید:
- این تغییرات را برگردانید و از روش پشتیبانی شده با سیستم عامل استفاده کنید.
- Keep the common Zawgyi font in your system and use the locale code
my-qaag
in yourfonts.xml
. For more information, see the Unicode CLDR release notes on Zawgyi (Qaag) .
محدودیت برای مخفی کردن نمادهای برنامه
Android 10 limits the ability for apps to hide their launcher icons. اگر یک برنامه فعالیت پرتاب را فعال کند ، سیستم یک فعالیت سنتز شده در پرتاب را نشان می دهد. این فعالیت سنتز شده نشان دهنده صفحه جزئیات برنامه در تنظیمات سیستم است.
برای کسب اطلاعات بیشتر در مورد منطق مورد استفاده برای نشان دادن نمادهای برنامه ، از جمله انواع برنامه هایی که نمادهای برنامه آنها نشان داده نشده است ، به اسناد مربوط به getActivityList()
در مرجع API مراجعه کنید.
تنظیمات
To improve accessibility, Android 10 includes user-customizable timeout settings. تغییرات API و تنظیمات با Android 10 همراه است. اگر تنظیمات خود را سفارشی کنید ، حتماً از این ویژگی پشتیبانی شود. اگر عناصر UI را در آن زمان روی دستگاه خود دارید ، از API Timeouts در آن استفاده کنید. برای اطلاعات بیشتر ، به دستورالعمل های دسترسی به توسعه دهنده Android مراجعه کنید.
سازگاری
سند تعریف سازگاری اندرویدی (CDD)
The Android 10 Compatibility Definition Document iterates upon previous versions with updates for new features and changes to requirements for previously released functionality.
تست ها
مجموعه تست سازگاری (CTS)
Android CTS has a separate release notes page that lists many important changes for Android 10.
بارگیری CTS
CTS packages supporting Android 10 are available on the CTS Downloads page. The source code for the included tests can be synced with the android-cts-10_r1
tag in the open-source tree.
cts shim apex
Android 10 introduces a package called CtsShimApex
, which must be preinstalled on a device to write CTS tests for APEX management.
حالت مهار آزمون
CTS test harness mode helps developers automate testing for a device or a fleet of devices.
حالت برنامه های فوری
Starting in Android 10, CTS runs in Instant Apps mode , which means installing the test APK as an Instant App and running the tests.
علاوه بر حالت CTS برای برنامه های فوری ، Android 10 شامل تأیید کننده CTS برای برنامه های فوری است
تست صوتی CTS Verifer Pro
Android 10 adds a CTS Verifier test for Pro Audio compliance .
تست های MIDI تأیید کننده CTS
In Android 10, the CTS Verifier MIDI test tests MIDI functionality with USB MIDI interfaces, Bluetooth MIDI interfaces, and a virtual MIDI device path.
تفسیر آزمون CTS
Android 10 updates the mechanism for interpreting CTS results .
مجموعه تست فروشنده (VTS)
آزمایش VTS با اشکال زدایی ramdisk
در Android 10 ، تصویر سیستم عمومی (GSI) برای اجرای تغییرات آزمایش انطباق CTS-ON-GSI/VTS از UserDebug به نوع ساخت کاربر استفاده می شود ، زیرا GSI به امضا رسیده است. However, the adb root
command that gives a host root permissions to the Android device under test isn't available in a user build. این یک مشکل است زیرا VTS برای اجرای آن نیاز به adb root
دارد.
در صورت قفل شدن دستگاه ، RAMDISK اشکال زدایی معرفی می شود تا adb root
امکان پذیر شود. This simplifies the testing flow by reusing the same user build system.img
(either GSI or the OEM's system.img
).
اعتبار سنجی آهنگساز سخت افزار
Android 10 adds a new VTS test class for Hardware Composer validation through the readback
interface in IComposerClient.hal
. اگر فروشندگان readback
پیاده سازی نکنند ، تست ها به طور خودکار می گذرد.
اشکال زدایی
کتابخانه های مشترک را با لودرهای کلاس مختلف بارگذاری کنید
در Android 9 و پایین ، برنامه ها کتابخانه های مشترک جاوا را در لودر کلاس برنامه بارگذاری کردند. In Android 10, the framework uses a different class loader than the app's class loader to load Java shared libraries linked through uses-library
or uses-static-library
.
به طور کلی ، برنامه ها نباید به استفاده از یک لودر کلاس خاص اعتماد کنند ، بنابراین این تغییر نباید رفتار برنامه را بشکند. با این حال ، اگر یک برنامه به استفاده از یک لودر کلاس واحد متکی باشد ، این رفتار خراب است. علاوه بر این ، دیدگاه بسته بندی خصوصی کلاس ها در همان بسته هنوز پشتیبانی می شود ، اما در کتابخانه های مشترک پشتیبانی نمی شود.
تولید کنندگان دستگاه ممکن است هنگام تست دستگاه های خود در حال اجرا Android 10 ، مشکلات سازگاری برنامه را مشاهده کنند.
ویژگی های امنیتی
For a more complete list of enhancements related to security and privacy only, see the Android 10 security and privacy enhancements page.
احراز هویت
Face authentication allows users to unlock their device simply by looking at the front of their device. اندروید 10 پشتیبانی از یک پشته احراز هویت چهره جدید را اضافه می کند که می تواند به طور ایمن فریم های دوربین را پردازش کند و امنیت و حریم خصوصی را در حین احراز هویت روی سخت افزار پشتیبانی شده حفظ کند. Android 10 همچنین راهی آسان برای پیاده سازی های سازگار با امنیت فراهم می کند تا ادغام برنامه برای معاملات مانند بانکداری آنلاین یا سایر خدمات را فعال کند.
دسترسی گسترده
Trust Agents ، مکانیسم اساسی که توسط مکانیسم های احراز هویت سوم مانند قفل هوشمند استفاده می شود ، فقط می تواند باز کردن قفل در Android 10 را گسترش دهد. نمایندگان اعتماد دیگر نمی توانند یک دستگاه قفل شده را باز کنند و فقط می توانند حداکثر چهار ساعت را باز نگه دارند.
رمزگذاری
OEMCrypto
Android 10 از OEMCrypto API نسخه 15 استفاده می کند.
تست کردن
محزون
Android 10 deploys BoundsSanitizer (BoundSan) in Bluetooth and codecs. Boundsan از ضد عفونی کننده Ubsan استفاده می کند. این کاهش در سطح هر ماژول فعال می شود. این کمک می کند تا اجزای مهم اندرویدی ایمن باشد و نباید از آن غیرفعال شود. Boundsan در کدک های زیر فعال است:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
-
libaac
-
libxaac
ضد عفونی کننده سرریز عدد صحیح
Android 10 enables Integer Overflow Sanitization (IntSan) in software codecs. اطمینان حاصل کنید که عملکرد پخش برای هر کدک هایی که در سخت افزار دستگاه پشتیبانی نمی شوند قابل قبول است. Intsan در کدک های زیر فعال است:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
حافظه فقط اجرای
به طور پیش فرض ، بخش های کد اجرایی برای باینری های سیستم AARCH64 فقط به عنوان یک کاهش سخت تر در برابر حملات استفاده مجدد از کد ، فقط اجرا می شوند. کدی که داده ها و کد ها را با هم مخلوط می کند و کدهایی که به طور هدفمند این بخش ها را مورد بازرسی قرار می دهد (بدون اینکه ابتدا بخش های حافظه را به عنوان خواندنی بازسازی کنید) دیگر عملکردی ندارند. Apps with a target SDK of Android 10 (API level 29 or higher) are impacted if the app attempts to read code sections of execute-only memory (XOM) enabled system libraries in memory without first marking the section as readable.
اسکودو
Scudo یک تخصیص دهنده حافظه پویا است که به گونه ای طراحی شده است که در برابر آسیب پذیری های مرتبط با پشته مقاومت بیشتری داشته باشد. این ماده اولیه تخصیص C و DealLocation استاندارد و همچنین بدوی C ++ را فراهم می کند.
ShadowCallstack
ShadowCallStack
(SCS) is an LLVM instrumentation mode that protects against return address overwrites (like stack buffer overflows) by saving a function's return address to a separately allocated ShadowCallStack
instance in the function prolog of nonleaf functions and loading the return address from the ShadowCallStack
instance in عملکرد اپیلوگ.
صوتی
صدا
Android 10 شامل Capatibilties جدید زیر برای Audio HAL است.
-
AudioSource
-
AudioFormat
-
AudioChannelMask
الزامات اضافی برای اجرای صوتی HAL و زیر سیستم اضافه می شود.
اثرات پیش پردازش
Android provides preprocessing effects , such as acoustic echo cancellation, automatic gain control, and noise suppression. Android 10 includes new requirements for capturing with VOICE_COMMUNICATION
.
مدیر سیاست های صوتی
Android 10 includes a significant refactoring of the audio policy manager to provide more flexibility to support complex automotive use cases.
صدای با وضوح بالا
Android 10 includes the following improvements for high-resolution audio .
- پشتیبانی شناور
- پشتیبانی از فرکانس 192 کیلوهرتز
- پشتیبانی هشت کانال
- گنجاندن اطلاعات زمان بندی
ضبط همزمان
Android 10 تجربه کاربری ضبط همزمان را بهبود می بخشد که به بیش از یک ضبط صوتی فعال نیاز دارد تا همزمان اتفاق بیفتد.
AudioplaybackCapture
Android 10 contains a new API called AudioPlaybackCapture
, which gives apps the ability to copy the audio being played by other apps. این ویژگی شبیه به ضبط صفحه است ، اما برای صدا. مورد استفاده اصلی این است که برنامه های پخش را برای ضبط صوتی که توسط بازی ها پخش می شود ، فعال کنید.
API ضبط بر تأخیر برنامه ای که صدای آن ضبط می شود تأثیر نمی گذارد.
MIDI
Android 10 makes it easier to port professional audio apps using MIDI to the Android platform using the AMidi
NDK API .
دوربین
For a summary of the changes to the camera API, camera HAL, and camera module introduced in Android 10, see Android 10 camera updates .
چارچوب دوربین پیشرفت های حفظ حریم خصوصی
Android 10 پیشرفت های حریم خصوصی را به چارچوب دوربین معرفی می کند. To avoid exposing potentially sensitive static camera information in CameraCharacteristics
without user consent, apps must obtain the CAMERA
permission to retrieve static metadata with a privacy-sensitive tag using the getCameraCharacteristics
method.
To get a list of the camera characteristic keys that require the CAMERA
permission, call the getKeysNeedingPermission
method.
پرس و جو پیکربندی مجدد جلسه
Android 10 adds a session reconfiguration query feature, which allows for improved performance through more control over the internal session parameter reconfiguration logic.
API های مدیریت بافر HAL3 CAMERA
Android 10 introduces optional camera HAL3 buffer management APIs that allow you to implement buffer management logic to achieve different memory and capture latency tradeoffs in camera HAL implementations.
سوئیچ دوربین فیزیکی دینامیکی دوربین هال
Android 10 introduces a dynamic metadata tag, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
, which indicates the active underlying physical camera of a logical camera device. For more information, see Multi-Camera Support .
پشتیبانی از مخفی کردن دوربین های فیزیکی
در 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
معرفی می کند. This library is similar to the Camera NDK library , with a few minor modifications.
تنظیمات جریان
Android 10 adds features that allow camera vendors to advertise recommended camera streams to camera clients and to support an API to query stream combinations .
نیازهای ترکیبی جریان دوربین
دستگاه هایی که Android 10 را اجرا می کنند دیگر نیازی به پشتیبانی از ترکیبات جریان با جریان های فیزیکی Subcamera ندارند. However, devices running Android 10 with the camera HAL device version 3.5 must support isStreamCombinationSupported()
to allow apps to query whether a stream combination containing physical streams is supported.
For more information, see Multi-Camera Support .
HEIF imaging
Android 10 provides native camera support for high efficiency image file format (HEIF) images , which offer improved image quality and smaller sizes over JPEG images. دستگاه ها برای پشتیبانی از تصاویر HEIF باید یک رمزگذار HEIC یا HEVC داشته باشند.
دوربین های تک رنگ
Android 10 provides additional support for the Y8 stream format, monochrome and near-infrared (NIR) color filter array static metadata, and DngCreator
functions for monochrome cameras .
قابلیت اتصال
تماس و پیام
Emergency numbers and emergency calling
Android 10 provides improved support for emergency calling . در مواقع اضطراری ، دستگاه هایی با پشتیبانی از Iradio HAL V1.4 می توانند با استفاده از شماره های اضطراری بازیابی شده از منبع مانند سیم کارت ، سیگنال شبکه یا پایگاه داده اندرویدی ، یک تماس اضطراری را آغاز کنند. اعداد را می توان بر اساس دسته بندی خدمات اضطراری مانند پلیس ، آتش سوزی و آمبولانس طبقه بندی کرد.
API های تماس گروهی
API های تماس گروهی ، پسوند API های ABMS در Android 9 است. API های جدید استانداردی را برای برنامه ها برای پیوستن و پخش در تماس های گروه Cell-Broadcast با تعامل با بسته های میانی EMBMS تعریف می کنند. تماس های گروهی نیاز به پشتیبانی از فروشنده چیپست ، فروشنده میان افزار و حامل سلول به درستی دارند. Developer documentation is located at developer.google.com .
قابلیت های سیم کارت از راه دور
Android 10 قابلیت های سیم کارت از راه دور را معرفی می کند که به برنامه های پیام رسانی در دستگاه میزبان اندروید اجازه می دهد تا پیام های پیامکی را از طریق تلفن هایی با استفاده از مکانیسم هایی مانند بلوتوث ارسال کنند. For more information, see the reference documentation for the getSubscriptionType
method and the SUBSCRIPTION_TYPE_REMOTE_SIM
constant.
چند ESIM
در Android 10 ، کلاس EuiccManager
از دستگاه هایی با SIMS تعبیه شده متعدد (ESIMS) یا EUICC پشتیبانی می کند.
به روزرسانی های ESIM
برای دستگاه هایی که Android 10 را پشتیبانی می کنند که از ESIMS پشتیبانی می کنند ، یک آرایه شناسه اسلات EUICC غیرقابل توصیف باید تعریف شود. دستگاه ها همچنین باید از iradio hal v1.4 و iradioconfig hal v1.2 پشتیبانی کنند. For more information, see Implementing eSIM and HAL Requirements .
5G غیر استاندارد (NSA)
Android 10 adds support for 5G non-standalone (NSA) . 5G NSA یک راه حل برای شبکه های 5G است که در آن شبکه توسط یک زیرساخت 4G موجود پشتیبانی می شود. در اندروید 10، وقتی دستگاهی به شبکه 5G متصل می شود، دستگاه ها می توانند نماد 5G را در نوار وضعیت نمایش دهند.
پیشنهاد حساب تلفن
Android 10 introduces the phone account suggestion service , which allows suggestions for phone accounts to be shown to users when making a call.
حامل
تنظیمات شبکه تلفن همراه را مهاجرت کنید
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
شناسه های دستگاه
Persistent device identifiers (IMEI/MEID, IMSI, and build serial) are guarded by a privileged permission with access also granted to device and profile owner apps. از آنجا که شماره سریال IMSI و SIM حامل ارائه شده است ، دسترسی به این شناسه ها به بسته هایی با امتیازات حامل اعطا می شود.
وای فای
انتخاب شبکه
Android continuously evaluates the quality of the connected network and assesses the quality of available networks. Android 10 الگوریتم ها و رویه های انتخاب و تعویض بین شبکه های Wi-Fi را به روز کرده است.
Wi-Fi Scanning Offload Network Preferred
Android 10 introduces an optional API method named setDeviceMobilityState()
in WifiManager
that increases the interval between preferred network offload (PNO) scans when the device is stationary to reduce power usage.
حامل Wi-Fi
In Android 10, devices with the carrier Wi-Fi feature automatically connect to configured carrier Wi-Fi networks (networks with public key certificates).
Wi-Fi Easy Connect
در Android 10 ، دستگاه ها می توانند از Wi-Fi Easy Connect استفاده کنند ، که از پروتکل ارائه دهنده دستگاه (DPP) معرفی شده توسط Wi-Fi Alliance (WFA) برای تهیه و پیکربندی دستگاه های Wi-Fi استفاده می کند.
حالت کمتری Wi-Fi
Android 10 introduces a Wi-Fi low-latency mode , which configures the Wi-Fi chip to reduce latency.
سرور DHCP به روز شده
As part of the formation of an "IP Server" service umbrella, dnsmasq
is being deleted. Android 10 جایگزین استفاده عملکردی سرور DHCPV4 خود با یک مؤلفه جداگانه است که در درجه اول در جاوا نوشته شده است تا بهتر با صفحه کنترل چارچوب جاوا ادغام شود. این باعث بهبود امنیت و به روزرسانی سرور DHCP می شود. For more details, see packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
No action is required to implement this change: all devices releasing and upgrading to Android 10 use DhcpServer
by default. If you have customizations to the DHCP server, you can revert to Android 9 behavior by setting the global setting tether_enable_legacy_dhcp_server=1
. DhcpServer
جدید در ماژول اجزای شبکه گنجانده شده است ، بنابراین هرگونه سفارشی سازی به عملکرد سرور DHCP باید بالادست باشد.
WPA3 و Wi-Fi بهبود یافته باز
Android 10 adds support for the Wi-Fi Protected Access 3 (WPA3) and Wi-Fi Enhanced Open security standards to provide better privacy and robustness against known attacks.
وای فای دایرکت
Wi-Fi Direct , also known as Wi-Fi P2P, allows supporting devices to discover and connect to one another directly using the Wi-Fi Direct protocol without internet or cellular network access.
پیشرفت های تصادفی MAC
From Android 10, MAC randomization is enabled by default for client mode, SoftAp, and 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 دیگر مورد نیاز نیست و رابط ها و روش های زیر از بین رفته است.
رابط ها:
-
NfcAdapter.CreateBeamUrisCallback
-
NfcAdapter.CreateNdefMessageCallback
-
NfcAdapter.OnNdefPushCompleteCallback
روش ها:
-
createBeamUris
-
invokeBeam
-
isNdefPushEnabled
-
setBeamPushUris
-
setBeamPushUrisCallback
-
setNdefPushMessage
-
setNdefPushMessageCallback
-
setOnNdefPushCompleteCallback
-
createNdefMessageCallback
-
onNdefPushCompleteCallback
برای استفاده از پرتو اندرویدی ، ویژگی android.sofware.nfc.beam
را ثابت کنید.
گرافیک
asurcontrol
Android 10 adds ASurfaceControl
, a new way for SurfaceFlinger
to accept buffers.
Graphics implementation
لایه های OpenGL
Android 10 introduces a layering system for GLES.
EGL 1.5
Android 10 implements the EGL 1.5 interface . For information on new features in EGL 1.5, view the Khronos Releases EGL 1.5 Specification .
ولکان
Android 10 شامل پشتیبانی از گرافیک Vulkan 1.1 است. The platform also supports VK_KHR_swapchain
v70, so the Vulkan app is able to create a VkImage
backed by swapchain memory.
نرخ تازه سازی عملکرد
Android 10 پشتیبانی از نرخ تازه سازی عملکرد را اضافه می کند. این ویژگی به طور پیش فرض خاموش است.
تعامل
خودرو
صدای صوتی خودرو
In Android 10, Audio HAL context maps to AudioAttributes.usage
to identify sounds. Android از یک نمونه AUDIO_DEVICE_OUT_BUS
در هر زمینه پشتیبانی می کند. IAudioControl
HAL پسوندهای خاص خودرو را به HAL صوتی ارائه می دهد.
ناوبری حرکتی
Android 10 گزینه ای را برای ناوبری سیستم حرکتی کاملاً معرفی می کند. For information about how to prepare apps to use this feature, see the Gestural navigation page on the Android Developer site.
شبکه های عصبی
Android 10 به روزرسانی های شبکه های عصبی API و شبکه های عصبی HAL را معرفی می کند. برای خلاصه تغییرات ، به شبکه های عصبی مراجعه کنید.
مستندات شبکه های عصبی جدید و به روز شده برای Android 10:
- نمای کلی
- ابجو ساز
- اعدام ها و صف های پیام سریع را پشت سر بگذارید
- ذخیره سازی
- کشف و واگذاری دستگاه
- برنامه های افزودنی فروشنده
حسگرها
سنسورهای HAL 2.0
Sensors HAL 2.0 supports using fast message queues (FMQs) to send sensor events from the HAL into the Android Sensors Framework.
سنسورها خاموش
Android 10 includes a developer setting to shut off all sensors on a device. این ویژگی به توسعه دهندگان کمک می کند تا عملکرد برنامه خود را در شرایطی که این سنسورها در دسترس نیستند آزمایش کنند و همچنین راهی برای کنترل سنسورها در دستگاه خود به کاربران می دهد.
اگر دستگاه های شما از اجرای پیش فرض SensorService
، CameraService
و AudioPolicyService
استفاده می کنند ، برای طراحی مرجع به سفارشی سازی اضافی لازم نیست. اگر سنسورهای دیگری دارید ، برای اطلاعات بیشتر در مورد پشتیبانی از این ویژگی ، به سفارشی سازی مراجعه کنید.
رسانه ها
اجزای رسانه ای به روز شده
Android 10 provides updatable media components that enable updating media-related modular system components through the Google Play Store infrastructure or through a partner-provided over-the-air (OTA) mechanism.
DRM رسانه
Android 10 improves the utility and usability of the MediaDrm
Java and NDK APIs.
رمزگشایی
Android 10 از رمزگشایی AV1 SW پشتیبانی می کند.
مجوزها
Android 10 پیکربندی های مجوز دیگری را برای شفافیت و حریم شخصی کاربر فراهم می کند.
اطلاعات ارائه دهنده و اطلاعات مربوط به ارتباطات
Starting in Android 10, contacts-affinity-related data, managed by the Contacts Provider component , is accessed differently than in Android 9 and lower. این تغییرات در مورد دسترسی به داده ها باعث بهبود حریم خصوصی کاربر در کلیه دستگاه های Android 10 که از مؤلفه ارائه دهنده مخاطبین استفاده می کنند ، بهبود می یابد. پایگاه داده زیرین دیگر حاوی داده های پیوستگی تماس نیست. بنابراین برنامه ها نمی توانند از آن بنویسند یا بخوانند.
The changes in Android 10 are expected to have a large impact on APIs. 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:
-
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
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.
همپوشانی ها
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.