閱讀828 返回首頁    go 微軟 go Office


MIUI黑科技之小米直達服務:Web 般的流暢體驗 更少的卡頓、延遲

既想像 PC 時代使用 Web 一樣體驗超流暢,又希望它能承載任何服務還讓你感覺不到卡頓和延遲,這樣的要求在移動互聯網時代實現起來真的很難。在小米 MIUI 係統框架負責人董紅光看來,這一判斷完全有足夠的依據。

1

從 Web 到 APP:這些體驗都不夠

在他看來,目前移動端的應用服務分發基本上是兩個承載形態,分別是 APP 和 Web。PC 時代絕大部分服務都是瀏覽器承載,在瀏覽器中打開搜索引擎、從搜索引擎中搜索關鍵字、然後跳到服務頁麵,這個過程中間可能還會鏈接到第三個服務,但是無論如何跳轉,整個過程是非常流暢的,中間沒有任何斷檔,不需要安裝軟件、也不需要跳出。

但是這樣的體驗放到移動端就不那麼容易實現了。首先,移動端所承載的服務遠比 PC 端要複雜得多,比如拍照、定位、藍牙、傳感器,這些功能在網頁端沒有相應的 API 可供調用,讓網頁去承載移動端的這些服務,服務勢必不完整;

另外一個問題就是卡頓的問題了,移動端 CPU 性能要比 PC 端差,這就會導致計算能力不足,外加移動端有很多複雜的應用、前端寫法又過於靈活,加之瀏覽器背負的曆史包袱,導致移動端的 Web 應用很容易造成卡頓、慢、占內存等情況。以既有 APP 又有 H5 的很多應用為例,絕大多數情況下 H5 遠遠達不到 APP 的體驗。

此外還有一個問題,就是網頁端沒法做留存。今天某個用戶看到一個好的服務、或者一個好的網頁,如果是 APP 的話很輕鬆可以把應用保存到桌麵圖標,但是網頁卻沒有這個技術能力可以實現此功能。

當然或許很多人會說那就用 APP 啦,董紅光認為 APP 也有很多問題:想想我們每一個人手機上真正下載、安裝的 APP 能有多少?你會輕易下載一個動輒幾十兆甚至上百兆的 APP 嗎?這幾十兆甚至上百兆的 APP 沒法像網頁一樣實現一次性分發,要想使用一個 APP,必須先把這個 APP 完整下載下來。

另外很關鍵的問題在於, APP 之間很難做跳轉,A 應用跳到 B 應用,一般是打開 B 應用的 H5 頁麵,應用之間的割裂很嚴重,無法給用戶帶來順暢體驗;而孤島問題的另外一個呈現形式,在於無法進行索引服務,在應用間進行搜索目前基本上是無法實現的事情。

2

小米直達服務:技術催生下的必然而為之

針對以上問題或部分問題,其實多家公司推出了解決方案,比如 Google 的 PWA、Facebook 的 React Native、騰訊的微信小程序,還包括阿裏的螞蟻應用、百度的輕應用,而小米也推出了直達服務。

小米直達服務開發示意圖

對於小米直達服務的推出,在小米開發者生態業務負責人李曉璐看來,這是順應技術趨勢所在的必然而為之:PC 時代的應用是軟件 + 網頁形式;移動互聯網上半場是原生應用 +Web 應用形式;移動互聯網下半場急需解決原生應用以及 Web 應用的各自短板問題——因此混合框架應運而生。對此小米給其直達服務的定義是:秒開及內容直達。

對此小米比較有信心的地方在於,小米直達服務的核心在於它是一個操作係統,操作係統仍是用戶使用手機的第一入口,在入口層貼近用戶,用戶的體驗才會最好。李曉璐透露了一個數據:小米手機上 95% 的應用下載來自小米的應用商店。這說明小米的應用分發已經是絕大部分用戶使用小米手機時的習慣。如果說應用商店的下一代有新的服務分發形態,那麼操作係統仍然有很大優勢去做新的生態的探索和新的生態的培養。

對此董紅光也進行了補充:小米希望真正做到類似於當前 PC 瀏覽器的順暢體驗。具體到直達服務技術本身,就不得不提原生渲染技術了。直達服務實際上是運行在一個由直達服務的核心引擎管理的安卓進程上,使用安卓原生渲染,所以從開放能力、性能、內存、權限控製和管理方麵的設計理念等同於原生應用。

除了原生渲染引擎之外,小米直達服務也支持在沒有原生渲染條件之下,直接渲染到瀏覽器。在此基礎之上,小米提供了封裝的大量常用組件,也提供了很多高級語義標簽,相當於原生封裝,不需要開發者自己單獨開發——Native 版本一份、 Web 版本一份。

此外,小米直達服務還提供了一個橋接模式,把很多 API 暴露給前端,在此基礎上提供了藍牙、傳感器等係統功能;另外還暴露了很多服務能力,比如賬號、推送、支付等等。在此基礎之上,提供一套 JS 開發框架,除標簽、接口能力逐漸暴露以外,還提供 APP 開發需要的頁麵生命周期管理、頁麵之間路由跳轉等功能。整個核心寫法是模板 + 數據綁定的寫法,也是目前前端比較流行的一種寫法,所謂的 MVVM 模式,這套框架相當於提供了 MVVM 框架的實現。這一整套東西就是運行時環境,運行時環境之外,因為要支持多個應用一起跑,要有沙盒的管理,保證應用之間數據、運行層麵的安全。

