| Ֆայլի տեսակ | APK |
|---|---|
| Տարբերակ | Preview |
| Հրատարակիչ | |
| Թողարկման ամսաթիվ | 25 հոկ, 2017 թ. |
| Ավելացման ամսաթիվը | 25 հոկ, 2017 թ. |
| OS պահանջները | Android |
| Պահանջներ | Only compatible with the Nexus 5X, Nexus 6P, Pixel C, Pixel, Pixel XL, Pixel 2, and Pixel 2 XL. |
| Ընդհանուր ներբեռնումներ | 1 002 |
| Շաբաթական ներբեռնումներ | 8 |
| Գինը | Free |
Նկարագրություն
Android O-ն օգտատերերի և մշակողների համար ներկայացնում է մի շարք նոր հնարավորություններ և հնարավորություններ: Այս փաստաթուղթը ընդգծում է, թե ինչ նորություն կա մշակողների համար:
Համոզվեք, որ ստուգեք Android O-ի վարքագծի փոփոխությունները՝ իմանալու այն ոլորտների մասին, որտեղ հարթակի փոփոխությունները կարող են ազդել ձեր հավելվածների վրա:
Նյարդային ցանցերի API
Նյարդային ցանցերի API-ն (NNAPI) ապահովում է հավելվածների ապարատային արագացում՝ սարքի վրա մեքենայական ուսուցման գործողությունների համար: API-ն աջակցում է սարքի վրա մոդելի ստեղծմանը, կազմմանը և կատարմանը: Հավելվածները սովորաբար ուղղակիորեն չեն օգտագործում NNAPI; Փոխարենը, NNAPI-ն կոչվելու է մեքենայական ուսուցման գրադարանների, շրջանակների և գործիքների միջոցով, որոնք թույլ են տալիս մշակողներին վերապատրաստել իրենց մոդելները և տեղադրել դրանք Android սարքերում:
Նյարդային ցանցերի API-ի մասին ավելին իմանալու համար տե՛ս Նյարդային ցանցերի API-ի տեղեկատու փաստաթղթերը և Նյարդային ցանցերի API մշակողների ուղեցույցը:
Ծանուցումներ
Android 8.1 Developer Preview 1-ը ներառում է ծանուցումների հետևյալ փոփոխությունները.
Այժմ հավելվածները կարող են միայն վայրկյանում մեկ անգամ ծանուցման ազդանշան հնչեցնել: Զգուշացման ձայները, որոնք գերազանցում են այս ցուցանիշը, հերթագրված չեն և կորչում են: Այս փոփոխությունը չի ազդում ծանուցումների վարքագծի այլ ասպեկտների վրա, և ծանուցումների հաղորդագրությունները դեռևս հրապարակվում են այնպես, ինչպես սպասվում էր:
NotificationListenerService-ը և ConditionProviderService-ը չեն աջակցվում ցածր հզորությամբ Android-ով աշխատող սարքերում, որոնք վերադարձնում են true, երբ կանչվում է ActivityManager.isLowRamDevice()-ը:
Բարելավված թիրախավորում ցածր RAM սարքերի համար
Android 8.1-ը (API մակարդակ 27) ավելացնում է ապարատային-առանձնահատկությունների երկու նոր հաստատուններ՝ FEATURE_RAM_LOW և FEATURE_RAM_NORMAL, Փաթեթների կառավարիչին: Այս հաստատունները թույլ են տալիս թիրախավորել ձեր հավելվածների և APK-ի բաժանումները նորմալ կամ ցածր RAM սարքերի վրա:
Այս հաստատունները թույլ են տալիս Play Store-ին նպաստել օգտատերերի ավելի լավ փորձին՝ ընդգծելով հավելվածները, որոնք հատկապես լավ են համապատասխանում տվյալ սարքի հնարավորություններին:
Ինքնալրացման շրջանակի թարմացումներ
Android 8.1 Developer Preview (API մակարդակ 27) ապահովում է մի քանի բարելավումներ Autofill Framework-ում, որոնք դուք կարող եք ներառել ձեր հավելվածներում:
Մշակողի նախադիտումն ավելացնում է անհատական նկարագրությունների աջակցություն, որոնք Android համակարգը ցուցադրում է ավտոմատ լրացման պահպանման միջերեսում՝ տվյալների սկզբնական ներկայացման փոխարեն: Սա օգտակար է, օրինակ, երբ ցանկանում եք քողարկել կրեդիտ քարտի համարը և ցույց տալ միայն վերջին չորս թվանշանները: Ավելին իմանալու համար տես CustomDescription դասը:
Մշակողի նախադիտումը թույլ է տալիս նշել վավերացնող օբյեկտ, որը ձեր հավելվածը կարող է օգտագործել՝ որոշելու, թե արդյոք Android համակարգը պետք է ցուցադրի ինքնալրացման պահպանման միջերեսը: Այս ֆունկցիոնալությունը տրամադրվում է SaveInfo.Builder դասի setValidator() մեթոդով։
Developer Preview-ում BaseAdapter դասը ներառում է setAutofillOptions() մեթոդը, որը թույլ է տալիս տրամադրել ադապտերների արժեքների լարային ներկայացումներ: Սա օգտակար է պտտվող կառավարիչների համար, որոնք դինամիկ կերպով առաջացնում են արժեքներ իրենց ադապտերներում: Օրինակ, դուք կարող եք օգտագործել thesetAutofillOptions() մեթոդը՝ տրամադրելու լարային ներկայացում այն տարիների ցանկի համար, որոնք օգտատերերը կարող են ընտրել որպես վարկային քարտի գործողության ժամկետի մաս: Ինքնալրացման ծառայությունները կարող են օգտագործել տողերի ներկայացումը՝ տվյալներ պահանջող դիտումները պատշաճ կերպով լրացնելու համար:
Բացի այդ, AutofillManager դասը ներառում է notifyViewVisibilityChanged(View, int, boolean) մեթոդը, որը կարող եք զանգահարել՝ վիրտուալ կառուցվածքում դիտման տեսանելիության փոփոխության մասին տեղեկացնելու շրջանակին: Կա նաև մեթոդի գերբեռնվածություն ոչ վիրտուալ կառույցների համար: Այնուամենայնիվ, ոչ վիրտուալ կառույցները սովորաբար չեն պահանջում, որ դուք հստակ ծանուցեք շրջանակը, քանի որ մեթոդն արդեն կանչված է View դասի կողմից:
EditText թարմացում
Սկսած API մակարդակից 27, EditText.getText() մեթոդը վերադարձնում է Editable; նախկինում այն վերադարձրել է CharSequence: Այս փոփոխությունը հետընթաց-համատեղելի է, քանի որ Editable-ն իրականացնում է CharSequence:
Խմբագրելի ինտերֆեյսը ապահովում է արժեքավոր լրացուցիչ գործառույթներ: Օրինակ, քանի որ Editable-ն իրականացնում է նաև Spannable ինտերֆեյսը, դուք կարող եք նշել բովանդակությունը EditText-ի օրինակում:
Ծրագրային ապահով զննարկման գործողություններ
Օգտագործելով Safe Browsing API-ի WebView ներդրումը, ձեր հավելվածը կարող է հայտնաբերել, երբ WebView-ի օրինակը փորձում է նավարկել դեպի URL, որը Google-ը դասակարգել է որպես հայտնի սպառնալիք: Լռելյայնորեն, WebView-ը ցույց է տալիս ինտերստիցիալ, ինչպես ցույց է տրված Նկար 1-ում, որը նախազգուշացնում է օգտագործողին հայտնի սպառնալիքի մասին և նրան հնարավորություն է տալիս բեռնել URL-ը, այնուամենայնիվ, կամ վերադառնալ նախկին անվտանգ էջ:
Android 8.1 Developer Preview-ում դուք կարող եք ծրագրային կերպով սահմանել, թե ինչպես է ձեր հավելվածն արձագանքում հայտնի սպառնալիքին.
Դուք կարող եք վերահսկել, թե արդյոք ձեր հավելվածը հայտնի սպառնալիքներ է հաղորդում Անվտանգ զննարկմանը:
Դուք կարող եք ստիպել ձեր հավելվածին ավտոմատ կերպով կատարել որոշակի գործողություն, օրինակ՝ վերադառնալ անվտանգություն, ամեն անգամ, երբ այն հանդիպում է URL-ի, որը Safe Browsing-ը դասակարգում է որպես հայտնի սպառնալիք:
Նշում. Հայտնի սպառնալիքներից օպտիմալ պաշտպանվելու համար սպասեք, մինչև որ նախաստորագրեք Safe Browsing-ը, նախքան WebView օբյեկտի loadUrl() մեթոդը կանչելը:
Տեսանյութի մանրապատկերների արդյունահանող
MediaMetadataRetriever դասն ունի նոր մեթոդ՝ getScaledFrameAtTime(), որը գտնում է շրջանակը տվյալ ժամանակային դիրքի մոտ և վերադարձնում է բիթքարտեզ նույն գծերի հարաբերակցությամբ, ինչ սկզբնական շրջանակը, բայց չափված՝ տեղավորելու տրված լայնության և բարձրության ուղղանկյունի մեջ: Սա օգտակար է տեսանյութից մանրապատկերներ ստեղծելու համար:
Խորհուրդ ենք տալիս օգտագործել այս մեթոդը, այլ ոչ թե getFrameAtTime(), որը կարող է վատնել հիշողությունը, քանի որ այն վերադարձնում է բիթքարտեզ նույն լուծաչափով, ինչ սկզբնաղբյուր տեսանյութը: Օրինակ, 4K տեսանյութի շրջանակը կլինի 16 ՄԲ բիթքարտեզ, որը շատ ավելի մեծ է, քան անհրաժեշտ կլինի մանրապատկերի պատկերի համար:
Համօգտագործվող հիշողության API
Android 8.1-ը (API մակարդակ 27) ներկայացնում է նոր SharedMemory դաս: Այս դասը թույլ է տալիս ստեղծել, քարտեզագրել և կառավարել անանուն ընդհանուր հիշողություն, որը կարող է օգտագործվել բազմաթիվ գործընթացների կամ հավելվածների կողմից:
WallpaperColors API
Android 8.1 Developer Preview-ը (API մակարդակ 27) ավելացնում է պաստառի գույների կառավարման աջակցություն: Այս հատկությունը թույլ է տալիս ստեղծել WallpaperColors օբյեկտ bitmap-ից, գծագրվողից կամ օգտագործելով առաջին երեք առավել տեսողական գույները: Կարող եք նաև առբերել պաստառի առաջին երեք նկատելի գույների մանրամասները:
WallpaperColors օբյեկտ ստեղծելու համար կատարեք հետևյալներից որևէ մեկը.
Երեք գույն օգտագործելով WallpaperColors օբյեկտ ստեղծելու համար ստեղծեք WallpaperColors դասի օրինակ՝ փոխանցելով հիմնական, երկրորդական և երրորդային գույները: Հիմնական գույնը չպետք է զրոյական լինի:
Bitmap-ից WallpaperColors օբյեկտ ստեղծելու համար զանգահարեք fromBitmap() մեթոդը՝ որպես պարամետր փոխանցելով bitmap աղբյուրը:
WallpaperColors օբյեկտը drawable-ից ստեղծելու համար կանչեք fromDrawable() մեթոդը՝ որպես պարամետր փոխանցելով drawable աղբյուրը:
Պաստառից առաջնային, երկրորդական կամ երրորդային գույնի մանրամասները ստանալու համար զանգահարեք հետևյալ մեթոդները.
getPrimaryColor()-ը վերադարձնում է պաստառի առավել նկատելի գույնը:
getSecondaryColor()-ը վերադարձնում է պաստառի երկրորդ ամենահայտնի գույնը:
getTertiaryColor() մեթոդը վերադարձնում է պաստառի երրորդ ամենահայտնի գույնը
Համակարգին գունային փոփոխությունների մասին ծանուցելու համար զանգահարեք notifyColorsChanged() մեթոդը: Այս մեթոդը գործարկում է onComputeColors()lifecycle միջոցառումը, որտեղ դուք հնարավորություն ունեք ապահովելու նոր WallpaperColors օբյեկտ:
Գույնի փոփոխության համար լսող ավելացնելու համար կարող եք զանգահարել addOnColorsChangedListener() մեթոդը: Կարող եք նաև զանգահարել getWallpaperColors() մեթոդը՝ պաստառի հիմնական գույները ստանալու համար:
Մատնահետքերի թարմացումներ
FingerprintManager դասը ներկայացրել է հետևյալ սխալի կոդերը.
FINGERPRINT_ERROR_LOCKOUT_PERMANENT – Օգտատերը չափազանց շատ անգամներ է փորձել ապակողպել իր սարքը՝ օգտագործելով մատնահետքի ընթերցիչը:
FINGERPRINT_ERROR_VENDOR - Տեղի ունեցավ մատնահետքի ընթերցողի հատուկ վաճառողի սխալ: