欢迎访问电脑商情在线! 请免费注册
分享到





位置:首页 > 智能硬件  > 业界资讯

探密小米直达服务背后的故事

作者: CBINEWS编辑   责任编辑:李丽 2017-09-12 19:21:12
来源:电脑商情网关键字:小米直达服务,原生渲染,渲染引擎,小米MIUI系统

既想像PC时代使用Web一样体验超流畅,又希望它能承载任何服务还让你感觉不到卡顿和延迟,这样的要求在移动互联网时代实现起来真的很难。在小米MIUI系统框架负责人董红光看来,这一判断完全有足够的依据。

从Web到APP:这些体验都不够

在他看来,目前移动端的应用服务分发基本上是两个承载形态,分别是APP和Web。PC时代绝大部分服务都是浏览器承载,在浏览器中打开搜索引擎、从搜索引擎中搜索关键字、然后跳到服务页面,这个过程中间可能还会链接到第三个服务,但是无论如何跳转,整个过程是非常流畅的,中间没有任何断档,不需要安装软件、也不需要跳出。

但是这样的体验放到应用 端就不那么容易实现了。首先,移动端所承载的服务远比PC端要复杂得多,比如拍照、定位、蓝牙、传感器,这些应用 在网页端没有相应的API可供调用,让网页去承载移动端的这些服务,服务势必不完整;

另外一个问题就是卡顿的问题了,移动端CPU性能要比PC端差,这就会导致计算能力不足,外加移动端有很多复杂的应用、前端写法又过于灵活,加之浏览器背负的历史包袱,导致移动端的Web应用很容易造成卡顿、慢、占内存等情况。以既有APP又有H5的很多应用为例,绝大多数情况下H5远远达不到APP的体验。

此外还有一个问题,就是网页端没法做留存。今天某个用户看到一个好的服务、或者一个好的网页,如果是APP的话很轻松可以把应用保存到桌面图标,但是网页却没有这个技术能力可以实现此功能。

当然或许很多人会说那就用APP啦,董红光认为APP也有很多问题:想想我们每一个人手机上真正下载、安装的APP能有多少?你会轻易下载一个动辄几十兆甚至上百兆的APP吗?这几十兆甚至上百兆的APP没法像网页一样实现一次性分发,要想使用一个APP,必须先把这个APP完整下载下来。

另外很关键的问题在于, APP之间很难做跳转,A应用跳到B应用,一般是打开B应用的H5页面,应用之间的割裂很严重,无法给用户带来顺畅体验;而孤岛问题的另外一个呈现形式,在于无法进行索引服务,在应用间进行搜索目前基本上是无法实现的事情。

小米直达服务:技术催生下的必然而为之

针对以上问题 ,其实多家公司推出了解决方案,比如Google的PWA、Facebook的React Native、腾讯的微信小程序,还包括阿里的蚂蚁应用、百度的轻应用,而小米也推出了直达服务。

小米直达服务开发示意图

对于小米直达服务的推出,在小米开发者生态业务负责人李晓璐看来,这是顺应技术趋势所在的必然而为之:PC时代的应用是软件+网页形式;移动互联网上半场是原生应用+Web应用形式;移动互联网下半场急需解决原生应用以及Web应用的各自短板问题——因此混合框架应运而生。对此小米给其直达服务的定义是:应用“即点即用”、无需下载,“秒开”立即使用各类应用服务。

对此小米比较有信心的地方在于,小米直达服务的核心在于它是一个操作系统,操作系统仍是用户使用手机的第一入口,在入口层贴近用户,用户的体验才会最好。李晓璐透露了一个数据:小米手机上95%的应用下载来自小米的应用商店。这说明小米的应用分发已经是绝大部分用户使用小米手机时的习惯。如果说应用商店的下一代有新的服务分发形态,那么操作系统仍然有很大优势去做新的生态的探索和新的生态的培养。

对此董红光也进行了补充:小米希望真正做到类似于当前PC浏览器的顺畅体验。具体到直达服务技术本身,就不得不提原生渲染技术了。直达服务实际上是运行在一个由直达服务的核心引擎管理的安卓进程上,使用安卓原生渲染,所以从开放能力、性能、内存、权限控制和管理方面的设计理念等同于原生安卓 。

除了原生渲染引擎之外,小米直达服务也支持在没有原生渲染条件之下,直接渲染到浏览器。在此基础之上,小米提供了封装的大量常用组件,也提供了很多高级语义标签,相当于原生封装,不需要开发者自己单独开发——Native版本一份、 Web版本一份。

此外,小米直达服务还提供了一个调节 模式,把很多API暴露给前端,在此基础上提供了蓝牙、传感器等系统功能;另外还暴露了很多服务能力,比如账号、推送、支付等等。在此基础之上,提供一套JIS 开发框架,除标签、接口能力逐渐暴露以外,还提供APP开发需要的页面生命周期管理、页面之间路由跳转等功能。整个核心写法是模板+数据绑定的写法,也是目前前端比较流行的一种写法,所谓的MIUI 模式,这套框架相当于提供了MIUI 框架的实现。这一整套东西就是运行时环境,运行时环境之外,因为要支持多个应用一起跑,要有沙盒的管理,保证应用之间数据、运行层面的安全。

