移動技術中黑科技的前世今生

2021-02-13 心存向日葵

「反者道之動,弱者道之用。天下萬物生於有,有生於無。」,摘自《老子·道德經》。

從蘋果「熱修復門」說起

近日,有關蘋果揮刀「熱修復」的新聞在iOS圈炸鍋了,一時間眾說紛紜,有人說這是蘋果反制微軟前一天發布Visual Studio 2017自帶React Native for iOS功能,有人說這是蘋果與「移動第一」Facebook巨頭之爭,也有人說當下動態技術已經猖狂地威脅到App Store審核機制云云。

不打算對這件事情本身做過多的論述,蹭蹭這個熱點,今天我們來聊聊移動技術發展歷程所經歷的種種「黑科技」。

始於PC時代

2004年,為了鞏固Windows系統和Office的市場佔有率,微軟開發並維護了一套線上修複方案,用於修復漏洞及特定問題,避免延續到發版解決,著名的補丁「黑科技」技術誕生。

隨後,補丁技術在遊戲領域發揚光大。WOW(魔獸世界)作為一款網路遊戲,其Bug是必然存在的,通過補丁技術,客戶端無需頻繁升級,伺服器也無需停機,玩家正在遊戲時,通過補丁技術即可完美修復WOW客戶端存在的Bug。

嶄露頭角

時間在遊走,智慧型手機開始逐步增長,移動網際網路開始萌芽。移動技術演進大致可以分成四個階段:網頁階段、Native(原生)階段、Hybrid(混合式)階段、驅動原生階段。

相信早期做過移動APP的同學還記得,App Store剛推出的時候,還是允許APP做個殼,直接連著服務端的一個網頁。後來喬老爺把這種APP給禁止了,不給上App Store,因為這種體驗實在太差了,當然本地能力也是缺失的,比如調用攝像頭。

Native APP的體驗好,缺點也明顯,不僅成本較高,更甚的是應用嚴重依賴於市場和用戶是否主動下載最新版本,推廣難度也較高。

2011年,Hybrid(混合式) 概念橫空而出。這一帶有「黑科技」性質技術思路大概這樣,採用HTML5作為UI,通過內置瀏覽器作為渲染,當需要本地能力時候,採用Native方式編寫,並提供接口給UI端調用。

由於深受Native開發成本之高、迭代周期之痛和Web APP體驗之殤,Hybrid APP 一誕生便廣受歡迎,迅速成名。毫無誇張地說,Hybrid的誕生是整個移動技術發展的裡程碑,推動了大前端技術走進移動網際網路的歷史舞臺。PhoneGap(後來改名Cordova)成為這一技術派系的傑出代表。

一路前行,亂象叢生

隨著移動網際網路進入深水區,用戶對APP體驗要求到達了極致,然而Hybrid因其採用內置瀏覽器UI渲染方式,難免會影響到用戶的最佳體驗。Native動態化誠然成為移動開發領域的一大迫切需求。

最早要從Wax項目說起,還記得當年在iPhone上火爆無比的遊戲「憤怒的小鳥」嗎,它就是基於Wax框架編寫的。Wax把Lua腳本語言與原生Objective-C底層Runtime結合起來,使得你可以用Lua語言來開發iPhone應用。當年蘋果對於Lua腳本是持著支持態度的,可蘋果萬萬沒有想到的是Wax在應用開發層面並沒有火起來,反而「助攻」它成為了iOS APP熱修復開山鼻祖。

2013年,iOS 7推出了JSCore,它是原生與JS交互的橋梁,讓開發者在原生與JS之間穿梭自如。蘋果在這方面繼續扮演著「助攻」角色,JSCore推出不久,騰訊iOS開發工程師bang寫了一個熱修復框架JSPatch,通過JavaScript調用Objective-C的原生接口,從而動態植入代碼來替換舊代碼,以實現修複線上Bug。相對於Wax,JSPatch的接入成本較低,對項目影響非常小,不需要額外引入腳本(直接使用JSCore),因此它迅速成為iOS熱修復的熱門選擇。與此同時,國外的Rollout熱修平臺誕生,不同於JSPatch,Rollout提供的是簡易SDK接入方式,擁有後端管理頁面,目前並沒有開源。

移動APP原生動態化的追求遠遠不僅僅是線上Bug熱修復。

2014年,Facebook推出了React Native,大致的思路是,JavaScript開源庫React.js是實現Native的一種DSL,在運行態時候,通過下發的JS文件,Native代碼會解析UI渲染工作,而不是把UI渲染交與內置瀏覽器。它帶來的是Hybrid無法提供的完全的原生APP體驗,而又保留著Web迭代效率。同時,React Native也很好地適合跨平臺開發模式,不管Android還是iOS,各類UI都被統一封裝成可復用JS組件,APP開發會趨於簡單而快速地用JS搭積木,「Learn Once ,Write Anywhere」。

 

React Native這種實時於原生系統交互技術開啟了驅動原生APP時代,它完全地顛覆了蘋果或Google所引領的APP編程模式。

 

2015年,阿里巴巴可以說是站在巨人肩膀上,採用了類似設計思路,正式推出了Weex開源框架。不同於React Native,它基於JavaScript另外一個開源庫Vue.js實現實時原生交互。

 

