[发明专利]一种Dex文件的构建方法、目标应用的运行方法及装置在审
申请号: | 202011004872.7 | 申请日: | 2020-09-22 |
公开(公告)号: | CN112148300A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 刘彦明 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 张芮 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dex 文件 构建 方法 目标 应用 运行 装置 | ||
本申请提供了一种Dex文件的构建方法、目标应用的运行方法及装置,该构建方法包括:获取目标应用对应的代码资源;根据代码资源中的项目代码资源以及项目代码资源关联的依赖代码资源,生成主Dex文件对应的第一资源清单;复制第一资源清单,得到备份第一资源清单;判断备份第一资源清单中的资源数量是否大于单个Dex文件对应的限制资源数量,若是,则对备份第一资源清单进行删减处理,得到包括目标资源的第二资源清单,并基于第二资源清单替换第一资源清单;将替换后的第二资源清单中的目标资源写入主Dex文件中。这样,在保证目标应用正常启动的前提下,避免了应用构建失败的问题,且提高了目标应用的构建效率。
技术领域
本申请涉及游戏技术领域,具体而言,涉及一种Dex文件的构建方法、目标应用的运行方法及装置。
背景技术
在Android应用构建流程中,应用的原始资源经过编译构建之后生成Dex文件,Dex文件包含了用来运行应用的已编译代码,供运行应用的设备(具体为虚拟机)加载使用。其中,虚拟机指令中采用16位二进制来记录一个Dex文件所引用的方法个数,所以,单个Dex文件包含的代码资源所引用的方法数目不能超过65536,这便是“64K引用限制”。
随着应用功能的增多,应用的代码所引用的方法个数不可避免会超过65536,相应的,单个Dex文件已经无法放下所有方法。为了解决这个问题,目前采用分包的方式,即拆分这些方法,拆分之后的方法存放在多个Dex文件中。在基于低版本虚拟机运行Dex文件的场景下,需要将大量的方法写入主Dex文件中,以保证应用的正常启动,但是,该种方式中,要写入主Dex文件中的方法数量还是可能会超过限制数量65536,当要写入主Dex文件中的方法数量超过限制数量时,就导致这些方法无法被打包到主Dex中,进而导致应用构建失败,且应用的构建效率低。
发明内容
有鉴于此,本申请的目的在于提供一种Dex文件的构建方法、目标应用的运行方法及装置,在特定的时机,通过拦截主Dex文件对应的第一资源清单实现自主干预分包,并在分包时至少保留主Dex文件对应的第一资源清单中的目标资源,这样,在保证目标应用正常启动的前提下,避免了目标应用构建失败的问题,且提高了目标应用的构建效率。
第一方面,本申请实施例提供了一种Dex文件的构建方法,所述构建方法包括:
获取目标应用对应的代码资源;
根据所述代码资源中的项目代码资源以及所述项目代码资源关联的依赖代码资源,生成主Dex文件对应的第一资源清单;
复制所述第一资源清单,得到备份第一资源清单;判断所述备份第一资源清单中的资源数量是否大于单个Dex文件对应的限制资源数量,若是,则对所述备份第一资源清单进行删减处理,得到包括目标资源的第二资源清单,并基于所述第二资源清单替换所述第一资源清单;其中,所述目标资源中至少包括启动所述目标应用的应用入口资源和加载其他Dex文件前引用的资源;
将替换后的所述第二资源清单中的目标资源写入所述主Dex文件中。
在一种实施方式中,所述复制所述第一资源清单,得到备份第一资源清单,包括:
监听目标任务的运行状态,所述目标任务在运行时用于生成所述主Dex文件对应的第一资源清单;
在监听到所述目标任务运行结束时,复制所述第一资源清单,得到备份第一资源清单。
在一种实施方式中,通过如下方式构建所述目标任务,包括:
根据所述目标应用对应的构建类型和标识信息,构建所述目标任务。
在一种实施方式中,所述对所述备份第一资源清单进行删减处理,得到包括目标资源的第二资源清单,包括:
确定备份第一资源清单中启动所述目标应用的应用入口资源和加载其他Dex文件前引用的资源,得到第一资源;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011004872.7/2.html,转载请声明来源钻瓜专利网。