https://blog.csdn.net/vic6329063/article/details/81479175
【简介】
2016年的Google I/O大会上,Instant App(即时应用)作为Android Nougat的功能之一进行展示。
其有以下两个特点:
1、免安装:Instant App能有帮助节省手机端的存储空间,用户不再需要进行安装之后再进行管理。
2、免费试玩:在尝试下载之前消费者并不需要为应用付款,从而方便开发者邀请用户测试该应用。
具体表现形式为
——当你在google play上打开一个应用的界面,你可以选择先试玩其Instant App,而后再确定要不要下载应用。
【该技术的原理是啥?】
——由于谷歌一致没有公布该功能的代码,所以,从2016年开始,大家一直在猜测。
1、猜测一:web应用。
最开始的一段时间,普遍认为其为H5应用。原因为:google play上打开一个应用的界面后,点击试玩其Instant App时,打开了一个网页链接。
2、猜测二:动态加载技术。
同时,有一部分人认为其为动态加载技术。原因为:其特点中因为提到免安装。由于“免安装”这个做为动态加载技术的专有名词,让大家觉得其为动态加载技术。
后续进展如下:
(1)安卓官方解释Instant App为:免安装原生应用。
(2)相关发言人解释道:对于开发者来说,要增加Instant App功能,不需要再单独开发一款Instant App应用,原先使用的API、源代码都是一样的,根据具体应用的不同,增加Instant App功能总体上并不需要花费额外的开发资源,最快的在一天之内便能完成。
(3)美国时间 2017 年 1 月 24 日,Google 宣布 Android Instant Apps 正式上线,并对一小部分用户开放测试,公布了正式开发文档。
由以上三个事件,得出以下关键信息:
1、免安装原生应用。
——原生应用,即:非H5。
2、原先使用的API、源代码
——不可能转成web语言再运行。
3、Instant Apps将应用下载大小限制为4M
——需要下载的免安装技术,基本可以定论为动态加载。h5的话,完全没必要,下载到本地后再加载;读本地h5,对性能没有太多提高。
4、开发时的一些规范:Activity 必须相对独立、没有自定义的后台服务、不能有自定义的 content providers、不能使用NDK、不能使用反射。
——这些都是动态加载技术,插件开发的一些常用规范。
5、只有Google Play上的应用才支持Instant Apps
——基本可以确定Google Play就是动态加载技术的宿主,而Instant Apps则是一个个插件。
至此,我们可以基本确定Instant App的原理为动态加载技术。
【定论】
时至今日,安卓的最新版本的源码,依旧没有公开Instant Apps相关源码。
但是我们可以给出定论:在google play上才能使用的Instant Apps,是以Google Play为宿主,Instant Apps为插件的动态加载技术。
Google Instant Apps VS 微信小程序:
https://blog.csdn.net/googdev/article/details/76146658
什么是 Android Instant Apps?
首先先给大家普及下 Instant Apps 的概念,这个我在以前的文章有说过,这里姑且再说一下吧。Instant Apps 是 16 年的 IO 大会上被提出来, 它的概念是这样的:你使用的是 Android 手机,朋友给你发了一个链接,这个链接是一个支持 Instant Apps 特性的应用,你点击该链接,将直接进入该应用,无须安装,之后就可以进行任何关于该应用的操作。
它的加载速度很快,它的加载方式会让你以为你在打开一个移动网页,然而它确是 Android 原生应用。
它的使用场景是,想想你的手机,是不是装了一大堆很少会用到的 App,无端的占用你很多内存与存储空间,但是呢,因为偶尔会用到,所以舍不得删。但是有了 Instant Apps 就不一样了,你以后需要什么 App,直接一个链接发过来,无须下载,无须安装,直接就打开使用了,而如果后面你觉得 App 的使用很频繁,你再考虑安装该 App。太酷炫了有没有?终于解放了手机存储空间,也不用忍受下载、安装的过程,甚至可以解决国内众多 App 后台的无良服务问题,简直不要太酷炫。
简单点来说,Instant Apps 就是免安装的应用,你可以把你的 App 切割成一个个的模块,每一个模块都可以独立成为一个免安装的应用,用户可以根据他自己的需要去免安装体验不同的功能。
其实听起来 Instant Apps 有点像微信的小程序,只不过 Instant Apps 是基于 Android 操作系统的,微信小程序是基于微信 App 生态的,但本质上还是不一样的,Instant Apps 本质上还是原生 App,只不过允许你在下载安装之前,先体验下 App 部分模块的功能,觉得不错,适合你,那么你可以再下载安装,而微信小程序本质上不是原生应用,他是基于一种类似 React Native 的框架来达到原生的体验,而且只能在微信内部运行。
所以,毫无疑问,Instant Apps 体验更好,功能更强大,可以独立运行在手机上,而微信小程序没法独立运行,是基于微信生态下的应用,而且技术上也有一些限制。
Instant Apps 是原生 App 的扩展,如今 App 越来越爆炸,用户安装 App 门槛也越来越高,Instant Apps 提供了一种方式让你的 App 第一时间接触用户,极大的降低了用户使用你产品的成本,不管你是分享链接也好,还是在搜索引擎上搜索也好,都可以第一时间直达 App,它非常充满想象力,你的好友分享一个好玩的东西给你,或是分享一个商品链接给你,你可以第一时间体验或者购买,再也不用绕一圈子了,中间环节极大减少,做产品的都知道,你的产品的中间环节越少,转化率越高,尤其对一些电商 App 来说,这至关重要,比如国外的知名导购应用 Jet,在开发 Instant Apps 之后,业务转化率提升了 27%,这是一个非常大的提升,然而却是很小的投入。
所以,从这个角度来说,我觉得 Instant Apps 未来的想象空间很大,不管是产品还是营销、推广都会衍生出更多创新性的玩法。但是 Instant Apps 有一些限制,Instant Apps 只支持 Android 平台,iOS 不支持,这是一个问题,不过考虑到 Android 市场份额目前很大,即使不支持 iOS,也有很大潜力,不过最大的问题是,Instant Apps 深度链接的识别需要依赖 Google Play,然而众所周知,国内访问不了 Google Play,这个就成为最大的阻碍了,这也是为什么国外有很多公司已经开发了 Instant Apps,而且有些效果还非常不错,但是国内 Google Play 不回归,那 Instant Apps 对国内开发者来说,只是一个概念而已。
如果你是面向海外用户的产品,那么建议可以开始了解开发 Instant Apps,只需要下载 Android Studio 3.0 最新预览版和 Android Instant Apps SDK,然后 Android Studio 将会提供工具来把您的应用加以模块化,应用开发完成后,Play Console 可以帮助你分发应用,只需将 Instant App 的 APK 与安装版本的 APK 一起上传即可。
下面我们再说说微信小程序,小程序在刚推出时候的疯狂之后,由于张小龙所谓的「克制」,很多开发者发现小程序根本对自家产品与业务没有任何帮助,然后逐渐的被人遗忘,再之后,小龙哥终于放下自己所谓「克制」的身段,开始逐渐开放更多的权限与功能,甚至有一段时间每天炸出一条消息,小程序这才重新走进大家的视野,然后在经历过这么一段狂轰滥炸之后,小程序真的改变了大家的使用习惯了么?
我不知道大家平时有使用那些小程序,对我而言,我自己唯一在用的小程序是「公众号数据助手」,主要还是因为官方没有推出 App,不然我肯定要使用 App,因为这是我的刚需。
我也观察了身边的人,基本上还在用的小程序可能是一些共享单车的小程序,因为实在懒得下一个 App 了,用的时候才会想到,而且也没有什么复杂的功能,就是定位、扫码、支付就行了,不用的时候,再也不会想起它。
所以,小程序有用么?当然有用,但是我觉得它就是一个连接线下的工具,线下一些特殊场景真的很方便,而且也真的是用完即走,但是它无法取代 App,一旦这个需求是刚需之后,大部分人会优先选择下载一个功能更强大、使用更方便的 App 的。可惜的是,在经历过微信一波对小程序狂轰滥炸的推广之后,很少有一些线下场景的创新,感觉被炸过之后,各大公众号都绑定小程序了,更多的人都知道小程序了,数据也肯定更好看了,但是然后呢?大家试用之后,仿佛还是原来的样子,没有什么大的改变,但是要知道这是微信投入了巨大资源去做的一件事啊。
所以,小程序不会取代 App,未来人们的使用时间会逐渐的被一些头部 App 瓜分,但是这些头部 App 大家无法离开,而小程序,只是我们一些特殊场景的工具补充而已,尤其是线下场景,我们不会主动想起,需要的时候才会用,用完即走。