移動APP動態化繼續深入發展,尤其是阿里巴巴基於對Android Dex分包原理的理解,借鑑了服務端OSGi規範而推出了Atlas容器化框架,更是把原生動態化技術推向高潮。

Altas的使命不再是簡單的熱修復,它是伴隨著阿里越來越多業務而導致客戶端體積快速增長而需要把客戶端化整為零、模塊自由組合等迫切需求前提下誕生的。後端的容器化設計思路被搬到移動平臺大舞臺。

移動「黑科技」遠還沒有停止下來的念頭。2017年1月,騰訊公司推出了微信小程序。筆者也花費了些時間對小程序運行機制進行了些許的剖析,簡而言之,小程序也是一種基於驅動原生表現形態,JS-Bridge作為其中的核心。作為集大成者,小程序野心更大,當然它所面臨的挑戰也更加大,很多非技術性挑戰。

技術規範迫在眉睫

任何事物的高速發展,帶來好處的同時也帶來了風險。魚龍混雜的「黑科技」帶來的最大危險是安全的隱患。

蘋果一貫作風是讓所有事情可控,iOS APP生態維護得還不錯,App Store上架審核機制功不可沒。當下很多「黑科技」都或多或少的觸碰到蘋果的原則,相信Google也遇到同樣的問題,整頓移動技術規範迫在眉睫。

事物的矛盾和對立轉化是永恆不變的規律,簡單粗暴的扼殺,帶來的後果就是另外一種對立「黑科技」的誕生。作為移動領域兩大幫主,蘋果和Google需要的是更加超前的布局,引領移動技術走向規範。

規範的很重要一步就是權限分明,蘋果和Google公司需要明確iOS和Android APP本身哪些東西是不能觸碰,哪些是可以任由開發者去驅動。回頭看看移動技術這些「黑科技」,JS-Bridge和Android Dex分包通常作為口子被充分地利用。作為發布者蘋果和Google,在這上面是否可以大有所為。作為開發者,能夠利用iOS或Android自身技術滿足當下需求,何樂不為!

寫在最後

移動開發領域正在深水區,當下移動技術「黑科技」比較混亂,我們通常關注的迭代周期與用戶體驗仍然是較活躍兩大話題。

 

筆者認為,一味地追隨「黑科技」與兩耳不聞窗外事是要不得的兩個極端。只顧自己一畝三分地已經不能成為創新時代的掌控者。盲目崇拜,拿來主義更容易成為「xx門」的受害者,很傻很天真。

擴展思路,了解背後原理,任何方案的接入,都要想好撤出方案。另外,提高代碼質量,重視代碼審計環節,熱修復的需求本不應該那麼迫切。

平和大度 探索追求!

 

歡迎打賞:

