爲 Android 應用打造精良的 Chrome OS 使用體驗

做者 / Chrome OS 團隊html

從發佈咱們的首款平板電腦和可拆分式筆記本,到在日本和德國等新市場推出 Chromebook,咱們一直在努力使 Chrome OS 設備的生態系統知足現在應用用戶們的需求。隨着人們愈來愈多地在大屏幕設備或者多型態設備上使用應用,開發者們的做品也得以吸引大量全新的用戶。android

Android 支持各類各樣的大屏幕設備,包括平板電腦、可摺疊設備、Chrome OS 筆記本等等。因爲 Chromebook 在容器內運行完整版 Android 框架,因此絕大多數 Android 應用均可以在 Chrome OS 上運行。這意味着開發者可使用他們既有的 Android APK,並將其擴展後適配 Chrome OS 設備,從而在更大屏幕的設備上帶來更加沉浸且引人入勝的體驗。git

用戶在 Chrome OS 中使用 Android 應用的時長在去年增加了 4 倍 ¹ 。在 2018 年第四季度,美國銷售的筆記本電腦中有 21% 是 Chromebook,同比增加 23% ²。github

¹ Google Internal Data, March 2018 to March 2019.chrome

² The NPD Group, Inc., Retail Tracking Service, U.S., Notebook Computers, Chrome OS, based on units, Oct. 8, 2017- Jan. 6, 2018 vs. Oct. 7, 2018- Jan. 5, 2019.安全

在 Chrome OS 上提供精良的體驗只需對現有應用作出少許的調整,但這些調整能帶來很是巨大的改觀。在針對大屏幕設備優化應用以後,Gameloft 的 Asphalt 8: Airborne 的每日用戶量增長了 6 倍,Chrome OS 設備帶來的收入則增長 9 倍;TopHatch 在 Chromebook 上的付費轉化率增長了 100%,消費者在 Pixelbook 上的 Concepts 應用中投入的時間則增長了 20 倍。bash

△ Asphalt 8: Airborne

△ Concepts
在今年的 I/O 開發者大會上咱們有一場專門的演講,爲你們介紹如何讓應用在各類外形和尺寸的設備上都能擁有良好的視覺和性能表現。這裏咱們整理了 (以及新增了一些) 適配時的重點供 Android 開發者們參考。

針對 Chrome OS 優化應用體驗

用戶使用應用的方式徹底取決於其使用的設備。您應該考慮如下幾個要素,以確保您的應用可以提供最佳用戶體驗:框架

鍵盤輸入ide

若是您的應用尚不支持鍵盤,只需添加以下代碼:工具

override fun onKeyUp(code: Int, ev: KeyEvent?): Boolean {
    return when (code) {
        KeyEvent.KEYCODE_J -> {
            // Do something here
            true
        }
        else -> super.onKeyUp(code, ev) // 重要!!
    }
}
複製代碼

注意咱們標出 "重要" 的那一行代碼。這行代碼會將沒有被開發者處理的鍵值交回給父類邏輯處理,而不是忽視它們。

刷新鍵

Chrome OS 鍵盤上有獨有的刷新鍵,並且有本身的鍵值 (KEYCODE_REFRESH),所以請確保您的應用能夠處理 KEYCODE_REFRESH 事件。若是您已經在使用 SwipeRefreshLayout,Chrome OS 能夠確保佈局能響應刷新按鈕事件。

觸控板

當有人在帶觸摸板的桌面設備上使用您的應用時,他們會但願使用雙指輕掃觸摸板進行滾動;但在移動設備上,用戶一般會按住並拖動屏幕來實現滾動。Chrome OS 會自動解析這些不一樣類型的動做事件,例如,當用戶在使用繪圖應用時若是作出了滾動的操做,繪圖應用不會讓畫筆在畫面上塗抹。

對於須要更高級觸摸事件處理的應用,能夠在 event.getButtonState()== 0 時忽略 MotionEvents 來檢查按鍵狀態,並忽略掉不須要的事件 (參考上面的繪圖應用例子)。

NDK

Chrome OS 上游戲和應用會自動得到 ARM - x86 指令翻譯。但若是您但願得到更佳的性能,那支持 x86 就相當重要。大多數高端 Chrome OS 設備都搭載了 64 位 x86 芯片 (更多這樣的設備也即將到來)。若是您想在全部設備上都提供最佳性能,那請確保您的構建支持 ARM、ARM6四、x86 和 x86_64 (若是您有對應的原生代碼的話)。

