一种基于Gradle的插件打包的方法及装置制造方法及图纸

技术编号:18006847 阅读:55 留言:0更新日期:2018-05-21 07:28
本发明专利技术公开了一种基于Gradle的插件打包的方法及装置。所述基于Gradle的插件打包的方法,包括:通过项目对象模型管理项目涉及到的所有的类;声明所述宿主相关的所有插件的类之间的相互依赖;将所述宿主相关的所有插件的信息汇总到所述宿主中;在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。本发明专利技术通过自定义安卓Gradl的构建流程,实现插件化项目里各个插件和宿主的完全自动化打包,可以较低的系统开销实现打包宿主和宿主相关的所有插件中的各种类的技术目的,更加的契合插件化并行开发,极大的降低了开发人员的工作量和提升了开发人员在开发工作方面的便捷度。

【技术实现步骤摘要】
一种基于Gradle的插件打包的方法及装置
本专利技术涉及插件处理
,特别涉及一种基于Gradle的插件打包的方法及装置。
技术介绍
业界当前普遍的技方案为完全分离插件和宿主,分别使用人工导出API、解决依赖、手动拷贝插件包等方式完成插件和宿主的打包,宿主和宿主的各种插件是完全处于割裂混乱的。现有的安卓编程中打包无法做到完全自动化,宿主与插件的几乎所有编译期交互都需要人工干预。由于缺乏与系统默认的构建的完美契合,要求相关的开发人员必须掌握诸多与他们实际开发无关的技术细节,极其影响开发效率。现有的安卓插件化技术虽然已经广泛使用而且技术成熟度高,但是与现有的安卓插件化技术配套的插件打包的技术方案存在严重的不足之处。如何妥善的解决上述问题,就成为了业界亟待解决的课题。
技术实现思路
本专利技术提供一种基于Gradle的插件打包的方法及装置,用以通过自定义安卓Gradl的构建流程,实现插件化项目里各个插件和宿主的完全自动化打包,可以较低的系统开销实现打包宿主和宿主相关的所有插件中的各种类的技术目的,更加的契合插件化并行开发,极大的降低了开发人员的工作量和提升了开发人员的开发工作的便捷度。根据本专利技术实施例的第一方面,提供一种基于Gradle的插件打包的方法,包括:通过项目对象模型管理项目涉及到的所有的类;声明所述宿主相关的所有插件的类之间的相互依赖;将所述宿主相关的所有插件的信息汇总到所述宿主中;在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。在一个实施例中,所述通过项目对象模型管理项目涉及到的所有的类,包括:分析出所述项目的宿主和与所述宿主相关的所有的插件;注解出所述宿主和所述宿主相关的所有插件的类;将所述宿主和所述宿主相关的所有插件的类上传到项目对象模型。在一个实施例中,所述通过Gradle声明所述宿主相关的所有插件的类之间的相互依赖,包括:在编译期,通过Gradle声明所述宿主相关的所有插件的类之间的相互依赖;在运行期,在AndroidManifest中声明以预设的规则对构造过程进行改造,以达到在编译期时可自动添加运行期的所有插件的类之间的相互依赖到所述AndroidManifest中。在一个实施例中,所述将所述宿主相关的所有插件的信息汇总到所述宿主中,包括:在编译期,自动收集所述宿主相关的所有插件的信息;将自动收集到的所述宿主相关的所有插件的信息汇总到所述宿主中,以供在运行期读取所述宿主相关的所有插件的信息。在一个实施例中,还包括:在编译构建时,对安卓四大组件进行注入预设的注入代码,以克服所述安卓四大组件在继承方面的限制。根据本专利技术实施例的第二方面,提供一种基于Gradle的插件打包的装置,包括:管理模块,用于通过项目对象模型管理项目涉及到的所有的类;声明模块,用于声明所述宿主相关的所有插件的类之间的相互依赖;汇总模块,用于将所述宿主相关的所有插件的信息汇总到所述宿主中;合并模块,用于在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。在一个实施例中,所述管理模块,包括:分析子模块,用于分析出所述项目的宿主和与所述宿主相关的所有的插件;注解子模块,用于注解出所述宿主和所述宿主相关的所有插件的类;上传子模块,用于将所述宿主和所述宿主相关的所有插件的类上传到项目对象模型。在一个实施例中,所述声明模块,包括:依赖子模块,用于在编译期,通过Gradle声明所述宿主相关的所有插件的类之间的相互依赖;改造子模块,用于在运行期,在AndroidManifest中声明以预设的规则对构造过程进行改造,以达到在编译期时可自动添加运行期的所有插件的类之间的相互依赖到所述AndroidManifest中。在一个实施例中,所述汇总模块,包括:收集子模块,用于在编译期,自动收集所述宿主相关的所有插件的信息;汇总子模块,用于将自动收集到的所述宿主相关的所有插件的信息汇总到所述宿主中,以供在运行期读取所述宿主相关的所有插件的信息。在一个实施例中,还包括:注入模块,用于在编译构建时,对安卓四大组件进行注入预设的注入代码,以克服所述安卓四大组件在继承方面的限制。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的方法的流程图;图2为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的方法的步骤S11的流程图;图3为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的方法的步骤S12的流程图;图4为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的方法的步骤S13的流程图;图5为本专利技术另一示例性实施例示出的一种基于Gradle的插件打包的方法的流程图;图6为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的装置的框图;图7为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的装置的管理模块61的框图;图8为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的装置的声明模块62的框图;图9为本专利技术一示例性实施例示出的一种基于Gradle的插件打包的装置的汇总模块63的框图;图10为本专利技术另一示例性实施例示出的一种基于Gradle的插件打包的装置的框图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。图1是根据一示例性实施例示出的一种基于Gradle的插件打包的方法流程图,如图1所示,该基于Gradle的插件打包的方法,包括以下步骤S11-S14:在步骤S11中,通过项目对象模型管理项目涉及到的所有的类;在步骤S12中,声明所述宿主相关的所有插件的类之间的相互依赖;在步骤S13中,将所述宿主相关的所有插件的信息汇总到所述宿主中;在步骤S14中,在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。在一个实施例中,现有的安卓编程中打包无法做到完全自动化,宿主与插件的几乎所有编译期交互都需要人工干预,宿主和宿主的各种插件是完全处于割裂混乱的。由于缺乏与系统默认的构建的完美契合,要求相关的开发人员必须掌握诸多与他们实际开发无关的技术细节,极其影响开发效率。还有,以往的热补丁制作流程过去复杂,需要相关的开发人员对于整个热补丁框架有充足的了解才能进行开发,极大的消耗了开发人员的时间和精力。通过上述内容,容易得出现有的安卓插件化技术已经广泛使用而且技术成熟度高,但是与现有的安卓插件化技术配套的插件打包的技术方案存在严重的不足之处。本实施例中的技术方案可妥善的解决上述问题。具体实施方案如下:通过项目对象模型管理项目涉及到的所有的类。其中,分析出该项目的宿主和与该宿主相关的所有的插件,本文档来自技高网...
一种基于Gradle的插件打包的方法及装置

