極力推薦Android 開發大總結文章:歡迎收藏 程序員Android 力薦 ,Android 開發者須要的必備技能 java
Android 8.1(API級別27)
爲用戶和開發人員引入了各類新特性和功能。本文檔重點介紹了開發人員的新功能。程序員
經過本章閱讀,您將獲取到如下內容:編程
- Android Go 簡介
- 人工智能神經網絡 API(如:TensorFlow)
- 自動填充框架更新
- Notification 通知變動
- EditText 更新
- WebView 安全瀏覽更新
- 視頻縮略圖提取器更新
- 共享內存API
- WallpaperColors API
- 指紋更新
歡迎關注微信公衆號:程序員Android 公衆號ID:ProgramAndroid 獲取更多信息安全
咱們不是牛逼的程序員,咱們只是程序開發中的墊腳石。 咱們不發送紅包,咱們只是紅包的搬運工。微信
Android Go
是Google
爲優化Android
用戶體驗,在Android O
之上開發的一個兼容性更強的版本。從Android 8.1
開始,Go
版本將使Android
成爲入門級設備的絕佳平臺。網絡
Android Oreo(Go版)
配置中的功能包括:框架
改善整個平臺的內存使用狀況,確保應用程序能夠在1GB
或更少RAM的設備上高效運行。機器學習
新的硬件功能常量,可以讓您經過Google Play
將應用程序分配到普通或低RAM設備
。 Google Play 全部的應用均可以在運行Android Oreo(Go版)
的設備上使用,Google Play
將提供開發人員專門優化的應用程序的可見性,爲數十億用戶提供了數十億用戶指南的良好體驗。ide
Google
已經更新了數十億開發指南,並提供了關於如何針對運行Android Oreo(Go版)
的設備優化應用的其餘指導。對於大多數開發者來講,優化現有的APK
,或使用Google Play
的功能,將您的APK
版本定位到低內存設備是準備運行Android Oreo(Go版)
的最佳方式。 請記住,不管使用哪一種設備,讓您的應用更輕盈,更高效,均可以讓您的整個觀衆受益工具
Neural Networks API
爲設備上的機器學習框架(如TensorFlow Lite-Google的移動平臺ML庫以及Caffe2等)
提供了加速的計算和推理。訪問TensorFlow Lite
開源回購下載和文檔。 TensorFlow Lite
可與Neural Networks API
協同工做,在移動設備上高效運行MobileNets,Inception v3和Smart Reply
等模型。
Android 8.1(API級別27)
對自動填充框架進行了一些改進,您能夠將其添加到應用程序中。
BaseAdapter
類如今包含setAutofillOptions()
方法,該方法容許您在Adapter
中提供值的string
表示形式。這對於在其適配器中動態生成值的微調控件很是有用。
例如,您可使用setAutofillOptions()
方法提供用戶能夠選擇做爲信用卡過時日期一部分的年數列表的字符串表示形式。自動填充服務可使用字符串表示來適當填寫須要數據的視圖。
此外,AutofillManager
類還包括能夠調用的notifyViewVisibilityChanged(View,int,boolean)
方法,以通知框架關於虛擬結構中視圖可見性的更改。非虛擬結構的方法也有重載。可是,非虛擬結構一般不要求您顯式通知框架,由於該方法已被View
類調用。
經過在SaveInfo
中添加對CustomDescription
和Validator
的支持,Android 8.1
還使Autofill Services
可以更自定義保存UI可供性。
自定義描述可幫助自動填充服務澄清正在保存的內容;例如,當屏幕包含信用卡時,它能夠顯示信用卡銀行的標誌,信用卡號碼的最後四位數字和到期號碼。要了解更多信息,請參閱CustomDescription
類。
當Validator
條件不知足時,Validator
對象用於避免顯示自動填充保存UI。要了解更多信息,請參閱Validator類及其子類LuhnChecksumValidator和RegexValidator
Android 8.1
包含對通知的如下更改:
應用程序如今只能每秒發出一次通知警報聲。超過這個速度的警報聲音不會排隊並丟失。此更改不會影響通知行爲的其餘方面,通知郵件仍按預期發佈。 在調用ActivityManager.isLowRamDevice()
時,低內存的Android設備不支持NotificationListenerService
和ConditionProviderService
,它們返回true。
從API級別27
開始,EditText.getText()
方法返回一個Editable
;之前它返回一個CharSequence
。這個改變是向後兼容的,由於Editable
實現了CharSequence
。
可編輯界面提供了有價值的附加功能。例如,因爲「可編輯」也實現了Spannable
接口,所以能夠將標記應用於EditText
實例中的內容。
經過·WebView·實現Safe Browsing API
,您的應用程序能夠檢測WebView實例
什麼時候嘗試導航到Google已被歸類爲已知威脅的URL。 默認狀況下,WebView
將顯示一個插頁式廣告,警告用戶已知的威脅。該屏幕容許用戶選擇加載URL,或返回到安全的上一頁。
在Android 8.1
中,您能夠經過編程來定義您的應用程序如何響應已知的威脅:
您能夠控制您的應用是否將已知威脅報告給安全瀏覽。 您可讓本身的應用程序自動執行特定操做(例如回到安全狀態),每次遇到安全瀏覽會將其歸類爲已知威脅的網址時。
注意: 爲了最大限度地防範已知威脅,請等到您調用
WebView
對象的loadUrl()
方法以前初始化安全瀏覽。
如下代碼片斷顯示如何指示應用程序的WebView實例在遇到已知威脅後老是返回到安全狀態:
MediaMetadataRetriever
類有一個新方法getScaledFrameAtTime()
,它在給定的時間位置附近找到一個幀,並返回一個與源幀具備相同縱橫比的位圖,可是縮放到適合於給定寬度和高度的矩形。這對於從視頻生成縮略圖圖像頗有用。
咱們推薦使用這種方法而不是getFrameAtTime()
,這會浪費內存,由於它會返回一個與源視頻具備相同分辨率的位圖。例如,來自4K視頻的幀將是一個16MB的位圖,比您須要的縮略圖大得多
Android 8.1(API級別27)引入了一個新的SharedMemory API
。這個類容許你建立,映射和管理一個匿名的SharedMemory
實例。在SharedMemory
對象上設置內存保護以便讀取和/或寫入,而且因爲SharedMemory
對象是Parcelable
,所以能夠經過AIDL
輕鬆地將其傳遞給另外一個進程。
SharedMemory API
與NDK中的ASharedMemory
工具交互操做。 ASharedMemory
容許訪問文件描述符,而後能夠將其映射爲讀取和寫入。這是在應用程序之間或單個應用程序內的多個進程之間共享大量數據的好方法。
Android 8.1(API等級27)
容許您的動態壁紙爲系統UI
提供顏色信息。您能夠經過從Bitmap,drawable
或RGB
建立WallpaperColors
對象來實現此目的。你也能夠檢索這個顏色信息。
要建立WallpaperColors
對象,請執行如下任一操做:
要使用三種顏色建立WallpaperColors
對象,請經過傳遞主要顏色,輔助顏色和第三層顏色來建立WallpaperColors
類的實例。原色不能爲空。
要從位圖建立WallpaperColors
對象,請經過傳遞位圖源做爲參數來調用fromBitmap()
方法。
要從drawable
建立WallpaperColors對
象,請經過傳遞可繪製的源做爲參數來調用fromDrawable()
方法。
-1. 要從壁紙檢索主要,次要或第三個顏色細節,請調用如下方法:
getPrimaryColor()
返回最具視覺效果的壁紙顏色。
getSecondaryColor()
返回第二個最顯着的壁紙的顏色。
getTertiaryColor()
方法返回壁紙的第三個最顯着的顏色。
notifyColorsChanged()
方法。 這個方法觸發一個onComputeColors()
生命週期事件,你能夠提供一個新的WallpaperColors
對象。addOnColorsChangedListener()
方法。您也能夠調用getWallpaperColors()
方法來檢索牆紙的主要顏色。FingerprintManager
類引入瞭如下錯誤代碼:
FINGERPRINT_ERROR_LOCKOUT_PERMANENT - 用戶嘗試使用指紋讀取器解鎖設備的次數過多。
FINGERPRINT_ERROR_VENDOR - 發生特定於供應商的指紋識別器錯誤
至此,本篇已結束,若有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!
若有侵權,請聯繫小編,小編對此深感抱歉,屆時小編會刪除文章,當即中止侵權行爲,請您多多包涵。
既然都看到這裏,領兩個紅包在走吧! 如下兩個紅包天天均可以領取
1.支付寶搜索 522398497,或掃碼支付寶紅包海報。
2.微信紅包,微信掃一掃便可領取紅包