QQ 中的 “轻应用”

发表者简介: 周蔚(arthaszhou), 腾讯专家工程师,即通产品部,平台开发组组长

导语

2015年,借着公众号“动态消息”的东风我们把沉寂多年的应用开发框架Ark(开发代号)移植到了全平台QQ中。基于新框架带来的能力,我们可以将服务以页卡的形式嵌入到消息流中,使用户在多个平台下获得一致的产品体验。QQ中因此诞生了新形态的“轻应用”。此后我们持续在完善Ark框架的应用开发能力。期望基于QQ构建一个开放的场景化“轻应用”平台,并探索未来新的互联网服务形式。

“轻应用”展示:

“轻应用”暂没有正式的名称。团队内部基于习惯把这种内嵌在QQ中的应用称为“轻应用”,蕴含应用轻小,使用轻便之意。有时候我们也把“轻应用”称为“轻App”或“Ark应用”。和QQ中承载的大量全屏体验的Web应用不同,“轻应用”更多是以碎片化的方式内嵌在QQ中。

支撑“轻应用”的Ark(开发代号)是我们自研的框架。基于使用脚本语言开发带来的优势,“轻应用”可以像Web应用一样动态更新,无需随QQ版本发布。且具备多平台(iOS、Android、Windows)体验一致性,一次开发,多平台运行(Write Once, Run Anywhere)。

“轻应用”的技术特点:

动态更新

动态更新是“轻应用”最基本的技术能力。“轻应用”既可基于app包的形式整体更新,也可基于视图局部更新。虽然以Web技术为代表的方案也可以使应用获得动态运营能力,但主要应用在全屏场景下,而“轻应用”将这一能力拓展到了消息流等新的嵌入式场景。

QQ运动基于“轻应用”提供的动态运营能力无需发布新版本QQ即可切换模版风格

轻量

对比其他技术方案(Web、React Native等),“轻应用”在加载速度和内存占用方面有明显优势。所以“轻应用”可以在不影响基础体验的情况下内嵌在消息流中使用,同时打开数十个甚至上百个视图实例。

QQ运动打开前后内存变化(iPhone 4)

为了达成上述轻量化的目标,我们在技术方案选型和实现上都向“轻”的方向有所倾斜。首先我们选择了Lua作为第一个支持的开发语言。Lua的 VM非常小,充分保证了初始化时间和内存开销的可控。而其基于寄存器的VM实现也使得脚本程序在性能方面表现优异。另外在UI部分,Ark中没有提供控件库,只是提供构建UI的原子能力。开发者可以在上层通过模板装配出可复用的UI(控件)。这使Ark核心的UI部分非常简约。而在工程实现部分,我们在开发Ark时尽可能的复用了各个操作系统提供的差异化的源生能力。虽然这导致了框架的工程实现部分会更繁琐(如增加一些中间层的设计,同样的基础模块实现多份等),但在体积控制上具备明显的优势。

可交互

消息流中的图文消息主要用于呈现静态的文字和图片内容。集成Ark后,消息内容具备了更丰富的互动能力。从而使消息流从服务入口的容器升级为了服务本身的容器,嵌入在消息里中的服务可以更短路径被用户使用。

基于“轻应用”实现的时钟/计算器/小游戏,可直接在消息流中完成交互

为了实现上述能力升级,Ark提供了丰富的基础能力API供开发者使用。同时也将部分QQ的平台能力进行了封装,使“轻应用”可以更好的融入QQ中。

界面

文本、图像、画布、输入框、布局器、控制器、模板

网络

Http、WebSocket、SSO

多媒体

音频播放、视频播放、动图(GIF、APNG)

设备

罗盘、加速度、位置

QQ

登录(OpenID)、获取用户信息、分享、打开网页&应用、扫码

随着应用开发能力的逐步完善,部分团队已经开始尝试基于Ark开发更复杂的全屏“轻应用”。

全屏方式打开的腾讯地图“轻应用”

“轻应用”升级场景化应用:

