CN106528261A - 应用页面初始化的编译控制装置及方法 - Google Patents
应用页面初始化的编译控制装置及方法 Download PDFInfo
- Publication number
- CN106528261A CN106528261A CN201611099716.7A CN201611099716A CN106528261A CN 106528261 A CN106528261 A CN 106528261A CN 201611099716 A CN201611099716 A CN 201611099716A CN 106528261 A CN106528261 A CN 106528261A
- Authority
- CN
- China
- Prior art keywords
- page
- maker
- variable
- bulk
- compiler
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
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)
Abstract
本发明公开了一种应用页面初始化的编译控制装置及方法,其中的装置包括编译器、生成器和注入器,其中,所述编译器,用于在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;所述生成器,用于导入所述页面的所有标注了视图注解的变量,并调用生成函数生成所述页面的初始化代码;所述注入器,用于将所述初始化代码注入到所述页面。本发明可精简代码编写量,提高应用开发效率。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种应用页面初始化的编译控制装置及方法。
背景技术
一款应用程序(以下简称“应用”)通常会有大量页面和子页面,每个页面和子页面在编程上都要编写“初始化-运行-销毁”的相关代码。
在应用页面初始化的过程中,涉及大量的对源代码进行编译的工作,如何精简、优化编写应用程序的代码量是本领域技术人员亟待解决的一个技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用页面初始化的编译控制装置及方法。
依据本发明的一个方面,提供一种应用页面初始化的编译控制装置,包括编译器、生成器和注入器,其中,所述编译器,用于在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;所述生成器,用于导入所述页面的所有标注了视图注解的变量,并调用生成函数生成所述页面的初始化代码;所述注入器,用于将所述初始化代码注入到所述页面。
优选的,所述视图注解包括单个注解类型和批量注解类型,所述生成器包括单个注解生成器和批量注解生成器。
优选的,所述编译器还用于:分析出所述变量的视图注解是单个注解类型还是批量注解类型。
优选的,所述编译器还用于:对于单个注解类型,调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量传入所述生成器;对于批量注解类型,调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量以及所述批量注解中存储的数个视图标识传入所述生成器。
优选的,所述编译器还用于将所述初始化代码连同所述应用程序的源代码提供给应用程序开发工具,生成预编译文件;所述注入器针对所述页面调用所述预编译文件,完成所述页面的初始化。
依据本发明的另一个方面,提供一种应用页面初始化的编译控制方法,包括:编译器在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;所述编译器将所述页面的所有标注了视图注解的变量导入到生成器,所述生成器调用生成函数生成所述页面的初始化代码;注入器将所述生成器生成的初始化代码注入到所述页面。
优选的,所述视图注解包括单个注解类型和批量注解类型;所述生成器包括单个注解生成器和批量注解生成器;所述生成器调用生成函数生成所述页面的初始化代码包括:所述单个注解生成器调用生成函数,针对单个注解类型的变量生成所述页面的初始化代码,和/或,所述批量注解生成器调用生成函数,针对批量注解类型的变量生成所述页面的初始化代码。
优选的,所述方法还包括:所述编译器分析出所述变量的视图注解是单个注解类型还是批量注解类型。
优选的,所述方法还包括:对于单个注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量传入所述生成器;对于批量注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量以及所述批量注解中存储的数个视图标识传入所述生成器。
优选的,所述方法还包括:所述编译器将所述初始化代码连同所述应用程序的源代码提供给应用程序开发工具,生成预编译文件;所述注入器将所述生成器生成的初始化代码注入到所述页面包括:所述注入器针对所述页面调用所述预编译文件,完成所述页面的初始化。
可见,本发明基于预编译技术,拦截并预处理应用程序源代码的编译过程,通过预先为视图注解的页面生成初始化代码,可精简代码编写量,提高代码运行速度,并且,将注解分为单个注解和批量注解类型,方便灵活。总之,本发明可保证应用程序实现同样的功能,但代码编写量和时间将大大减少,页面中视图越多,开发效率能够提高得越多。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例的应用页面初始化的编译控制装置结构示意图;
图2示出了根据本发明实施例的应用页面初始化的编译控制方法流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在对本发明实施例进行详细介绍之前,首先对涉及的一些术语作如下说明。
开发者:开发安卓应用程序的人员。
IDE(Integrated Development Environment,集成开发环境)是用于提供程序开发环境的工具,可以用来编写、调试和执行代码。
编译:一种使安卓源代码(Java)转变为机器码(dex)的过程。一个安卓应用程序从源代码经过安卓IDE编译后,会成为一个独立的安装包,可以安装在手机、平板等设备上使用。
预编译:在进行编译的过程中,开发者可以在应用源代码中引用一个(或多个)自己(或他人)开发的编译器(Processor),来拦截这一过程,预先对源代码做一些处理,然后再把做过处理的源代码继续交付安卓IDE进行后续编译。
编译器:一种安卓新版本IDE引入的工具,能够拦截IDE的编译,对应用源代码中使用注解(Annotation)的地方做一些增删改查的处理,然后把处理过的源代码交由IDE进行后续编译。
注解(Annotation):一种安卓新版本IDE引入的工具,可以由开发者标记某些特定代码,使得在预编译过程中,编译器可以识别出这些被标记的代码,根据不同的注解标记做不同的处理。
本发明实施例基于安卓IDE构造了一个的视图注解工具,能够拦截安卓IDE的编译过程,分析页面源代码中的视图注解,并根据被标注的视图类型,自动生成对应的视图代码,完成页面的初始化。
参见图1,为本发明实施例提供的应用页面初始化的编译控制装置结构示意图。该装置包括编译器101、生成器102和注入器。其中:
编译器101,用于在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;
生成器102,用于导入页面的所有标注了视图注解的变量,并调用生成函数生成页面的初始化代码;
注入器103,用于将初始化代码注入到页面。
其中,视图注解包括单个注解类型和批量注解类型,这可由编译器101进行分析获知,因此,编译器101还用于分析出变量的视图注解是单个注解类型还是批量注解类型。
进一步,编译器101还用于:对于单个注解类型,调用查询容器函数获得变量的页面名称,创建页面名称对应的生成器102,并将变量传入该生成器102;对于批量注解类型,调用查询容器函数获得变量的页面名称,创建页面名称对应的生成器102,并将变量以及批量注解中存储的数个视图标识(id)传入生成器102。
相应的,生成器103包括单个注解生成器和批量注解生成器,即,对于包含单个注解变量的页面,创建单个注解生成器,由该单个注解生成器生成相应的页面初始化代码;对于包含批量注解变量的页面,创建批量注解生成器,由该批量注解生成器生成相应的页面初始化代码。
在生成器102生成初始化代码之后,编译器101还用于将初始化代码连同应用程序的源代码提供给IDE,生成预编译文件;此后,注入器103针对页面调用预编译文件,完成该页面的初始化过程。
在应用开发过程中引入本发明实施例提供的装置后,实施过程如下:
1、安卓IDE在编译时会自动触发本装置,将源代码中所有被视图注解标注的变量传入编译器。
2、可创建一个全局生成器缓存。
3、编译器逐一分析每一个变量的视图注解类型。
具体的,视图注解类型分为单个注解类型和批量注解类型,编译器会把每一个变量分类归档,如,按钮button1和button2都属于页面activity1,那么会创建一个与activity1对应的生成器,将button1和button2都存入该生成器中。
单个注解类型:
(1)调用编译器自身的查询容器函数(例如,getEnclosingElement()),获得该变量所处的页面的名称;
(2)在全局生成器缓存中查找该页面名称,取出该页面名称对应的单个注解生成器,如果没有就创建一个单个注解生成器,放入全局生成器缓存中;
(3)将该变量传入该生成器。
批量标注类型:
(1)调用编译器自身的查询容器函数,获得该变量所处的页面的名称;
(2)在全局生成器缓存中查找该页面名称,取出该页面名称对应的批量注解生成器,如果没有就创建一个批量注解生成器,存入全局生成器缓存中;
(3)将该变量和注解中储存的数个视图id传入该生成器。
4、生成器调用生成函数,生成各个页面的初始化代码。
一个页面对应一个生成器,一个生成器内部存有该页面中需要初始化的所有变量。生成器生成一个与页面关联的java文件,如页面activity1关联的自动初始化java文件为activity1$$Injector.java。
单个注解生成器:
生成器逐一处理页面中每一个需要初始化的变量,模仿开发者在文件中写入,正常流程下开发者需要编写的代码,如页面activity1中有两个按钮Button1和button2,那么生成器会在activity1$$Injector.java中自动生成类似代码,例如:
批量标注生成器:
生成器逐一处理页面中每一个需要初始化的变量,模仿开发者在文件中写入,正常流程下开发者需要编写的代码。
5、编译器将所有生成器自动生成的代码,连同应用本身的源代码交由安卓IDE进行后续编译,并由安卓IDE自动打包进一个安装包。
6、应用程序实际运行时,在安卓***将要初始化某一页面时,开发者调用注入器,将页面名称传入注入器,例如注入器会调用安卓***自身的Class.forName()函数,根据页面名称自动找到对应的,在第4、5步骤中自动生并编译好的代码。
例如,开发者将页面activity1传入注入器,注入器会自动找到预编译好的文件activity1$$Injector。
7、注入器自动将页面传入对应的预编译文件,安卓***将调用预编译文件中的代码,完成该页面的初始化。
下面以两个具体的例子,说明采用本发明装置的效果。
例1、单个注解
如果未采取本装置,假设开发者需要在应用程序页面(Activity)上查找一个按钮(Button),并保存至一个按钮变量(Button button1),必须编写如下步骤代码:
步骤1、在应用程序页面对应的布局文件中确定目标按钮的id,如“button1”;
步骤2、根据目标按钮的id,声明一个对应按钮变量Button button1;
步骤3、调用Activity自身的函数findViewById(),通过这个按钮的id获得一个视图(View);
步骤4、使用Java类型强制转换功能,将第一步获得的视图强制转换为按钮;
步骤5、将强制转换得到的按钮赋予这个按钮变量。
对于每一个需要查找的按钮,都需要编写步骤3-5这三个步骤的代码,缺一不可。如果按钮数量较少尚可,但数量较多时,为每一个按钮编写这些代码将会花费巨量时间和精力。
使用本装置后,将极大节省编写代码的数量和时间,只需执行如下步骤:
步骤1、在应用程序页面对应的布局文件中确定目标按钮的id,如“button1”;
步骤2、声明一个按钮变量Button button1;
步骤3、使用视图注解(@InjectView)标记该变量。
在该源代码进行编译的时候,本装置能够自动拦截安卓IDE的编译过程,为包含这个按钮变量的页面自动添加入上述传统流程的步骤3-5的代码,然后再将修改过的页面代码交由IDE进行后续编译。
例2、批量注解
开发者需要在页面上查找数个按钮,然后将其保存在一个按钮数组中,必须编写如下步骤代码:
步骤1、创建一个按钮数组Button[]buttons=new Button[];
步骤2、对每一个需要查找的按钮,执行如下步骤:
(1)在应用程序页面对应的布局文件中确定目标按钮的id,如“button1”;
(2)根据目标按钮的id,声明一个对应按钮变量Button button1;
(3)调用Activity自身的函数findViewById(),通过这个按钮的id获得一个视图(View);
(4)使用Java类型强制转换功能,将第一步获得的视图强制转换为按钮;
(5)将强制转换得到的按钮赋予这个按钮变量;
(6)将这个按钮变量添加入按钮数组。
使用本装置后,只需执行如下步骤:
步骤1、在应用程序页面对应的布局文件中确定所有目标按钮的id,如“button1”、“button2”、“button3”;
步骤2、声明一个按钮数组Button[]buttons;
步骤3、使用视图注解@InjectView标记该按钮数组,并且将所需按钮的id依次写在注解传参中@InjectView([“button1”,”button2”,”button3”])。
在该源代码进行编译的时候,本装置能够拦截安卓IDE的编译过程,为包含这个按钮数组的页面自动加入上述传统流程第2步骤的代码,然后再将修改过的页面代码交由IDE进行后续编译。
可见,本发明基于预编译技术,拦截并预处理应用程序源代码的编译过程,通过预先为视图注解的页面生成初始化代码,可精简代码编写量,提高代码运行速度,并且,将注解分为单个注解和批量注解类型,方便灵活。总之,本发明可保证应用程序实现同样的功能,但代码编写量和时间将大大减少,页面中视图越多,开发效率能够提高得越多。
目前安卓***还存在另一种基于反射技术的初始化页面工具,在应用程序运行过程中,由安卓运行设备扫描内存中的应用程序,在内存中实时分析视图注解标记并查找视图。但由于安卓***的特性,反射技术十分消耗CPU资源。然而对于本装置,由于应用程序在编译的时候就已经完成了初始化,实际运行过程中完全不需要实时扫描内存分析视图注解标记,不存在任何性能损耗。
与上述装置相对应,本发明实施例还提供一种应用页面初始化的编码控制方法。参见图2,该装置包括如下步骤:
S101:编译器在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量。
S102:编译器将页面的所有标注了视图注解的变量导入到生成器,生成器调用生成函数生成页面的初始化代码。
S103:注入器将生成器生成的初始化代码注入到页面。
优选的,所述视图注解包括单个注解类型和批量注解类型;所述生成器包括单个注解生成器和/或批量注解生成器,所述生成器调用生成函数生成所述页面的初始化代码包括:所述单个注解生成器调用生成函数,针对单个注解类型的变量生成所述页面的初始化代码,以及/或者,所述批量注解生成器调用生成函数,针对批量注解类型的变量生成所述页面的初始化代码。
优选的,所述方法还包括:所述编译器分析出所述变量的视图注解是单个注解类型还是批量注解类型。
优选的,所述方法还包括:对于单个注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量传入所述生成器;对于批量注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量以及所述批量注解中存储的数个视图标识传入所述生成器。
优选的,所述方法还包括:所述编译器将所述初始化代码连同所述应用程序的源代码提供给应用程序开发工具,生成预编译文件;所述注入器将所述生成器生成的初始化代码注入到所述页面包括:所述注入器针对所述页面调用所述预编译文件,完成所述页面的初始化。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用户变身控制的***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种应用页面初始化的编译控制装置,其特征在于,包括编译器、生成器和注入器,其中,
所述编译器,用于在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;
所述生成器,用于导入所述页面的所有标注了视图注解的变量,并调用生成函数生成所述页面的初始化代码;
所述注入器,用于将所述初始化代码注入到所述页面。
2.如权利要求1所述的装置,其特征在于,所述视图注解包括单个注解类型和批量注解类型,所述生成器包括单个注解生成器和批量注解生成器。
3.如权利要求2所述的装置,其特征在于,所述编译器还用于:分析出所述变量的视图注解是单个注解类型还是批量注解类型。
4.如权利要求3所述的装置,其特征在于,所述编译器还用于:
对于单个注解类型,调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量传入所述生成器;
对于批量注解类型,调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量以及所述批量注解中存储的数个视图标识传入所述生成器。
5.如权利要求1所述的装置,其特征在于,所述编译器还用于将所述初始化代码连同所述应用程序的源代码提供给应用程序开发工具,生成预编译文件;所述注入器针对所述页面调用所述预编译文件,完成所述页面的初始化。
6.一种应用页面初始化的编译控制方法,其特征在于,包括:
编译器在应用页面初始化的编译过程中,查找出预先标注了视图注解的变量;
所述编译器将所述页面的所有标注了视图注解的变量导入到生成器,所述生成器调用生成函数生成所述页面的初始化代码;
注入器将所述生成器生成的初始化代码注入到所述页面。
7.如权利要求6所述的方法,其特征在于,
所述视图注解包括单个注解类型和批量注解类型;所述生成器包括单个注解生成器和/或批量注解生成器;
所述生成器调用生成函数生成所述页面的初始化代码包括:所述单个注解生成器调用生成函数,针对单个注解类型的变量生成所述页面的初始化代码,和/或,所述批量注解生成器调用生成函数,针对批量注解类型的变量生成所述页面的初始化代码。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述编译器分析出所述变量的视图注解是单个注解类型还是批量注解类型。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
对于单个注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量传入所述生成器;
对于批量注解类型,所述编译器调用查询容器函数获得所述变量的页面名称,创建所述页面名称对应的生成器,并将所述变量以及所述批量注解中存储的数个视图标识传入所述生成器。
10.如权利要求6所述的方法,其特征在于,
所述方法还包括:所述编译器将所述初始化代码连同所述应用程序的源代码提供给应用程序开发工具,生成预编译文件;
所述注入器将所述生成器生成的初始化代码注入到所述页面包括:所述注入器针对所述页面调用所述预编译文件,完成所述页面的初始化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611099716.7A CN106528261A (zh) | 2016-12-02 | 2016-12-02 | 应用页面初始化的编译控制装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611099716.7A CN106528261A (zh) | 2016-12-02 | 2016-12-02 | 应用页面初始化的编译控制装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106528261A true CN106528261A (zh) | 2017-03-22 |
Family
ID=58354652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611099716.7A Pending CN106528261A (zh) | 2016-12-02 | 2016-12-02 | 应用页面初始化的编译控制装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528261A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450922A (zh) * | 2017-07-27 | 2017-12-08 | 武汉斗鱼网络科技有限公司 | 安卓中弹幕事件自动注册的方法、存储介质、设备及*** |
CN107817972A (zh) * | 2017-11-03 | 2018-03-20 | 泰康保险集团股份有限公司 | 缓存代码处理方法、装置、存储介质及电子设备 |
CN109933326A (zh) * | 2017-12-15 | 2019-06-25 | 北京奇虎科技有限公司 | 改写代码的编译方法、装置及相应终端 |
CN110704050A (zh) * | 2019-10-10 | 2020-01-17 | 北京无限光场科技有限公司 | 模块初始化方法、装置、电子设备及计算机可读存储介质 |
CN111309323A (zh) * | 2020-01-19 | 2020-06-19 | 北京无限光场科技有限公司 | 参数初始化方法、装置和电子设备 |
CN111596906A (zh) * | 2020-05-18 | 2020-08-28 | 上海微盟企业发展有限公司 | 一种基于MVPVM的Android应用开发方法、装置、设备及介质 |
CN111736806A (zh) * | 2020-05-14 | 2020-10-02 | 广州三七网络科技有限公司 | 控件注入方法、装置及终端设备 |
CN112230914A (zh) * | 2019-07-15 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 小程序的制作方法、装置、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020064A (zh) * | 2011-09-20 | 2013-04-03 | 佳都新太科技股份有限公司 | 一种通过注解方式生成查询条件的方法和配置 |
CN104102574A (zh) * | 2013-04-07 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和*** |
CN105824611A (zh) * | 2015-10-20 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于Android智能操作平台的快速开发*** |
CN105988923A (zh) * | 2015-02-09 | 2016-10-05 | 株式会社理光 | 一种录制被测Android程序的用户操作的方法及*** |
-
2016
- 2016-12-02 CN CN201611099716.7A patent/CN106528261A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020064A (zh) * | 2011-09-20 | 2013-04-03 | 佳都新太科技股份有限公司 | 一种通过注解方式生成查询条件的方法和配置 |
CN104102574A (zh) * | 2013-04-07 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和*** |
CN105988923A (zh) * | 2015-02-09 | 2016-10-05 | 株式会社理光 | 一种录制被测Android程序的用户操作的方法及*** |
CN105824611A (zh) * | 2015-10-20 | 2016-08-03 | 广东亿迅科技有限公司 | 一种基于Android智能操作平台的快速开发*** |
Non-Patent Citations (3)
Title |
---|
JOKAR-: ""Android注解-编译时生成代码 (APT)"", 《HTTPS://BLOG.CSDN.NET/A1018875550/ARTICLE/DETAILS/52166916》 * |
RUKEY7: ""浅析ButterKnife的实现 (三) —— BindView"", 《HTTPS://BLOG.CSDN.NET/GITHUB_35180164/ARTICLE/DETAILS/52208691》 * |
RUKEY7: ""自定义注解之编译时注解(RetentionPolicy.CLASS)(一)"", 《HTTPS://BLOG.CSDN.NET/GITHUB_35180164/ARTICLE/DETAILS/52121038》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450922A (zh) * | 2017-07-27 | 2017-12-08 | 武汉斗鱼网络科技有限公司 | 安卓中弹幕事件自动注册的方法、存储介质、设备及*** |
WO2019019683A1 (zh) * | 2017-07-27 | 2019-01-31 | 武汉斗鱼网络科技有限公司 | 安卓中弹幕事件自动注册的方法、存储介质、设备及*** |
CN107450922B (zh) * | 2017-07-27 | 2020-01-03 | 武汉斗鱼网络科技有限公司 | 安卓中弹幕事件自动注册的方法、存储介质、设备及*** |
CN107817972A (zh) * | 2017-11-03 | 2018-03-20 | 泰康保险集团股份有限公司 | 缓存代码处理方法、装置、存储介质及电子设备 |
CN109933326A (zh) * | 2017-12-15 | 2019-06-25 | 北京奇虎科技有限公司 | 改写代码的编译方法、装置及相应终端 |
CN112230914A (zh) * | 2019-07-15 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 小程序的制作方法、装置、终端及存储介质 |
CN112230914B (zh) * | 2019-07-15 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 小程序的制作方法、装置、终端及存储介质 |
CN110704050A (zh) * | 2019-10-10 | 2020-01-17 | 北京无限光场科技有限公司 | 模块初始化方法、装置、电子设备及计算机可读存储介质 |
CN110704050B (zh) * | 2019-10-10 | 2023-10-03 | 北京有竹居网络技术有限公司 | 模块初始化方法、装置、电子设备及计算机可读存储介质 |
CN111309323A (zh) * | 2020-01-19 | 2020-06-19 | 北京无限光场科技有限公司 | 参数初始化方法、装置和电子设备 |
CN111309323B (zh) * | 2020-01-19 | 2023-12-12 | 北京有竹居网络技术有限公司 | 参数初始化方法、装置和电子设备 |
CN111736806A (zh) * | 2020-05-14 | 2020-10-02 | 广州三七网络科技有限公司 | 控件注入方法、装置及终端设备 |
CN111596906A (zh) * | 2020-05-18 | 2020-08-28 | 上海微盟企业发展有限公司 | 一种基于MVPVM的Android应用开发方法、装置、设备及介质 |
CN111596906B (zh) * | 2020-05-18 | 2023-07-07 | 上海微盟企业发展有限公司 | 一种基于MVPVM的Android应用开发方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528261A (zh) | 应用页面初始化的编译控制装置及方法 | |
CN108733988B (zh) | 安卓平台上可执行程序的保护方法 | |
CN103064721A (zh) | 多种解释性编程语言间的第一类对象共享 | |
CN104298534B (zh) | 基于Lua语言的编程方法和装置 | |
CN109614103A (zh) | 一种基于字符的代码补全方法及*** | |
US20120331450A1 (en) | System and method for applying a sequence of operations code to program configurable logic circuitry | |
CN106326099B (zh) | 一种用于程序跟踪的方法、装置及电子设备 | |
CN115080055A (zh) | 面向信息安全的可重构***芯片编译器、自动编译方法 | |
CN107133502A (zh) | 一种应用程序的处理方法及装置 | |
CN108170430A (zh) | 一种界面展示的方法及*** | |
CN107015840B (zh) | 一种解析器的快速执行方法及快速执行*** | |
US8683439B2 (en) | System and process for debugging object-oriented programming code leveraging preprocessors | |
CN104321774B (zh) | 用于防逆向工程和/或篡改程序的方法、***以及设备 | |
US9524153B1 (en) | Optimized compiling of a template function | |
Kang | Function call interception techniques | |
US8769498B2 (en) | Warning of register and storage area assignment errors | |
CN106598573A (zh) | 一种简化应用程序语言的方法和装置 | |
CN109086038A (zh) | 基于Spark的大数据开发方法及装置、终端 | |
Zheng et al. | Comprehensive multiplatform dynamic program analysis for java and android | |
Dantas et al. | Towards aspect-oriented programming for context-aware systems: A comparative study | |
Guo et al. | A survey of obfuscation and deobfuscation techniques in android code protection | |
Thomsen et al. | From safety critical Java programs to timed process models | |
Schütte et al. | lios: Lifting ios apps for fun and profit | |
CN114546409A (zh) | 一种编译产物与源码隔离的方法、***及存储介质 | |
Samoylov | Learn Java 12 Programming: A step-by-step guide to learning essential concepts in Java SE 10, 11, and 12 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170322 |