| نوع فایل | APK |
|---|---|
| نسخه | Preview |
| ناشر | |
| تاریخ انتشار | ۲۵ اکتبر ۲۰۱۷ |
| تاریخ اضافه شده | ۲۵ اکتبر ۲۰۱۷ |
| الزامات سیستم عامل | Android |
| الزامات | Only compatible with the Nexus 5X, Nexus 6P, Pixel C, Pixel, Pixel XL, Pixel 2, and Pixel 2 XL. |
| کل بارگیری ها | ۱٬۰۰۲ |
| بارگیری در هفته | ۸ |
| قیمت | Free |
شرح
اندروید O انواع ویژگی ها و قابلیت های جدید را برای کاربران و توسعه دهندگان معرفی می کند. این سند موارد جدیدی را برای توسعه دهندگان برجسته می کند.
حتماً تغییرات رفتار Android O را بررسی کنید تا در مورد مناطقی که تغییرات پلتفرم ممکن است بر برنامههای شما تأثیر بگذارد مطلع شوید.
API شبکه های عصبی
API شبکههای عصبی (NNAPI) برنامهها را با شتاب سختافزاری برای عملیات یادگیری ماشین روی دستگاه فراهم میکند. API از ایجاد، کامپایل و اجرا مدل روی دستگاه پشتیبانی می کند. برنامه ها معمولاً مستقیماً از NNAPI استفاده نمی کنند. در عوض، NNAPI با کتابخانهها، چارچوبها و ابزارهای یادگیری ماشینی فراخوانی میشود که به توسعهدهندگان اجازه میدهد مدلهای خود را آموزش دهند و آنها را در دستگاههای اندرویدی مستقر کنند.
برای کسب اطلاعات بیشتر درباره API شبکه های عصبی، به اسناد مرجع API شبکه های عصبی و راهنمای توسعه دهنده API شبکه های عصبی مراجعه کنید.
اطلاعیه
Android 8.1 Developer Preview 1 شامل تغییرات زیر در اعلانها میشود:
اکنون برنامه ها فقط می توانند یک بار در ثانیه صدای هشدار اعلان ایجاد کنند. صداهای هشداری که بیش از این نرخ هستند در صف قرار نمی گیرند و از بین می روند. این تغییر بر سایر جنبههای رفتار اعلان تأثیر نمیگذارد و پیامهای اعلان همچنان همانطور که انتظار میرفت پست میشوند.
NotificationListenerService و ConditionProviderService در دستگاههای مجهز به Android با رم پایین پشتیبانی نمیشوند که با فراخوانیActivityManager.isLowRamDevice() true برمیگردند.
هدف گیری بهبود یافته برای دستگاه های کم رم
Android 8.1 (سطح API 27) دو ثابت ویژگی سخت افزاری جدید، FEATURE_RAM_LOW و FEATURE_RAM_NORMAL را به Package Manager اضافه می کند. این ثابتها به شما امکان میدهند توزیع برنامهها و تقسیمهای APK خود را به دستگاههایی با RAM معمولی یا کم هدف قرار دهید.
این ثابتها فروشگاه Play را قادر میسازد تا با برجسته کردن برنامههایی که بهخوبی با قابلیتهای یک دستگاه مناسب هستند، تجربه کاربری بهتری را ارتقا دهد.
بهروزرسانیهای چارچوب تکمیل خودکار
پیشنمایش برنامهنویس Android 8.1 (سطح API 27) چندین پیشرفت را در چارچوب تکمیل خودکار ارائه میکند که میتوانید آنها را در برنامههای خود بگنجانید.
پیشنمایش توسعهدهنده پشتیبانی از توصیفهای سفارشی را اضافه میکند که سیستم Android به جای نمایش اصلی دادهها، در رابط کاربری ذخیرهسازی تکمیل خودکار نشان میدهد. برای مثال، زمانی که میخواهید شماره کارت اعتباری را پنهان کنید و فقط چهار رقم آخر را نشان دهید، مفید است. برای کسب اطلاعات بیشتر، به کلاس CustomDescription مراجعه کنید.
پیشنمایش توسعهدهنده به شما امکان میدهد یک شی Validator را مشخص کنید که برنامه شما میتواند از آن استفاده کند تا تصمیم بگیرد که آیا سیستم Android باید رابط ذخیرهسازی تکمیل خودکار را نشان دهد یا خیر. این قابلیت توسط متد setValidator() از کلاس SaveInfo.Builder ارائه شده است.
کلاس BaseAdapter در Developer Preview شامل متد setAutofillOptions() است که به شما امکان می دهد نمایش رشته ای مقادیر را در یک آداپتور ارائه دهید. این برای کنترل های اسپینر که به صورت پویا مقادیر را در آداپتورهای خود تولید می کنند مفید است. برای مثال، میتوانید از متد () thesetAutofillOptions برای ارائه یک نمایش رشتهای از فهرست سالهایی که کاربران میتوانند به عنوان بخشی از تاریخ انقضای کارت اعتباری انتخاب کنند، استفاده کنید. سرویس های تکمیل خودکار می توانند از نمایش رشته برای پرکردن مناسب نماهایی که به داده ها نیاز دارند استفاده کنند.
علاوه بر این، کلاس AutofillManager شامل متد notifyViewVisibilityChanged(View, int, boolean) است که میتوانید با فراخوانی آن چارچوب را در مورد تغییرات در نمایان بودن یک نما در ساختار مجازی مطلع کنید. همچنین روش برای ساختارهای غیر مجازی اضافه بار وجود دارد. با این حال، ساختارهای غیر مجازی معمولاً از شما نمیخواهند که به طور صریح چارچوب را مطلع کنید، زیرا این متد قبلاً توسط کلاس View فراخوانی شده است.
به روز رسانی EditText
با شروع API سطح 27، روش EditText.getText() یک Editable را برمی گرداند. قبلاً یک CharSequence را برگردانده بود. این تغییر سازگار با عقب است، زیرا Editable CharSequence را پیاده سازی می کند.
رابط قابل ویرایش قابلیت های اضافی ارزشمندی را ارائه می دهد. برای مثال، چون Editable رابط Spannable را نیز پیادهسازی میکند، میتوانید نشانهگذاری را روی محتوا در یک نمونه از EditText اعمال کنید.
اقدامات مرور ایمن برنامهای
با استفاده از اجرای WebView Safe Browsing API، برنامه شما میتواند تشخیص دهد که چه زمانی نمونهای از WebView تلاش میکند به URL که Google آن را بهعنوان یک تهدید شناختهشده طبقهبندی کرده است حرکت کند. به طور پیش فرض، WebView یک بینابینی را نشان می دهد، همانطور که در شکل 1 نشان داده شده است، به کاربر در مورد تهدید شناخته شده هشدار می دهد و به او این امکان را می دهد که URL را به هر حال بارگیری کند یا به صفحه قبلی ایمن بازگردد.
در Android 8.1 Developer Preview، میتوانید به صورت برنامهنویسی تعریف کنید که برنامه شما چگونه به یک تهدید شناخته شده پاسخ میدهد:
میتوانید کنترل کنید که آیا برنامه شما تهدیدات شناخته شده را به «مرور ایمن» گزارش میدهد یا خیر.
میتوانید برنامهتان را هر بار که با URLی مواجه میشود که «مرور ایمن» بهعنوان تهدید شناختهشده طبقهبندی میکند، بهطور خودکار یک عمل خاص انجام دهد - مانند بازگشت به ایمنی.
توجه: برای محافظت بهینه در برابر تهدیدات شناخته شده، قبل از فراخوانی متد ()loadUrl یک شی WebView، صبر کنید تا مرور ایمن را مقداردهی کنید.
استخراج کننده ریز عکسها
کلاس MediaMetadataRetriever متد جدیدی به نام getScaledFrameAtTime() دارد که یک فریم را در نزدیکی یک موقعیت زمانی معین پیدا می کند و یک بیت مپ را با نسبت ابعادی مشابه فریم منبع، اما برای قرار دادن در یک مستطیل با عرض و ارتفاع معین برمی گرداند. این برای تولید تصاویر کوچک از ویدیو مفید است.
توصیه میکنیم از این روش بهجای getFrameAtTime() استفاده کنید که میتواند حافظه را هدر دهد زیرا یک بیت مپ با وضوح تصویر منبع را برمیگرداند. به عنوان مثال، یک فریم از یک ویدیوی 4K یک بیت مپ 16 مگابایتی خواهد بود، بسیار بزرگتر از آنچه برای یک تصویر کوچک نیاز دارید.
API حافظه مشترک
اندروید 8.1 (سطح API 27) کلاس SharedMemory جدیدی را معرفی می کند. این کلاس به شما امکان ایجاد، نقشه برداری و مدیریت حافظه مشترک ناشناس را می دهد که می تواند توسط چندین فرآیند یا برنامه استفاده شود.
WallpaperColors API
پیشنمایش برنامهنویس اندروید 8.1 (سطح API 27) پشتیبانی از مدیریت رنگهای کاغذ دیواری را اضافه میکند. این ویژگی به شما این امکان را می دهد که یک شی WallpaperColors را از یک بیت مپ، یک نقشه کشی یا با استفاده از سه رنگ اول که از نظر بصری نشان می دهند ایجاد کنید. همچنین می توانید جزئیات سه رنگ قابل توجه اول یک کاغذ دیواری را بازیابی کنید.
برای ایجاد یک شی WallpaperColors، یکی از موارد زیر را انجام دهید:
برای ایجاد یک شی WallpaperColors با استفاده از سه رنگ، یک نمونه از کلاس WallpaperColors با عبور رنگ اصلی، ثانویه و سوم ایجاد کنید. رنگ اصلی نباید پوچ باشد.
برای ایجاد یک شی WallpaperColors از یک بیت مپ، متد fromBitmap() را با ارسال منبع بیت مپ به عنوان پارامتر فراخوانی کنید.
برای ایجاد یک شی WallpaperColors از یک drawable، متد fromDrawable() را با ارسال منبع drawable به عنوان پارامتر فراخوانی کنید.
برای بازیابی جزئیات رنگ اولیه، ثانویه یا سوم از کاغذ دیواری، روش های زیر را فراخوانی کنید:
getPrimaryColor() قابل توجه ترین رنگ تصویر زمینه را برمی گرداند.
getSecondaryColor() دومین رنگ برجسته والپیپر را برمی گرداند.
متد getTertiaryColor() سومین رنگ برجسته والپیپر را برمی گرداند
برای اطلاع رسانی به سیستم در مورد هر گونه تغییر رنگ مهم، متد notifyColorsChanged() را فراخوانی کنید. این روش یک رویداد چرخه حیات ()onComputeColors را راهاندازی میکند که در آن فرصتی برای ارائه یک شی WallpaperColors جدید دارید.
برای افزودن شنونده برای تغییرات رنگ، می توانید متد addOnColorsChangedListener() را فراخوانی کنید. همچنین میتوانید متد getWallpaperColors() را برای بازیابی رنگهای اصلی یک کاغذ دیواری فراخوانی کنید.
به روز رسانی اثر انگشت
کلاس FingerprintManager کدهای خطای زیر را معرفی کرده است:
FINGERPRINT_ERROR_LOCKOUT_PERMANENT - کاربر بارها سعی کرده است قفل دستگاه خود را با استفاده از خواننده اثر انگشت باز کند.
FINGERPRINT_ERROR_VENDOR - یک خطای اثر انگشت خوان خاص فروشنده رخ داد.