一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于控件的触控响应代码生成方法、装置、设备及介质与流程

2022-09-08 00:11:59 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种用于控件的触控响应代码生成方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.在用户使用android应用的时候,在点击页面控件(如按钮)时,经常会出现点击过快且多次点击同一控件的情况,一方面可能是由于应用或手机当前有些卡顿,另一方面也可能是由于控件没有设置点击时的状态(例如:改变按钮颜色、按钮放大效果或者显示一个加载框),导致用户误认为没有点击到当前按钮,所以才出现被重复点击的问题。
3.现有技术中,生成防重的响应代码的方式主要是是在每个控件中设置监听函数,在监听函数中判断点击是否为重复点击,但这种实现方式需要在每个点击事件中都需要创建监听逻辑,代码的生成效率不高,生成的代码过于冗余,进而导致代码的运行效率也不高。


技术实现要素:

4.本发明提供一种用于控件的触控响应代码生成方法、装置、电子设备及可读存储介质,其主要目的在于提高防重复触控的响应代码的生成效率。
5.为实现上述目的,本发明提供的一种用于控件的触控响应代码生成方法,包括:
6.将kotlin语言库导入至目标android开发项目中;
7.在所述目标android开发项目中创建kotlin开发语言的工具类文件;
8.利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;
9.在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;
10.将所述工具类文件打包,生成可执行的触控响应代码。
11.可选地,所述生成可执行的触控响应代码之后,所述方法还包括:
12.向远端代码版本管理器发送访问请求,所述访问请求包含加密的请求标识;
13.当接收到所述远端代码版本管理器认证所述请求标识之后返回的传输许可指令时,将所述可执行的触控响应代码传输至所述远端代码版本管理器。
14.可选地,所述将所述可执行的触控响应代码传输至所述远端代码版本管理器,包括:
15.将所述可执行的触控响应代码划分为若干子传输包;
16.将每个子传输包以单独的线程形式传输至所述远端代码版本管理器。
17.可选地,所述将每个子传输包以单独的线程形式传输至所述远端代码版本管理
器,包括:
18.标记所述若干子传输包的传输序号;
19.根据所述传输序号的顺序以单独的线程形式依次传输所述若干子传输包至所述远端代码版本管理器;
20.当存在网络故障时,确定已传输的子传输包和未传输的子传输包;
21.当网络故障消除后,将所述未传输的子传输包传输至所述远端代码版本管理器。
22.可选地,所述设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数之前,所述方法还包括:
23.识别多个所述子控件的控件类型和/或历史触控记录;
24.根据所述子控件的控件类型和/或历史触控记录生成每个所述子控件对应的重复点击时间阈值。
25.可选地,所述将所述工具类文件打包之前,所述方法还包括:
26.扫描所述工具类文件,获取所述工具类文件中的图片类控件;
27.根据所述图片类控件的url地址获取所述图片类控件的图片源文件;
28.识别所述图片源文件是否为满足预设条件的图片;
29.若所述图片源文件为满足预设条件的图片,执行所述将所述工具类文件打包的操作;
30.若所述图片源文件为不满足预设条件的图片,发送提醒消息,禁止执行所述将所述工具类文件打包的操作。
31.可选地,所述识别所述图片源文件是否为满足预设条件的图片,包括:
32.通过训练的图像识别模型识别所述图片源文件是否包含非法信息;
33.若所述图片源文件包含非法信息,确定所述图片源文件为不满足预设条件的图片;
34.若所述图片源文件未包含非法信息,确定所述图片源文件为满足预设条件的图片。
35.为了解决上述问题,本发明还提供一种用于控件的触控响应代码生成装置,所述装置包括:
36.导入模块,用于将kotlin语言库导入至目标android开发项目中;
37.第一创建模块,用于在所述目标android开发项目中创建kotlin开发语言的工具类文件;
38.第二创建模块,用于利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;
39.设置模块,用于在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;
40.打包模块,用于将所述工具类文件打包,生成可执行的触控响应代码。
41.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
42.存储器,存储至少一个计算机程序;及
43.处理器,执行所述存储器中存储的计算机程序以实现上述所述的用于控件的触控响应代码生成方法。
44.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的用于控件的触控响应代码生成方法。
45.本发明通过将kotlin语言库导入至目标android开发项目中;在所述目标android开发项目中创建kotlin开发语言的工具类文件;利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;将所述工具类文件打包,生成可执行的触控响应代码。通过创建父控件的用于防重复触控操作的内联函数,进而设置多个子控件,就可以使得每个子控件也能进行防重复触控操作,无需在每个子控件中写入进行防重复触控操作的逻辑,提高代码的生成效率。同时,也能提高代码的简洁性,和所生成的代码的运行效率。因此,本发明实现了提高防重复触控的响应代码的生成效率的目的。
附图说明
46.图1为本发明一实施例提供的用于控件的触控响应代码生成方法的流程示意图;
47.图2为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
48.图3为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
49.图4为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
50.图5为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
51.图6为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
52.图7为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
53.图8为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
54.图9为本发明一实施例提供的用于控件的触控响应代码生成装置的功能模块图;
55.图10为本发明一实施例提供的实现所述用于控件的触控响应代码生成方法的电子设备的结构示意图。
56.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
57.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
58.本技术实施例提供一种用于控件的触控响应代码生成方法。所述用于控件的触控响应代码生成方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述用于控件的触控响应代码生成方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
59.参照图1所示,为本发明一实施例提供的用于控件的触控响应代码生成方法的流程示意图。在本实施例中,所述用于控件的触控响应代码生成方法包括以下步骤s1-s5:
60.s1、将kotlin语言库导入至目标android开发项目中。
61.本实施例中,kotlin是一种静态类型编程语言。具体的,kotlin可以编译成java字节码,进而能够在没有jvm的设备上运行。本实施例中,将kotlin语言库导入至目标android开发项目中,可以使目标android开发项目中能够基于kotlin语言进行代码生成。
62.本实施例中,目标android开发项目是待开始开发或已开始开发的android开发项目,该android开发项目中要进行触控响应代码的生成。
63.具体的,可以获取目标android开发项目的路径,再通过导入函数和目标android开发项目的路径将kotlin语言库导入至目标android开发项目中。
64.s2、在所述目标android开发项目中创建kotlin开发语言的工具类文件。
65.本实施例中,工具类文件可以为一个或者多个,具体的,kotlin开发语言的工具类文件是一些用kotlin开发语言编写的工具类,用于支持kotlin语言代码生成。
66.例如,创建工具类名称为“singleclickutlis.kt”的工具类文件。
67.具体的,用生成函数可以创建kotlin开发语言的工具类文件。
68.s3、利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作。
69.本实施例中,在android开发过程中,父控件是通过类实现,具体的,各种类型的子控件通过继承view类实现,因此,这里父控件指view类,利用kotlin语言库在工具类文件中在工具类文件中创建view类的内联函数。
70.在android开发中,android页面是由不同的view类进行布局渲染的。例如:textview类,作用是显示文本数据;imageview类,作用是显示图片数据;button类,作用是页面显示的按钮,而textview类、imageview类、button类等都是继承view的子类,即view类为textview类、imageview类、button类等子控件类的父类。
71.例如,在singleclickutlis类新建setsingleclick方法,使用"inline"关键词进行修饰,声明为内联函数,则实现了在工具类文件中创建父控件的内联函数。
72.当创建父控件的内联函数之后,各个子类也可以继承父控件的内联函数,从而实现内联函数的方法。
73.本实施例中,创建的内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在间隔触发时间小于重复点击时间阈值时不进行响应操作,在间隔触发时间大于重复点击时间阈值时进行响应操作。
74.具体的,本实施例中,内联函数用于对重复的触控操作(即小于重复点击时间阈值的触控操作)不响应,以及对非重复的触控操作(即大于重复点击时间阈值的触控操作)进行响应。由于创建的父控件的内联函数可以实现实现防重复触控操作。
75.例如,以下为生成的父控件的内联函数的示例:
[0076][0077]
在上述内联函数中,函数是view类的方法setsingleclick,该内联函数有两个参数,在该内联函数内通过setonclicklistener方法实现了监听触控操作,在监听触控操作时,当当前触控时间time2与前一次触控时间time1的时间差大于defendtime时,才通过onclick.invoke(it)实现响应该触控操作,否则不响应该触控操作。
[0078]
s4、在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值。
[0079]
本实施例中,父控件的子控件为需要进行防触控操作设置的任意子控件,如多个button按钮。
[0080]
本实施例中,设置多个子控件调用父控件的内联函数之后,则可以实现多个子控件可以在运行时初始化该内联函数进而运行该内联函数实现监听和防触控操作,无需单独对各个子控件生成监听函数以及防触控操作的逻辑代码。
[0081]
本实施例中,每个子控件调用内联函数时传递给所述内联函数的参数。例如,button1传递的参数为1s,button2传递给内联函数的参数为2s。
[0082]
进一步的,参数还可以包括响应操作参数。
[0083]
例如,以下为已设置的某个子控件调用父控件的内联函数的示例:
[0084]
btn_view.setsingleclick(1000,)
[0085]
上述子控件为btn_view,设置该btn_view调用父控件的内联函数setsingleclick,并传递参数1000,即重复点击时间阈值为1000ms,在运行该代码时,将判
断该btn的至少两次点击之间的事件是否超过1000ms,若针对该btn的两次点击之间的事件超过1000ms,则响应该点击操作,若未超过1000ms,则不响应该点击操作。
[0086]
请参见图2,图2为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图。
[0087]
进一步的,本实施例中,所述设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数之前,所述方法还包括以下步骤s41-s42:
[0088]
s41、识别多个所述子控件的控件类型和/或历史触控记录;
[0089]
s42、根据所述子控件的控件类型和/或历史触控记录生成每个所述子控件对应的重复点击时间阈值。
[0090]
本实施例中,根据控件的不同类型,可以生成相同或不同的重复点击时间阈值。例如,对于button类型的控件生成重复点击时间阈值为1s,对于图片类型的控件生成重复点击时间阈值为2s。
[0091]
或者,本实施例中,根据每个子控件的历史触控记录,生成相同或不同的重复点击时间阈值。例如,从历史触控记录中获取子控件的所有历史触控点击时间间隔,计算子控件的平均触控点击时间间隔,确定该平均触控点击时间间隔为该子控件的重复点击时间阈值。
[0092]
s5、将所述工具类文件打包,生成可执行的触控响应代码。
[0093]
本实施例中,可以通过打包函数将工具类文件打包,生成的可执行的触控响应代码可以是“.exe”格式的触控响应代码。
[0094]
请参见图3,图3为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0095]
进一步的,所述生成可执行的触控响应代码之后,所述方法还包括响应子控件的操作,具体的,所述方法还包括s51-s56:
[0096]
s51、初始化子控件,调用所述子控件的父控件的内联函数,并将预设的防重复点击时间参数传输至所述内联函数;
[0097]
s52、执行所述内联函数中的监听函数监听是否存在针对所述子控件的触发操作;
[0098]
s53、当监听到存在针对所述子控件的触发操作时,获取所述触发操作的第一触发时间和所述触发操作之前的前向触发操作的第二触发时间;
[0099]
s54、执行所述监听函数判断所述第一时间与所述第二时间的差值是否大于所述防重复点击时间参数;
[0100]
s55、若所述第一时间与所述第二时间的差值大于所述防重复点击时间参数,响应所述子控件的触发操作;
[0101]
s56、所述第一时间与所述第二时间的差值不大于所述防重复点击时间参数,不响应所述子控件的触发操作。
[0102]
本实施例中,在运行代码时,先初始化多个子控件,再通过运行内联函数实现对每个子控件的监听和防触控操作。
[0103]
请参见图4,图4为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0104]
进一步的,所述生成可执行的触控响应代码之后,所述方法还包括s57-s58:
[0105]
s57、向远端代码版本管理器发送访问请求,所述访问请求包含加密的请求标识;
[0106]
s58、当接收到所述远端代码版本管理器认证所述请求标识之后返回的传输许可指令时,将所述可执行的触控响应代码传输至所述远端代码版本管理器。
[0107]
本实施例中,远端代码版本管理器可以为部署在远端的git;加密的请求标识可以为非对称加密算法加密的请求标识,具体的,请求标识可以为发送方的id等信息。
[0108]
本实施例中,当接收到许可之后,才传输可执行的触控响应代码至远端代码版本管理器,可以提高传输的稳定性和可靠性。
[0109]
请参见图5,图5为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0110]
进一步的,所述将所述可执行的触控响应代码传输至所述远端代码版本管理器,包括以下步骤s58a-s58b:
[0111]
s58a、将所述可执行的触控响应代码划分为若干子传输包;
[0112]
s58b、将每个子传输包以单独的线程形式传输至所述远端代码版本管理器。
[0113]
本实施例中,可以根据可执行的触控响应代码的文件大小划分为若干大小相同的子传输包。
[0114]
请参见图6,图6为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0115]
进一步的,所述将每个子传输包以单独的线程形式传输至所述远端代码版本管理器,包括以下步骤s58bi-s58bj:
[0116]
s58bi、标记所述若干子传输包的传输序号;
[0117]
s58bj、根据所述传输序号的顺序以单独的线程形式依次传输所述若干子传输包至所述远端代码版本管理器;
[0118]
s58bh、当存在网络故障时,确定已传输的子传输包和未传输的子传输包;
[0119]
s58bq、当网络故障消除后,将所述未传输的子传输包传输至所述远端代码版本管理器。
[0120]
本实施例中,网络故障可以是与远端代码版本管理器断开连接,或者是网络传输速率低于预设传输速率,则网络故障消除是指与远端代码版本管理器恢复连接,或网络传输速率高于预设传输速率。
[0121]
例如,当存在网络故障无法继续传输时,根据传输日志确定已传输的子传输包(如已传输的子传输包为传输包1-5)和未传输的子传输包(如未传输的子传输包为传输包6-10),则将检测到网络已恢复连接,即网络故障消除后,将未传输的子传输包(如未传输的子传输包为传输包6-10),继续通过单独的线程的形式依次传输至所述远端代码版本管理器。
[0122]
通过本实施例,当传输过程中出现网络障碍时,无需重复传输,提高了传输的效率。
[0123]
请参见图7,图7为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0124]
进一步的,所述将所述工具类文件打包之前,所述方法还包括以下步骤s5a-s5e:
[0125]
s5a、扫描所述工具类文件,获取所述工具类文件中的图片类控件;
[0126]
s5b、根据所述图片类控件的url地址获取所述图片类控件的图片源文件;
[0127]
s5c、识别所述图片源文件是否为满足预设条件的图片;
[0128]
s5d、若所述图片源文件为满足预设条件的图片,执行所述将所述工具类文件打包的操作;
[0129]
s5e、若所述图片源文件为不满足预设条件的图片,发送提醒消息,禁止执行所述将所述工具类文件打包的操作。
[0130]
本实施例中,工具类文件中可能存在图片控件,则对图片控件的图片源文件进行识别,以提高代码生成过程中所引用的图像的质量,提高发布的代码的质量。
[0131]
其中,预设条件可以为预设的清晰度标准或者预设的大小标准。例如,判断图片源文件的清晰度是否大于预设清晰度。
[0132]
请参见图8,图8为本发明图1提供的用于控件的触控响应代码生成方法其中一个步骤的详细流程示意图;
[0133]
进一步的,所述识别所述图片源文件是否为满足预设条件的图片,包括以下步骤s5ci-s5ch:
[0134]
s5ci、通过训练的图像识别模型识别所述图片源文件是否包含非法信息;
[0135]
s5cj、若所述图片源文件包含非法信息,确定所述图片源文件为不满足预设条件的图片;
[0136]
s5ch、若所述图片源文件未包含非法信息,确定所述图片源文件为满足预设条件的图片。
[0137]
本实施例中,图像识别模型识别可以为预先训练的用于识别图像中是否存在非法信息的模型。具体的,图像识别模型可以为densenet模型、gg19模型等。
[0138]
本实施例中,非法信息可以为非法文字信息或者非法图像信息。例如,恶意的文字信息,或者恶意的包含不允许传播的图像信息。
[0139]
本发明通过将kotlin语言库导入至目标android开发项目中;在所述目标android开发项目中创建kotlin开发语言的工具类文件;利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;将所述工具类文件打包,生成可执行的触控响应代码。通过创建父控件的用于防重复触控操作的内联函数,进而设置多个子控件,就可以使得每个子控件也能进行防重复触控操作,无需在每个子控件中写入进行防重复触控操作的逻辑,提高代码的生成效率。同时,也能提高代码的简洁性,和所生成的代码的运行效率。因此,本发明实现了提高防重复触控的响应代码的生成效率的目的。
[0140]
如图9所示,是本发明一实施例提供的用于控件的触控响应代码生成装置的功能模块图。
[0141]
本发明所述用于控件的触控响应代码生成装置100可以安装于电子设备中。根据实现的功能,所述用于控件的触控响应代码生成装置100可以包括导入模块101、第一创建模块102、第二创建模块103、设置模块104及打包模块105。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序
段,其存储在电子设备的存储器中。
[0142]
在本实施例中,关于各模块/单元的功能如下:
[0143]
导入模块101,用于将kotlin语言库导入至目标android开发项目中;
[0144]
第一创建模块102,用于在所述目标android开发项目中创建kotlin开发语言的工具类文件;
[0145]
第二创建模块103,用于利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;
[0146]
设置模块104,用于在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;
[0147]
打包模块105,用于将所述工具类文件打包,生成可执行的触控响应代码。
[0148]
详细地,所述用于控件的触控响应代码生成装置100各模块的具体实施方式如下:
[0149]
步骤一、将kotlin语言库导入至目标android开发项目中。
[0150]
本实施例中,kotlin是一种静态类型编程语言。具体的,kotlin可以编译成java字节码,进而能够在没有jvm的设备上运行。本实施例中,将kotlin语言库导入至目标android开发项目中,可以使目标android开发项目中能够基于kotlin语言进行代码生成。
[0151]
本实施例中,目标android开发项目是待开始开发或已开始开发的android开发项目,该android开发项目中要进行触控响应代码的生成。
[0152]
具体的,可以获取目标android开发项目的路径,再通过导入函数和目标android开发项目的路径将kotlin语言库导入至目标android开发项目中。
[0153]
步骤二、在所述目标android开发项目中创建kotlin开发语言的工具类文件。
[0154]
本实施例中,工具类文件可以为一个或者多个,具体的,kotlin开发语言的工具类文件是一些用kotlin开发语言编写的工具类,用于支持kotlin语言代码生成。
[0155]
例如,创建工具类名称为“singleclickutlis.kt”的工具类文件。
[0156]
具体的,用生成函数可以创建kotlin开发语言的工具类文件。
[0157]
步骤三、利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作。
[0158]
本实施例中,在android开发过程中,父控件是通过类实现,具体的,各种类型的子控件通过继承view类实现,因此,这里父控件指view类,利用kotlin语言库在工具类文件中在工具类文件中创建view类的内联函数。
[0159]
在android开发中,android页面是由不同的view类进行布局渲染的。例如:textview类,作用是显示文本数据;imageview类,作用是显示图片数据;button类,作用是页面显示的按钮,而textview类、imageview类、button类等都是继承view的子类,即view类为textview类、imageview类、button类等子控件类的父类。
[0160]
例如,在singleclickutlis类新建setsingleclick方法,使用"inline"关键词进行修饰,声明为内联函数,则实现了在工具类文件中创建父控件的内联函数。
[0161]
当创建父控件的内联函数之后,各个子类也可以继承父控件的内联函数,从而实
现内联函数的方法。
[0162]
本实施例中,创建的内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在间隔触发时间小于重复点击时间阈值时不进行响应操作,在间隔触发时间大于重复点击时间阈值时进行响应操作。
[0163]
具体的,本实施例中,内联函数用于对重复的触控操作(即小于重复点击时间阈值的触控操作)不响应,以及对非重复的触控操作(即大于重复点击时间阈值的触控操作)进行响应。由于创建的父控件的内联函数可以实现实现防重复触控操作。
[0164]
例如,以下为生成的父控件的内联函数的示例:
[0165][0166]
在上述内联函数中,函数是view类的方法setsingleclick,该内联函数有两个参数,在该内联函数内通过setonclicklistener方法实现了监听触控操作,在监听触控操作时,当当前触控时间time2与前一次触控时间time1的时间差大于defendtime时,才通过onclick.invoke(it)实现响应该触控操作,否则不响应该触控操作。
[0167]
步骤四、在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值。
[0168]
本实施例中,父控件的子控件为需要进行防触控操作设置的任意子控件,如多个button按钮。
[0169]
本实施例中,设置多个子控件调用父控件的内联函数之后,则可以实现多个子控件可以在运行时初始化该内联函数进而运行该内联函数实现监听和防触控操作,无需单独对各个子控件生成监听函数以及防触控操作的逻辑代码。
[0170]
本实施例中,每个子控件调用内联函数时传递给所述内联函数的参数。例如,button1传递的参数为1s,button2传递给内联函数的参数为2s。
[0171]
进一步的,参数还可以包括响应操作参数。
[0172]
例如,以下为已设置的某个子控件调用父控件的内联函数的示例:
[0173]
btn_view.setsingleclick(1000,)
[0174]
上述子控件为btn_view,设置该btn_view调用父控件的内联函数
setsingleclick,并传递参数1000,即重复点击时间阈值为1000ms,在运行该代码时,将判断该btn的至少两次点击之间的事件是否超过1000ms,若针对该btn的两次点击之间的事件超过1000ms,则响应该点击操作,若未超过1000ms,则不响应该点击操作。
[0175]
进一步的,本实施例中,所述设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数之前,还可以执行以下操作:
[0176]
识别多个所述子控件的控件类型和/或历史触控记录;
[0177]
根据所述子控件的控件类型和/或历史触控记录生成每个所述子控件对应的重复点击时间阈值。
[0178]
本实施例中,根据控件的不同类型,可以生成相同或不同的重复点击时间阈值。例如,对于button类型的控件生成重复点击时间阈值为1s,对于图片类型的控件生成重复点击时间阈值为2s。
[0179]
或者,本实施例中,根据每个子控件的历史触控记录,生成相同或不同的重复点击时间阈值。例如,从历史触控记录中获取子控件的所有历史触控点击时间间隔,计算子控件的平均触控点击时间间隔,确定该平均触控点击时间间隔为该子控件的重复点击时间阈值。
[0180]
步骤五、将所述工具类文件打包,生成可执行的触控响应代码。
[0181]
本实施例中,可以通过打包函数将工具类文件打包,生成的可执行的触控响应代码可以是“.exe”格式的触控响应代码。
[0182]
进一步的,所述生成可执行的触控响应代码之后,还执行响应子控件的操作,具体的,执行以下操作:
[0183]
初始化子控件,调用所述子控件的父控件的内联函数,并将预设的防重复点击时间参数传输至所述内联函数;
[0184]
执行所述内联函数中的监听函数监听是否存在针对所述子控件的触发操作;
[0185]
当监听到存在针对所述子控件的触发操作时,获取所述触发操作的第一触发时间和所述触发操作之前的前向触发操作的第二触发时间;
[0186]
执行所述监听函数判断所述第一时间与所述第二时间的差值是否大于所述防重复点击时间参数;
[0187]
若所述第一时间与所述第二时间的差值大于所述防重复点击时间参数,响应所述子控件的触发操作;
[0188]
所述第一时间与所述第二时间的差值不大于所述防重复点击时间参数,不响应所述子控件的触发操作。
[0189]
本实施例中,在运行代码时,先初始化多个子控件,再通过运行内联函数实现对每个子控件的监听和防触控操作。
[0190]
进一步的,所述生成可执行的触控响应代码之后,还执行以下操作:
[0191]
向远端代码版本管理器发送访问请求,所述访问请求包含加密的请求标识;
[0192]
当接收到所述远端代码版本管理器认证所述请求标识之后返回的传输许可指令时,将所述可执行的触控响应代码传输至所述远端代码版本管理器。
[0193]
本实施例中,远端代码版本管理器可以为部署在远端的git;加密的请求标识可以为非对称加密算法加密的请求标识,具体的,请求标识可以为发送方的id等信息。
[0194]
本实施例中,当接收到许可之后,才传输可执行的触控响应代码至远端代码版本管理器,可以提高传输的稳定性和可靠性。
[0195]
进一步的,所述将所述可执行的触控响应代码传输至所述远端代码版本管理器,包括:
[0196]
将所述可执行的触控响应代码划分为若干子传输包;
[0197]
将每个子传输包以单独的线程形式传输至所述远端代码版本管理器。
[0198]
本实施例中,可以根据可执行的触控响应代码的文件大小划分为若干大小相同的子传输包。
[0199]
进一步的,所述将每个子传输包以单独的线程形式传输至所述远端代码版本管理器,包括:
[0200]
标记所述若干子传输包的传输序号;
[0201]
根据所述传输序号的顺序以单独的线程形式依次传输所述若干子传输包至所述远端代码版本管理器;
[0202]
当存在网络故障时,确定已传输的子传输包和未传输的子传输包;
[0203]
当网络故障消除后,将所述未传输的子传输包传输至所述远端代码版本管理器。
[0204]
本实施例中,网络故障可以是与远端代码版本管理器断开连接,或者是网络传输速率低于预设传输速率,则网络故障消除是指与远端代码版本管理器恢复连接,或网络传输速率高于预设传输速率。
[0205]
例如,当存在网络故障无法继续传输时,根据传输日志确定已传输的子传输包(如已传输的子传输包为传输包1-5)和未传输的子传输包(如未传输的子传输包为传输包6-10),则将检测到网络已恢复连接,即网络故障消除后,将未传输的子传输包(如未传输的子传输包为传输包6-10),继续通过单独的线程的形式依次传输至所述远端代码版本管理器。
[0206]
通过本实施例,当传输过程中出现网络障碍时,无需重复传输,提高了传输的效率。
[0207]
进一步的,所述将所述工具类文件打包之前,还执行以下操作:
[0208]
扫描所述工具类文件,获取所述工具类文件中的图片类控件;
[0209]
根据所述图片类控件的url地址获取所述图片类控件的图片源文件;
[0210]
识别所述图片源文件是否为满足预设条件的图片;
[0211]
若所述图片源文件为满足预设条件的图片,执行所述将所述工具类文件打包的操作;
[0212]
若所述图片源文件为不满足预设条件的图片,发送提醒消息,禁止执行所述将所述工具类文件打包的操作。
[0213]
本实施例中,工具类文件中可能存在图片控件,则对图片控件的图片源文件进行识别,以提高代码生成过程中所引用的图像的质量,提高发布的代码的质量。
[0214]
其中,预设条件可以为预设的清晰度标准或者预设的大小标准。例如,判断图片源文件的清晰度是否大于预设清晰度。
[0215]
进一步的,所述识别所述图片源文件是否为满足预设条件的图片,包括:
[0216]
通过训练的图像识别模型识别所述图片源文件是否包含非法信息;
[0217]
若所述图片源文件包含非法信息,确定所述图片源文件为不满足预设条件的图
片;
[0218]
若所述图片源文件未包含非法信息,确定所述图片源文件为满足预设条件的图片。
[0219]
本实施例中,图像识别模型识别可以为预先训练的用于识别图像中是否存在非法信息的模型。具体的,图像识别模型可以为densenet模型、gg19模型等。
[0220]
本实施例中,非法信息可以为非法文字信息或者非法图像信息。例如,恶意的文字信息,或者恶意的包含不允许传播的图像信息。
[0221]
本发明通过将kotlin语言库导入至目标android开发项目中;在所述目标android开发项目中创建kotlin开发语言的工具类文件;利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;将所述工具类文件打包,生成可执行的触控响应代码。通过创建父控件的用于防重复触控操作的内联函数,进而设置多个子控件,就可以使得每个子控件也能进行防重复触控操作,无需在每个子控件中写入进行防重复触控操作的逻辑,提高代码的生成效率。同时,也能提高代码的简洁性,和所生成的代码的运行效率。因此,本发明实现了提高防重复触控的响应代码的生成效率的目的。
[0222]
如图10所示,是本发明一实施例提供的实现用于控件的触控响应代码生成方法的电子设备的结构示意图。
[0223]
所述电子设备可以包括处理器10、存储器11、通信接口12和总线13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如用于控件的触控响应代码生成程序。
[0224]
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如用于控件的触控响应代码生成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0225]
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如用于控件的触控响应代码生成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
[0226]
所述通信接口12用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
[0227]
所述总线13可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线13可以分为地址总线、数据总线、控制总线等。所述总线13被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
[0228]
图10仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图10示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0229]
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
[0230]
进一步地,所述电子设备还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。
[0231]
可选地,该电子设备还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
[0232]
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0233]
所述电子设备中的所述存储器11存储的用于控件的触控响应代码生成程序是多个指令的组合,在所述处理器10中运行时,可以实现:
[0234]
将kotlin语言库导入至目标android开发项目中;
[0235]
在所述目标android开发项目中创建kotlin开发语言的工具类文件;
[0236]
利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;
[0237]
在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,
并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;
[0238]
将所述工具类文件打包,生成可执行的触控响应代码。
[0239]
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
[0240]
进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
[0241]
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
[0242]
将kotlin语言库导入至目标android开发项目中;
[0243]
在所述目标android开发项目中创建kotlin开发语言的工具类文件;
[0244]
利用所述kotlin语言库在所述工具类文件中创建父控件的内联函数,所述内联函数用于监听触控操作以及判断触控操作的间隔触发时间是否小于重复点击时间阈值并在所述间隔触发时间小于所述重复点击时间阈值时不进行响应操作;
[0245]
在所述工具类文件中设置所述父控件的多个子控件调用所述父控件的内联函数,并设置多个所述子控件调用所述内联函数时传递给所述内联函数的参数,所述参数包括预生成的重复点击时间阈值;
[0246]
将所述工具类文件打包,生成可执行的触控响应代码。
[0247]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0248]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0249]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0250]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0251]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0252]
本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、
延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
[0253]
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0254]
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0255]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0256]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献