安卓编译期API替换方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:35265853 阅读:21 留言:0更新日期:2022-10-19 10:27
本发明专利技术公开了一种安卓编译期API替换方法,应用于软件开发技术领域。本发明专利技术提供的方法包括:将目标API的注解和对应的替换API的注解添加到目标安卓项目的预设第一目标文件;将目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件;新建第一代码转换工具子类,以及第二代码转换工具子类,所述第一代码转换工具子类和所述第二代码转换工具子类分别继承预设构建工具中的代码转换工具类;对所述目标安卓项目进行编译;使用所述第一代码转换工具子类扫描所述预设第二目标文件,生成包含所述目标API和对应的替换API的第一配置文件;检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述目标API,则将所述代码中对应的API替换成所述替换API。代码中对应的API替换成所述替换API。代码中对应的API替换成所述替换API。

【技术实现步骤摘要】
安卓编译期API替换方法、装置、计算机设备及存储介质


[0001]本专利技术涉及软件开发
,尤其涉及一种安卓编译期API替换方法、装置、计算机设备及存储介质。

技术介绍

[0002]在软件开发
,移动应用程序审核组织对于移动设备上隐私信息的获取审查十分严格,对于在没有经过用户允许的情况下获取移动设备上隐私信息的移动应用程序给与严重的处罚。所以移动应用程序的开发人员在发布前需要对移动应用程序的隐私信息获取情况进行自查,现阶段对于移动应用程序隐私信息获取的问题的自查都是基于对编译完成的移动应用程序安装包文件的分析,是属于事后分析的方法,并不能在移动应用程序安装包文件生成前将隐私信息获取问题定位并解决。

技术实现思路

