一种应用程序调用资源文件的方法及装置制造方法及图纸

技术编号:24853132 阅读:15 留言:0更新日期:2020-07-10 19:07
本申请提供了一种应用程序调用资源文件的方法,应用于目标应用程序所在的操作系统,从操作系统的配置文件中获取目标依赖库对应的资源文件后,复制资源文件得到内部代码相同的两份原始资源文件,并将其中一份的旧文件名更改为新文件名,此时,修改旧文件名对应的原始资源文件的内部代码,以使目标应用程序通过旧文件名调用修改后的资源文件。在目标应用程序成功调用后,删除修改后的资源文件,然后更改带有新文件名的原始资源文件为旧文件名,此时,其他应用程序可以通过旧文件名调用原始资源文件。可见,本申请提供的应用程序调用资源文件的方法中,当需要修改依赖库时,操作系统仅需维护资源文件的内部代码,操作系统需要维护的代码量大大降低。

【技术实现步骤摘要】
一种应用程序调用资源文件的方法及装置
本申请涉及应用程序开发
,尤其涉及一种应用程序调用资源文件的方法及装置。
技术介绍
通常在构建操作系统的过程中会将各个依赖库(AndroidArchive,AAR)打包成APK(Androidapplicationpackage,Android应用程序包),每个依赖库对应不同的功能,实现依赖库功能的代码被存储于依赖库的资源文件中,开发应用程序时,通过调用不同的资源文件,以实现应用程序的不同功能。为了完善应用程序对应的功能,相应的,需要修改应用程序所调用的资源文件的内部代码,通常,每个应用程序在操作系统中对应的配置代码是不同的,应用程序调用目标依赖库的调用代码就写在对应的配置代码中,通常,这种调用代码包含目标依赖库中资源文件的文件名称,这样,通过调用该文件名称就可以调用目标依赖库中的资源文件。如果需要对该目标依赖库对应的功能进行修改,通常,并不是直接修改资源文件的内部代码,而是在调用修改后的目标依赖库的应用程序所对应的配置代码中插入与修改的功能对应的代码,同时配合目标依赖库的资源文件,以实现对目标依赖库的功能的修改。对于同样调用该目标依赖库,但是不需要修改目标依赖库的功能的应用程序,则无需修改其对应的配置代码。但是,针对多个应用程序同时调用同一修改后的目标依赖库的情况,如果采用上述方式对目标依赖库的功能进行修改,则每一次修改的结果仅能影响被修改的配置代码所对应的应用程序,而无法影响其他调用该目标依赖库的应用程序,如果其他调用该修改后的目标依赖库,则也需要参照上述过程在修改对应的配置代码。可见,上述通过在应用程序对应的配置代码中修改代码,而应用程序继续调用未修改内部代码的资源文件,以修改目标依赖库的功能的方式会大大增加操作系统所需要维护的代码量。
技术实现思路
本申请提供了一种应用程序调用资源文件的方法及装置,以降低修改依赖库时操作系统所需维护的代码量。第一方面,本申请提供了一种应用程序调用资源文件的方法,应用于目标应用程序所在的操作系统,包括:从所述操作系统的配置文件中获取目标依赖库对应的资源文件,所述配置文件为保存用于构建所述操作系统的代码的文件,所述目标依赖库为所述目标应用程序与其他应用程序同时调用的依赖库;对所述资源文件执行复制,以得到内部代码相同的两份原始资源文件;将两份所述原始资源文件中任一所述原始资源文件的旧文件名更改为新文件名,得到一份带有新文件名的原始资源文件,所述旧文件名为所述操作系统中所述目标应用程序与其他应用程序同时调用所述目标依赖库的所述原始资源文件时所使用的文件名;修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件,以使所述目标应用程序通过所述旧文件名调用所述修改后的资源文件;在接收到所述目标应用程序调用成功的反馈信息后,删除所述修改后的资源文件,并将所述带有新文件名的原始资源文件的文件名更改为所述旧文件名,以使所述其他应用程序通过所述旧文件名调用所述原始资源文件。在本专利技术实施例第一方面一种可能的实现方式中,所述从目标应用程序所在操作系统的配置文件中获取目标依赖库对应的资源文件包括:获取所述配置文件中的缓存文件,所述缓存文件用于存储依赖库;按照所述目标依赖库的文件名称从所述缓存文件中获取所述目标依赖库;解压所述目标依赖库,得到所述目标依赖库包含的文件;从所述文件中获取资源文件,所述资源文件为文件名中带有预设后缀的文件。在本专利技术实施例第一方面一种可能的实现方式中,所述修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件包括:对照白名单确定所述原始资源文件中内部代码中的待修改代码,所述白名单为包含目标依赖库修改要求的列表;根据所述白名单中的目标依赖库修改要求,修改所述待修改代码,得到修改后的资源文件。在本专利技术实施例第一方面一种可能的实现方式中,所述根据所述白名单中的目标依赖库修改要求,修改所述待修改代码,得到修改后的资源文件包括:所述目标依赖库修改要求为增加新的依赖库功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中增加相应的代码;或者,所述目标依赖库修改要求为删除所述目标依赖库中的原有功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中删除相应的代码;或者,所述目标依赖库修改要求为修复所述目标依赖库的原有功能的错误,根据所述白名单中的目标依赖库修改要求,将所述待修改代码替换为相应的代码。第二方面,本申请提供了一种应用程序调用资源文件的装置,应用于目标应用程序所在的操作系统,包括:获取单元,用于从所述操作系统的配置文件中获取目标依赖库对应的资源文件,所述配置文件为保存用于构建所述操作系统的代码的文件,所述目标依赖库为所述目标应用程序与其他应用程序同时调用的依赖库;复制单元,用于对所述资源文件执行复制,以得到内部代码相同的两份原始资源文件;重命名单元,用于将两份所述原始资源文件中任一所述原始资源文件的旧文件名更改为新文件名,得到一份带有新文件名的原始资源文件,所述旧文件名为所述操作系统中所述目标应用程序与其他应用程序同时调用所述目标依赖库的所述原始资源文件时所使用的文件名;修改单元,用于修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件,以使所述目标应用程序通过所述旧文件名调用所述修改后的资源文件;删除单元,用于在接收到所述目标应用程序调用成功的反馈信息后,删除所述修改后的资源文件,并将所述带有新文件名的原始资源文件的文件名更改为所述旧文件名,以使所述其他应用程序通过所述旧文件名调用所述原始资源文件。。在本专利技术实施例第二方面一种可能的实现方式中,所述获取单元包括:缓存文件获取单元,用于获取所述配置文件中的缓存文件,所述缓存文件用于存储依赖库;目标依赖库获取单元,用于按照所述目标依赖库的文件名称从所述缓存文件中获取所述目标依赖库;解压单元,用于解压所述目标依赖库,得到所述目标依赖库包含的文件;资源文件获取单元,用于从所述文件中获取资源文件,所述资源文件为文件名中带有预设后缀的文件。在本专利技术实施例第二方面一种可能的实现方式中,所述修改单元包括:对照单元,用于对照白名单确定所述原始资源文件的内部代码中的待修改代码,所述白名单为包含目标依赖库修改要求的列表;代码修改单元,用于根据所述白名单中的目标依赖库修改要求,修改所述待修改代码,得到修改后的资源文件。在本专利技术实施例第二方面一种可能的实现方式中,所述代码修改单元包括:代码增加单元,用于所述目标依赖库修改要求为增加新的依赖库功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中增加相应的代码;代码删除单元,用于所述目标依赖库修改要求为删除所述目标依赖库中的原有功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中删除相应的代码;代码替本文档来自技高网
...

