[发明专利]应用程序的资源文件查找方法、装置、设备及存储介质在审
| 申请号: | 202211590692.0 | 申请日: | 2022-12-12 |
| 公开(公告)号: | CN115794738A | 公开(公告)日: | 2023-03-14 |
| 发明(设计)人: | 杨志 | 申请(专利权)人: | 深圳依时货拉拉科技有限公司 |
| 主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/14;G06F16/16;G06F8/61 |
| 代理公司: | 深圳瑞天谨诚知识产权代理有限公司 44340 | 代理人: | 温青玲 |
| 地址: | 518000 广东省深圳市福田区梅林街*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用程序 资源 文件 查找 方法 装置 设备 存储 介质 | ||
本申请为计算机技术领域,本申请提供了一种应用程序的资源文件查找方法、装置、设备及存储介质,其中,所述方法包括:获取应用程序中通过资源名称获取资源的源代码,调用预先构建的代码替换插件,将所述源代码按照预设规则替换成自定义的目标代码,在所述目标代码下,根据系统提供的资源文件查找方式查找资源文件,当确定未查找到资源文件时,查找所述目标代码中的R文件名称对应的ID,得到目标ID,根据所述目标ID查找资源文件,得到目标资源文件,从而无需考虑白名单,只需要集成替换插件,并把替换资源的代码放入应用程序项目内即可,并通过双重查找的方式减少因资源找不到而导致应用程序的崩溃,减少性能损耗。
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种应用程序的资源文件查找方法、装置、设备及存储介质。
背景技术
在现有的应用程序开发过程中,我们可能需要在不影响业务的情况下,减少应用程序安装包的体积,以及增强应用程序的安全性,此时则需要一套技术方案既可以减少应用程序安装包的体积,又可以提升应用程序的安全性。
目前常规的做法是将应用程序中使用的资源(如图片、布局资源)名称、路径进行混淆(如src/drawable/launch.png更改为a/b/c.png)的方式,以减少应用程序安装包的体积,并提升应用程序的安全性,这种方式可以将编译后的应用程序资源目录中的文件名修改为短路径,无法知道真实名称,提升了安全性,且由于缩短为短路径,减少了字符串的储存空间,减小了应用程序安装包的体积,但这种方式需要配置白名单,将项目中通过资源名称获取的资源文件不能进行资源混淆,而白名单配置麻烦,需要查找项目内跟第三方代码使用名称获取的资源名称,容易造成遗漏,遗漏会导致应用程序找不到资源文件进而导致崩溃。
发明内容
本申请的主要目的为提供一种应用程序的资源文件查找方法、装置、设备及存储介质,以解决资源混淆后找不到资源文件的问题。
为了实现上述发明目的,本申请提供一种应用程序的资源文件查找方法,包括:
获取应用程序中通过资源名称获取资源的源代码;
调用预先构建的代码替换插件,将所述源代码按照预设规则替换成自定义的目标代码;
在所述目标代码下,根据系统提供的资源文件查找方式查找资源文件;
当确定未查找到资源文件时,查找所述目标代码中的R文件名称对应的ID,得到目标ID;
根据所述目标ID查找资源文件,得到目标资源文件。
优选地,所述将所述源代码按照预设规则替换成自定义的目标代码,包括:
根据所述代码替换插件的ASM字节码替换技术,将所述源代码替换成自定义的目标代码。
优选地,所述查找所述目标代码中的R文件名称对应的ID,得到目标ID,包括:
根据所述目标代码,获取应用程序的R.java资源名称对应的ID映射文件;
根据所述ID映射文件查找R文件名称对应的ID,得到目标ID。
进一步地,所述获取应用程序中通过资源名称获取资源的源代码之后,还包括:
创建自定义的代码类文件,将通过资源名称获取资源的源代码存储在所述代码类文件中;其中,所述代码类文件包括java类文件,所述java类文件定义了通过资源名称获取资源的方法。
优选地,所述将所述源代码按照预设规则替换成自定义的目标代码,包括:
为所述源代码创建插件项目;
调用所述代码替换插件中的gradle编译工具,为所述插件项目注册自定义代码转换器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳依时货拉拉科技有限公司,未经深圳依时货拉拉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211590692.0/2.html,转载请声明来源钻瓜专利网。