【技术保护点】
一种基于Gradle的插件打包的方法,其特征在于,包括:通过项目对象模型管理项目涉及到的所有的类;声明所述宿主相关的所有插件的类之间的相互依赖;将所述宿主相关的所有插件的信息汇总到所述宿主中;在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。

【技术特征摘要】
1.一种基于Gradle的插件打包的方法,其特征在于,包括:通过项目对象模型管理项目涉及到的所有的类;声明所述宿主相关的所有插件的类之间的相互依赖;将所述宿主相关的所有插件的信息汇总到所述宿主中;在编译期,自动合并所述宿主相关的所有插件相关的AndroidManifest,以便增加系统的鲁棒性。2.如权利要求1所述的方法,其特征在于,所述通过项目对象模型管理项目涉及到的所有的类,包括:分析出所述项目的宿主和与所述宿主相关的所有的插件;注解出所述宿主和所述宿主相关的所有插件的类;将所述宿主和所述宿主相关的所有插件的类上传到项目对象模型。3.如权利要求1所述的方法,其特征在于,所述通过Gradle声明所述宿主相关的所有插件的类之间的相互依赖,包括:在编译期,通过Gradle声明所述宿主相关的所有插件的类之间的相互依赖;在运行期,在AndroidManifest中声明以预设的规则对构造过程进行改造,以达到在编译期时可自动添加运行期的所有插件的类之间的相互依赖到所述AndroidManifest中。4.如权利要求1所述的方法,其特征在于,所述将所述宿主相关的所有插件的信息汇总到所述宿主中,包括:在编译期,自动收集所述宿主相关的所有插件的信息;将自动收集到的所述宿主相关的所有插件的信息汇总到所述宿主中,以供在运行期读取所述宿主相关的所有插件的信息。5.如权利要求1所述的方法,其特征在于,还包括:在编译构建时,对安卓四大组件进行注入预设的注入代码,以克服所述安卓四大组件在继承方面的限制。6.一种基于Gradle的...

【专利技术属性】
技术研发人员:梁志涛
申请(专利权)人:无线生活杭州信息科技有限公司
类型:发明
国别省市:浙江,33

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

1