Google新技術:Instant App全拆解(1)——初探

做者:Darkbug
原文標題:Google新技術:Instant App全拆解(1)——初探
原文連接:https://segmentfault.com/a/11...
首發地址:http://www.doncc.org
轉發請註明轉載地址,請尊重原創做者權益!html


《Google新技術:Instant App全拆解》系列預告:
第二篇:Google新技術:Instant App全拆解(2)——剖析java


本文開始,接下的幾篇文章內,我會從概念、技術等方面,將着重介紹Google發佈的最新Android Instant App技術,並描述如何製做屬於本身的Instant App。小程序

若有描述不正確的地方,請及時聯繫我,我將吸收意見並改正。segmentfault

1.Instant App是什麼

記得在2016年的Google大會上,Google大大就已經發布了有關Instant App的最新技術了。然而這款被人們寄予厚望的「黑科技」技術在發佈以後,並無像想象中推廣的很好,究其緣由我懷疑是由於當時發佈的時候,所開發的步驟過於繁瑣,纔不得不將這個技術的推廣拖延至今。微信小程序

咱們先來用下面的動圖回顧體驗下,Instant App的厲害之處:瀏覽器

從圖中咱們初步能夠看出,當操做者在點擊一段Buzzfeed的視頻連接時,會自動的加載這個連接所屬程序的代碼,而且很輕鬆的在這個「程序的APP內」體驗到這個連接視頻效果。微信

其實這就是Instant App,翻譯成中文能夠稱之爲瞬時程序加載,也能夠稱之爲即時應用。它出現的目的,就是爲了讓人們可以像點擊連接那麼簡單,節省掉安裝App的痛苦,最快速度、最少流量的消耗,讓用戶體驗到App級的用戶體驗。框架

事實上,Instant App的優勢不只如此,咱們一樣能夠在Google的瀏覽器內,搜索具有Instant App能力的App的名字,也會獲得相應的即時應用,一樣可以讓你體驗到App的交互效果。好比下面我想在wish購物App內,購買Valentino Rossi的周邊物(誰讓我是個羅西粉),只需在Google搜索欄裏,輸入「wish Rossi」,你就會看到有關在wish中的一些物品,而且會在內容描述處,看到一個「Instant」標識。也就是說,當你點擊這個連接後,你就能體驗到屬於wish應用的Instant App應用體驗。下面有個我錄製的微視頻,簡單的描述了下這個過程。網站

Instant App初體驗-youku編碼

怎麼樣,這個交互效果簡直是棒極了吧!

若是細心的朋友確定會發現,其實早在2015年,Google就已經推出了另一項技術:App Links。其用意是想當用戶點擊連接後,能快速連接並打開本地所屬應用,而無需通過用戶的二次贊成。這麼作的優勢是避免了用戶的艱難選擇,特別是對於那些選擇困難戶的童鞋來講。這些內容我會在後面文章着重介紹。

若是這麼說比較籠統,那麼你確定遇到過這樣情景,你的手機內除了瀏覽器這個內置App外,若是還安裝了相似UC瀏覽器、360瀏覽器、各類瀏覽器。。當你想點擊一個連接時,會在手機下方彈出一個對話框,提示你用什麼App來打開你的連接。這種讓你二次選擇的感受,着實讓人感受有點囉嗦。而App Links的出現,能讓你無需再選擇,直接選用你已經設定好的方式打開應用進行體驗。

說了這麼多額外的,我以爲其實Google就是爲Instant App的出現作了前期鋪墊。真是好大一盤棋啊!

2.Instant App現階段遇到的困難

從上面的內容,想必大夥已經知道一部分了吧。對於Instant App技術的使用,能夠分爲以下幾個方面來說:

  • xx上網(你懂的)
  • Google Service不能正常的推廣
  • 具備Google Service框架的手機

從這一點,我要格外說明的是,全部谷歌親兒子手機,都是天生具備Google Service框架的,誰讓他是親兒子。?特!還有一個是三星的s7 edge這款手機,自從升級到7.0系統後,就能讓咱們本身經過xx上網的方式,一樣體驗到Google Service框架。此次三星也算是開明瞭一把。這裏想下,s8是否是一樣也能夠,雖然我沒有s8。?

  • 完整應用必須提早安裝到Google Play上

