一週時間,在卷石天地大廈不分晝夜的鍵盤敲擊聲中悄然流逝。
謝謙完成了《米聊係統級對接介麵規範(草案)》。
這份檔案並不厚,卻字字珠璣,勾勒出了米聊與MIUI係統深度繫結的骨架。
核心介麵隻有三個:賬號統一介麵、後台保活介麵、通知欄整合介麵。
但每個介麵都附帶了詳細的呼叫協議、安全校驗機製、以及異常處理流程。
賬號統一介麵確保使用者無需二次註冊,後台保活介麵為米聊這類即時通訊應用預留了“特權通道”,通知欄整合介麵則讓米聊的訊息能以最高優先順序觸達使用者。
檔案發給了洪峰和雷軍,雷軍隻回了一個字:“準。”
洪峰則回了一封郵件,言簡意賅:“介麵設計合理,但對‘後台保活’的具體實現,我需要和你細談。”
謝謙早料到了。他將檔案儲存,開啟了一個新的思維導圖檔案,標題是:後台智慧機製設計。
這個問題,他醞釀了一週。
MIUI1.0中設計的“智慧凍結”機製,解決了記憶體管理和應用恢復速度的通用問題。但米聊需要的,是持續執行、隨時待命。
“簡單粗暴的保活,會拖垮效能。”謝謙自言自語,在白板上畫出一個框,標註“通用程式管理(智慧凍結)”框架。他的筆尖停頓,然後在旁邊畫出另一個更小的、巢狀的框,標註“關鍵服務程式(特權保活)”。
“關鍵服務”需要被係統識別。識別規則可以基於預設的應用簽名(如米聊),也可以基於實時狀態——比如當前擁有活躍網路連線、或被使用者設定為“常駐”的應用。
被識別的“關鍵服務”,不會進入“智慧凍結”佇列。它們的資源佔用會被嚴格監控。當係統記憶體緊張時,不會直接殺死它們,而是會“削減”其資源——比如,將其網路心跳頻率從3秒調整為10秒,或將其後台CPU時間片從5%削減為1%。
這是一種動態、精細的“資源配給製”。
係統會為“關鍵服務”維護一個“資源配額池”。當使用者在前台使用其他應用時,“關鍵服務”的配額維持在最低水平,僅能維持心跳。
當使用者息屏、或網路空閑時,係統會根據“智慧凍結”框架的統計結果,預判使用者近期可能使用的應用,動態調整配額——比如,為米聊分配稍多的資源,使其能更快地拉起、更流暢地接收延遲的訊息。
整個機製的核心,是讓“保活”不再是無差別的、耗費資源的“流氓行為”,而是可度量、可調節、與係統整體效能達成最優平衡的“特權服務”。
洪峰對此方案沒有異議,甚至有些興奮。他們約定,這套機製作為MIUI底層的一次重要升級,代號“心跳”,將由謝謙主導設計核心演演演算法,林俞和洪峰團隊負責實現與測試。
思路理清,謝謙從程式碼世界抬起頭。
一週的時間,除了埋首介麵與機製,他也並沒有放下其他工作。
黎萬強那邊效率很高,“百變鎖屏”的設計稿和互動動效規範已經發來。圖形渲染引擎的介麵定義完成了大半,洪峰安排的兩名工程師已經開始著手核心模組的實現。
“小米雲服務”的原型,洪峰指定的那位工程師說下週能出。
至於米聊團隊,HR管穎傳來的訊息是社招簡歷寥寥,但校招那邊,林俞推薦的幾個北郵研究生簡歷不錯,其中有個叫曾興的,方向正好是即時通訊協議,已在安排麵試。
螢幕右下角的日期顯示:2010年9月23日。頁遊《蒼穹之怒》的上線日期臨近,米聊專案剛起步,MIUI 2.0開發排滿日程。
謝謙揉了揉眉心,開啟另一個檔案——《蒼穹之怒》上線檢查清單。
裡麵列著:伺服器壓力測試、支付介麵聯調、美術素材檢查、新手引導流程測試……
“魚子,強子,今晚繼續。”他在微信群裡發了條訊息,合上電腦。
溫馨提示: 搜書名找不到, 可以試試搜作者哦, 也許隻是改名了!