[发明专利]一种基于客户端微服务的APP自动协同方法在审
| 申请号: | 201810548600.X | 申请日: | 2018-05-31 |
| 公开(公告)号: | CN108804154A | 公开(公告)日: | 2018-11-13 |
| 发明(设计)人: | 汪步鹏;陈世展;冯志勇;王茹 | 申请(专利权)人: | 天津大学 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 吴学颖 |
| 地址: | 300072*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 客户端 服务 服务参数 自动启动 协同 服务流 拆解 服务方式 服务映射 封装 抽象 规范化 | ||
1.一种基于客户端微服务的APP自动协同方法,其特征在于,包括以下步骤:步骤一,微服务抽象
(1)APP客户端根据服务粒度拆解为一定数量的微服务:Android APP客户端的每个UI对应一个Activity组件,提取同时具有enabled和exported属性的Activity,使用自动化测试工具Monkey,通过定义点击事件对初步提取出的Activity进行测试,挑选微服务的首个UI,得到微服务的静态任务,作为入口点类entry_cls;根据服务粒度,对成功启动的Activity进行分析筛选,确定微服务集合;
(2)微服务映射为规范化接口:使用Dump View Hierarchy for UI automator工具,对微服务的入口点类entry_cls进行分析,获取item的语义、语法格式及控件信息;借助静态分析工具FlowDroid,将其source和sink设置为与APP存储有关的API,获取item对应控件的动作action的存储信息;将抽象的微服务信息封装为JSON对象部署到服务端,以RESTfulAPI的形式对外提供规范化接口;
步骤二,微服务流定制支持
根据步骤一所抽象的APP的微服务集合,与用户设备中的APP取交集,即获取用户设备所支持的APP微服务列表,用户按照个人需求从微服务列表中选取部分微服务,定制成微服务流;
步骤三,微服务参数获取
利用监控器持续监听用户设备产生的事件,并对感兴趣的事件进行处理,包括微服务流何时触发、微服务流当前执行情况及协同过程中重复利用的服务参数;通过调用服务端公开的规范化接口,即获取每个微服务的抽象信息;此处,利用微服务切换说明协同方法,用<MS1,MS2,data>进行表示,即微服务MS1和MS2间通过data交互;
根据抽象信息中item的action描述,生成实际可执行代码,包括借助辅助服务、adb(Android Debug Bridge)命令对存储及节点进行操作,抓取微服务的各个item对应的参数实例,作为微服务切换的data交由数据中转站处理;数据中转站根据构建的语义关系库对微服务切换中的两个微服务的各个item的语义进行匹配,再按照统一的语法格式暂存;
步骤四,微服务自动启动及参数注入
在每个微服务执行结束时,判断是否还有下一个微服务要执行,若判断为微服务流未结束,则获取服务端所封装的微服务中的entry_cls信息作为入口点类加载微服务启动;使用Intent和ClassLoader机制将入口点类调起,即运行APP内部的微服务;同时数据中转站根据微服务切换的MS2中各个item的语法格式处理data为所需的服务参数实例,发送给执行器;执行器根据MS2的入口点类,将其加载到用户设备的前台;执行器根据MS2中各个item的action的不同,采用不同的方式对所有item进行注入操作。
2.根据权利要求1所述的基于客户端微服务的APP自动协同方法,其特征在于,步骤一(2)中对于部分item,利用静态分析工具FlowDroid无法找到它的存储,使用Android提供的辅助服务及adb命令,找到item对应的辅助服务节点,结合“Input”命令对item对应的控件进行操作,作为item的action信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810548600.X/1.html,转载请声明来源钻瓜专利网。