若是想體驗到Instant App的交互效果,首先你要保證的是,你的完整應用程序,須要在Google Play上成功發佈。也就是說,要想將你的應用程序變爲Instant App所支持效果,須要進行必定的程序修改。有關如何修改,後續我會用文章着重描述。

  • 部署信息驗證文件的網站,需具備https方式訪問功能的網站。

這個對於通常小衆開發者來說,着實是讓人頭疼。索性我在實施的時候,乾脆將本身的虛擬網站,部署到GitHub上,這樣一來能模擬個人網站,不會把大量的時間花費在搭建網站上,又能解決掉SSL證書的問題。一箭雙鵰。

3.Instant App瞬時加載程序與微信小程序的對比

2016年的Google I/O大會,發佈了Instant App技術,而微信小程序公開內側的時間是同年9月21日。這其中是否有一些某種不言而喻的關係,我不得而知,我也不想去猜測。大家本身體會好了。

爲何我會拿小程序與Instant App技術相對比呢?很顯然,他們共同點都是號稱「不用安裝,就能體驗、使用」。對於程序的熱愛,我不得不拿來進行對比一番。我會從各個角度進行中肯的對比,不偏不向。

  • 從部署到手機角度講:

這一點簡直是小程序完勝,畢竟Google Service不能正常的引進大陸,這一點上小程序佔盡了天時地利。不知道是否是小龍哥看到了這個痛點。

小程序能夠利用微信的小程序功能,添加附近商家的小程序,也可進行搜索小程序;而Google的Instant App,想要使用此項技術,必需要保證你的完整App要在Google Play上有正式發佈,用官方的話來講,咱們要讓用戶體驗到無縫對接。這一點來看,只能說仁者見仁智者見智罷了。我的感受仍是Google作的更爲周到細緻,雖然在大陸沒什麼卵用。?

  • 從程序體積來說:

從這一點來說,Instant App的控制要比小程序要好。在Google官方要求裏,每一個Instant App程序最大不得超過4M的大小,一旦超過,必須從新劃分模塊,再縮減體積;而小程序來說,沒有一個明確的大小上線,若是業務簡單,你能夠控制在1M-2M的大小,若是業務複雜,包大小也能達到10M都不足爲奇。因此這一點對於用戶來說,用戶確定喜歡用最少的開銷,體驗到業務。咱們確定不但願大把的手機空間,浪費了交給一個程序,特別是對那些手機空間嚴重不足的用戶。我以爲這一點Instant App勝利。

  • 從存儲角度來說:

對於小程序,數據會存儲到手機的存取區域,而且每次加載小程序時,是加載本地存儲優先。Instant App則是將程序的部分代碼下載下來存儲到本地存儲,一樣在每次加載時,也會優先檢查本地存儲是否有代碼。從存儲機制來說,差異不太大。若是從底層實現的方式來看,小程序利用的是H5的存儲機制,Instant App利用的是常見的java存儲機制。我以爲從這一點來看,沒什麼比的必要,都還不錯。

  • 從頁面解析速度來說:

其實用戶關注的這一點是尤其重要。對於小程序而言,畢竟底層是用HTML的實現方式,而Instant App底層用的是java的實現方式。

在小程序的展示過程,首先利用微信小程序特有的編碼方式,轉換成HTML,再來渲染、解析、展示等操做;而Instant App不須要這麼麻煩,它天生就能夠用Android來編寫,而後經過下載這部分代碼到本地,使用Instant App時,顯然就是本地應用的用戶體驗,流暢度要比HTML頁面展示的方式順滑不少。這是Instant App能絕對勝出的一點。

綜合對比,Instant App從用戶體驗角度來看,要比小程序好不少,體驗起來讓用戶感受,有種「我並無安裝這個程序,就能體驗到和程序一樣的絲滑體驗」的感受。可是從可實施角度看(我指的是隻在大陸範圍內),Instant App天生就不如微信小程序,由於啥?你懂得。 -_-||

固然,喜不喜歡這個技術,作不作這個技術,由你來作決定。若是你喜歡這個技術,我假設你是能夠來克服這個不可實施的問題,來介紹後面的文章;若是您以爲不可實施,看到此爲止就能夠了,也沒有什麼必要日後看去浪費時間。

好了,今天就介紹到這,預告下下一篇文章,我會在技術層面上來着重介紹Instant App這項技術所用到的周邊技術。


《Google新技術:Instant App全拆解》系列預告:
第二篇:Google新技術:Instant App全拆解(2)——剖析

相關文章
相關標籤/搜索