[0003]本专利技术实施例提供一种安卓编译期API替换方法、装置、计算机设备及存储介质,以解决现有技术中无法在安卓应用编译期进行API替换的问题。
[0004]本申请的第一方面,提供一种安卓编译期API替换方法,包括:
[0005]将目标API的注解和对应的替换API的注解按照预设的注解定义规则添加到目标安卓项目的预设第一目标文件;
[0006]使用所述第一目标文件包含的所述目标API的注解和所述替换API的注解将至少一个目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件;
[0007]在所述目标安卓项目中新建所述第二目标文件的第一代码转换工具子类,以及对代码进行API替换处理的第二代码转换工具子类,所述第一代码转换工具子类和所述第二代码转换工具子类分别继承预设构建工具中的代码转换工具类;
[0008]运行所述目标安卓项目中的编译命令,使用预设的编译环境对所述目标安卓项目进行编译;
[0009]使用所述第一代码转换工具子类扫描所述预设第二目标文件,根据所述注解定义规则生成包含所述目标API和对应的替换API的第一配置文件;
[0010]使用所述第二代码转换工具子类检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述第一配置文件中的所述目标API,则根据预设第一替换规则将所述代码中对应的API替换成所述替换API。
[0011]本申请的第二方面,提供一种安卓编译期API替换装置,包括:
[0012]第一目标文件模块,用于将目标API的注解和对应的替换API的注解按照预设的注解定义规则添加到目标安卓项目的预设第一目标文件;
[0013]第二目标文件模块,用于使用所述第一目标文件包含的所述目标API的注解和所述替换API的注解将至少一个目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件;
[0014]代码转换工具子类模块,用于在所述目标安卓项目中新建所述第二目标文件的第一代码转换工具子类,以及对代码进行API替换处理的第二代码转换工具子类,所述第一代码转换工具子类和所述第二代码转换工具子类分别继承预设构建工具中的代码转换工具类;
[0015]代码编译模块,用于运行所述目标安卓项目中的编译命令,使用预设的编译环境对所述目标安卓项目进行编译;
[0016]第一配置文件模块,用于使用所述第一代码转换工具子类扫描所述预设第二目标文件,根据所述注解定义规则生成包含所述目标API和对应的替换API的第一配置文件;
[0017]API替换模块,用于使用所述第二代码转换工具子类检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述第一配置文件中的所述目标API,则根据预设第一替换规则将所述代码中对应的API替换成所述替换API。
[0018]本申请的第三方面,提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述安卓编译期API替换方法的步骤。
[0019]本申请的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述安卓编译期API替换方法的步骤。
[0020]上述安卓编译期API替换方法、装置、计算机设备及存储介质,通过将将目标API的注解和对应的替换API的注解添加到目标安卓项目的预设第一目标文件,将目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件,同时,新建第一代码转换工具子类以及第二代码转换工具子类。然后,在对所述目标安卓项目进行编译期间,使用所述第一代码转换工具子类扫描所述预设第二目标文件,生成包含所述目标API和对应的替换API的第一配置文件,同时,检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述目标API,则将所述代码中对应的API替换成所述替换API。达到了在所述目标安卓项目编译期间对目标API进行替换的目的,能够在所述目标安卓项目生成安装包文件之前,对所述目标安卓项目中的目标API进行替换,即实现了在所述安卓项目生成安装包文件之前,对所述目标安卓项目中涉及了用户隐私信息访问的目标API进行替换,实现了在所述目标安卓项目生成安装包文件之前进行用户隐私信息访问的检查和修改。
附图说明
[0021]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本专利技术一实施例中安卓编译期API替换方法的一应用环境示意图;
[0023]图2是本专利技术一实施例中安卓编译期API替换方法的一流程图;
[0024]图3是本专利技术一实施例中安卓编译期API替换装置的结构示意图;
[0025]图4是本专利技术一实施例中计算机设备的一示意图。
具体实施方式
[0026]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]本申请提供的安卓编译期API替换方法,可应用在如图1的应用环境中。其中,计算机设备可以但不限于各种个人计算机、笔记本电脑,计算机设备还可以是服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。可以理解的是图1中的计算机设备的数量仅仅是示意性的,可以根据实际需求进行任意数量的扩展。
[0028]在一实施例中,如图2所示,提供一种安卓编译期API替换方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤S101至S106:
[0029]S101、将目标API的注解和对应的替换本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安卓编译期API替换方法,其特征在于,包括:将目标API的注解和对应的替换API的注解按照预设的注解定义规则添加到目标安卓项目的预设第一目标文件;使用所述第一目标文件包含的所述目标API的注解和所述替换API的注解将至少一个目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件;在所述目标安卓项目中新建所述第二目标文件的第一代码转换工具子类,以及对代码进行API替换处理的第二代码转换工具子类,所述第一代码转换工具子类和所述第二代码转换工具子类分别继承预设构建工具中的代码转换工具类;运行所述目标安卓项目中的编译命令,使用预设的编译环境对所述目标安卓项目进行编译;使用所述第一代码转换工具子类扫描所述预设第二目标文件,根据所述注解定义规则生成包含所述目标API和对应的替换API的第一配置文件;使用所述第二代码转换工具子类检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述第一配置文件中的所述目标API,则根据预设第一替换规则将所述代码中对应的API替换成所述替换API。2.根据权利要求1所述的安卓编译期API替换方法,其特征在于,所述将目标API的注解和对应的替换API的注解按照预设的注解定义规则添加到目标安卓项目的预设第一目标文件包括:在所述目标安卓项目的项目配置文件中添加注解工具库的依赖,并下载所述注解工具库至所述目标安卓项目;在所述目标安卓项目中,使用所述注解工具库,根据所述注解定义规则新建包含所述目标API的注解和所述替换API的注解的所述第一目标文件;在所述目标安卓项目中的项目配置文件中添加对所述第一目标文件的引用。3.根据权利要求1所述的安卓编译期API替换方法,其特征在于,所述使用所述第一目标文件包含的所述目标API的注解和所述替换API的注解将至少一个目标API和对应的替换API添加到所述目标安卓项目的预设第二目标文件包括:获取所述目标API的类型,校验所述替换API的类型是否与所述目标API的类型相同;若相同,则从所述第一目标文件中获取所述目标API的类型对应的第一注解;从所述第一目标文件中获取对应的所述替换API的类型对应的第二注解;在所述预设第二目标文件中使用所述第一注解和所述第二注解生成使用所述替换API替换所述目标API的API替换函数。4.根据权利要求1所述的安卓编译期API替换方法,其特征在于,使用所述第一代码转换工具子类扫描所述预设第二目标文件,根据所述注解定义规则生成包含所述目标API和对应的替换API的第一配置文件包括:使用所述第一代码转换工具子类获取处在编译期的所述预设第二目标文件;利用所述第二代码转换工具子类扫描所述预设第二目标文件,获取所述第二目标文件中的所述目标API的注解和所述替换API的注解;分别获取所述目标API的注解对应的所述目标API和所述替换API的注解对应的所述替换API;
将所述目标API与对应的所述替换API建立关联关系,将所述关联关系添加到所述第一配置文件。5.根据权利要求1所述的安卓编译期API替换方法,其特征在于,所述使用所述第二代码转换工具子类检测处在编译期的所述目标安卓项目的代码,若所述代码中包含所述第一配置文件中的所述目标AP...

【专利技术属性】
技术研发人员:张承庚
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:

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

1