一种基于ASM框架的安卓应用防快速点击处理方法技术

技术编号:33205708 阅读:70 留言:0更新日期:2022-04-24 00:51
本发明专利技术提供了一种基于ASM框架的安卓应用防快速点击处理方法,包括以下步骤:S1.在Android Studio中编写自定义Gradle插件,获取应用程序打包过程中的class文件;S2.利用ASM框架搜索class文件中的onClick方法;S3.在onClick方法中插入防快速点击方法;采用ASM框架,在安卓应用程序源代码编译成可执行文件的过程中,在字节码文件中加入对连续快速点击的判断处理代码,最终实现防止连续快速点击;解决了当安卓应用已经开发完毕后,再重新添加更新连续快速点击判断处理代码时容易造成遗漏,而且无法对第三方库文件添加连续快速点击判断处理代码的问题。断处理代码的问题。断处理代码的问题。

【技术实现步骤摘要】
一种基于ASM框架的安卓应用防快速点击处理方法


[0001]本专利技术涉及安卓应用开发
,特别是涉及一种基于ASM框架的安卓应用防快速点击处理方法。

技术介绍

[0002]安卓应用中,有些可点击区域,当用户点击后,需要做相应的处理,比如点击了某个按钮跳转到下一个页面。当用户连续快速的点击某个区域时,会多次触发重复的处理,造成不符合预期的结果,比如连续快速多次点击了跳转到页面的按钮,则会跳转多个重复的页面,需要按多次返回键,才能回到原来的界面,而实际上用户的本意只是要进入一次下一级的页面,并按一次返回键回到原来的界面。
[0003]为了防止快速点击影响应用程序的正常使用,当前的做法一般是软件开发人员在开发程序的时候,在点击事件的处理代码中增加对连续两次点击事件的间隔时间判断,例如当发现连续两次点击的时间短于500毫秒时,认为是用户的误操作,舍弃该次点击事件;这就要求软件开发人员在开发阶段就必须将连续快速点击的判断处理代码加入到程序中,当APP已经开发完毕后,再重新添加更新连续快速点击的代码时,容易造成遗漏,而且当项目中有用到第三方的库文件时,因为无法改动第三方库文件的源代码,所以无法添加对连续快速点击的代码判断处理。
[0004]因此,亟需一种基于ASM框架的安卓应用防快速点击处理方法,能够解决当安卓应用已经开发完毕后,再重新添加更新连续快速点击判断处理代码时容易造成遗漏,而且无法对第三方库文件添加连续快速点击判断处理代码的问题。

技术实现思路

[0005]本专利技术的目的是提供一种基于ASM框架的安卓应用防快速点击处理方法,以解决上述当安卓应用已经开发完毕后,再重新添加更新连续快速点击判断处理代码时容易造成遗漏,而且无法对第三方库文件添加连续快速点击判断处理代码的问题。
[0006]为实现上述目的,本专利技术提供了如下方案:
[0007]本专利技术提供一种基于ASM框架的安卓应用防快速点击处理方法,包括以下步骤:
[0008]S1.在Android Studio中编写自定义Gradle插件,获取应用程序打包过程中的class文件;
[0009]S2.利用ASM框架搜索class文件中的onClick方法;
[0010]S3.在onClick方法中插入防快速点击方法。
[0011]优选地,步骤S1具体包括:
[0012]S11.在Android Studio项目中新建CustomPlugin模块,在CustomPlugin模块下src\main\groovy\com\custom\plugin\目录新建PreventQuickClicksPlugin.groovy文件;
[0013]S12.在apply方法中注册Transform到项目中,在Transform方法中获取到整个项
目的目录文件,遍历整个项目的目录文件,过滤出其中的.class文件。
[0014]优选地,步骤S2具体为:
[0015]利用ASM框架的ClassVisitor类的visitMethod方法,过滤发现所有class文件中的android.view.View类的onClick方法。
[0016]优选地,步骤S3具体为:
[0017]利用ASM框架的MethodVisitor类的visitCode方法,在搜索到的onClick方法中插入防快速点击方法。
[0018]优选地,class文件还包括第三方库文件中的class文件。
[0019]本专利技术相对于现有技术取得了以下有益技术效果:
[0020]本专利技术提供的一种基于ASM框架的安卓应用防快速点击处理方法,包括以下步骤:S1.在Android Studio中编写自定义Gradle插件,获取应用程序打包过程中的class文件;S2.利用ASM框架搜索class文件中的onClick方法;S3.在onClick方法中插入防快速点击方法;采用ASM框架,在安卓应用程序源代码编译成可执行文件的过程中,在字节码文件中加入对连续快速点击的判断处理代码,最终实现防止连续快速点击;解决了当安卓应用已经开发完毕后,再重新添加更新连续快速点击判断处理代码时容易造成遗漏,而且无法对第三方库文件添加连续快速点击判断处理代码的问题。
附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为传统添加更新连续快速点击判断处理代码的方法流程图;
[0023]图2为本专利技术提供的一种基于ASM框架的安卓应用防快速点击处理方法流程图;
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]本专利技术的目的是提供一种基于ASM框架的安卓应用防快速点击处理方法,以解决当安卓应用已经开发完毕后,再重新添加更新连续快速点击判断处理代码时容易造成遗漏,而且无法对第三方库文件添加连续快速点击判断处理代码的问题。
[0026]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0027]实施例1:
[0028]本实施例提供一种基于ASM框架的安卓应用防快速点击处理方法,如图2所示,包括以下步骤:
[0029]1、在Android Studio中编写自定义Gradle插件,获取应用程序打包过程中的
class文件
[0030]在Android Studio项目中新建CustomPlugin模块,在CustomPlugin模块下src\main\groovy\com\custom\plugin\目录新建PreventQuickClicksPlugin.groovy文件。部分文件内容如下:
[0031][0032]在apply方法中注册Transform到项目中,在transform方法中可以获取到整个项目的目录文件。遍历整个项目的目录,过滤出其中的.class文件。
[0033]2、利用ASM框架,搜索class文件中的onClick方法
[0034].class文件是java代码编译后的字节码文件,有固定的格式。按照字节码规则读取文件,可以读取到方法名等各类信息。
[0035]利用ASM框架的ClassVisitor类的visitMethod方法,过滤发现所有.class文件中
的android.view.View类的onClick方法。
[0036][0037]3、在o本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ASM框架的安卓应用防快速点击处理方法,其特征在于:包括以下步骤:S1.在Android Studio中编写自定义Gradle插件,获取应用程序打包过程中的class文件;S2.利用ASM框架搜索class文件中的onClick方法;S3.在onClick方法中插入防快速点击方法。2.根据权利要求1所述的基于ASM框架的安卓应用防快速点击处理方法,其特征在于:步骤S1具体包括:S11.在Android Studio项目中新建CustomPlugin模块,在CustomPlugin模块下src\main\groovy\com\custom\plugin\目录新建PreventQuickClicksPlugin.groovy文件;S12.在apply方法中注册Transform到项目中,在Transform方法中获...

【专利技术属性】
技术研发人员:鲁霖鲁鹏飞王春海
申请(专利权)人:厦门市思芯微科技有限公司
类型:发明
国别省市:

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

1