天天看點

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

2019 年 7 月曾經寫過一篇文章揭露 Android 定制系統「閹割」密碼管理器現象的文章,雖然從我自己微不足道的影響力出發這樣的文章甚至都算不上「揭露」,但 2020 年我在用的 ColorOS 7 和 MIUI 12 都已經擁有了完整的自動填充架構和第三方密碼管理器支援,這一點還是給了我信心。 不過在去年 7 月到今年 5 月這段密集使用國内定制 UI 并與朋友溝通使用體驗的過程中,我發現了更多和上面提到這個自動填充架構類似的問題——定制 UI 的理想狀态是「基于原生且優于原生」,但我們依然發現了不少原生比定制 UI 做得更好的地方。在從原生到定制的過程中,或許是出于對自家使用者使用習慣的照顧,或許是因為開發能力不足,這些功能也和早前的自動填充架構一樣無情「被砍」。 作為一個一直以來都對原生 Android 保持高度關注的使用者,在這篇文章中我就來分享一些我覺得定制 UI 可以向原生 Android「靠攏」的地方。 《這個國内廠商不該「閹割」的功能,讓你不用每次都手動輸密碼》:sspai.com/post/55825

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

▍ 無需跳轉的常用設定面闆 在 Android 10 中,Google 引入了一項名為「設定面闆(settings panels)」的 API,借助這個 API,應用可以直接在應用内向我們展示系統設定。 在 Google 設想的場景中有這麼一種情況:當我們打開網絡浏覽器時,發現裝置已經開啟了飛行模式,此時應用隻能通過彈窗或 toast 通知的方式要求我們前往設定打開網絡連接配接開關——而在 Android 10 裡,應用此時可以直接顯示一個設定面闆,允許我們快速更改主要的連接配接設定,如飛行模式、WLAN、移動資料等等,無需在應用和系統設定間來回跳轉。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

無需離開應用就能進行基本設定 這個功能和 Google 所設想的場景乍看上去似乎有些雞肋,畢竟在上述情景下大多數人其實都會選擇快速設定面闆來完成網絡連通性設定。但在一些對網絡條件要求嚴格、需要我們決定網絡連接配接類型的情況下,如網盤備份、遊戲更新等,直接在應用内彈出的設定面闆其實也是可以讓我們的操作更加友善省事一點的。 不過我們建議廠商用好這個 API 還有另一層更加重要的原因,也就是接下來将要介紹的音量調節。

▍更友善的音量調節方式

媒體、通話、鬧鈴、通知……我們對移動裝置的音量調節需求絲毫不輸電腦,但早年不少學習、模仿 iOS 的定制 UI 在音量調節這件事情上也基本照抄,音量調節功能在近兩年才得到足夠的重視。 而在這一點上,原生 Android 的做法尤其值得借鑒。 一方面,當你按下音量調節鍵時,預設調節的音量就是目前正在播放的音量。 如果你正在刷 YouTube,此時調節的應該是媒體音量;如果你的鬧鐘響了,此時調節的應該是鬧鐘音量;如果有人給你打電話,此時調節的應該是鈴聲音量……在原生 Android 上我們幾乎不會遇到在錯的時間點開錯的視訊、按下音量減卻發現調節的是鈴聲音量而不是媒體播放音量的尴尬。 此外 Android 系統還會根據目前的裝置連接配接狀态進一步做出決定,當手機接入了多個藍牙裝置時,按下音量鍵優先調節的一定是正在播放而非閑置不用的那個藍牙裝置的播放音量。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

友善快速的音量調節功能 另一方面,基于上面提到的設定面闆 API,Android 10 還進一步引入了音量調節擴充面闆。調節音量時點選控制條下方的設定按鈕即可展開擴充面闆,這個面闆可以被看作是「系統設定 > 聲音」界面的「微縮版」,允許我們直接對各類音頻輸出的音量大小進行單獨調節。 最後,針對上面提到的多個音頻播放裝置連接配接的情況,我們也可以直接在這個擴充面闆中自由切換用于音頻輸出的裝置。

▍更懂使用場景的螢幕旋轉

Android 9 Pie 釋出的同時,Android 使用者所熟悉的「三大金剛」被傳回和同時擁有主屏(Home)、最近任務概覽(Recents)兩種功能的「小藥丸」所取代,但彼時螢幕底部的導航欄按鍵區域依然存在,Google 于是靈機一動,将最近任務概覽按鈕留下來的空位留給了一個新功能——強制轉屏。 這裡的考慮很簡單,Android 系統預設的螢幕自動旋轉功能其實是不怎麼「通人性」的:為了避免側躺玩手機螢幕内容自動橫屏影響觀看體驗,很多人往往會關閉手機的自動旋轉功能;但在日常使用需要檢視照片、電影時,我們就必須打開快速設定面闆手動打開「自動旋轉」了。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

這個開關其實非常不靈活 強制轉屏功能索性把「轉不轉」的權利完全交給了那些常年關閉「自動旋轉」的使用者——當系統擷取到來自陀螺儀等傳感器的手機旋轉資料後,Android 系統會在螢幕底部顯示一個可以用于強制切換橫、豎屏顯示的按鈕。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

螢幕方向發生變化時的強制轉屏圖示 如果你隻是睡前玩玩手機那就不必理會這個按鈕,數秒後它便會自動消失;如果你确實是一個偶爾需要橫屏顯示内容的「反自動旋轉功能」使用者,點選這個按鈕又能免除一次下拉打開快速設定面闆找開關的麻煩。 在最新的 Android 10 中,強制旋轉按鈕從底部導航欄遷移到了螢幕下方角落,樣式也從矩形按鈕變成了圓形圖示,但實用性依舊。而國内的定制 UI 由于此前采用的全面屏手勢方案大多不包含螢幕導航欄設計,這個強制轉屏按鈕也就沒了蹤影。

