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

9

作者:Darkbug
原文标题:Google新技术:Instant App全拆解(1)——初探
原文链接:https://segmentfault.com/a/11...
首发地址:http://www.doncc.org
转发请注明转载地址,请尊重原创作者权益!


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


本文开始,接下的几篇文章内,我会从概念、技术等方面,将着重介绍Google发布的最新Android Instant App技术,并描述如何制作属于自己的Instant App。

如有描述不正确的地方,请及时联系我,我将吸取意见并改正。

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)——剖析


你可能感兴趣的

疯狂的技术宅 · 2017年08月29日

可惜国内不能用,郁闷了

+1 回复

2

相信有一天总会能用的。你要相信... -_-||

darkbug 作者 · 2017年08月29日
imknown · 2017年08月29日

阻碍原因 我觉得是因为 Android M+ ONLY...

回复

3

嗯,确实也是其一,官方已经告诉了咱们,需要在Android L版本及以后的版本才能正常运行。也许还会有其他咱们不知道的原因呢?

darkbug 作者 · 2017年08月29日
0

@darkbug L 不可以. M N O 可以.

imknown · 2017年08月29日
Miracle_ · 3月14日

小程序开发完了iOS,Android双适配。Instant app软用。
我是程序员我就不去适配它!

回复

0

但愿小程序的生态能继续好下去?

darkbug 作者 · 3月29日
载入中...