CN107450922A - 安卓中弹幕事件自动注册的方法、存储介质、设备及系统 - Google Patents

安卓中弹幕事件自动注册的方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN107450922A
CN107450922A CN201710624143.3A CN201710624143A CN107450922A CN 107450922 A CN107450922 A CN 107450922A CN 201710624143 A CN201710624143 A CN 201710624143A CN 107450922 A CN107450922 A CN 107450922A
Authority
CN
China
Prior art keywords
mark
barrage
event
registered
monomark
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.)
Granted
Application number
CN201710624143.3A
Other languages
English (en)
Other versions
CN107450922B (zh
Inventor
张磊
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710624143.3A priority Critical patent/CN107450922B/zh
Publication of CN107450922A publication Critical patent/CN107450922A/zh
Priority to PCT/CN2018/081311 priority patent/WO2019019683A1/zh
Application granted granted Critical
Publication of CN107450922B publication Critical patent/CN107450922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种安卓中弹幕事件自动注册的方法、存储介质、设备及系统,涉及安卓开发技术领域。该方法包括:先基于安卓系统已有的注解功能创建自定义的注册标记Mark;再创建标记解析器,该标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法;最后,当需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。本发明能将现有技术中需要开发人员手工进行注册的代码段改进为自动生成的方式来进行注册,不但使得程序结构精简利于维护,而且极大地提高了开发效率。

Description

安卓中弹幕事件自动注册的方法、存储介质、设备及系统
技术领域
本发明涉及Android(安卓)开发技术领域,具体来讲是一种安卓中弹幕事件自动注册的方法、存储介质、设备及系统。
背景技术
在Android系统中常常有监听各种各样的事件的要求,比如最常见的按钮事件或者弹幕消息接收事件等。如果开发者想要在弹幕消息到达系统的时候能够知道弹幕信息,那么就需要在系统初始化阶段将相应内容初始化好,然后将监听器注册到事件总线中,这样当事件总线得到弹幕消息的时候才会将消息分发给注册者。
随着弹幕技术的不断发展,弹幕技术在直播领域也得到了广泛使用。然而,在一个应用于直播领域的Android软件系统中,会有非常多的地方需要进行弹幕消息接收处理。传统的实现方法是:在所有需要进行弹幕消息接收的地方全部都需要开发人员进行手动注册的方式来进行消息接收。但由于注册过程的代码的相似度非常高,这样在代码中大量使用相同代码段会导致代码程序结构冗余、后期不利于维护,而且开发效率也低。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种安卓中弹幕事件自动注册的方法、存储介质、设备及系统,能将现有技术中需要开发人员手工进行注册的代码段改进为自动生成的方式来进行注册,不但使得程序结构精简利于维护,而且极大地提高了开发效率。
为达到以上目的,本发明采取的技术方案是:提供一种安卓中弹幕事件自动注册的方法,该方法包括以下步骤:
S1、注册标记Mark的创建:基于安卓系统已有的注解功能,创建自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法;
S2、标记解析器的创建:创建标记解析器,所述标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存;
S3、自动注册的实现:为需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。
在上述技术方案的基础上,步骤S1中,基于安卓系统已有的注解功能,创建自定义的注册标记Mark的具体流程为:利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数。
在上述技术方案的基础上,步骤S3中,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程为:在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法,获取到所有被注册标记Mark标记过的弹幕事件的方法的集合;通过for循环的方式依次取出当前集合中的每个元素;每次取出集合中的一个元素后,通过调用已有的类型获取函数获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法;若否,则不做任何处理;将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合中。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述安卓中弹幕事件自动注册的方法的步骤。
本发明还提供一种安卓中弹幕事件自动注册的设备,包括存储器、处理器及存储在存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述安卓中弹幕事件自动注册的方法的步骤。
本发明还提供一种安卓中弹幕事件自动注册的系统,该系统包括注册标记Mark创建模块、标记解析器创建模块、自动注册实现模块;
所述注册标记Mark创建模块用于:基于安卓系统已有的注解功能,创建自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法;
所述标记解析器创建模块用于:创建标记解析器,所述标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存;
所述自动注册实现模块用于:当需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。
在上述技术方案的基础上,所述注册标记Mark创建模块创建自定义的注册标记Mark的具体流程为:利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数。
在上述技术方案的基础上,所述标记解析器创建模块创建标记解析器的具体流程为:创建一个标记解析器,使该标记解析器继承于操作系统已有的抽象解析器;通过重写抽象解析器中的抽象解析方法,使得创建的标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。
在上述技术方案的基础上,所述自动注册实现模块在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程为:
在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法,获取到所有被注册标记Mark标记过的弹幕事件的方法的集合;通过for循环的方式依次取出当前集合中的每个元素;每次取出集合中的一个元素后,通过调用已有的类型获取函数获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法;若否,则不做任何处理;将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合中。
在上述技术方案的基础上,所述自动注册实现模块对得到的所有弹幕事件的方法进行注册操作的具体流程为:通过for循环的方式依次取出待注册方法集合中的每个弹幕事件的方法;每次取出集合中的一个弹幕事件的方法后,通过调用已有的注册函数对该弹幕事件的方法进行注册操作。
本发明的有益效果在于:
(1)本发明中,利用上述方法实现安卓系统中的弹幕事件注册时,会通过自定义的注册标记Mark为需要注册的弹幕事件的方法打上标记;然后在编译阶段会利用创建的标记解析器对注册标记Mark进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;最终,会自动对得到的所有弹幕事件的方法进行注册操作,从而实现自动注册的目的。
与现有技术中需要开发人员手工进行弹幕事件注册的方式相比,本发明改进为自动生成的方式来进行弹幕事件的注册,不但无需在代码中大量使用相同代码段,使得程序结构精简利于维护,而且极大地提高了开发效率。
(2)在获取到所有被注册标记Mark标记过的弹幕事件的方法集合后,会对集合中的每个元素先进行类型的判断,只有满足方法类型要求后,才会去获取对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法并保存。这样不但保证了获取到的被注册标记Mark标记过的弹幕事件方法的有效性,提高了准确性;而且避免了后续对无效(或错误)的弹幕事件方法进行注册操作,提高了实现效率。
附图说明
图1为本发明实施例中的安卓中弹幕事件自动注册的方法的流程图;
图2为本发明实施例中的安卓中弹幕事件自动注册的设备的结构示意图;
图3为本发明实施例中的安卓中弹幕事件自动注册的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种安卓中弹幕事件自动注册的方法,该方法包括以下步骤:
步骤S1、注册标记Mark的创建:基于安卓系统已有的Annotation(注解)功能,创建一个自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法。
可以理解的是,所谓自动化注册其实也就是让程序自己来完成注册的过程,将人工编写代码的部分通过程序的方式来自动完成。
目前,在安卓的开发过程中,安卓系统提供了一套预编译的功能——Annotation(注解)功能,其主要功能是在编译阶段执行一些功能,对编译的代码进行一些前期工作。而本发明则是利用该注解功能的特性设计了一套自定义的注册标记Mark,该注册标记Mark能对需要被自动注册的弹幕事件的方法进行标记,从而使得我们对应用程序进行编译的时候能对打有注册标记Mark的方法进行一些操作(如自动完成注册)。也就是说我们所设计的注册标记Mark后期会嵌入到程序当中,在编译阶段被编译器进行解析,然后对标记过的弹幕事件的方法进行解析和处理操作。
具体来说,安卓系统提供的原生注解有以下几种:
@Target——指明该类型的注解可以注解的程序元素的范围,如可以指明注解的程序元素的类型为方法METHOD;
@Documented——指明拥有这个注解的元素可以被javadoc此类的工具文档化;
@Inherited——指明该注解类型被自动继承;
@Retention——指明了该注解被保留的时间长短。
在此基础上,本实施例中,基于安卓系统已有的Annotation(注解)功能,创建一个自定义的注册标记Mark的具体流程为:
利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法METHOD的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class(编译)文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数,该解析参数的默认值可设置为空。
对应上述创建流程,创建出的注册标记Mark的实现代码可如下:
其中,注册标记Mark的名称为Register;@Target(ElementType.METHOD)表明该注册标记Mark是对方法的标记;@Retention(RetentionPolicy.CLASS)表明该注册标记Mark仅仅在class(编译)文件中存在不会在执行期间存在;Object params()defaultnull表明该注册标记Mark具有一个用于传递参数信息到解析器使用的解析参数,且该解析参数的默认值为空。
通过上述操作,我们就设计了一个自定义的注册标记Mark,该注册标记Mark能用于标记需要被自动注册的弹幕事件的方法,是完成后续自动注册操作的基础,为后续功能奠定了基础。
步骤S2、标记解析器的创建:创建一个标记解析器,该标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。
在一种实施方式中,步骤S2具体包括以下流程:
步骤S201、创建一个标记解析器(如MyProcessor),使该标记解析器继承于操作系统已有的抽象解析器AbstractProcessor。
步骤S202、通过重写抽象解析器AbstractProcessor中的抽象解析方法process,使得创建的标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。可以理解的是,由于抽象解析器AbstractProcessor是一个系统提供的抽象的解析器,所以我们需要重写抽象解析器AbstractProcessor中的抽象方法,而最关键的抽象方法是抽象解析方法process。因此,我们需要重写process方法来使得创建的标记解析器在进行解析时,能用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。
需要说明的是,上述实施方式仅是一种举例而已,开发人员在实际创建标记解析器时,也可不采用继承操作系统已有的抽象解析器的方式,而自行进行代码的自定义编写。
步骤S3、自动注册的实现:为需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作,从而实现自动注册的目的。
在一种实施方式中,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程如下:
1、在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法getElementsAnnotatedWith(Register.class),获取到所有被注册标记Mark标记过的弹幕事件的方法的集合(如list)。
2、通过for循环的方式依次取出当前集合中的每个元素(此处的元素即对应上述的被标记过的弹幕事件的方法);每次取出集合中的一个元素后,通过调用已有的类型获取函数getKind获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数getMethod获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法(如regFunction);若不是,则不做任何处理。
3、将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合(如listRegFunction)中。
可以理解的是,在上述实施方式中,在获取到所有被注册标记Mark标记过的弹幕事件的方法集合后,会对集合中的每个元素先进行类型的判断,只有满足方法类型要求后,才会去获取对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法并保存。这样不但保证了获取到的被注册标记Mark标记过的弹幕事件方法的有效性,提高了准确性;而且避免了后续对无效(或错误)弹幕事件方法的注册,提高了实现效率。
在一种实施方式中,对得到的所有弹幕事件的方法进行注册操作的具体流程如下:
通过for循环的方式依次取出待注册方法集合(如listRegFunction)中的每个弹幕事件的方法;每次取出集合中的一个弹幕事件的方法后,通过调用已有的注册函数register对该弹幕事件的方法进行注册操作,从而实现自动注册的目的。
利用上述方法实现安卓系统中的弹幕事件注册时,会通过自定义的注册标记Mark为需要注册的弹幕事件的方法打上标记;然后在编译阶段会利用创建的标记解析器对注册标记Mark进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;最终,会自动对得到的所有弹幕事件的方法进行注册操作,从而实现自动注册的目的。本发明能将现有技术中需要开发人员手工进行注册的代码段改进为自动生成的方式来进行注册,不但使得程序结构精简利于维护,而且极大地提高了开发效率。
对应上述的安卓中弹幕事件自动注册的方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的安卓中弹幕事件自动注册的方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,参见图2所示,对应上述的安卓中弹幕事件自动注册的方法,本发明实施例还提供一种安卓中弹幕事件自动注册的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的安卓中弹幕事件自动注册的方法的步骤。
参见图3所示,本发明实施例还提供一种安卓中弹幕事件自动注册的系统,该系统包括注册标记Mark创建模块、标记解析器创建模块、自动注册实现模块。
其中,注册标记Mark创建模块用于:基于安卓系统已有的注解功能,创建自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法。具体来说,其实现流程为:利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数。
标记解析器创建模块用于:创建标记解析器,所述标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。具体来说,其实现流程为:创建一个标记解析器,使该标记解析器继承于操作系统已有的抽象解析器;通过重写抽象解析器中的抽象解析方法,使得创建的标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。
自动注册实现模块用于:当需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。
进一步地,所述自动注册实现模块在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程为:在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法,获取到所有被注册标记Mark标记过的弹幕事件的方法的集合;通过for循环的方式依次取出当前集合中的每个元素;每次取出集合中的一个元素后,通过调用已有的类型获取函数获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法;若否,则不做任何处理;最后,将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合中。
更进一步地,所述自动注册实现模块对得到的所有弹幕事件的方法进行注册操作的具体流程为:通过for循环的方式依次取出待注册方法集合中的每个弹幕事件的方法;每次取出集合中的一个弹幕事件的方法后,通过调用已有的注册函数对该弹幕事件的方法进行注册操作。
需要说明的是:上述实施例提供的系统在实现安卓系统中的弹幕事件自动注册时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种安卓中弹幕事件自动注册的方法,其特征在于,该方法包括以下步骤:
S1、注册标记Mark的创建:基于安卓系统已有的注解功能,创建自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法;
S2、标记解析器的创建:创建标记解析器,所述标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存;
S3、自动注册的实现:为需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。
2.如权利要求1所述的安卓中弹幕事件自动注册的方法,其特征在于:步骤S1中,基于安卓系统已有的注解功能,创建自定义的注册标记Mark的具体流程为:
利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数。
3.如权利要求1所述的安卓中弹幕事件自动注册的方法,其特征在于:步骤S3中,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程为:
在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法,获取到所有被注册标记Mark标记过的弹幕事件的方法的集合;
通过for循环的方式依次取出当前集合中的每个元素;每次取出集合中的一个元素后,通过调用已有的类型获取函数获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法;若否,则不做任何处理;
将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合中。
4.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至3中任一项所述方法的步骤。
5.一种安卓中弹幕事件自动注册的设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至3中任一项所述方法的步骤。
6.一种安卓中弹幕事件自动注册的系统,其特征在于:该系统包括注册标记Mark创建模块、标记解析器创建模块、自动注册实现模块;
所述注册标记Mark创建模块用于:基于安卓系统已有的注解功能,创建自定义的注册标记Mark;所述注册标记Mark用于标记需要被自动注册的弹幕事件的方法;
所述标记解析器创建模块用于:创建标记解析器,所述标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存;
所述自动注册实现模块用于:当需要注册的弹幕事件的方法打上注册标记Mark后,在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法;对得到的所有弹幕事件的方法进行注册操作。
7.如权利要求6所述的安卓中弹幕事件自动注册的系统,其特征在于:所述注册标记Mark创建模块创建自定义的注册标记Mark的具体流程为:
利用安卓系统提供的@Target注解,将注册标记Mark定义为是对方法的标记;利用安卓系统提供的@Retention注解,将注册标记Mark定义为仅在class文件中存在而不会在执行期间存在;定义注册标记Mark的名称,并定义一个用于传递解析用参数信息的解析参数。
8.如权利要求6所述的安卓中弹幕事件自动注册的系统,其特征在于:所述标记解析器创建模块创建标记解析器的具体流程为:
创建一个标记解析器,使该标记解析器继承于操作系统已有的抽象解析器;
通过重写抽象解析器中的抽象解析方法,使得创建的标记解析器用于查找所有被注册标记Mark标记过的弹幕事件的方法并保存。
9.如权利要求6所述的安卓中弹幕事件自动注册的系统,其特征在于,所述自动注册实现模块在编译阶段利用创建的标记解析器进行解析,得到所有被注册标记Mark标记过的弹幕事件的方法的具体流程为:
在编译阶段利用创建的标记解析器,通过调用已有的标记元素获取方法,获取到所有被注册标记Mark标记过的弹幕事件的方法的集合;
通过for循环的方式依次取出当前集合中的每个元素;每次取出集合中的一个元素后,通过调用已有的类型获取函数获取到该元素对应的类型,并判断该元素对应的类型是否是方法类型,若是,则通过调用已有的方法获取函数获取到该元素对应的弹幕事件的方法,并将该弹幕事件的方法标记为待注册方法;若否,则不做任何处理;
将所有标记为待注册方法的弹幕事件的方法保存至一个预设的待注册方法集合中。
10.如权利要求9所述的安卓中弹幕事件自动注册的系统,其特征在于,所述自动注册实现模块对得到的所有弹幕事件的方法进行注册操作的具体流程为:通过for循环的方式依次取出待注册方法集合中的每个弹幕事件的方法;每次取出集合中的一个弹幕事件的方法后,通过调用已有的注册函数对该弹幕事件的方法进行注册操作。
CN201710624143.3A 2017-07-27 2017-07-27 安卓中弹幕事件自动注册的方法、存储介质、设备及系统 Active CN107450922B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710624143.3A CN107450922B (zh) 2017-07-27 2017-07-27 安卓中弹幕事件自动注册的方法、存储介质、设备及系统
PCT/CN2018/081311 WO2019019683A1 (zh) 2017-07-27 2018-03-30 安卓中弹幕事件自动注册的方法、存储介质、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710624143.3A CN107450922B (zh) 2017-07-27 2017-07-27 安卓中弹幕事件自动注册的方法、存储介质、设备及系统

Publications (2)

Publication Number Publication Date
CN107450922A true CN107450922A (zh) 2017-12-08
CN107450922B CN107450922B (zh) 2020-01-03

Family

ID=60489706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710624143.3A Active CN107450922B (zh) 2017-07-27 2017-07-27 安卓中弹幕事件自动注册的方法、存储介质、设备及系统

Country Status (2)

Country Link
CN (1) CN107450922B (zh)
WO (1) WO2019019683A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108882053A (zh) * 2018-06-29 2018-11-23 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备及存储介质
WO2019019683A1 (zh) * 2017-07-27 2019-01-31 武汉斗鱼网络科技有限公司 安卓中弹幕事件自动注册的方法、存储介质、设备及系统
CN109348303A (zh) * 2018-09-30 2019-02-15 武汉斗鱼网络科技有限公司 一种弹幕消息的分发方法、装置、终端和存储介质
CN109495782A (zh) * 2018-10-30 2019-03-19 武汉斗鱼网络科技有限公司 一种弹幕消息的存储方法、系统和存储介质
CN111338659A (zh) * 2020-02-28 2020-06-26 广州市百果园信息技术有限公司 安装包生成方法、消息管理方法、装置、设备及存储介质
WO2023077932A1 (zh) * 2021-11-03 2023-05-11 北京沃东天骏信息技术有限公司 一种自动注册楼层化代码方法及装置、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151463A1 (en) * 2011-12-08 2013-06-13 Sap Ag Information Validation
CN106528261A (zh) * 2016-12-02 2017-03-22 武汉斗鱼网络科技有限公司 应用页面初始化的编译控制装置及方法
CN106648569A (zh) * 2015-11-02 2017-05-10 腾讯科技(深圳)有限公司 目标序列化实现方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450922B (zh) * 2017-07-27 2020-01-03 武汉斗鱼网络科技有限公司 安卓中弹幕事件自动注册的方法、存储介质、设备及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151463A1 (en) * 2011-12-08 2013-06-13 Sap Ag Information Validation
CN106648569A (zh) * 2015-11-02 2017-05-10 腾讯科技(深圳)有限公司 目标序列化实现方法和装置
CN106528261A (zh) * 2016-12-02 2017-03-22 武汉斗鱼网络科技有限公司 应用页面初始化的编译控制装置及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019019683A1 (zh) * 2017-07-27 2019-01-31 武汉斗鱼网络科技有限公司 安卓中弹幕事件自动注册的方法、存储介质、设备及系统
CN108882053A (zh) * 2018-06-29 2018-11-23 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备及存储介质
CN108882053B (zh) * 2018-06-29 2021-04-09 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备及存储介质
CN109348303A (zh) * 2018-09-30 2019-02-15 武汉斗鱼网络科技有限公司 一种弹幕消息的分发方法、装置、终端和存储介质
CN109348303B (zh) * 2018-09-30 2021-02-02 武汉斗鱼网络科技有限公司 一种弹幕消息的分发方法、装置、终端和存储介质
CN109495782A (zh) * 2018-10-30 2019-03-19 武汉斗鱼网络科技有限公司 一种弹幕消息的存储方法、系统和存储介质
CN111338659A (zh) * 2020-02-28 2020-06-26 广州市百果园信息技术有限公司 安装包生成方法、消息管理方法、装置、设备及存储介质
CN111338659B (zh) * 2020-02-28 2023-06-02 广州市百果园信息技术有限公司 安装包生成方法、消息管理方法、装置、设备及存储介质
WO2023077932A1 (zh) * 2021-11-03 2023-05-11 北京沃东天骏信息技术有限公司 一种自动注册楼层化代码方法及装置、存储介质

Also Published As

Publication number Publication date
CN107450922B (zh) 2020-01-03
WO2019019683A1 (zh) 2019-01-31

Similar Documents

Publication Publication Date Title
CN107450922A (zh) 安卓中弹幕事件自动注册的方法、存储介质、设备及系统
CN112149399B (zh) 基于rpa及ai的表格信息抽取方法、装置、设备及介质
CN110221824B (zh) 组件的生成方法和装置
CN108399150A (zh) 文本处理方法、装置、计算机设备和存储介质
CN113326187B (zh) 数据驱动的内存泄漏智能化检测方法及系统
CN111367938B (zh) 数据库指令的生成方法、装置和计算机存储介质
CN105607923A (zh) 一种跨平台的航空电子系统配置数据生成与恢复方法
CN115033896B (zh) 以太坊智能合约漏洞检测方法、装置、系统与介质
CN113011461B (zh) 通过知识学习增强基于分类的软件需求跟踪链接恢复方法及电子装置
CN106202450A (zh) 一种基于makefile文件依赖的源码分析方法
CN109325217B (zh) 一种文件转换方法、系统、装置及计算机可读存储介质
CN106919501A (zh) 基于缺陷模式的静态分析方法和工具
CN113590737B (zh) 基于知识图谱的事件数据处理方法、装置、设备和介质
CN116578988B (zh) 一种智能合约的漏洞检测方法和装置、存储介质
CN104899042A (zh) 一种嵌入式机器视觉检测程序开发方法及系统
CN111026604B (zh) 一种日志文件解析方法及装置
CN107832374A (zh) 标准知识库的构建方法、电子装置及存储介质
CN104281604A (zh) 生成Targetlink数据字典分层树的方法和系统
CN115881257A (zh) 应用于大数据的用户隐私保护方法及系统
CN104461764B (zh) 一种内置crc校验码的fpga配置文件生成方法
CN114416107A (zh) 翻译逻辑的方法、装置、存储介质和设备
CN110489109A (zh) 代码复用的方法及装置
CN105095276A (zh) 一种挖掘最大重复序列的方法及装置
CN112380354B (zh) 面向航天器总体设计的知识获取方法、装置及存储介质
CN111857678B (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
GR01 Patent grant
GR01 Patent grant