最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

Android Instant Apps(安卓即时应用)实现原理与APP模块化

Android 天狐 7792浏览 0评论

Instant Apps 在不安装 App 的情况下使用 App

GoogleI/O大会上,提出了Instant App(即时应用) 的概念,所谓Instant App,即用户在无需安装相应APP的情况下,也能够体验到该APP的具体功能,当你在 Android 系统中的某一个 App 中点击一个网址链接的时候,如果你没有安装那个 App,你也能很快地打开这个 App 的「简洁版」,类似于一种Mini版的App,既让用户不用进行下载,也让用户获得与APP类似的使用体验,可谓“两全其美”。目前“Instant Apps”仅支持比较简单而基础的应用 “Instant Apps”将应用下载大小限制为最高4MB,并向下兼容到安卓4.1操作系统

并且谷歌产品管理总监迈克希利斯基(Michael Siliski)称,对于开发者来说,要增加Instant App功能,不需要再单独开发一款Instant App应用,原先使用的API、源代码都是一样的,根据具体应用的不同,增加Instant App功能总体上并不需要花费额外的开发资源,最快的在一天之内便能完成。

运行原理猜测

"原先使用的API、源代码"

不可能转成web语言在运行吧?多此一举啊?即使转成web需要webview支持原生api吧?即使转成web也夸不了平台啊?那还转什么?

"Instant Apps" 将应用下载大小限制为最高4MB

每个独立应用限制4m,说明还得下载,下载的目的是说明?

"需要下载"

如果是web,下载下来浏览器再访问?为嘛不直接访问?下载的是web的资源?样式?

猜测

实现原理即把程序分"模块"运行,问题是那些依赖的包和类怎么办..如果每个模块耦合很高..应该怎么处理,所以谷歌提到了适配,适配需要做什么呢?我觉得适配是去配置划分哪些页面是一个模块,哪些模块依赖其他模块,模块跳入其他模块放不放行

根据谷歌的演示视频,看似浏览器那个东西其实就是类似的"沙盒" 应该就是Google Play, 沙盒下载模块的源码进行运行,如果链接到其他模块,根据开发者配置进行再下载,或者无需响应,关闭"沙盒"之后程序还有下载的资源都会清空或者进行其他操作为了更好的体验

APP模块化

现在移动端流行 模块化的概念, 也是一个趋势, 每一个模块几乎可以单独调用,每个模块专注做好自己的事情,逻辑分工清洗明确,控制了程序的复杂度,各个模块耦合度低

就我自己而言,经历过几个项目,多家公司共同开发一个app,每家公司负责不同的大模块,模块又细分成小模块, 每个公司的大模块都可以在自己的ios工程中运行,只不过跳转其他公司功能的时候,要包含他们的生产出来的静态库,framework,bundld文件,所有模块放在一起构成了整个app,谷歌的Android Instant Apps本人理解其实就是这个思想

与开发者现在实现的不同是, 谷歌也是"模块化",化整为零,但是是系统级别的进行模块化打包,编译到运行,不用下载所有模块的集合即apk,安卓开发者进行业务层级的模块化配置,需要时直接把开发者指定的模块进行下载编译运行,如果猜想正确,那么iOS实现整个功能也是非常容易的事情!

 

 

转载请注明:天狐博客 » Android Instant Apps(安卓即时应用)实现原理与APP模块化

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址