移动互联网时代,手机携带的便利性促使了场景化应用的出现和普及。无处不在的二维码以及诸多基于微信公众号的服务都很好的诠释了场景化应用的价值。基于二维码打开的Web应用(小程序)用户在吃饭、唱KTV、看电影等诸多场景中都能非常方便的用上相关的互联网服务。场景化应用的普及进一步促进了互联网融入用户的现实生活,极大提升了用户获取使用服务的效率。基于场景化应用的价值和潜力,我们期望能基于“轻应用”构建场景化应用的平台来充分发挥它的价值。但需要注意到,QQ中并不存在如微信公众号一样强大的开放生态,同时用户看到二维码也不会条件反射般的选择QQ扫码。所以关于QQ中如何建设场景化应用平台需要我们选择和微信不同的切入点和发展思路。

我们当前选择的产品方向是根据用户行为(狭义来说就是对话语义)和用户属性识别场景,匹配场景化的服务嵌入消息流使用。作出这种选择主要基于两方面因素:首先是对用户的价值。消息流是人与人沟通的核心载体。如果服务能自然的融合到消息流中,所有以沟通为起点的服务都能最短路径获取和使用。其次是技术实现上的考虑。消息流中的对话内容很多时候也正是当前用户所处场景相关的语言表达,有助于平台识别用户所处场景。

QQ中现有的场景化应用主要通过两种被动方式触发:

  • 识别用户输入内容触发应用入口,点击后在键盘区展示。
  • 识别聊天内容在消息流中插入应用入口,点击后在消息流中展示。

地图

音乐、自选股、动漫、天气

基于被动方式场景作为切入点有两个原因:一是客观上现有的语义分析技术能力不足(出于对用户隐私的尊重无法使用更成熟的服务器方案,手机设备的资源有限使技术选择有较大局限性),被动方式触发对召回率的要求没有主动搜索那么高。二是主观上策略选择,基于消息流内容的被动触发可以为服务提供方带来增量的流量。为了获得被动触发的机会,需要“轻应用”主动的标注所具备的能力。而主动标注再结合模式识别、自然语言理解等技术手段,用户行为、用户画像、服务三者均转化为可计算的数据。基于计算使用户行为动态关联到个性化的服务,这正是我们建设场景化“轻应用”平台的基础。

注:导流量是把双刃剑,过度的导流必然会伤害用户体验。所以这需要平台团队有更强的克制力。被动场景的“轻应用”接入需要尽量规避带有推荐广告性质的服务,更多局限在和场景有直接关联偏工具属性的服务上。

除了用户行为被动触发“轻应用”所需的应用能力标注以外,我们也期望所有“轻应用”的输出都能是统一的标准化语义化的元数据。结合知识图谱,所有的“轻应用”能聚合成一个有机的整体,使用户从任意场景切入使用“轻应用”,都能伴随着使用“轻应用”的行为自然的切换到下一个场景继续使用其他“轻应用”。

场景化应用并不局限于单个用户到服务的单向连接,基于IM平台自身的分享能力,可以实现多人和服务的连接关系。群投票、聚餐时点菜、AA买单、KTV点歌等等都是生活中经常发生的多人共同使用服务场景。而基于消息流内嵌“轻应用”来实现,沟通、服务交互、信息反馈都直接在消息流中完成,使用服务的整体体验更流畅更直观。

基于“轻应用”实现的游戏组队,消息流中可实时更新组队状态和组队人数

“轻应用”的未来:

数年前,使用互联网还是局限在特定地点(家、公司、网吧)使用特定设备(PC)上网。在移动互联网时代智能手机的普及打破了时空的桎梏,使人们可以随时随地的使用互联网,淡化了“上网”概念。未来随着物联网等基础设施的完善,穿戴式设备(AR眼镜)、汽车、家用电器(电视、冰箱)、家居设备等都会成为接入互联网的节点。现实世界和虚拟网络世界之间的边界会逐渐模糊。而场景化应用正是促进现实生活和互联网服务融合的重要桥梁。