【技术保护点】
1.一种应用程序调用资源文件的方法,应用于目标应用程序所在的操作系统,其特征在于,包括:从所述操作系统的配置文件中获取目标依赖库对应的资源文件,所述配置文件为保存用于构建所述操作系统的代码的文件,所述目标依赖库为所述目标应用程序与其他应用程序同时调用的依赖库;/n对所述资源文件执行复制,以得到内部代码相同的两份原始资源文件;/n将两份所述原始资源文件中任一所述原始资源文件的旧文件名更改为新文件名,得到一份带有新文件名的原始资源文件,所述旧文件名为所述操作系统中所述目标应用程序与其他应用程序同时调用所述目标依赖库的所述原始资源文件时所使用的文件名;/n修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件,以使所述目标应用程序通过所述旧文件名调用所述修改后的资源文件;/n在接收到所述目标应用程序调用成功的反馈信息后,删除所述修改后的资源文件,并将所述带有新文件名的原始资源文件的文件名更改为所述旧文件名,以使所述其他应用程序通过所述旧文件名调用所述原始资源文件。/n

【技术特征摘要】
1.一种应用程序调用资源文件的方法,应用于目标应用程序所在的操作系统,其特征在于,包括:从所述操作系统的配置文件中获取目标依赖库对应的资源文件,所述配置文件为保存用于构建所述操作系统的代码的文件,所述目标依赖库为所述目标应用程序与其他应用程序同时调用的依赖库;
对所述资源文件执行复制,以得到内部代码相同的两份原始资源文件;
将两份所述原始资源文件中任一所述原始资源文件的旧文件名更改为新文件名,得到一份带有新文件名的原始资源文件,所述旧文件名为所述操作系统中所述目标应用程序与其他应用程序同时调用所述目标依赖库的所述原始资源文件时所使用的文件名;
修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件,以使所述目标应用程序通过所述旧文件名调用所述修改后的资源文件;
在接收到所述目标应用程序调用成功的反馈信息后,删除所述修改后的资源文件,并将所述带有新文件名的原始资源文件的文件名更改为所述旧文件名,以使所述其他应用程序通过所述旧文件名调用所述原始资源文件。


