[发明专利]一种安卓应用的深链接口自动生成方法及深链执行方法在审
申请号: | 201711134577.1 | 申请日: | 2017-11-16 |
公开(公告)号: | CN108008941A | 公开(公告)日: | 2018-05-08 |
发明(设计)人: | 刘譞哲;马郓;胡子牛;柳熠;黄罡 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F17/30 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 司立彬 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 链接 自动 生成 方法 执行 | ||
1.一种安卓应用的深链接口自动生成方法,其步骤包括:
1)对于目标安卓应用程序的代码中每一设定Activity,获取到达该Activity的Intent序列;
2)针对该目标安卓应用程序的代码中每一选定的目标Activity,生成从该选定的目标Activity的入口到达其内部设定Fragment的操作序列;
3)根据所述Intent序列和所述操作序列构成该目标安卓应用程序中各设定位置的深链模板,即得到各设定位置对应的深链接口;
其中,获取到达该Activity的Intent序列的方法为:首先构造该目标安卓应用程序的Activity导航关系图;然后根据该Activity导航关系图,获取从应用入口Activity到达该Activity的路径,然后选取最短路径所对应的Intent序列,作为从应用入口Activity到达该Activity的Intent序列。
2.如权利要求1所述的方法,其特征在于,生成所述操作序列的方法为:为所述目标Activity中的每一Fragment生成一标识;生成所述目标Activity的Fragment切换图FTG<P,D,p>;其中,P代表一个顶点集合,Activity中每一Fragment的标识对应一顶点;D是有向边的集合,每一条边是一个三元组e<s,t,i>,s代表源Fragment,t为目标Fragment,i代表引发切换的控件的标识id;p是起始点,即Activity刚打开时的主页面;然后根据所述目标Activity的Fragment切换图,将从起始点到目标Fragment的边串联起来,得到所述目标Activity的Fragment的操作序列。
3.如权利要求2所述的方法,其特征在于,为所述目标Activity中的每一Fragment生成一标识的方法为:获取安卓系统为该目标安卓应用程序在运行时构造的控件树;计算该控件树的哈希值,然后用该哈希值来标识当前的Fragment。
4.如权利要求3所述的方法,其特征在于,计算所述控件树的哈希值的方法为:对于该控件树中的一个节点q,如果节点q在控件树中没有子节点,则结果为节点q对应控件的标签字符串哈希;如果节点q有子节点,则递归计算出节点q所有子节点的哈希;然后根据节点q的子节点的哈希值对节点q的子节点排序来保证哈希结构的一致性,再将每个子节点的哈希值与控件的标签加起来形成一个新的字符串,最终将该新的字符串的哈希值作为节点q的哈希。
5.如权利要求2所述的方法,其特征在于,获得所述Fragment切换图的方法为:首先点击当前Fragment的每个控件来检查Activity是否改变,如果Activity改变,则调用系统函数doback()直接返回前一个状态,返回之后继续遍历;如果Activity改变,则检查当前Fragment的状态,如果当前Fragment的标识与之前的不同,且当前Fragment是一个新的Fragment,则其加入Fragment切换图中,并且记录边的信息为发生切换的控件;如果没有发生Fragment切换则继续遍历;在完成遍历搜索后,得到所述Fragment切换图以及所有Fragment的列表。
6.一种基于权利要求1所述方法生成的深链接口的深链执行方法,其特征在于,代理Activity根据深链请求查找对应的深链模板并对其实例化,构造一个可跳转到该深链请求对应目标位置的脚本;然后根据脚本,回放引擎控制安卓应用在Activity之间切换,并在控件上进行操作,达到目标位置;所述深链请求中包含深链对应深链模板中的参数所需要的赋值;
其中,获取到达该Activity的Intent序列的方法为:首先构造该目标安卓应用程序的Activity导航关系图;然后根据该Activity导航关系图,获取从应用入口Activity到达该Activity的路径,然后选取最短路径所对应的Intent序列,作为从应用入口Activity到达该Activity的Intent序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711134577.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种均匀喷洒的洒水设备
- 下一篇:一种多芯呼吸过来器滤壳