基于以上判断,“轻应用”未来发展的大方向也可以基本确定。首先在表现层面,我们期望基于“轻应用”能构建标准化的容器,可在手机之外的其他设备中展示,帮助服务以碎片化的方式更方便的嵌入到各种场景中使用。其次是数据层面,我们期望能把“轻应用”标准化语义化的元数据标注拓展到设备层面,使设备能力融合到“轻应用”的服务网络中,构成完整的服务闭环提供给用户使用。

除此之外,和AI技术的结合同样也是“轻应用”未来需要努力的方向。AI可以充当现实世界和互联网服务之间的翻译,提升用户使用服务的效率。同时AI也可以承担数据过滤器的角色,解决信息过载问题。对场景化“轻应用”平台来说,AI技术的价值具体可以体现在以下几个方面:

  1. 挖掘更多数据生成精确的场景描述,给用户更个性化的服务界面。
  2. 改善人机交互方式,使用户可以更高效的使用服务。
  3. 辅助用户在使用服务时更高效的做决策。

“连接一切”是公司未来发展的大战略。“轻应用”的发展方向和这个大战略也是一致的。我们期望 “轻应用”在未来能更好的扮演连接器的角色,连接用户和服务。能让用户拥有更加便捷高效的生活。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯社交用户体验设计

面对大型项目,设计师该做些什么

1133
来自专栏云计算D1net

你迁移到了云,然后网络瘫痪了...然后呢?

或早或晚,大规模连接故障总有一天会降临到我们身上。在这种情况下,您所在的企业是否有能力继续保持运作,抑或是只能在互联网服务中断时让每位员工提前下班? ? 也许...

2758
来自专栏互联网数据官iCDO

移动端优化案例分享——有谁不想获得1.3万美金的额外收益呢?

译者:熊兔兔 本文长度为2969字,预估阅读时间5分钟。 鉴于目前市场营销者们面临的问题,已经不是是否要在移动领域进行投资了,而是如何才能拓展相关投资,专栏作家...

2815
来自专栏CSDN技术头条

2017年SaaS、Relational和大数据连接趋势

译者注:作者揭示了近些年来出现了越来越多的数据源,如何将这些数据源进行连接是一个比较困扰的话题,本文就这个话题,根据调查的结果展开了描述。以下为译文。 第四届年...

19110
来自专栏xingoo, 一个梦想做发明家的程序员

InfoQ —— 腾讯游戏大数据服务场景与应用

简介 周东祥,本人从2010年毕业进入腾讯互动娱乐部门工作,一直致力在腾讯游戏运营开发工作。先后负责SAP业务受理系统,盗号自助系统,元数据系统以及近2年在腾讯...

2806
来自专栏云计算D1net

针对云安全性如何使用可视化技术

我曾经阐述了这样一个理念,即云计算并不仅仅是由商业实体所提供的服务的一个集合。与之相反,从安全性的角度来看,云计算是一个单一的可互操作性的系统,它包括了专为跨多...

3224
来自专栏杨建荣的学习笔记

吐槽一些技术想法和事情(r7笔记第43天)

最近其实已经琢磨了不少的事情,有时候恨不得是十分钟干九件事情,但是我还是有些不满意,因为我似乎很多事情没有按照计划来做。所以我要吐槽一下。 先来吐槽软文 最近在...

3469
来自专栏喔家ArchiSelf

老曹眼中的CRM 图解

CRM 是企业“以客户为中心”价值观的核心体现之一, 各种2B的应用都无可避免,而企业应用具有一定的复杂性,理解CRM系统也不是轻而易举的事情。在老码农的眼中,...

844
来自专栏CDA数据分析师

数据处理的新方式:云计算

【摘要】  云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。  云计算是继1980年代大型计算机到客户...

1846
来自专栏葡萄城控件技术团队

人力资源管理系统中如何应用报表分析

无论大中小型企业都会有自己的人力资源信息系统,对当前企业所有人员的分层管理,管理人员各方面能力及信息分析,人力资源管理系统是一个体系,展开后有很多模组,如:任用...

701

扫码关注云+社区