好消息是,Android Studio 能讓這種多平臺支持變得簡單: 只需使用 Android App Bundle 便可,它會將全部的構建打包,而後經過 Play Store 只發送用戶設備所須要的那一部分,從而將下載文件體積保持在最低限度。

界面佈局

若是一個應用的界面佈局沒有專門適配過大屏幕,那當它運行在大屏幕上時效果會很是尷尬——大量被浪費的空間,和很是不順手的導航,這些都會讓用戶感到困惑。爲了確保您的應用在多種佈局中都能擁有良好的完成度,您可讓同一個界面擁有多個佈局文件 (以下圖)。

△ 同一個界面針對不一樣屏幕的佈局文件

導航模式

同時,您的應用在不一樣的屏幕尺寸上都應該易於使用。提供縱向、橫向等佈局,使得應用能夠根據可用的屏幕寬度,在底部導航、側邊導航和側邊擴展導航模式之間切換。

電子郵件應用 Reply 就針對多種屏幕從新設計了其功能和佈局。Adobe Acrobat 在適配 Chrome OS 的時候,也一樣考慮了不一樣設備的佈局區別。

△ Reply 在屏幕尺寸不一樣時會採用不一樣的導航模式

多屏幕

當用戶使用多個顯示器時,兩個屏幕之間一般會存在像素密度差別。您能夠經過在界面裏監聽 onConfigurationChanged 來得知像素密度 (density) 的變化,從而對界面作出調整。

使用 Chromebook 進行開發

在 I/O 上咱們還發布了不少新內容,將 Chrome OS 打形成爲 Web 和 Android 開發者更快捷、更簡單、更安全的開發環境,具體包括:

一鍵安裝 Android Studio

只需下載、單擊和安裝,再也不須要使用 terminal。

△ 一鍵安裝 Android Studio

經過 USB 鏈接使用 ADB 調試

再也不須要開發者模式,只需使用 USB 鏈接手機便可進行調試。

Lint 檢查

高亮顯示鎖定的或不友好的屏幕方向、不可調整大小的界面、不正確的硬件要求以及其餘不適合 Chrome OS 的功能。

Linux 中的音頻播放

Chrome OS 容器支持 Linux 的全部音頻工具,例如 Audacity。

虛擬桌面

這是 M76 (也是咱們目前的穩定渠道) 中的一個功能,當您的屏幕被不少窗口塞滿時,能夠新開一個虛擬桌面。

多顯示器 / 全 HDCP 支持

在外部顯示器上投屏觀看受 DRM 保護的視頻內容 *。

  • 使用此功能時請調用 SurfaceView.setSecure()

ARCore

ARCore 可用於適配背部攝像頭的應用。

免安裝應用

試用應用或遊戲,無需安裝。

外部存儲

Android 應用如今能夠訪問鏈接至設備的外部存儲。

Play files

Chrome OS 文件管理器在 Play files 文件夾裏能夠顯示 Android 的 /sdcard 文件夾,從而讓用戶能夠經過 Chrome 容器讀寫 Android 文件。

DocumentsProvider

Chrome OS 如今支持 Android DocumentsProvider 接口,能夠經過 DocumentsProvider 和自定義文檔提供程序支持 Android Cloud 雲存儲。

集成應用分析工具

集成分析工具容許開發者隨時檢測系統狀態: 包括緩衝區使用、垂直同步、CPU 使用、GPU 和 CPU 頻率以及系統溫度,從而便於開發者定位動畫卡頓和/或系統速度下降的緣由。

體驗應用的場景已經遠遠超出了移動設備。在設備形式更加多樣化的今天,用戶每次打開應用時都但願得到精心設計的界面和友好的交互體驗。請您充分利用咱們給出的新特性,支持各類輸入方式,針對各類屏幕尺寸優化佈局和導航,並儘量經過原生代碼支持 x86,從而爲用戶打造精良迅捷的使用體驗。

您的 Android 應用有沒有支持更大、更多樣的屏幕尺寸、更多種類的設備?有沒有爲它們提供高完成度的使用體驗?若是您在界面和交互適配上有任何疑問或者想法,歡迎在評論區和咱們分享。

點擊這裏即刻讓您的 Android 應用登上更大的舞臺

相關文章
相關標籤/搜索