Android Go(Android 8.1) 功能與新特性

極力推薦Android 開發大總結文章:歡迎收藏 程序員Android 力薦 ,Android 開發者須要的必備技能 java

Android 8.1(API級別27)爲用戶和開發人員引入了各類新特性和功能。本文檔重點介紹了開發人員的新功能。程序員

經過本章閱讀,您將獲取到如下內容:編程

  1. Android Go 簡介
  2. 人工智能神經網絡 API(如:TensorFlow)
  3. 自動填充框架更新
  4. Notification 通知變動
  5. EditText 更新
  6. WebView 安全瀏覽更新
  7. 視頻縮略圖提取器更新
  8. 共享內存API
  9. WallpaperColors API
  10. 指紋更新

歡迎關注微信公衆號:程序員Android 公衆號ID:ProgramAndroid 獲取更多信息安全

微信公衆號:ProgramAndroid

咱們不是牛逼的程序員,咱們只是程序開發中的墊腳石。 咱們不發送紅包,咱們只是紅包的搬運工。微信

1. Android Go 簡介

Android Go 系統截圖

Android GoGoogle爲優化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版)的最佳方式。 請記住,不管使用哪一種設備,讓您的應用更輕盈,更高效,均可以讓您的整個觀衆受益工具

2. 人工智能神經網絡API(如:TensorFlow)

Neural Networks API爲設備上的機器學習框架(如TensorFlow Lite-Google的移動平臺ML庫以及Caffe2等)提供了加速的計算和推理。訪問TensorFlow Lite開源回購下載和文檔。 TensorFlow Lite可與Neural Networks API協同工做,在移動設備上高效運行MobileNets,Inception v3和Smart Reply等模型。

3. 自動填充框架更新

Android 8.1(API級別27)對自動填充框架進行了一些改進,您能夠將其添加到應用程序中。

BaseAdapter類如今包含setAutofillOptions()方法,該方法容許您在Adapter中提供值的string表示形式。這對於在其適配器中動態生成值的微調控件很是有用。

例如,您可使用setAutofillOptions()方法提供用戶能夠選擇做爲信用卡過時日期一部分的年數列表的字符串表示形式。自動填充服務可使用字符串表示來適當填寫須要數據的視圖。

此外,AutofillManager類還包括能夠調用的notifyViewVisibilityChanged(View,int,boolean)方法,以通知框架關於虛擬結構中視圖可見性的更改。非虛擬結構的方法也有重載。可是,非虛擬結構一般不要求您顯式通知框架,由於該方法已被View類調用。

經過在SaveInfo中添加對CustomDescriptionValidator的支持,Android 8.1還使Autofill Services可以更自定義保存UI可供性。

自定義描述可幫助自動填充服務澄清正在保存的內容;例如,當屏幕包含信用卡時,它能夠顯示信用卡銀行的標誌,信用卡號碼的最後四位數字和到期號碼。要了解更多信息,請參閱CustomDescription類。

Validator條件不知足時,Validator對象用於避免顯示自動填充保存UI。要了解更多信息,請參閱Validator類及其子類LuhnChecksumValidator和RegexValidator

4. Notification 通知變動

Android 8.1包含對通知的如下更改:

應用程序如今只能每秒發出一次通知警報聲。超過這個速度的警報聲音不會排隊並丟失。此更改不會影響通知行爲的其餘方面,通知郵件仍按預期發佈。 在調用ActivityManager.isLowRamDevice()時,低內存的Android設備不支持NotificationListenerServiceConditionProviderService,它們返回true。

5. EditText 更新

API級別27開始,EditText.getText()方法返回一個Editable;之前它返回一個CharSequence。這個改變是向後兼容的,由於Editable實現了CharSequence

可編輯界面提供了有價值的附加功能。例如,因爲「可編輯」也實現了Spannable接口,所以能夠將標記應用於EditText實例中的內容。

6. WebView 安全瀏覽更新

經過·WebView·實現Safe Browsing API,您的應用程序能夠檢測WebView實例什麼時候嘗試導航到Google已被歸類爲已知威脅的URL。 默認狀況下,WebView將顯示一個插頁式廣告,警告用戶已知的威脅。該屏幕容許用戶選擇加載URL,或返回到安全的上一頁。

Android 8.1中,您能夠經過編程來定義您的應用程序如何響應已知的威脅:

