收稿日期:2020年6月13日,修回日期:2020年7月27日
基金项目:中国博士后科学基金面上项目(编号:2020M672211);河南省教育厅高等学校重点科研项目(编号:21A520003)资助。作者简介:张博文,男,研究方向:快应用、强化学习。樊子谦,男,研究方向:人工智能。任奎穆,男,研究方向:软件工程。翟中豪,男,博士研究生,研究方向:区块链和访问控制。王光辉,男,博士,讲师,硕士生导师,研究方向:物联网定位与性能分析。何欣,男,博士,教授,博士生导师,研究方向:智感知。
∗
1引言
随着移动应用服务的快速发展,作为新一代移
动端应用程序分发入口,轻量级应用程序的发展前景日趋明朗化,体智能软件生态环境蒸蒸日上并且竞争激烈[1]。小程序作为一种流行的轻量
级应用开发平台,为开发人员提供了丰富的接口,简单的组件,降低了开发门槛。然而,小程序受制于生态环境限制[2],从功能到接口均受到的管控,限制了软件开发自由度与开放性,且单一开发平台可能导致用户隐私信息泄露风险。2018年,华为、小米、OPPO 等九大手机厂商共同启
快应用的技术特征分析与系统实现
∗
张博文1
樊子谦1
任奎穆1翟中豪2王光辉1,
3
何
欣1,
4
(1.河南大学软件学院开封
475001)(2.南京邮电大学物联网学院
南京210023)
(3.河南省智能网络理论与关键技术国际联合实验室
开封
475001)
(4.河南省智能数据处理工程研究中心
开封
475001)
摘
要
随着移动互联网的快速发展,轻量级应用已经融入人们生活。快应用架构具有无需下载与即点即用的特点,
备受产业界与学术界的关注。论文介绍了快应用的起源与背景,阐述了快应用的生态环境,分析了快应用的技术特征,实现了一种基于快应用的恶意文件检测系统。通过与小程序和超级文本标记语言HTML5进行技术特征对比,并且将基于快应用、基于小程序和基于移动HTML5应用开发技术的恶意文件检测系统进行实现方案对比,展示了快应用架构在简洁高效开发方面的技术特征优势。
关键词
快应用架构;技术特征分析;系统实现;恶意文件检测
中图分类号
TP393
DOI :10.3969/j.issn.1672-9722.2020.12.022
Technical Characteristic Analysis and Implementation for Quick App
ZHANG Bowen 1
FAN Ziqian 1
REN Kuimu 1
ZHAI Zhonghao 2
WANG Guanghui 1,
3
HE Xin 1,
4
(1.School of Software ,Henan University ,Kaifeng 475001)
(2.College of Internet of Things ,Nanjing University of Posts and Telecommunications ,Nanjing 210023)(3.Henan International Joint Laboratory of Intelligent Network Theory and Key Technology ,Kaifeng
475001)
(4.Intelligent Data Processing Engineering Research Center of Henan Province ,Kaifeng
475001)
Abstract
With the rapid development of mobile Internet ,lightweight applications have been integrated into people 's life.The
Quick App architecture has drawn much attention from academia and industry because of its installation-free feature.After introduc⁃ing the background and ecological environment of Quick App ,this paper analyzes its technical characteristic and implement a mali⁃cious file detection system based on Quick App.In terms of the simplicity and efficiency of development ,the advantages of the
Quick App architecture are demonstrated by comparing the technical characteristic of Quick App ,WeChat Applet and HTML5,and comparing the implementations of the Quick App ,WeChat Applet and HTML5based malicious file detection systems.
Key Words Quick App architecture ,technical characteristic analysis ,implementation ,malicious file detection
Class Number
TP393
第48卷
动了快应用标准[3~6]。快应用架构深度集成于各厂商的手机操作系统中,不仅可以支撑轻量级应用开发,而且其支撑的移动应用具有高度开发性与自由性,已经受到了产业界与学术界的高度关注[7~8]。
快应用提供了一种新的应用形态,其架构与手机操作系统深度融合,在满足原生应用流畅体验的同时,具有无须下载、随时使用、用完就走的特点[9]。快应用架构建立了一种新的语言开发规范,使用前端技术栈开发,具备超级文本标记语言(Hyper Text
Markup Language,HTML)与原生应用的双重优点。与小程序相比,快应用与手机全局搜索、语音、桌面快捷方式等功能结合,提高了与用户的交互性以及使用的便捷性。与HTML相比,快应用关注移动客户端的开发,具有无需下载、即点即用的特点。恶意文件检测系统能够检测移动应用中的恶意文件,有助于解决移动应用的安全问题[10],是智能软件开发与应用过程中不容缺失的模块。因此,基于快应用架构的恶意文件检测是未来轻量级应用软件开发关注的重要方向之一。
论文通过分析快应用架构的技术特征,实现了一种恶意文件检测快应用系统。首先,通过介绍快应用的起源与发展背景,阐述了快应用软件开发的生态系统。其次,通过与小程序和浏览器程序(论文以HTML5语言为例)进行技术特征对比,描述了快应用架构的技术特征,实现了一种恶意文件检测快应用系统。最后,基于技术特征分析和系统实现与测试,展现了快应用架构的技术特征优势。快应用架构代码简洁高效,可与手机搜索、语音识别等功能结合,拥有丰富程序入口,从而减少开发的成本、周期、难度。
2背景介绍
2.1快应用起源与发展
快应用标准在2018年3月20日由华为、小米、OPPO、vivo、中兴、金立、联想、魅族、努比亚九大主流手机厂商共同发起。在2017年,小米推出的“直达服务”、魅族推出的“快捷应用”、金立推出的“秒开应用”便存有快应用的影子。快应用的启动代表着九大手机厂商将基于安卓生态,在轻量级智能手机应用上进行长期合作。
快应用技术发展迅速。根据报告显示,截止到2019年12月快应用月活用户已经突破3亿,相比2019年3月公布的2亿用户,实现了1.5倍增长,并且每日用户人均打开次数从之前的2次增长至4次[11]。快应用联盟亦愈加壮大,先后有一加、海信和中国移动加入其中,使得快应用联盟成员扩大至12家。快应用
联盟积极举办了线上流量扶持计划、线下巡回沙龙、快应用开发者大赛等活动。快应用标准版本已由最初的v1010版更新到v1070版本。
2.2快应用生态系统
快应用生态系统整体结构如图1所示。其中,快应用的生态基础是手机硬件平台的统一适配,生态环境是手机厂商的合力流量扶持,生态核心是以用户为中心。快应用生态基础的本质在于手机硬件平台统一适配实现标准化,其基于前端技术栈与原生渲染结合的方式,提升移动互联网应用开发效率,减少快应用生态开发的成本,为生态核心提供原生体验。快应用生态环境的重点在于流量扶持。其中流量扶持可以分为四类:搜索场景中用户主动行为产生的流量,推荐场景中系统主动行为产生的流量,通信场景中用户之间交互产生的流量,营销场景中的线上线下结合产生的流量。通过流量扶持,可以创造快应用生态土壤,也可以满足不同用户的需求。快应用架构深度集成于手机操作系统,可在操作系统层面提供客户需求与应用服务的无缝连接,使用户享受原生应用体验,不需要搜索、下载环节,极大降低用户决策造成的损失[12]。此外,用户的不同需求将不断影响生态基础的未来
发展与生态环境的模式更新迭代。
图1快应用生态系统结构示意图
3快应用技术特征描述与分析
原生安卓app开发本节首先从快应用的文档结构、组件和应用编程接口(Application Programming Interface,API)三个方面对快应用的技术特征进行描述。其次,将快应用与小程序和HTML5在文档结构、用户、程序入口、运行环境以及代码复杂性五个维度进行技术特征对比与分析。
3.1技术特征描述
快应用的文档结构如图2所示。快应用基于NodeJS环境,并研发了编译工具hap-toolkit,可以通过npm仓库执行命令行语句安装hap-toolkit。NodeJS环境搭建完成以及hap-toolkit工具安装完之后,使用相关命令行语句即可实现项目的初始化
张博文等:快应用的技术特征分析与系统实现2926
2020年第12期计算机与数字工程操作,即得到项目模板[13]。在项目模板中,快应用的文档结构由package.json 、src 以及sign 三部分构成。其中,package.json 文件用于定义项目需要的各种模块及配
置信息。sign 作为rpk 包签名模块,内含debug 调试环境,debug 内为certificate.pem 证书文件和private.pem 秘钥文件。src 是项目源文件夹,分为Common 、Demo 、app.ux 和manifest.json 四个部分。Common 用于存放公用的资源和组件文件,在项目初始化中自动生成模板应用图标logo.png 。Demo 是页面目录,内含可自定义名称的index.ux 页面文件,每一个ux 文件是当前页面或组件的具体化描述,一般在开发过程中,一个页面乃至一个组件均独立存在为一个ux 文件。manifest.json 文件是项目的整体信息配置文件,是用于配置项目的公共
脚本资源。
图2快应用项目文档结构示意图
快应用的组件特征分析如下。快应用为开发者提供了丰富组件,可以便捷地实现各种开发需求,其中有
两种使用率较高的开发组件:list 和tabs 。list 组件用来对列表进行优化,从而达到对快应用的使用性能进行优化和用户需求快速响应。
list 组件的性能优化分为精简DOM 层级、复用list-item 、细粒度划分list-item 、关闭scrollpage 四个方面。tabs 组件用于对选项卡、页面标签等的布局,让开发者可以对组件进行灵活搭配,达到对快应用的使用性能、操作体验进行优化的目的。tabs 中封装了常见功能和效果,例如页签支持横向滚动,支持手势滑动切换内容页等。在快应用组件的使用上,开发者还可以自定义小组件来渲染其他页面标签内容,从而对代码的进行合理使用,提高代码的可读性,进而便于后期的维护以及其他开发者对该应用进行修改。除list 和tabs 组件外,快应用还可以使用灵活性较高的媒体组件、画布组件、第三方组件。
快应用的API 特征分析如下。快应用架构深度集成进各手机厂商的手机操作系统中,因此API 种类繁多,包括基本功能、页面交互、网络访问、文件数据、系统能力、图形图像、声音音频、第三方服务等。快应用程序可以通过应用市场、浏览器、桌面快捷搜索、智慧推荐服务等入口进入,也可以通
过其API 实现向特定服务进行推送的功能。
3.2对比分析
快应用架构集成于手机操作系统并进行深度
定制,小程序技术充满的原生彩,浏览器具有跨平台、兼容性好、插件丰富等特点。上述三种开发技术的目的均是为了提升应用程序开发的便捷性。通过使用组件和内置API ,快应用架构可节省开发时间,优化开发代码逻辑,提升代码的可维护性。
快应用、小程序和浏览器的技术特征对比分析如表1所示。三种技术的文档结构各有特,快应用为ux 文件、app.ux 文件、manifest.json 文件。小程序为app.js 文件、app.json 文件、app.wxss 文件和wxml 文件,其中app.js 作为小程序的入口文件,app.wxss 控制小程序的样式显示效果,app.json 为小程序的全局配置文件,每个wxml 文件用于描述当前页面结构[14]。HTML5则主要为html 文件、css 文件和javascript 文件,在基于浏览器开发网页时,html 文件主要是用于建立网页的骨架,决定网
页的结构及内容,CSS (Cascading Style Sheet )层叠样式表单主要是用来设置html 骨架元素的样式,设计网页的表现样式,javascript 是一种解释性脚本语言(代码不进行预编译),主要用于向html 添加交互行为。HTML5通过html 、head 、body 和DOCTYPE 四种标签统一其文档格式[15]。
快应用运行于支持快应用架构的手机操作系统,在大部分Android 端使用。由于快应用属于最新开发技术,虽然其用户相对较少,但是其用户数量增长迅速。小程序用户为用户,用户数量较多。HTML5基于手机与PC 等多种运行环境浏览器,在世界范围内流行,用户丰富。
快应用的程序入口多元。快应用架构已经深度集成到各手机厂商的手机操作系统中,可以实现用户需求
与应用服务的无缝连接,程序入口丰富。小程序受制于生态环境限制,从功能到接口到程序入口均受到的管控,HTML5的程序入口基本为浏览器。
快应用与小程序的代码相对简洁。其快应用与小程序均在HTML5的基础上新增了用于列表渲染的for 指令和用于条件渲染的if 指令。根据市场需求,快应用与小程序还封装提供了功能集中的新标签。例如,快应用内置的popup 标签可供开发者快速实现气泡窗口。因此,快应用和小程序的代码复杂度相对简洁,而HTML5代码复杂度相对复杂。
2927
第48卷
综上所述,快应用技术在交互性与便捷性方面具有一定的技术优势。首先,快应用区别于小程序的特点在于快应用无须基于任何基础软件支撑。快应用可与手机搜索功能、语音功能等深度融合交互,提高与用户的交互性以及使用的便捷性。其次,相比于HTML5,快应用关注移动客户端的开发,具有即点即用无需下载的特点,程序入口丰富。为了展现快应用所有具有的功能与优势,论文实现了一种基于快应用架构的恶意文件检测系统。
4
快应用系统实现与测试
4.1
系统架构
基于快应用的技术特征分析,论文实现了一种
恶意文件检测快应用。如图3所示,该快应用系统采用了客户/服务器模式(Client-Server ,C/S )结构进行部署。其设计思想为MVC 架构模式,包含三个模块:View 视图模块,Controller 控制器模块和Model 模型模块。View 视图模块部署在客户端,Controller 控制器模块和Model 模型模块部署于服
务器端的应用服务器内。
图3恶意文件检测系统架构示意图
View 视图模块、Controller 控制器模块和Model
模型模块的作用描述如下。View 模块负责为客户提供操作简单、人性化的使用页面,实现文件和数
据到服务器端的上传,并从服务器端获取数据,为客户展示相关文件检测的结果。Controller 模块实
现前后端数据、文件的交互。系统传输功能体现在客户选择欲检测的Android 应用程序包(Android Package ,APK )文件后,将其传输到服务器端进行检测,最终由服务器端将结果和相关数据传输回客
户端,使用了网络数据传输功能。Model 模块负责与数据库交互、文件的恶意性检测以及客户信息处理三大功能。服务器经由Controller 模块接收客户端上传的APK 文件,并对其进行反编译,将所得数据传入数据库。
恶意文件检测快应用利用反编译相似度检测算法进行恶意文件检测[16]。反编译相似度检测算法流程如图4(a)所示。算法对待测文件进行反编译预处理,使检测效率更高且检测结果更精准。算法核心特征是通过对文件进行反编译,提取其特征值[17]并与已知恶意文件特征库进行比较,分析结果进而判断待测文件是否具有恶意性。
恶意文件检测快应用的系统流程如图4(b)所示。首先,用户需自行指定欲检测的APK 文件,选择完毕后文件会被发送至服务器端。若文件发送成功,服务器会给客户端返回响应,经客户端处理最终向客户提示成功信息,并自动跳转至检测页面,若失败会提示失败信息。其次,客户点击检测,客户端向服务器发送检测请求,服务器收到请求后访问并提取客户上传的APK 文件,调用反汇编相似度检测算法对文件进行分析,并返回分析结果。最后,客户端接收并处理数据后向用户展现检测结果。若出现服务器未按时收到请求、出现故障或检测失败等情况,客户端将依据故障信息提示检测失败。
对比文档结构
用户程序入口
运行环境代码复杂度
快应用
ux 文件app.ux 文件
manifest.json 文件
基于支持快应用架构的手机用户,目前在Android 端使用应用市场、桌面快捷搜索、智慧推荐服务、全局搜索、负一屏、浏览器搜索
支持快应用标准架构的手机相对简洁
小程序wxml 文件
app.js 文件app.json 文件app.wxss 文件
基于用户,可跨平台使用,可使用账号授权快速登录、桌面快捷方式
手机生态圈相对简洁
HTML5
html 文件css 文件
javascript 文件
基于使用浏览器的用户浏览器
手机、PC 等多种运行环境内的
浏览器相对复杂
表1
快应用与小程序和HTML5的技术特征对比
张博文等:快应用的技术特征分析与系统实现2928
2020年第12期
计算机与数字工程(a )
反编译相似度检测算法流程图
(b )恶意文件检测快应用的系统流程图
图4反编译相似度检测算法流程图和恶意文件检测快应
用的系统流程图
4.2客户端和服务器端模块
恶意文件检测系统利用快应用架构进行客户
端开发,嵌套使用了tabs 组件,将其作为每个页面的框架结构,配合使用自定义组件和js 脚本实现前端页面。系统使用的内部接口为自定义函数接口,即为实现系统需求而编写的不同功能的函数,包括判断是否处于WiFi 情况下播放的startVideo (),判断网络状态的netWorkStatus (),检测完后从服务器捕获检测结果的fetchData (),选定本地文件进行检测的quickScan (),和承接文件上传至服务器的upLoadFn ()。系统使用的外部接口均为快应用内置接口,包括路由接口route ,多媒体接口me⁃dia ,数据请求接口fetch ,上传下载接口request ,文件存储接口file 和网络状态接口network 。
系统服务器端包含应用服务器和数据库,应用服务器采用Java 语言编写,使用JavaWeb 技术开发,并基于Tomcat 服务器搭建。数据库使用MySQL 数据库。应用服务器分为两个部分,分别对数据交互和恶意文件检测进行功能实现。首先,第
一部分为前后端数据与文件交互功能,将所有数据进行处理后导入数据库,将文件单独存储到特定存储空间中,以备检测算法访问提取,将数据库中取出的数据信息做封装处理,将最终检测的结果数据封装
响应客户端。其次,第二部分为恶意文件检测功能,即通过反编译相似度检测算法,检测客户上传的APK 文件。此外,数据库负责数据的存储与维护,用于存储APK 文件经反编译后得到的临时文件信息以及特征匹配所用的特征值信息。
4.3系统实现
基于系统架构与客户端和服务器端模块,实现
了一种恶意文件检测快应用。其源码中属性为
class="down_div1"的div 标签用于显示检测基准,属性为class="down_div2"的div 标签用于显示检测
结果。div 标签的for 属性用于根据源数据数组渲染列表,tid 属性用于指定数组元素的唯一Id ,tid="uniqueId"表示使用数组List1、List2的数组元素,
$item.uniqueId 作为数组元素的唯一Id 。需要注意,uniqueId 属性值在每个数组元素都不一样,其下的$pe 代表文件类别,$item.probability 代表检测后得到的每种类别概率,从数组List1、List2内绑定具体数据。恶意文件检测快应用系统检测结果页面的核心代码如下:
<div class="down">
<div class="down_div1"><text class="down_div1_text">基于权限</text></div>
<div
class="
down_div2"
for="{{List1}}"
tid=
"uniqueId">
<text class="down_div2_text">{{$pe}}</text>
<text class="down_div2_text">{{$item.probability}}</text></div>
<div class="down_div1"><text class="down_div1_text">基于方法</text></div><div
class="
down_div2"
for="{{List2}}"
tid=
"uniqueId">
<text class="down_div2_text">{{$pe}}</text>
<text class="down_div2_text">{{$item.probability}}</text></div>
</div>快应用显示效果如图5(a )所示,基于移动HT⁃
ML5应用开发实现的前端效果如图5(b )所示,
小程序显示效果如图5(c )所示。通过分别基于快应用、HTML5和小程序进行开发,可以发现三者代码结构类同,组件标签相似,在显示效果基本相同时快应用开发代码最简。具体表现为在实现系统检测结果页面的结构文件时,快应用需编写42行代码,小程序需编写58行代码,HTML5需编写102行代码。这是因为快应用与小程序均比HTML5的基础上新增了用于列表渲染的for
指令和用于条件渲染的if 指令等。同时快应用与2929
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论