[发明专利]应用程序运行方法、装置、终端设备及介质在审
申请号: | 201911156475.9 | 申请日: | 2019-11-22 |
公开(公告)号: | CN112947927A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 肖继伟;窦泽飞;王小建 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53;G06F9/445 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 左婷兰 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 运行 方法 装置 终端设备 介质 | ||
1.一种应用程序运行方法,其特征在于,包括:
当检测到应用程序启动时,获取与所述应用程序相对应的类列表文件;
识别所述类列表文件中的目标类;
启动目标线程,并采用所述目标线程初始化所述目标类。
2.根据权利要求1所述的方法,其特征在于,在所述获取与所述应用程序相对应的类列表文件之前,还包括:
获取所述应用程序的源代码,识别所述源代码中的静态类;
基于所述静态类,生成与所述应用程序相对应的类列表文件。
3.根据权利要求2所述的方法,其特征在于,所述获取所述应用程序的源代码,包括:
获取所述应用程序的程序包;
解析所述程序包,获得所述应用程序的字节码;
将所述字节码反编译为源代码。
4.根据权利要求2或3所述的方法,其特征在于,所述识别所述源代码中的静态类,包括:
解析所述源代码中的各个类;
若某一个类对应的源代码包含以预设字符标记的变量和代码段,且所述某一个类对应的初始化代码未包括其他任务执行逻辑,则将所述某一个类识别为初始静态类,所述其他任务执行逻辑为不以预设字符标记的变量和代码段;
检测目标初始静态类的初始化代码是否与其他类存在调用关系,所述目标初始静态类为所述初始静态类中的任意一个,所述其他类为所述各个类中除所述某一个类之外的类;
若所述目标初始静态类的初始化代码未与其他类存在调用关系,则将所述目标初始静态类识别为静态类;
若所述目标初始静态类的初始化代码与其他类存在调用关系,则判断存在调用关系的其他类是否均为初始静态类,若是,则将所述目标初始静态类识别为静态类,否则,则将所述目标初始静态类识别为非静态类。
5.根据权利要求2所述的方法,其特征在于,所述基于所述静态类,生成与所述应用程序相对应的类列表文件,包括:
确定各个静态类的初始化阶段,建立所述各个静态类的类名与对应的初始化阶段之间的映射关系;
根据所述映射关系,生成与所述应用程序相对应的类列表文件。
6.根据权利要求5所述的方法,其特征在于,所述确定各个静态类的初始化阶段,包括:
在检测到所述应用程序启动时,记录自所述应用程序启动开始的预设时间段内执行初始化操作的第一静态类,确定所述第一静态类的初始化阶段为启动阶段;
在检测到所述应用程序的任一界面启动时,记录自所述界面启动开始到所述界面启动完毕的时间段内执行初始化操作的第二静态类,确定所述第二静态类的初始化阶段为应用执行阶段。
7.根据权利要求2或5或6所述的方法,其特征在于,还包括:
将所述类列表文件上传至服务器。
8.根据权利要求6所述的方法,其特征在于,所述识别所述类列表文件中的目标类,包括:
识别所述类列表文件中的第一静态类。
9.根据权利要求8所述的方法,其特征在于,所述第一静态类包括多个,所述启动目标线程,并采用所述目标线程初始化所述目标类,包括:
启动多个目标线程,确定各个目标线程对应的第一静态类;
采用所述各个目标线程并行地初始化对应的所述第一静态类。
10.根据权利要求8所述的方法,其特征在于,还包括:
当检测到所述应用程序的任一界面启动时,识别所述类列表文件中的第二静态类;
启动新的目标线程,并采用所述新的目标线程初始化所述第二静态类。
11.一种类列表文件的生成方法,其特征在于,包括:
获取应用程序的源代码;
识别所述源代码中的静态类;
基于所述静态类,生成与所述应用程序相对应的类列表文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911156475.9/1.html,转载请声明来源钻瓜专利网。