CN117492930A - 一种脚本处理方法和装置 - Google Patents
一种脚本处理方法和装置 Download PDFInfo
- Publication number
- CN117492930A CN117492930A CN202311598304.8A CN202311598304A CN117492930A CN 117492930 A CN117492930 A CN 117492930A CN 202311598304 A CN202311598304 A CN 202311598304A CN 117492930 A CN117492930 A CN 117492930A
- Authority
- CN
- China
- Prior art keywords
- script
- information
- user
- processing
- data model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013515 script Methods 0.000 title claims abstract description 268
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 79
- 238000000034 method Methods 0.000 claims description 64
- 238000013499 data model Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000001976 improved effect Effects 0.000 abstract description 12
- 230000003252 repetitive effect Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 25
- 239000010410 layer Substances 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000010295 mobile communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提供了一种脚本处理方法和装置。该脚本处理方法应用于电子设备,电子设备的操作系统为安卓系统,包括:结合GestureDetector类和OnGestureListener、OnDoubleTapListener接口,接收用户的第一操作;使用MotionEvent类和VelocityTracker类获取第一操作的第一信息,第一信息包括第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;根据所述第一信息,生成脚本,脚本用于回放第一操作。通过本申请实施例提供的脚本处理方法,可以自动重复用户的操作,并提高重复性任务的准确性。
Description
技术领域
本申请实施例涉及电子设备领域,更具体地,涉及一种脚本处理方法和装置。
背景技术
随着近几年移动互联网的迅猛发展和基于安卓平台的智能手机、平板电脑的普及,使用安卓平台的人们的数量呈爆发式增长的趋势。
在安卓手机上,用户常常需要重复执行一系列的操作,例如社交应用的日常互动、网络平台的数据录入或者游戏中的重复任务。这些重复性动作不仅消耗时间和精力,也容易因为注意力分散而导致操作失误。目前,市面上虽然存在一些自动化工具,但大多数都存在操作录制不全面、用户界面不友好、兼容性差、精确度不高或不能在新版操作系统上稳定运行等问题。
发明内容
鉴于上述问题,本申请实施例提供了一种脚本处理方法和装置,能够精确录制和回放基于安卓系统的用户操作,可以自动重复用户的操作,并提高重复性任务的准确性。
第一方面,本申请实施例提供了一种脚本处理方法,应用于电子设备,所述电子设备的操作系统为安卓系统,该脚本处理方法包括:结合GestureDetector类和OnGestureListener、OnDoubleTapListener接口,接收用户的第一操作;使用MotionEvent类和VelocityTracker类获取所述第一操作的第一信息,所述第一信息包括所述第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;根据所述第一信息,生成脚本,所述脚本用于回放所述第一操作。
本申请实施例中,用户在电子设备上进行第一操作时,可以同时获取关于该第一操作的第一信息,其中,第一信息包括该第一操作的操作速度、位置、压力、接触面积、时间戳和持续时间中的至少一项,再根据该第一信息,生成脚本。通过获取关于用户第一操作的详细信息,第一信息包括用户操作的位置、速度、力度和时间等各个方面,这样就可以确保在执行该脚本时,与用户的原始操作尽可能一致,可以准确的重现用户的原始操作,从而提高自动化任务的准确性。
在一种可能的实施方式中,所述第一操作包括第一子操作和第二子操作,所述第一子操作和所述第二子操作之间的时间间隔满足第一阈值;使用Handler的postDelayed方法和Runnable接口实现包括所述第一子操作和所述第二子操作的所述第一操作。
本申请实施例中,第一操作可以是多个子操作组合形成的操作,例如,第一子操作可以是长按,第二子操作可以是滑动,则,用户先经过长按操作后经过一段时间后再进行滑动操作,该一段时间即为时间阈值。通过使子操作之间的时间间隔满足时间阈值,该自动化脚本能够准确地模拟用户的真实操作流程,以进一步提高自动化操作的准确性。
在一种可能的实施方式中,所述方法还包括:使用ConcurrentLinkedQueue,将所述第一信息存入缓冲区。
本申请实施例中,当用户与电子设备在高频率交互时,可以将第一信息存入缓冲区,以保证数据流的连续性和稳定性。通过设置缓冲区,缓冲区可以暂存用户操作的第一信息,减小脚本处理过程中的延迟,进而保证数据的完整性、线程安全、处理效率和性能。
在一种可能的实施方式中,所述根据所述第一信息,生成脚本,包括:根据所述第一信息,确定所述第一操作的类型;使用Operation类创建所述第一操作的数据模型,所述数据模型包括第一操作的类型和所述第一信息;根据所述数据模型,生成所述脚本。
本申请实施例中,第一操作可以是点击、滑动等,当用户对电子设备进行第一操作时,及时获取关于该第一操作的第一信息;再根据第一信息,可以判断出第一操作的具体类型。通过将第一信息和操作类型结合,形成数据模型,该数据模型包含了操作类型、位置、时间戳等属性,即准确描述了用户的每个操作,可以进一步提高脚本录制和回放的准确性。
在一种可能的实施方式中,所述根据所述数据模型,生成所述脚本,包括:使用Gson库对所述数据模型进行序列化处理和转换处理,以得到脚本模型,所述转换处理用于将所述数据模型转换为JSON字符串;根据所述脚本模型和脚本生成引擎,生成所述脚本。
本申请实施例中,将第一操作的类型和第一信息结合形成数据模型,再根据数据模型生成脚本。具体地,包括将该数据模型进行序列化处理,并将数据模型转换成JSON字符串。一方面,对数据模型进行序列化处理,可以实现数据持久化、数据传输一致和完整以及确保不同平台和编程语言之间的兼容性和互操作性;另一方面,将数据模型转换成JSON字符串,这种格式方便储存、传输和再次解析。
在一种可能的实施方式中,所述脚本为DSL脚本。
本申请实施例中,将数据模型经过序列换处理和字符串转换处理,得到脚本模型,再根据脚本模型得到脚本。通过使脚本为DSL脚本,该脚本语言简洁,易于理解,并能直接映射到用户的操作动作。
在一种可能的实施方式中,使用脚本语言解析器,将所述脚本转换为所述第一操作。
上述方案中,通过将脚本转换为用户的第一操作,可以实现脚本自动化,进而为用户节省时间,降低人力成本和改善用户体验。
在一种可能的实施方式中,所述将所述脚本转换为所述第一操作,包括:响应用户的第二操作或第一条件,调用所述脚本;其中,所述第一条件包括执行时间。
上述方案中,在用户需要时可以调用脚本,将脚本转换为用户的第一操作,实现脚本自动化。脚本可以在不同情况下被调用,例如可以是用户手动触发,用户可以通过界面元素启动脚本回放;又例如可以满足第一条件的情况下被调用,例如,第一条件为执行时,可以设定脚本在每天特定的时间运行。通过在多种情况下均可以调用脚本,提高脚本的适用场景。
在一种可能的实施方式中,所述将所述脚本转换为所述第一操作,还包括:响应第二条件,执行所述脚本;其中,所述第二条件包括所述电子设备的网络状态、充电状态或空间状态中的至少一种。
本申请实施例中,第二条件为脚本的执行条件,执行条件通常基于脚本的使用场景和目的来制定。将脚本转换为第一操作前,先考虑脚本的执行条件,即第二条件,可以使该自动化脚本处理方法更智能化。
在一种可能的实施方式中,使用JobScheduler的JobInfo.Builder设置所述第一条件或所述第二条件。
在一种可能的实施方式中,所述方法还包括:使用ServiceConnection监控AccessibilityService的连接状态,确认所述电子设备的网络连接状态;根据所述电子设备的网络连接状态,确认所述脚本处理的状态。
本申请实施例中,通过监控脚本处理的状态,可以保证自动化服务的连续性和稳定性。
在一种可能的实施方式中,所述确认所述脚本处理的状态,包括:在所述脚本处理中断的情况下,执行以下操作中的至少一项:提醒用户、提供重新连接的策略;其中,所述重新连接的策略包括重复所述脚本处理或者跳过所述脚本处理。
本申请实施例中,当脚本处理过程中断时,通过提醒用户、重新脚本处理或者跳过脚本处理,可以实现自动化脚本处理的连续性和稳定性。
在一种可能的实施方式中,所述方法还包括:使用SharedPreferences存储第二信息,所述第二信息包括所述脚本的名称、所述脚本的执行次数和所述脚本的最后一次执行时间。
本申请实施例中,通过存储脚本的第二信息,可以支持用户快速查询和访问,进而提高脚本处理的执行效率。
本申请的第二方面提供了一种脚本处理装置,应用于电子设备,所述电子设备的操作系统为安卓系统,包括:操作捕捉模块和脚本生成模块;所述操作捕捉模块用于接收用户的第一操作,并获取所述第一操作的第一信息,所述第一信息包括所述第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;所述脚本生成模块用于根据所述第一信息,生成所述脚本,所述脚本用于回放所述第一操作。
在一种可能的实施方式中,所述脚本生成模块还用于:根据所述第一信息,确定所述第一操作的类型;创建所述第一操作的数据模型,所述数据模型包括所述第一操作的类型和所述第一信息;根据所述数据模型,生成所述脚本。
在一种可能的实施方式中,所述脚本生成模块还用于:对所述数据模型进行序列化处理和转换处理,以得到脚本模型,所述转换处理用于将所述数据模型转换为JSON字符串;根据所述脚本模型,生成所述脚本。
在一种可能的实施方式中,所述装置还包括操作回放模块;所述操作回放模块用于将所述脚本转换为所述第一操作。
在一种可能的实施方式中,所述装置还包括任务调度器;所述任务调度器用于响应用户的第二操作或第一条件,调用所述脚本,其中,所述第一条件包括执行时间。
在一种可能的实施方式中,所述任务调度器还用于响应于第二条件,执行所述脚本;其中,所述第二条件包括所述电子设备的网络状态、充电状态或空闲状态中的至少一种。
在一种可能的实施方式中,所述装置还包括异常处理模块,所述异常处理模块用于确认所述电子设备的网络连接状态;根据所述电子设备的网络连接状态,确认所述脚本处理的状态。
在一种可能的实施方式中,所述异常处理模块还用于在所述脚本处理中断的情况下,执行以下操作中的至少一项:提醒用户、提供重新连接的策略;其中,所述重新连接的策略包括重复所述脚本处理或者跳过所述脚本处理。
在一种可能的实施方式中,所述装置还包括脚本存储模块;所述脚本存储模块用于存储第二信息,所述第二信息包括所述脚本的名称、所述脚本的执行次数和所述脚本的最后一次执行时间。
本申请的第三方面提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述存储器中存储的计算机指令,以使所述电子设备执行如本申请第一方面中任一实施方式所述的方法。
本申请的第四方面提供了一种芯片系统,包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行本申请第一方面中任一实施方式所述的方法。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,但并不构成对本申请的不当限定。在附图中:
图1为本申请一实施方式的电子设备的硬件结构示意图;
图2为本申请一实施方式的电子设备的软件结构示意图;
图3为本申请一实施方式的脚本处理的流程图;
图4为本申请又一实施方式的脚本处理方法的流程图;
图5为本申请一实施方式的脚本处理装置的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施方式”、“一些实施方式”、“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的方法应用于电子设备,电子设备包括但不限于手机、平板电脑、车载设备、可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、智慧屏以及其他具有显示屏的电子设备。本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1为本申请一实施方式的电子设备的硬件结构示意图。
如图1所示,电子设备100可以包括:处理器110,存储器120,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,摄像头191,显示屏192,按键193等。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用,避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
例如,处理器110与触摸传感器180E可以通过I2C总线接口通信,实现电子设备100的触摸功能。处理器110和摄像头191可以通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏192可以通过DSI接口通信,实现电子设备100的显示功能。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态等参数。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏192,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏192和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏192用于显示图像,视频等。显示屏192包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏192,N为大于1的正整数。
电子设备100可以通过ISP,摄像头191,视频编解码器,GPU,显示屏192以及应用处理器等实现拍摄功能。ISP用于处理摄像头191反馈的数据。摄像头191用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。在一些实施例中,电子设备100可以包括1个或N个摄像头191,N为大于1的正整数。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
存储器120用于存储数据和/或指令。
存储器120可以包括内部存储器。内部存储器用于存储计算机可执行程序代码,该可执行程序代码包括指令。处理器110通过运行存储在内部存储器的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用程序(比如图库、联系人等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如图像,联系人等)等。此外,内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器的指令,和/或存储在设置于处理器110中的存储器的指令,使得电子设备100执行本申请实施例中所提供的卡片分享方法。
存储器120还可以包括外部存储器,例如Micro SD卡,以扩展电子设备100的存储能力。外部存储器可以通过外部存储器接口与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音频播放,录音等。
传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,加速度传感器180C,距离传感器180D,触摸传感器180E以及其他的一些传感器等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏192。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏192,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B又称角速度传感器,可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景,例如陀螺仪能够完整监测游戏者手的位移,从而实现各种游戏操作效果,如横屏改竖屏、赛车游戏拐弯等等。
加速度传感器180C可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180C还可以用于识别电子设备100的姿态,应用于横竖屏切换,计步器等应用。
距离传感器180D,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180D测距以实现快速对焦。
触摸传感器180E,也称“触控面板”。触摸传感器180E可以设置于显示屏192,由触摸传感器180E与显示屏192组成触摸屏,也称“触控屏”。触摸传感器180E用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏192提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180E也可以设置于电子设备的表面,与显示屏192所处的位置不同。
应理解,本申请实施例中,对于传感器模块180包括的传感器类型并不作限定,传感器模块180可以包括更多或者更少的传感器,具体可以根据实际需要而定,在此不再详述。
按键193可以包括开机键,音量键等。按键193可以是机械按键,也可以是触摸式按键。电子设备100可接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
以上介绍了电子设备100可能的硬件结构示意图。电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的系统为例,示例性说明电子设备100的软件结构。
图2为本申请一实施方式的电子设备的软件结构示意图。如图2所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统运行库层以及内核层。内核层之下则为硬件层。
应用程序层可以包括一系列应用程序(application,APP)包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,电话管理器,资源管理器,通知管理器、视图系统、卡片服务引擎等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。示例性的,窗口管理器可以获取电子设备100上待显示窗口的大小,判断该待显示窗口的内容等。应理解,电子设备100的待显示窗口可以包括电子设备100的界面上正在显示的窗口,还可以包括电子设备100后台运行的一个或多个应用程序的窗口。
窗口管理器是一个服务(service),它是全局的、系统中唯一的、独立于应用程序的单独的C++服务,窗口管理器被所有应用程序公用。的窗口管理系统是基于客户端/服务端(client/service,C/S)模式的,整个窗口系统分为服务端(service)和客户端(client)两大部分。客户端即应用程序,负责请求创建窗口和使用窗口;服务端即窗口管理服务(window manager service或WindowManagerService,WMS),负责完成窗口的维护、窗口显示等。客户端并不是直接和窗口管理服务交互,而是直接和本地对象窗口管理(windowmanager或WindowManager)交互,然后由窗口管理(WindowManager)完成和窗口管理服务(WindowManagerService)的交互。对于应用来说这个交互是透明的,应用不能感知到窗口管理服务的存在。
窗口就是屏幕上的一块矩形区域,可以显示用户界面(user interface,UI)和与用户交互。在一些实施例中,窗口也可以将用户界面(即软件的操作界面)隐藏起来,在用户需要操作时再快速为用户展现应用导航和功能操作,或者根据触发的指令再度展开应用的操作界面。从系统的角度看,窗口其实是一个画布(surface)。一个屏幕可以有多个窗口,而这多个窗口的布局和顺序以及窗口动画是由窗口管理服务WMS管理的,多个画布内容混合和显示则是由SurfaceFlinger服务实现的。窗口是分层的,层级大的会覆盖在层级小的窗口上面,可以用z层级表示窗口的堆叠关系,z层级大(z层级高)的窗口覆盖在z层级小(z层级低)的窗口上面。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
系统运行库层(libraries)可以分成两部分,分别是系统库和Android运行时。
安卓运行时(Android runtime)即Android运行环境,包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库是应用程序框架的支撑,可包括多个功能模块,例如:表面管理器(surfacemanager),媒体库(media libraries),二维图形引擎(例如SGL)、三维图形处理库(例如OpenGL ES)、图像处理库等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层,用于提供操作系统的本质功能例如文件管理、内存管理、进程管理、网络协议栈等。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动、蓝牙驱动等。
现有技术大多采用辅助功能服务(Accessibility Service)进行用户操作的捕捉,并通过模拟触摸的方式来实现用户操作的自动化。这些工具监听用户的交互行为,将其转换为可执行的脚本,并能够在用户需要的时候回放这些脚本。一些自动化工作还包括定时执行、条件判断等高级功能,尽量模拟人工操作的智能化。
但是,目前的自动化技术在实现上存在一定的局限性。首先AccessibilityService的接口设计并非为复杂的操作自动化而设计,因此在实现复杂操作时可能出现不稳定的情况;其次,对于系统更新的适应性不强,一旦系统升级,就可能需要对自动化工具进行更新,造成维护成本的提高。再者,现有的工具在操作录制的准确度和稳定性上还有待提高,尤其是在高分辨率或多屏幕环境下,误差和失败的可能性更高。因此,用户界面通常不够友好,对于普通用户来说,设置自动化脚本有一定的门槛。
鉴于此,本申请实施例提供了一种脚本处理方法,该脚本处理方法可以应用于电子设备,电子设备的操作系统为安卓系统,安卓系统可以为安卓12系统。电子设备可以具有如图1和图2所示的结构。当用户启动脚本录制功能后,系统会启用该脚本处理方法。该脚本处理方法可以提高自动化脚本处理的准确性和效率,节省用户时间和提高体验感。以下实现该方法中的技术方法仅为举例说明,其同样也不构成对本申请的限制。
图3为本申请一实施方式的脚本处理的流程图。如图3所示,该脚本处理方法300包括:
S310:结合GestureDetector类和OnGestureListener、OnDoubleTapListener接口,接收用户的第一操作;
S320:使用MotionEvent类和VelocityTracker类获取第一操作的第一信息,第一信息包括第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;
S330:根据第一信息,生成脚本,脚本用于回放第一操作。
用户在电子设备上进行第一操作时,可以同时获取关于该第一操作的第一信息,其中,第一信息包括该第一操作的操作速度、位置、压力、接触面积、时间戳和持续时间中的至少一项,再根据该第一信息,生成脚本。
在一些实施方式中,可通过安卓平台提供的标准类和接口来接收用户的第一操作。其中,接收包括捕捉和识别用户的第一操作。例如,使用重写接口中的方法如onDown、onFling、onDoubleTap等可以捕捉用户的第一操作;使用GestureDetector类与OnGestureListener、OnDoubleTapListener接口结合,实现识别第一操作的识别。第一操作可以是用户的单击、滑动、双击等常见手势。
用户的第一操作可以是多个,即多点触控操作。在一些实施方式中,可利用PointerProperties和PointerCoords对象捕捉每个触点的每个第一信息。这些类结合MotionEvent的getPointerCount和getPointerId方法,可以详尽记录多点触控操作的每一细节。
在一些实施方式中,可通过MotionEvent类记录每个第一操作的第一信息,包括位置(getX/getY)、压力(getPressure)、触摸面积(getSize)。需要说明的是,当只获取第一信息中的一项时,可能不足以重现用户的操作意图,随着所获取的第一信息的种类越多,越可以帮助理解用户的第一操作的更多细节,有助于更精准的重现用户的第一操作。
记录第一操作的速度可以辨别用户的操作类型,例如慢速的拖动和快速的滑动。在一些实施方式中,可利用VelocityTracker类用于追踪触摸事件的速度,通过向VelocityTracker实例添加MotionEvent,并调用computeCurrentVelocity方法,可以得到触摸点的速度,这对于记录快速滑动手势至关重要。
时间戳为用户启动脚本录制功能后,到用户的第一操作被接收的毫秒数。该时间戳反映了第一操作发生的相对时间,而不受系统时间的改变(如失去变化或用户手动调整时间)的影响。通过这种方式,可以确保用户的每个操作都有一个准确且一致的时间参考,这对于后续的脚本回放和操作同步都非常重要。在一些实施方式中,可利用MotionEvent类、SystemClock.elapsedRealtime获取该时间戳。
在一些实施方式中,还可以利用安卓系统中的HapticFeedbackConstants为用户提供了更多的触觉反馈选项。利用View的performHapticFeedback方法,可以在捕捉到特定操作时给予用户直观的触觉反馈,增强交互体验。例如,特定操作可以为用户的点击或其他操作。
上述方案中,通过关于用户第一操作的详细信息,第一信息包括用户操作的位置、速度、力度和时间等各个方面,这样就可以确保在执行该脚本时,与用户的原始操作尽可能一致,可以准确的重现用户的原始操作,从而提高自动化任务的准确性。
在一些实施方式中,第一操作包括第一子操作和第二子操作,第一子操作和第二子操作之间的时间间隔满足第一阈值;使用Handler的postDelayed方法和Runnable接口实现包括所述第一子操作和所述第二子操作的所述第一操作。
第一操作可以是多个子操作组合形成的操作,例如,第一子操作可以是长按,第二子操作可以是滑动,则,用户先经过长按操作后经过一段时间后再进行滑动操作,该一段时间即为时间阈值。
举例来说,如果我们需要重现用户先长按屏幕、经过2秒后再开始滑动的操作,那我们需要首先记录长按操作的细节(即上述所述的第一信息),然后设定2秒的时间阈值作为时间的延迟,再记录用户的滑动操作。在该实施例中,用户的长按为第一子操作,滑动为第二子操作,2秒为时间阈值。当然,本申请对时间阈值没有特殊的限定,用户根据实际需求设置即可。
上述方案中,可利用安卓系统中Handler的postDelayed方法和Runnable接口的实现来调度和执行具有时间阈值的延时任务,从而模拟上述长按后滑动这类操作。通过使子操作之间的时间间隔满足时间阈值,该自动化脚本能够准确地模拟用户的真实操作流程,以进一步提高自动化操作的准确性。
在一些实施方式中,方法300还包括:使用ConcurrentLinkedQueue,将第一信息存入缓冲区。
缓冲区在自动化脚本中起到关键作用,主要包括:暂存用户的第一信息数据,保持数据流的连续性和稳定性,特别是在高频率交互时;确保多线程环境下的线程安全和非阻塞操作;作为数据处理和传输的中间阶段,允许对数据进行进一步处理和格式化,以及提高整体性能和减少处理延迟,特别是在复杂或资源密集的操作中。
在一些实施方式中,可以使用线程安全的ConcurrentLinkedQueue作为操作的缓冲区。
上述方案中,通过设置缓冲区,缓冲区可以暂存用户操作的第一信息,减小脚本处理过程中的延迟,进而保证数据的完整性、线程安全、处理效率和性能。
在一些实施方式中,根据第一信息,确定第一操作的类型;使用Operation类创建第一操作的数据模型,数据模型包括第一操作的类型和第一信息;根据数据模型,生成脚本。
在一些实施方式中,可创建自定义的Operation类。通过该类,可确定第一操作的类型,如点击、滑动等。该类还包含第一信息,为序列化操作提供结构化的数据模型。
上述方案中,第一操作可以是点击、滑动等,当用户对电子设备进行第一操作时,及时获取关于该第一操作的第一信息;再根据第一信息,可以判断出第一操作的具体类型。通过将第一信息和操作类型结合,形成数据模型,该数据模型包含了操作类型、位置、时间戳等属性,即准确描述了用户的每个操作,可以进一步提高脚本录制和回放的准确性。
在一些实施方式中,使用Gson库对数据模型进行序列化处理和转换处理,以得到脚本模型,转换处理用于将数据模型转换为JSON字符串;根据脚本模型和脚本生成引擎,生成脚本。
序列化的基准通常是将数据对象转换为一种格式,这种格式易于存储、传输和再次解析,在一些实施方式中,可使用Gson库对数据模型进行序列化处理和转换处理。
上述方案中,将第一操作的类型和第一信息结合形成数据模型,再根据数据模型生成脚本。具体地,包括将该数据模型进行序列化处理,并将数据模型转换成JSON字符串。一方面,对数据模型进行序列化处理,可以实现数据持久化、数据传输一致和完整以及确保不同平台和编程语言之间的兼容性和互操作性;另一方面,将数据模型转换成JSON字符串,这种格式方便储存、传输和再次解析。
将数据模型(如操作的序列)转换为脚本,涉及到将数据模型映射到特定的脚本语言的语法结构上。这个过程可以通过编写专门的转换器或使用现有的序列化库来实现,转换器会根据目标脚本语言的规则,将操作数据转换成相应格式的脚本。
在一些实施方式中,脚本为DSL脚本。
上述方案中,将数据模型经过序列换处理和字符串转换处理,得到脚本模型,再根据脚本模型得到脚本。通过使脚本为DSL脚本,该脚本语言简洁,易于理解,并能直接映射到用户的操作动作。
在一些实施方式中,可利用FileOutputStream和BufferedWriter等IO类将生成的脚本持久化存储到设备的文件系统中,以便操作的持久保存和再次加载。
在一些实施方式中,使用脚本语言解析器,将脚本转换为第一操作。
本申请对脚本转换成第一操作的实际过程并不做限定。在一些实施方式中,可开发一个脚本语言解析器,该解析器负责将脚本转换回可以由回放引擎执行的第一操作序列,确保录制的第一操作能够被准确地重现。
脚本语言解析器的原理如下:
解析器首先通过词法分析器(Lexer)将输入的脚本文本分解为一系列的符号(tokens),如关键字、标识符、操作符等。每个符号都会被赋予特定的类型,方便后续的语法分析。
语法解析(Syntax Analysis):然后,解析器利用一个语法分析器(Parser)根据语言的文法规则检查这些符号序列的结构。这一步会生成一个抽象语法树(AST),这是一个树状数据结构,反映了脚本中的语法结构。
语义分析(Semantic Analysis):接下来,解析器会进行语义分析,确保脚本的指令符合预定义的操作语义,例如:坐标值需要在屏幕范围内,操作的顺序逻辑要合理等。
转换为操作序列:最后,解析器将AST转换为操作序列。每个节点或“叶”在AST中代表脚本的一个基本指令,如“点击”或“滑动”操作。解析器遍历AST,将每个指令节点转换成一个对应的操作对象,并按照逻辑顺序组织成操作序列。
在一些实施方式中,设置回放引擎,该回放引擎负责解析、控制手势的执行顺序和速度,以及管理操作的逻辑流程,确保脚本能够转换为正确的第一操作。
在一些实施方式中,可使用GestureDescription构建第一操作的描述对象,GestureDescription包括了一系列的StrokeDescription,每个StrokeDescription定义了第一操作中的每个笔画,包括每个笔画中的起始点、路径和持续时间等。
在一些实施方式中,可通过AccessibilityService模拟用户的交互操作,它可以发送由GestureDescription定义的手势给系统,由系统完成实际的回放第一次操作。
上述方案中,通过将脚本转换为用户的第一操作,可以实现脚本自动化,进而为用户节省时间,降低人力成本和改善用户体验。
在一些实施方式中,响应用户的第二操作或第一条件,调用脚本;其中,第一条件包括执行时间。
用户可以进行第二操作,也就是手动触发来调用脚本,以进行第一操作的回放。或者满足第一条件,系统自动调用脚本以进行第一操作的回放,第一条件可以是特定的时间,例如,脚本可以是定时任务或者周期性任务;第一条件还可以为特定的条件,例如,脚本可以是在某个场景或者状态下,需要被执行的任务。
在一些实施方式中,可由UserActionServcie实现触发,UserActionServcie继承自JobService,在UserActionService中对JobScheduler进行实例化通过obScheduler.schedule(jobInfo)将任务安排到JobScheduler中,系统会根据用户的第二操作或第一条件来执行并触发脚本。
在一些实施方式中,可利用JobScheduler实现脚本处理任务的持久化,确定电子设备在重启后,之前设置的脚本执行计划能够自动回复并按照预定计划执行。
在一些实施方式中,可利用AlarmManager来实现对调用脚本的精确控制,AlarmManager可以设置在精确的时间条件下触发调用脚本,并将脚本转换为第一操作,即使在深度睡眠模式下也能唤醒电子设备执行。
上述方案中,在用户需要时可以调用脚本,将脚本转换为用户的第一操作,实现脚本自动化。脚本可以在不同情况下被调用。通过在多种情况下均可以调用脚本,提高脚本的适用场景。
在一些实施方式中,响应第二条件,执行脚本;其中,第二条件包括电子设备的网络状态、充电状态或空间状态中的至少一种。
第二条件为脚本的执行条件,执行条件通常基于脚本的使用场景和目的来制定。第二条件可以是网络状态,例如某些脚本可能需要访问互联网来获取数据或与远程服务交互,这种情况下,确保有效的网络连接是脚本能否被成功执行的条件;也可以是充电状态,如果脚本执行需要消耗大量电量,或者如果希望在电子设备充电时执行更耗电的任务以避免耗尽电量,那么电子设备的充电状态就可能成为重要的考量因素;还可以是空闲状态,例如在电子设备使用较少或者用户不太可能收到干扰的时间段。第二条件还可以是某个电量状态,例如设定电子设备的电量小于某个值,可以是50%,当电子设备的电量小于50%时,电子设备停止运行脚本处理方法。
在一些实施方式中,可利用JobScheduler的JobInfo.Builder来构建和设定脚本执行的第二条件。
上述方案中,第二条件为脚本的执行条件,执行条件通常基于脚本的使用场景和目的来制定。将脚本转换为第一操作前,先考虑脚本的执行条件,即第二条件,可以使该自动化脚本处理方法更智能化。
在一些实施方式中,方法300还包括:使用ServiceConnection监控AccessibilityService的连接状态,确认电子设备的网络连接状态;根据电子设备的网络连接状态,确认脚本处理的状态。
监控的内容主要包括检测脚本处理服务是否已经连接、是否已经在运行以及是否因为某些原因(如系统低内存导致的服务强行关闭、资源限制等原因造成脚本处理服务被系统断开)而断开。在一些实施方式中,可使用ServiceConnection监控AccessibilityService的连接状态。
上述方案中,通过监控脚本处理的状态,可以保证自动化服务的连续性和稳定性。
在一些实施方式中,在脚本处理服务中断的情况下,执行以下操作中的执行一项:提醒用户、提供重新连接的策略;其中,重新连接的策略包括重复脚本处理或者跳过脚本处理。
在一些实施方式中,可在操作回放引擎中使用try-catch块来捕获运行时异常,通过onError回调方法实现对异常的处理逻辑,包括记录日志、用户通知和重试机制。
在一些实施方式中,可结合BroadcastReceiver来实现程序内部消息的传递和用户通知机制,当发生异常时,BroadcastReceiver可以接收到通知并提示用户。例如,出现错误时,会在手机状态栏提示具体错误信息,用户用过下拉状态栏可以查看。
在一些实施方式中,可在用户界面提供日志输出功能,利用Logcat记录回放过程中的详细信息,这些日志信息对于发现问题、问题定位和后续的调试非常重要。
上述方案中,当脚本处理过程中断时,通过提醒用户、重新脚本处理或者跳过脚本处理,可以实现自动化脚本处理的连续性和稳定性。
在一些实施方式中,方法300还包括:使用SharedPreferences存储第二信息,第二信息包括脚本的名称、脚本的执行次数和脚本的最后一次执行时间。
在一些实施方式中,使用SharedPreferences来存储脚本的元数据,例如可存储脚本的名称、最后一次执行时间等,以支持快速的查询和访问。
在一些实施方式中,可利用Room数据库作为脚本内容的持久化解决方案,它提供了强类型的、易于维护的数据存储方式,并支持复杂查询和大量数据的高效处理。
在一些实施方式中,还可采用Fragment和ViewModel来构建脚本处理方法的结构,这不仅有助于代码的模块化和重用,也使得UI的状态管理和用户界面之间的数据通讯更加高效和简洁。
在一些实施方式中,还可采用LiveData和DataBinding技术实现数据的实时更新和自动UI刷新,这样当底层数据变化时,界面能够立即反映这些变化,无需手动操作。
在一些实施方式中,还可采用NotificationChannel和NotificationCompat.Builder创建丰富的通知体验,为不同类型的通知设置不同的优先级和行为,确保用户能够接收到重要信息并及时响应。
图4为本申请又一实施方式的脚本处理方法的流程图,如图4所示,该方法400包括:
S410:用户执行第一操作;
S420:结合GestureDetector类、OnGestureListener和OnDoubleTapListener接口,接收用户的第一操作;
S430:使用MotionEvent类和VelocityTracker类获取第一操作的第一信息,第一信息包括第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;
S440:使用Operation类创建数据模型;
S450:使用Gson库对数据模型进行序列化处理和转换处理,得到脚本模型;
S460:根据脚本模型和脚本生成引擎,生成脚本;
S470:使用脚本语言解析器,将脚本转化成第一操作。
本申请的第二方面提供了一种脚本处理装置,图5为本申请一实施方式的脚本处理装置的示意图。如图5所示,该装置500包括:操作捕捉模块510和脚本生成模块520;
操作捕捉模块510用于接收用户的第一操作,并获取第一操作的第一信息,第一信息包括所述第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;
脚本生成模块520用于根据第一信息,生成所述脚本。
在一些实施方式中,脚本生成模块520还用于:根据第一信息,确定第一操作的类型;创建第一操作的数据模型,数据模型包括第一操作的类型和第一信息;根据数据模型,生成脚本,脚本用于回放用户的第一操作。
在一些实施方式中,脚本生成模块还用于:对数据模型进行序列化处理和转换处理,以得到脚本模型,转换处理用于将数据模型转换为JSON字符串;根据脚本模型,生成脚本。
在一些实施方式中,装置500还包括操作回放模块540,操作回放模块540用于将脚本转换为第一操作。
在一些实施方式中,装置500还包括任务调度器530;任务调度器530用于响应用户的第二操作或第一条件,调用脚本,其中,第一条件包括执行时间。
在一些实施方式中,任务调度器530还用于响应第二条件,执行脚本;第二条件包括电子设备的网络状态、充电状态或空闲状态中的至少一种。
在一些实施方式中,装置500还包括异常处理模块550,异常处理模块550用于确认电子设备的网络连接状态;根据电子设备的网络连接状态,确认脚本处理的状态。
在一些实施方式中,异常处理模块还用于在脚本处理中断的情况下,执行以下操作中的至少一项:提醒用户、提供重新连接的策略;其中,重新连接的策略包括重复脚本处理或者跳过脚本处理。
在一些实施方式中,装置500还包括脚本存储模块560;脚本存储模块560用于存储第二信息,第二信息包括脚本的名称、脚本的执行次数和脚本的最后一次执行时间。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及处理方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种脚本处理方法,其特征在于,应用于电子设备,所述电子设备的操作系统为安卓系统,包括:
结合GestureDetector类和OnGestureListener、OnDoubleTapListener接口,接收用户的第一操作;
使用MotionEvent类和VelocityTracker类获取所述第一操作的第一信息,所述第一信息包括所述第一操作的速度、位置、压力、接触面积、时间戳和持续时间;
根据所述第一信息,生成脚本,所述脚本用于回放所述第一操作。
2.根据权利要求1所述的方法,其特征在于,所述第一操作包括第一子操作和第二子操作,所述第一子操作和所述第二子操作之间的时间间隔满足第一阈值;
使用Handler的postDelayed方法和Runnable接口模拟包括所述第一子操作和所述第二子操作的所述第一操作。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
使用ConcurrentLinkedQueue,将所述第一信息存入缓冲区。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一信息,生成脚本,包括:
根据所述第一信息,确定所述第一操作的类型;
使用Operation类创建所述第一操作的数据模型,所述数据模型包括所述第一操作的类型和所述第一信息;
根据所述数据模型,生成所述脚本。
5.根据权利要求4所述的方法,其特征在于,所述根据所述数据模型,生成所述脚本,包括:
使用Gson库对所述数据模型进行序列化处理和转换处理,以得到脚本模型,所述转换处理用于将所述数据模型转换为JSON字符串;
根据所述脚本模型和脚本生成引擎,生成所述脚本。
6.根据权利要求5所述的方法,其特征在于,所述脚本为DSL脚本。
7.根据权利要求1至6中任一项所述的方法,其特征在于,使用脚本语言解析器,将所述脚本转换为所述第一操作。
8.根据权利要求7所述的方法,其特征在于,所述将所述脚本转换为所述第一操作,包括:
响应用户的第二操作或第一条件,调用所述脚本;
其中,所述第一条件包括执行时间。
9.根据权利要求8所述的方法,其特征在于,所述将所述脚本转换为所述第一操作,还包括:
响应第二条件,执行所述脚本;
其中,所述第二条件包括所述电子设备的网络状态、充电状态或空闲状态中的至少一种。
10.根据权利要求9所述的方法,其特征在于,使用JobScheduler的JobInfo.Builder设置所述第一条件或所述第二条件。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
使用ServiceConnection监控AccessibilityService的连接状态,确认所述电子设备的网络连接状态;
根据所述电子设备的网络连接状态,确认所述脚本处理的状态。
12.根据权利要求11所述的方法,其特征在于,所述确认所述脚本处理的状态,包括:
在所述脚本处理中断的情况下,执行以下操作中的至少一项:
提醒用户、提供重新连接的策略;
其中,所述重新连接的策略包括重复所述脚本处理或者跳过所述脚本处理。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述方法还包括:
使用SharedPreferences存储第二信息,所述第二信息包括所述脚本的名称、所述脚本的执行次数和所述脚本的最后一次执行时间。
14.一种脚本处理装置,应用于电子设备,所述电子设备的操作系统为安卓系统,其特征在于,包括:操作捕捉模块和脚本生成模块;
所述操作捕捉模块用于接收用户的第一操作,并获取所述第一操作的第一信息,所述第一信息包括所述第一操作的速度、位置、压力、接触面积、时间戳和持续时间中的至少一项;
所述脚本生成模块用于根据所述第一信息,生成所述脚本,所述脚本用于回放所述第一操作。
15.根据权利要求14所述的装置,其特征在于,所述脚本生成模块还用于:根据所述第一信息,确定所述第一操作的类型;
创建所述第一操作的数据模型,所述数据模型包括所述第一操作的类型和所述第一信息;
根据所述数据模型,生成所述脚本。
16.根据权利要求15所述的装置,其特征在于,所述脚本生成模块还用于:对所述数据模型进行序列化处理和转换处理,以得到脚本模型,所述转换处理用于将所述数据模型转换为JSON字符串;
根据所述脚本模型,生成所述脚本。
17.根据权利要求14至16中任一项所述的装置,其特征在于,所述装置还包括操作回放模块,操作回放模块用于将所述脚本转换为所述第一操作。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括任务调度器;
所述任务调度器用于响应用户的第二操作或第一条件,调用所述脚本,其中,所述第一条件包括执行时间。
19.根据权利要求18所述的装置,其特征在于,所述任务调度器还用于响应第二条件,执行所述脚本;
所述第二条件包括所述电子设备的网络状态、充电状态或空闲状态中的至少一种。
20.根据权利要求14至19中任一项所述的装置,其特征在于,所述装置还包括异常处理模块,所述异常处理模块用于确认所述电子设备的网络连接状态;
根据所述电子设备的网络连接状态,确认所述脚本处理的状态。
21.根据权利要求20所述的装置,其特征在于,所述异常处理模块还用于在所述脚本处理中断的情况下,执行以下操作中的至少一项:
提醒用户、提供重新连接的策略;
其中,所述重新连接的策略包括重复所述脚本处理或者跳过所述脚本处理。
22.根据权利要求14至21中任一项所述的装置,其特征在于,所述装置还包括脚本存储模块;
所述脚本存储模块用于存储第二信息,所述第二信息包括所述脚本的名称、所述脚本的执行次数和所述脚本的最后一次执行时间。
23.一种电子设备,其特征在于,包括:
存储器,用于存储计算机指令;
处理器,用于执行所述存储器中存储的计算机指令,以使所述电子设备执行如权利要求1至13中任一项所述的方法。
24.一种芯片系统,其特征在于,包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行如权利要求1至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598304.8A CN117492930A (zh) | 2023-11-27 | 2023-11-27 | 一种脚本处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598304.8A CN117492930A (zh) | 2023-11-27 | 2023-11-27 | 一种脚本处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492930A true CN117492930A (zh) | 2024-02-02 |
Family
ID=89667315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311598304.8A Pending CN117492930A (zh) | 2023-11-27 | 2023-11-27 | 一种脚本处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492930A (zh) |
-
2023
- 2023-11-27 CN CN202311598304.8A patent/CN117492930A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597512B (zh) | 显示用户界面的方法及电子设备 | |
WO2021063343A1 (zh) | 语音交互方法及装置 | |
CN112052008B (zh) | 代码检查方法、装置、计算机设备及计算机可读存储介质 | |
WO2021196970A1 (zh) | 一种创建应用快捷方式的方法、电子设备及系统 | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
CN111723002A (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN114205365B (zh) | 应用界面迁移系统、方法及相关设备 | |
US20230418630A1 (en) | Operation sequence adding method, electronic device, and system | |
WO2021027772A1 (zh) | 一种应用切换运行的方法及设备 | |
CN108780400B (zh) | 数据处理方法及电子设备 | |
CN114371985A (zh) | 自动化测试方法、电子设备及存储介质 | |
CN115016866A (zh) | 应用启动时的数据处理方法、电子设备及存储介质 | |
CN116431044A (zh) | 开启应用程序的方法、装置及终端设备 | |
US20220292141A1 (en) | Quick Application Startup Method and Related Apparatus | |
CN116467221B (zh) | 一种基于解释器的插桩方法、系统及相关电子设备 | |
CN116483734B (zh) | 一种基于编译器的插桩方法、系统及相关电子设备 | |
CN117492930A (zh) | 一种脚本处理方法和装置 | |
CN115993993A (zh) | 冷启动方法及相关设备 | |
CN113157092A (zh) | 可视化方法、终端设备和存储介质 | |
CN112783512B (zh) | 应用程序包处理方法、装置、设备及存储介质 | |
CN116679864B (zh) | 一种触控交互的处理方法及电子设备 | |
WO2023169212A1 (zh) | 一种识别应用程序中sdk的方法、终端及服务器 | |
CN117407273A (zh) | 基于hub架构的传感器调试方法、装置、介质及设备 | |
WO2022155848A1 (zh) | 虚拟机性能优化的方法及相关装置 | |
WO2024093700A1 (zh) | 服务流转方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |