一.什么是快应用
1.快应用是基于手机硬件平台的新型应用形态;
2.标准是由主流手机厂商组成的快应用联盟联合制定;
二.快应用的特点
快应用使用前端技术栈开发,运行效率和开发效率达到了很好的平衡,同时很多前端代码资源可以直接复用。快应用的开发模式贴近前端主流的思想,采用了模板加数据绑定的MVVM模式,支持标准的JS语法,为获得更高的渲染性能和易用性,对CSS和标签进行了一些剪裁和扩充,整体的学习成本非常低。
虽然使用前端技术栈,但快应用没有采用传统浏览器内核的运行模式,而是通过全新的引擎,将系统原生的渲染机制和接口能力提供给上层应用,使得快应用的能力和体验基本等同于原生应用。通过这套引擎,快应用可以使用包括硬件在内的大量系统能力,同时还集成了非常多的服务能力,例如推送、账号、支付、统计等。

从目前的快应用体验来说,并没有体验到如原生应用的丝滑般的感觉,从使用体验来讲,反而类似于微信小程序。
2.1运作流程

2.2技术特点

2.3快应用性能优势

2.4快应用接口能力

2.5快应用的流量来源

2.6快应用的后期规划

2.7目前接入快应用的优质案例
其中“饿了么”体验较差,无法发送验证码,无法定位。“携程“”,“搜狐新闻”渲染速度较高,加载流程,功能与原生功能比较,较为完整。“互动百科”,"快看漫画"没有在入口搜索到相应的快应用。PS:使用的手机为魅族手机。

三.快应用简介
3.1快应用的开发要求
开发快应用需要以下环境配置:
* PC安装toolkit工具;
* 手机安装调试器;
* 手机安装平台预览版;
PC安装toolkit工具
安装NodeJS
需安装6.0以上版本的NodeJS,请从NodeJS官网下载
安装hap-toolkit
通过npm仓库安装,在命令行中执行以下命令:
npm install -g hap-toolkit
在命令行中执行hap -V会输出版本信息表示hap-toolkit安装成功,如下命令所示:
hap -V
手机安装调试器
调试器是一个Android应用程序,下载调试器APK详见资源下载
在手机上安装并打开调试器,按钮功能如下:
* 扫码安装:配置HTTP服务器地址,下载rpk包,并唤起平台运行rpk包;
* 本地安装:选择手机文件系统中的rpk包,并唤起平台运行rpk包;
* 在线更新:重新发送HTTP请求,更新rpk包,并唤起平台运行rpk包;
* 开始调试:唤起平台运行rpk包,并启动远程调试;
PS:若打开调试器无法点击按钮,请升级手机系统到最新版本或安装平台预览版

手机安装平台预览版
较新的系统版本中内置平台正式版,开发调试平台新功能可使用平台预览版
平台预览版存在以下优缺点:
* 优点:迭代速度快,可立即体验平台新功能;
* 缺点:实现与真实的运行环境存在差异,对厂商服务和第三方服务的支持存在缺陷;
平台预览版是一个Android应用程序,下载平台预览版APK详见资源下载
下载安装成功后,在手机调试器中点击切换运行平台至org.hapjs.mockup,即可在平台预览版上安装运行rpk包
代码编辑
代码编辑工具可以选择Visual Studio Code、WebStorm、Sublime Text开发
下载安装
点击跳转下载Webstorm
点击跳转下载Sublime Text
3.2快应用API
快应用的详细API不逐一介绍,具体可以查看文档:快应用API详细文档。下面主要介绍一下快应用目前能够提供的服务。
由厂商提供的服务有:
厂商服务
3.2.1 推送:
接口定义:push.getProvider() 1000+
可以获取到获取服务提供商。
参数:无
返回值:字符串,服务提供商的代号,如厂商的英文品牌名称,假如无此服务则返回空字符串
示例:push.subscribe(OBJECT)
订阅push,后续可以收到push消息(一般可在应用初始化的地方进行调用。比如在app的onCreate方法中调用。)
push.on(OBJECT)
添加push事件回调(透传消息的payload内容可在此回调中收到)

3.2.2 支付:
接口定义:pay.getProvider()1000+
参数:无
返回值:字符串,服务提供商的代号,如厂商的英文品牌名称,假如无此服务则返回空字符串
示例:console.log(pay.getProvider())
pay.pay(OBJECT)
使用支付完成付款

3.2.3 统计:
接口定义:
stats.getProvider() 获取服务提供商。
参数:无
返回值:字符串,服务提供商的代号,如厂商的英文品牌名称,假如无此服务则返回空字符串
示例:console.log(stats.getProvider())
stats.recordCountEvent(OBJECT)
计数类型事件。通常用来描述⼀个事件累积发⽣的次数,适用的场景如按钮点击、界面进入、用户输入等。
参数:

返回值:无
stats.recordCalculateEvent(OBJECT)
计算类型事件。用通常用来描述⼀个带数值的事件的发⽣,适用的场景如用户消费事件,附带的数值是每次消费的⾦额;下载⽂件事件,附带的数值是每次下载消耗的时间等
参数:

返回值:无

3.2.4 账号:
接口定义:
account.getProvider() 获取服务提供商。
参数:无
返回值:字符串,服务提供商的代号,如厂商的英文品牌名称,假如无此服务则返回空字符串
示例:console.log(account.getProvider())
account.authorize(OBJECT)
进行OAuth授权。
参数:

success返回值:

account.getProfile(OBJECT)
获得用户基本信息。
参数:

success返回值:

unionid机制说明:如果开发者拥有多个移动应用,可通过unionid来区分用户的唯一性,因为只要是同一个开放平台帐号下的移动应用,用户的unionid是唯一的。换句话说,同一用户,对同一个开放平台下的不同应用,unionid是相同的。

第三方服务
3.2.5 微信支付
微信支付有app支付和网页支付两种方式,不同厂商实现会选择支持其中的一种。为了提升用户体验和兼容不同厂商实现,需要同时支持这两种方式。厂商实现详见“支持版本明细”
接口定义:
wxpay.getType() 获取当前可用的微信支付调用方式
参数:无
返回值:

PS:在 getType 返回值为 APP 时,开发者将只能使用 app 方式,不能使用网页方式。
wxpay.pay(OBJECT) 发起微信支付
参数:

extra参数:


success返回值:


3.2.6 支付宝支付
接口定义:
alipay.pay(OBJECT) 使用支付宝支完成支付
参数:


3.2.7 QQ账户
接口定义:
qqaccount.getType() 获取当前的QQ登陆方式
参数:无
返回值:

qqaccount.authorize(OBJECT)
发起qq登陆,不同的登陆方式下,应该传入不同的参数,调用之前应该先使用getType函数查询当前的登陆方式
参数:

success返回值:


3.2.8 微信账户
接口定义:
wxaccount.getType() 获取当前的微信登陆方式
参数:无
返回值:

wxaccount.authorize(OBJECT) 发起微信登陆,调用之前应该先使用getType函数查询APP登陆方式是否被支持
参数:

success返回值:


3.2.9 微博账户
接口定义:
wbaccount.getType() 获取当前的微博登录方式
参数:无
返回值:

wbaccount.authorize(OBJECT) 进行微博授权
参数:

success返回值:


3.2.10 第三方分享
manifest参数说明
在使用第三方分享时,需要在manifest.json文件中填写一些参数。可以填写所有参数来支持所有分享平台

接口定义
share.getProvider()1000+获取服务提供商
参数:无
返回值:
字符串,服务提供商的代号,如厂商的英文品牌名称,假如无此服务则返回空字符串
share.share(OBJECT)
分享内容
参数:

share.getAvailablePlatforms(OBJECT) 1010+
获取当前可用的支持分享的平台列表
参数:

success返回值:


目前分享的平台只支持“新浪微博”、“QQ”、“微信好友”、“微信朋友圈”、“系统分享”等几个平台。并不能像统计那样可以自定义统计事件,这也可能是目前第三方SDK只有统计的原因之一。
四.目前阶段快应用第三方SDK竞品分析
4.1统计类
【轻粒子】
这款叫“轻粒子”的快应用数据统计分析平台是为快应用专门打造的一款数据统计分析产品,除提供日常基础数据统计服务以外,包括:日常uv、pv、留存、活跃度、用户画像、自定义事件、事件漏斗等;同时还基于快应用标准专门开发了许多特色功能,如桌面icon(图标)创建情况分析、手机厂商流量分析、入口来源流量分析(正在开发中)等.
产品特点:
1. 基础指标详细展现,快速了解快应用概况
实时数据每【5分钟】更新展现新增用户、活跃用户、页面访问次数、应用打开次数、次均使用时长及流失率等数据;
整体趋势将从更灵活的时间维度(支持自定义时间)展示上述新增、活跃、页面访问次数、应用打开次数、次均使用时长、流失率 等多维数据。
2.特色指标,专门为快应用而开发
根据这款SDK的文档宣称,是专门为快应用而开发的SDK,有针对性的开发特色功能。比如桌面(icon)创建情况分析等。
3. 十大厂商一站式访问,不用单独登录各家平台
解决分别登录十家手机厂商开放平台难题,提供跨厂商数据统计服务,实现在一个后台查看所有厂商的快应用数据。
4. 事件/转化漏斗,支持更加灵活的事件统计分析策略
自定义事件,支持灵活定制自定义事件,打造适合自己的数据采集策略;
转化漏斗,把控每个关键节点的流失和转化;助你多维度排查问题原因,找到最佳用户转化路径。(根据其报告称,预计11月月底上线)
5. 精准划分用户群体,分析不同人群属性和行为特征
人群分析,精准划分用户群体,分析不同人群属性和行为特征,进行特征营销;支持地域、设备、版本、网络等多种方式划分用户群,实现多样化营销。




6.包体分析


从大小来看,轻粒子SDK的包体非常小,只有不到30K,文件内容暂时无法打开。
【友盟+】
友盟+目前也在抢占快应用数据统计分析这一领域,其产品特点与【轻粒子】有很大的相似性,主要展现的数据类型依旧是“新增用户”、"活跃用户"、"启动次数"、"渠道数据"、"自定义事件数据"等几个维度,唯一不同的两点是:
1.数据更新时效是【每小时】,这点有别于“轻粒子”的每5分钟更新时效。
2.友盟+依托其大数据能力,支持进行用户分群与用户画像功能。
目前友盟+并没有把快应用单独规划为一个独立的平台,只是建议用户注册appkey的时候分开注册。

包体大小:

网友评论