2.根据权利要求1所述的方法,其特征在于,所述从所述操作系统的配置文件中获取目标依赖库对应的资源文件包括:
获取所述配置文件中的缓存文件,所述缓存文件用于存储依赖库;
按照所述目标依赖库的文件名称从所述缓存文件中获取所述目标依赖库;
解压所述目标依赖库,得到所述目标依赖库包含的文件;
从所述文件中获取资源文件,所述资源文件为文件名中带有预设后缀的文件。


3.根据权利要求1所述的方法,其特征在于,所述修改所述旧文件名对应的所述原始资源文件的内部代码,得到修改后的资源文件包括:
对照白名单确定所述原始资源文件的内部代码中的待修改代码,所述白名单为包含目标依赖库修改要求的列表;
根据所述白名单中的目标依赖库修改要求,修改所述待修改代码,得到修改后的资源文件。


4.根据权利要求3所述的方法,其特征在于,所述根据所述白名单中的目标依赖库修改要求,修改所述待修改代码,得到修改后的资源文件包括:
所述目标依赖库修改要求为增加新的依赖库功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中增加相应的代码;
或者,所述目标依赖库修改要求为删除所述目标依赖库中的原有功能,根据所述白名单中的目标依赖库修改要求,在所述待修改代码中删除相应的代码;
或者,所述目标依赖库修改要求为修复所述目标依赖库的原有功能的错误,根据所述白名单中的目标依赖库修改要求,将所述待修改代码替换为相应的代码。


5.一种应用程序调用资源文件的装置,应用于目标应用程序所在的操作系统,其特征在于,包括:
获取单元,用于从所述操作系统的配置文件中获取目标依赖库对应的资源文件,所述配置文件为保存用于构建所述操作系统的代码的文件,所述目标依赖库为所述目标应用程序与其他应用程序...

【专利技术属性】
技术研发人员:胡昊
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1