小米直達服務運行時架構圖

3

發力開發者側:小米要構建更成熟生態

這裏依舊呈現一組數據,據李曉璐介紹:小米推送現在做到月活 8.4 億,也就是說絕大部分推送都是通過小米進行推送的,而且有 3/4 體量來自非小米上,比如 iOS 以及其他安卓機型,開發者也達到 1.5 萬家左右。小米推送是小米開發者生態的最直接體現,以上數字說明小米已經擁有相對比較成熟的開發者服務。而小米直達服務,勢必在開發者側發力,構建更為成熟的開發者生態。

對於開發者來說,Native 形態遇到的最大瓶頸就是流量成本獲取太高,用戶從應用商店下載的 APP,激活率隻有 60%。而小米直達服務這樣的新型應用形態,使得一個應用不需要下載,點了之後就是激活,對開發者來說等於是 100% 激活率。

另外,小米直達服務還兼容了 H5 形態,傳統 H5 可以跳轉到直達服務上,把過去 H5 無法承載的滑動流暢度、頁麵切換、添加到購物車等體驗,在直達服務上實現提升。對於原先 H5 開發者來說,可以無縫地將比較弱的 H5 功能轉化成類似於 Native 體驗的全新服務形態,提升用戶轉化率。

目前小米直達服務還處於 1.0 版本階段,邀請開發者進行內測。從目前的反饋來說,開發者提出了很多改進意見。董紅光介紹,之前小米直達服務的開發工具相對比較簡陋,開發者也提出了一些開發工具層麵的需求,這方麵小米會進行補足;另外內測畢竟是一個小體量的承載,未來伴隨用戶的增多,需要在性能優化上下功夫。

小米直達服務平台架構圖

對於小米來說,還有一個挑戰來自於原生渲染功能,對於開發者來說,相當於在瀏覽器之外重寫一個類似瀏覽器的東西,為了滿足前端開發者的需求,需要在瀏覽器側補充幾十年沉澱下來功能,這就需要產品的持續迭代。

從內測所呈現的產品穩定性、流暢程度來看,董紅光舉了一個例子:雖然 APP 的複雜程度不一樣,但是平均來看,60 幀是衡量流暢度的重要體現,目前內測上線的應用絕大多數能達到 60 幀。另外從內存占用來看,通過直達服務直接進行原生體驗,隻需要幾十兆甚至十幾兆,內存占用就可以啟動整個應用。

麵向開發這層,小米直達服務會做很多的技術儲備,比如“一次開發多端運行”功能,這件事情對於開發者來說會非常有吸引力,一次開發,就可以在安卓端、直達服務平台端、瀏覽器端、iOS 端都能運行。

4

做生態而非做產品 機會大挑戰更大

如果從公司戰略層來看待小米直達服務,可以發現這件事情不僅僅是技術驅動這麼簡單。小米直達服務做的是生態,既影響小米硬件、互聯網、新零售三大業務形態,也影響用戶側、開發者側、合作夥伴側整個產業鏈條。

從公司角度來看,李曉璐表示,小米直達服務牽涉到 MIUI 的下一步,在將內容提供給用戶的方式上,如何在操作係統層麵進行重構;而且不僅是在既有互聯網生態中探索,更能伴隨著語音、圖片、智能硬件等新場景的發展,探索下一代應用的交互及服務方式。

而作為一個生態,更需要培養生態鏈條上各方的美譽度、忠誠度,如何讓開發者和用戶對小米直達服務滿意,這並非把產品功能做好就夠了。

5

結束語

這次的采訪,是李曉璐和董紅光共同接受 InfoQ 的訪談,兩個人背後是兩個團隊在小米直達服務上的協作和配合。李曉璐負責的是生態建設、拓展團隊,而董紅光負責的是執行引擎和框架開發團隊,兩個團隊加起來有 40 多人,精誠合作、優勢互補。這一團隊建製也從側麵反映小米直達服務對於小米的重要程度,以及機遇和挑戰之大。由小米直達服務,我們看到了小米在生態建設上的野心和決心。

6

受訪嘉賓

李曉璐:小米開發者生態業務負責人

個人介紹:美國醫學影像 AI 背景,在開發者生態圈深耕 7 年,擅長操盤生態型業務,熱愛“從 0 到 1”。原百度商業產品高級產品經理,曾在百度網盟、原生廣告團隊完成多個新產品孵化,對互聯網商業變現模式理解深刻。在小米 MIUI,和小米推送一起做到月活 8 億,帶領團隊孵化出小米直達服務,同時負責小米開放平台、小米卡包等多個生態型業務。

董紅光:MIUI 技術總監

畢業於北京航空航天大學計算機專業,曾就職於 IBM 中國開發中心,負責服務器端中間件的研發工作,6 年多前加入小米,初期負責 MIUI 係統換膚能力和主題市場的研發工作,後負責 MIUI 應用開發框架的研發工作,直到現在,目前關注的領域主要是移動客戶端和前端的應用開發框架相關技術。

最後更新:2017-10-08 03:40:25

  上一篇:go MIUI9的更新讓iphoneX太尷尬,不買蘋果也有蘋果的體驗
  下一篇:go MIUI9新增 觸碰付款 或許比掃碼更方便!另新增多款官方主題!