相關焦點

  • 滑鼠的前世今生
    滑鼠是我們生活中一種很常見的電腦輸入設備,相信各位小夥伴們對這個電子設備已經見怪不怪了,但是,小夥伴們有了解過滑鼠的歷史嗎(+_+)?
  • 前世看今生姻緣
    其實很多人都相信有前世今生的說法,都相信這輩子的相遇是因為上輩子的緣分,都相信自己這一生的情人,是上輩子修來的姻緣,而既然很多人都相信前世今生的說法,自然也希望知道自己前世今生的姻緣,那麼如何預知我們的前世今生呢?
  • 終端補貼的前世今生(中)【寧宇專欄-55】
    這篇文章說說中國移動與終端補貼有關的一些事兒。  在2G時代,中國移動不需要進行終端補貼:市場狀況良好,產業鏈完整而成熟,企業健康運轉,話音和簡訊等業務的發展,給企業帶來穩定的收入和增長。而隨著TD的到來,局面發生了質變。  當中國移動拿到TDS的3G牌照時,技術標準和通信設備製造領域還有不完善的地方,而在終端領域與成熟的WCDMA相比,更是差出好幾條街。
  • 探秘語音合成技術的前世今生
  • 飛盧12月19日都市首日收藏,《前世今生被曝光,我是面壁者羅輯》3300,《開局被外星人抓走,我前世曝光了》3100
    本期都市新書入庫共入庫90本,相比上期111本減少21本,約18.9%
  • 平衡石的前世今生
    很多人都好奇,哈拉雷平衡石公園的石頭
  • 催眠|帶你看清你的前世今生
    傑克原先曾在空軍服役,當時的他駕駛技術非常高超,駕機飛行以來從未出過任何紕漏。但他心裡卻老有一個揮之不去的念頭:「右側機翼會不會掉下來?整個飛機會不會因此而墜毀?」除此之外,他還經常性地無因無緣就大生嗔心。接受催眠療法後才發現,原來傑克的前世是二戰時期德國的一名空軍飛行員,在一次激烈的戰鬥中,他駕駛的飛機右翼陰差陽錯地被友軍炮火擊中,整個右翼完全斷裂,導致飛機直墮地面。
  • 能帶理論的「前世今生」
    為此,物理學家對晶體中的電子狀態做了重要的近似,使其變得簡潔可解。當然,這個近似做的,,並非一帆風順!!所以,科普來了~一、能帶理論的「前世」1900年之前,關於電導、熱導已有大量實驗和宏觀認識,對於其最初的認識就是由於導熱導電的物體一般是金屬,懷疑起作用的可能是電子,但對其微觀解釋未有上檯面的工作
  • 科技年輪 | 你的顯示器老了嗎?聊聊同步技術的前世今生
    科技發展迅速,產品日新月異,如今我們買顯示器的時候總是能看到什麼「G-Sync」、「FreeSync」,玩遊戲時也能看到遊戲設置裡有個什麼「垂直同步
  • 《轉世遇到你》——我竟然找到我的前世今生
    ,可前世今生這麼飄渺虛幻的理論實在讓人難以理解。基督教會學校倒是不多,很快我們鎖定了最後的目標,居然是享譽海內外的一所女中——貝滿女子學校!(整個探索過程絕不亞於《國家寶藏1》)由於貝滿女中是著名的學校,有很多舊檔案遺留了下來,我們由此引發了尋找自己前世照片的想法。不過這個從網上是很難找到的,得去檔案館查閱。於是,我們在2009年的夏天驅車來到了宣武區檔案館。
  • Serverless 的前世今生
    Serverless並沒有官方權威的定義,但可以肯定的是,一種解釋是它是構建和管理基於微服務架構的完整流程,允許在服務部署級別而不是伺服器部署級別來管理應用部署,你甚至可以管理某個具體功能或埠的部署,從而讓開發者快速開發軟體。
  • 印度ICC的前世今生:3. TOP公司大起底
    Wipro創立時是位於孟買的蔬菜及精煉油公司。1970s至1980s期間由創始人Mohamed Premji之子Azim Premji領導下開始轉向農業以外的新型商業機會並進軍信息技術領域。---Azim Premji特別感謝Hawin老師與嘉音美女為我們提供的諮詢!關注華人事業互助會,閱讀ICC系列報導:【獨家】什麼?你想讓ICC幫你遞交多份H1B申請?印度ICC的前世今生:1. 信息技術外包產業發展史印度ICC的前世今生:2.
  • 智能大曝光丨超聲波指紋識別技術的前世今生
    在2015世界移動通信大會(MWC 2015)上,Qualcomm Technologies正式推出移動行業首個基於超聲波技術的3D
  • 免費WiFi的前世、今生和未來
    今天,我們不妨聊一聊關於免費WiFi的前世、今生和未來,並由此把脈一下移動網際網路的發展趨勢。文/顧嘉 最近,關於城市免費WiFi的討論不絕於耳。一方面,智能終端的快速普及讓無線上網成為「剛需」,WiFi接入服務成為了公共場所是否「人性化」的基本標準;另一方面,大數據、雲計算、物聯網等新鮮概念充斥在各種報告、講話、文件裡,新一波科技建設浪潮正在席捲中國。
  • 前世回溯催眠——靈魂印痕對今生的影響
    我們知道今生成長中創傷事件的陰影,如果沒有進行轉化就會形成一個印痕,變為輸入潛意識的一些程序。比如你買了一臺電腦,在電腦裡下載了很多內容,有些是正面、積極的體驗;有些是負面、消極的體驗。如果你不懂如何清理,就必須找一個電腦方面的專家幫助你去清理。我們身上有幾處連接外界的輸入器官分別為:眼,耳,鼻,舌,身,意。
  • 藍牙技術的前世今生
    這篇文章,我們將帶你一起回顧藍牙 1.0 到 5.0 的技術變遷,從音頻傳輸、圖文傳輸、視頻傳輸,再到以低功耗為主打的物聯網傳輸。我們還將和你一起梳理,越來越廣闊的藍牙應用的場景。關於藍牙技術你所不知道的前世今生,都在這裡了。
  • 都說人有前世與今生,若是遇到這幾件事那就是你前世的記憶
    佛門講究輪迴,你可以這樣理解,昨天的我是今天的我的前世,明天的我就是今天的我的來生。佛教的輪迴:「六道輪迴」,其認為一切有生命的東西,如不尋求「解脫」,即永遠在「六道」 (天、人、阿修羅、畜生、餓鬼、地獄) 中生死相續,無有止息地循環。
  • 電線的前世今生
    電線的前世今生 發布時間:2016-08-17   來源:本站編輯   電,人們再熟悉不過,它對於人們的重要性不言而喻。
  • 人工智慧的前世今生
    這是一本讀懂人工智慧前世今生的書,一部氣勢恢宏的人工智慧發展史。《機器崛起》是《紐約時報》、《華爾街日報》、《新科學家》、《柯克斯書評》、《麻省理工科技評論》、《財富》等100多家媒體聯袂推薦的2016年度好書,入選2017年度激動人心的圖書。
  • 【方志四川•歷史文化】周安勇 ‖ 探秘滎經黑砂的前世今生(五)
    4月4日至9日,「四川省情網」及「方志四川」新媒體矩陣(微信公眾號、人民號、澎湃號、頭條號、搜狐號、企鵝號)分5部分推出了《探秘滎經黑砂的前世今生