小米直达服务运行时架构图

发力开发者侧:小米要构建更成熟生态

这里依旧呈现一组数据,据李晓璐介绍:小米推送现在做到月活8.4亿,也就是说绝大部分推送都是通过小米进行推送的,而且有3/4体量来自非小米上,比如iOS以及其他安卓机型,开发者也达到1.5万家左右。小米推送是小米开发者生态的最直接体现,以上数字说明小米已经拥有相对比较成熟的开发者服务。而小米直达服务,势必在开发者侧发力,构建更为成熟的开发者生态。

对于开发者来说,Native形态遇到的最大瓶颈就是流量成本获取太高,用户从应用商店下载的APP,激活率只有50% 。而小米直达服务这样的新型应用形态,使得一个应用不需要下载,点了之后就是激活,对开发者来说等于是100%激活率。

另外,小米直达服务还兼容了H5形态,传统H5可以跳转到直达服务上,把过去H5无法承载的滑动流畅度、页面切换、添加到购物车等体验,在直达服务上实现提升。对于原先H5开发者来说,可以无缝地将比较弱的H5功能转化成类似于Native体验的全新服务形态,提升用户转化率。

目前小米直达服务还处于1.0版本阶段,邀请开发者进行内测。从目前的反馈来说,开发者提出了很多改进意见。董红光介绍,之前小米直达服务的开发工具相对比较简陋,开发者也提出了一些开发工具层面的需求,这方面小米会进行补足;另外内测毕竟是一个小体量的承载,未来伴随用户的增多,需要在性能优化上下功夫。

小米直达服务平台架构图

对于小米来说,还有一个挑战来自于原生渲染功能,对于开发者来说,相当于在浏览器之外重写一个类似浏览器的东西,为了满足前端开发者的需求,需要在浏览器侧补充几十年沉淀下来功能,这就需要产品的持续迭代。

从内测所呈现的产品稳定性、流畅程度来看,董红光举了一个例子:虽然APP的复杂程度不一样,但是平均来看,60帧是衡量流畅度的重要体现,目前内测上线的应用绝大多数能达到60帧。另外从内存占用来看,通过直达服务直接进行原生体验,只需要几十兆甚至十几兆,内存占用就可以启动整个应用。

面向开发这层,小米直达服务会做很多的技术储备,比如“一次开发多端运行”功能,这件事情对于开发者来说会非常有吸引力,一次开发,就可以在安卓端、直达服务平台端、浏览器端、iOS端都能运行。

做生态而非做产品 机会大挑战更大

如果从公司战略层来看待小米直达服务,可以发现这件事情不仅仅是技术驱动这么简单。小米直达服务做的是生态,既影响小米硬件、电商 、互联网三大业务形态,也影响用户侧、开发者侧、合作伙伴侧整个产业链条。

从公司角度来看,李晓璐表示,小米直达服务牵涉到MIUI的下一步,在将内容提供给用户的方式上,如何在操作系统层面进行重构;另外对于小米智能硬件来说,是否可以把这样的终端与直达服务的业务场景进行融合 。

而作为一个生态,更需要培养生态链条上各方的美誉度、忠诚度,如何让开发者和用户对小米直达服务满意,这并非把产品功能做好就够了。

结束语

这次的采访,是李晓璐和董红光共同接受InfoQ的访谈,两个人背后是两个团队在小米直达服务上的协作和配合。李晓璐负责的是生态建设、拓展团队,而董红光负责的是执行引擎和框架开发团队,两个团队加起来有40多人,精诚合作、优势互补。这一团队建制也从侧面反映小米直达服务对于小米的重要程度,以及机遇和挑战之大。由小米直达服务,我们看到了小米在生态建设上的野心和决心。


相关新闻:
网友评论(0) 评论仅代表网友个人观点,不代表CBINews观点。
CBINews网友您好,欢迎发表评论:(注册 后发表评论,可就本文发起辩论,将会获得更多关注)
 CBINews网友  注册邮箱:  

CBI 友情链接:

腾讯科技 |  凤凰科技 |  商业伙伴 |  移动信息化 |  企业网 |  中国软件网 |  CIO时代网 |  更多>>

CBI集团其它网站:

电脑商情在线 | 存储伙伴 | 服务器伙伴 | 中小企业IT网

CBI 地方分站:

上海 |  广州 |  成都 |  西安 |  沈阳 |  武汉 |  南京 |  重庆 |  长沙 |  济南 |  太原 |  合肥 |  长春  |  杭州 |  昆明 |  南宁 |  哈尔滨 |  兰州 |  乌鲁木齐 |  福州 |  郑州 |  贵州

整合营销 |  CBINews刊例 |  《电脑商情报》刊例 |  联系方式 |  版权声明 |  友情链接

内容版权所有:电脑商情在线 北京米迪亚广告有限公司

地址:北京市海淀区中关村南大街28号6层 联系电话:(010)62178877-218

商务、内容合作QQ:15528356 客服电话:13699291170

电脑商情信息服务集团 成都华好网景科技有限公司

ICP证:川B2-20070068-5 川预审H8VZ-RBP6-X228-T60Z号 北京市公安局海淀分局备案编号:1101083710