▍自動亮度調節的學習能力

iOS 使用者轉戰 Android 陣營後常常懷念的東西除了 iMessage,還有 iOS 出色的自動亮度調節——Android 這邊和「通情達理」毫不沾邊的自動亮度調節已經被使用者吐槽多年了。 在 Android 9 之前,自動亮度調節的簡要工作流程應該是:

  1. 手機根據實際環境光情況和手機廠商内置的亮度調節曲線自動将螢幕亮度調節到特定數值
  2. 使用者根據實際情況:将滑塊向左拉,産生一個負比例系數,讓螢幕亮度比廠商的預設值更低(覺得手機螢幕太亮了)将滑塊向右拉,産生一個正比例系數,讓螢幕亮度比廠商的預設值更高(覺得手機螢幕還不夠亮)

解構這個流程不難發現,這種自動亮度調節機制勢必會帶來兩個問題:一方面廠商内置的亮度調節曲線本身并不科學,欠缺調校;另一方面我們的亮度選擇偏好(拖動滑塊的行為)并不能得到學習和記憶。 這兩個問題疊加起來就是堪稱「災難級」的自動亮度體驗了——廠商内置的亮度調節曲線并不能給到我們想要的結果,由于早年機器學習在移動裝置上并未得到廣泛應用,Android 系統也無法記住我們的實際亮度偏好,每次自動亮度出問題時,我們都需要手動拉一下滑塊。 而優秀的自動亮度調節機制是很少需要、甚至不需要我們進行手動幹預的。為了改善 Android 平台的亮度調節體驗,Google 在 Android 9 中針對上面的自動亮度問題做了兩方面改進:

  • 将亮度控制滑塊所代表的控制目标由全局調節系數更改為絕對螢幕亮度
  • 借助本地機器學習對亮度映射關系進行個性化調優

第一點将自動亮度開啟前提下的絕對亮度控制權完全交給了使用者,舉個例子,當系統覺得與目前環境比對的絕對亮度是最高亮度的 70% 時:在 Android 9 之前的版本中,我們将亮度滑塊拉到最右側能夠擷取到的亮度是70%*正比例系數;在 Android 9 之後的版本中,我們将亮度滑塊拉到最右側能夠擷取到的亮度就是 100%。 第二點則讓 Android 系統記住了特定使用場景下使用者的亮度選擇傾向:玩遊戲時喜歡把螢幕亮度調到最高,廠商預置的最低亮度對你而言有些太暗了……對這些使用習慣的記憶配合上面提到的對絕對亮度的直接操控,我們手動操作亮度控制滑塊的次數理論上來說會随着使用時間的增加而減少。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

奇怪的是後續版本這個功能又被翻譯成了「自動調節亮度」 說了這麼多,你會發現即便廠商給到的預置亮度調節曲線不太合理,Android 9 的自動亮度學習特性也能随着每一次對螢幕絕對亮度的調節,擁有「越用越懂你」的自動亮度調節能力。所幸在今年釋出的國産旗艦手機中我們已經看到了基于這種思路的自動亮度調節算法,如 Find X2、小米 10 系列等,各家的機器學習算法好不好用尚且有待時間驗證,但這種調校方向和解決思路是絕對值得借鑒的。

▍更靈活的通知互動方式

盡管市面上大部分機型的底層版本都已經更新到了 Android 10,Google 自 8.0 以來為 Android 系統引入的通知延後功能在不少 OEM 廠商的定制系統中依然缺席。 通知延後并不是一個無關緊要的小功能,是以當 Google 在 Android 11 DP2 中将其移除後立即招來了開發者和使用者的不滿,并且在随後釋出的 Android DP3 中又将這個特性以開關的形式加了回去。 在原生 Android 8.0+ 版本的裝置上,我們可以對一條應用所發出的通知進行延後處理,隻需在對應通知上向左或向右輕掃,然後點選出現的時鐘🕓圖示即可完成延後操作。

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

通知延後 這個功能的應用場景也相當靈活,借助它我們可以輕松管理那些目前無暇處理但又害怕被意外清除的通知;除此之外,對于那些沒有 FCM 推送的應用來說,系統級的延後功能也可以幫助它們突破應用的自身限制,風雨無阻地在指定時長後重新出現在我們的通知欄裡。 除了通知延後,Android 10 引入的「智能回複」特性目前在國内定制 ROM 中也鮮有應用——這項特性可以根據通知内容在應用通知下方給出靈活的操作建議,不管是快速恢複還是調用其他應用一鍵直達都非常友善,具體的介紹我們在此前的文章裡已經有過提及,這裡就不再贅述了。 《Android 10 裡有哪些「用了就回不去」的好功能》 : sspai.com/post/56538

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...

通知提供快速操作

▍小結

在廠商定制、打磨手機系統體驗的過程中總有這樣那樣的細節容易被忽視,但依然有值得肯定的地方,甚至不乏将本文所提到的功能和特性利用、再創新得可謂絕妙的,如 Flyme 的強制轉屏、MIUI 12 的分應用音量調節和越來越多的 Android 廠商都逐漸開始重視的 AI 自動亮度算法等等。 你最希望 Android 廠商在定制 Android 體驗的過程中保留哪些功能?歡迎在評論區留下你的看法。 @ 玖工格  對本文的創作思路亦有貢獻。 更多熱門文章

android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...
android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...
android通過代碼設定鈴聲_我想在國産安卓系統,用上這些超好用的原生 Android 功能...