您能夠控制您的應用是否將已知威脅報告給安全瀏覽。 您可讓本身的應用程序自動執行特定操做(例如回到安全狀態),每次遇到安全瀏覽會將其歸類爲已知威脅的網址時。

注意: 爲了最大限度地防範已知威脅,請等到您調用WebView對象的loadUrl()方法以前初始化安全瀏覽。

如下代碼片斷顯示如何指示應用程序的WebView實例在遇到已知威脅後老是返回到安全狀態:

    1. AndroidManifest.xml

WebView 返回到安全狀態

    1. MyWebActivity.java

MyWebActivity

    1. MyWebViewClient.java

MyWebViewClient

7. 視頻縮略圖提取器更新

MediaMetadataRetriever類有一個新方法getScaledFrameAtTime(),它在給定的時間位置附近找到一個幀,並返回一個與源幀具備相同縱橫比的位圖,可是縮放到適合於給定寬度和高度的矩形。這對於從視頻生成縮略圖圖像頗有用。

咱們推薦使用這種方法而不是getFrameAtTime(),這會浪費內存,由於它會返回一個與源視頻具備相同分辨率的位圖。例如,來自4K視頻的幀將是一個16MB的位圖,比您須要的縮略圖大得多

8. 共享內存API

Android 8.1(API級別27)引入了一個新的SharedMemory API。這個類容許你建立,映射和管理一個匿名的SharedMemory實例。在SharedMemory對象上設置內存保護以便讀取和/或寫入,而且因爲SharedMemory對象是Parcelable,所以能夠經過AIDL輕鬆地將其傳遞給另外一個進程。

SharedMemory API與NDK中的ASharedMemory工具交互操做。 ASharedMemory容許訪問文件描述符,而後能夠將其映射爲讀取和寫入。這是在應用程序之間或單個應用程序內的多個進程之間共享大量數據的好方法。

9. WallpaperColors API

Android 8.1(API等級27)容許您的動態壁紙爲系統UI提供顏色信息。您能夠經過從Bitmap,drawableRGB建立WallpaperColors對象來實現此目的。你也能夠檢索這個顏色信息。

要建立WallpaperColors對象,請執行如下任一操做:

  • 要使用三種顏色建立WallpaperColors對象,請經過傳遞主要顏色,輔助顏色和第三層顏色來建立WallpaperColors類的實例。原色不能爲空。

  • 要從位圖建立WallpaperColors對象,請經過傳遞位圖源做爲參數來調用fromBitmap()方法。

  • 要從drawable建立WallpaperColors對象,請經過傳遞可繪製的源做爲參數來調用fromDrawable()方法。

-1. 要從壁紙檢索主要,次要或第三個顏色細節,請調用如下方法:

  • getPrimaryColor()返回最具視覺效果的壁紙顏色。

  • getSecondaryColor()返回第二個最顯着的壁紙的顏色。

  • getTertiaryColor()方法返回壁紙的第三個最顯着的顏色。

    1. 要通知系統有關活動壁紙中的任何重大顏色變化,請調用notifyColorsChanged()方法。 這個方法觸發一個onComputeColors()生命週期事件,你能夠提供一個新的WallpaperColors對象。
    1. 要爲顏色更改添加偵聽器,能夠調用addOnColorsChangedListener()方法。您也能夠調用getWallpaperColors()方法來檢索牆紙的主要顏色。

10. 指紋更新

FingerprintManager類引入瞭如下錯誤代碼:

  • FINGERPRINT_ERROR_LOCKOUT_PERMANENT - 用戶嘗試使用指紋讀取器解鎖設備的次數過多。

  • FINGERPRINT_ERROR_VENDOR - 發生特定於供應商的指紋識別器錯誤

至此,本篇已結束,若有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!

若有侵權,請聯繫小編,小編對此深感抱歉,屆時小編會刪除文章,當即中止侵權行爲,請您多多包涵。

既然都看到這裏,領兩個紅包在走吧! 如下兩個紅包天天均可以領取

1.支付寶搜索 522398497,或掃碼支付寶紅包海報。

支付寶掃一掃,天天領取大紅包

2.微信紅包,微信掃一掃便可領取紅包

微信掃一掃,天天領取微信紅包
相關文章
相關標籤/搜索