一种基于Android系统的框架集成方法及系统的制作方法

文档序号:6376791阅读:183来源:国知局
专利名称:一种基于Android系统的框架集成方法及系统的制作方法
技术领域
本发明属于Android开发技术领域,具体的涉及一种基于Android系统的框架集成方法及系统。
背景技术
Android是谷歌推出的一种智能的移动终端操作系统。在Android实际开发过程中,往往都会添加一些新特性、专有的开发库、常用API的封装等。每添加一个新的功能就需要把Android框架翻个遍,寻找合适的地方放置相应的代码,到最后把Android的源码改得支离破碎,如图I所不,在所述Android Framework(即Android框架)中,设置有Android代码I、Android代码2和Android代码3 (即Android的源码),需要在所述AndroidFramework增加第三方代码时,需要寻找合适的地方放置相应的第三方代码,例如,将第三 方代码片段放入Android代码3的不同位置中,把Android的源码改得支离破碎。当遇到频繁的Android版本更新,就要把之前辛苦添加到框架中的代码找出来,重新添加到新的版本中去,这种高耦合度的框架集成方式既费时又费力,如何把这些代码集成到Android框架中成为了开发者最为头痛的事。有鉴于此,如何提供一种高效的集成Android框架的方法显的尤为重要。

发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于Android系统的框架集成方法及系统,以解决现有技术中第三方代码与Android框架之间的集成高耦合度的问题。为了达到上述目的,本发明采取了以下技术方案
一种基于Android系统的框架集成方法,用于将第三方代码集成到Android框架中,其中,所述框架集成方法包括以下步骤
A、在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架;
B、实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问;
C、Android框架使用所述粘合剂粘合对应的第三方代码。所述的基于Android系统的框架集成方法,其中,所述步骤A中定义粘合剂接口的结构包括
外部扩展模块,用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分;
正向访问器,用于Android框架粘合第三方代码;
反向访问器,用于第三方代码粘合Android框架。
所述的基于Android系统的框架集成方法,其中,所述在外部扩展模块中定义的方法和属性转化为Android框架的代码的public域的一部分。所述的基于Android系统的框架集成方法,其中,所述步骤B中实现粘合剂的正向访问的结构包括
用于负责制造所述粘合剂的粘合剂构造器;
以及用于与第三方代码粘合并可通过第三方代码的直接调用的粘合剂的实体。所述的基于Android系统的框架集成方法,其中,所述步骤C具体包括 CUAndroid框架根据粘合剂接口的定义获取所述粘合剂;
C2、Android框架在所述粘合剂中找到需要与第三方代码粘合的地方,调用粘合剂正向访问接口中的方法,完成粘合。·
所述的基于Android系统的框架集成方法,其中,所述步骤C2还包括创建一具备根据Framework的要求生产粘合剂的能力的粘合剂工厂,所述要求包括粘合剂的名称,粘合剂的正向访问接口名,粘合剂的反向访问接口名和粘合剂反向访问接口的实现4部分。一种基于Android系统的框架集成系统,用于将第三方代码集成到Android框架中,其中,所述系统包括
粘合剂接口定义模块,用于在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架;
粘合剂行为实现模块,用于实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问;
构建模块,用于令Android框架使用所述粘合剂粘合对应的第三方代码。所述的框架集成系统,其中,定义粘合剂接口的结构包括
外部扩展模块,用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分;
正向访问器,用于Android框架粘合第三方代码;
反向访问器,用于第三方代码粘合Android框架。所述的框架集成系统,其中,所述粘合剂行为实现模块中实现粘合剂的正向访问的结构包括
用于负责制造所述粘合剂的粘合剂构造器;
以及用于与第三方代码粘合并可通过第三方代码的直接调用的粘合剂的实体。所述的框架集成系统,其中,所述构建模块具体包括
第一构建模块,用于Android框架根据粘合剂接口的定义获取所述粘合剂;
第二构建模块,用于Android框架在所述粘合剂中找到需要与第三方代码粘合的地方,调用粘合剂正向访问接口中的方法,完成粘合。有益效果本发明的基于Android系统的框架集成方法及系统,通过粘合剂把Android框架的代码和第三方代码分离,达到Android框架集成弱耦合的目的,其可以令Android框架只要获取到合适的粘合剂就可以粘合所需的第三方代码,其具有的强扩展性和弱耦合度在Android框架集成中的优势也是显而易见的。


图I为现有技术的Android系统的框架集成的结构示意图。图2为本发明的基于Android系统的框架集成的结构示意图。图3为本发明的基于Android系统的框架集成方法的流程图。图4为本发明的Android系统的框架集成的实施例中粘合剂接口的结构的示意图。图5是本发明的基于Android系统的框架集成系统的结构框图。
具体实施例方式本发明主要提供了一种基于Android系统的框架集成方法及系统,为使本发明的 目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明的基于Android系统的框架集成方法,用于将第三方代码集成到Android框架中,其中,所述框架集成方法是通过在Android框架和第三方代码之间增加一粘合剂,使第三方代码单独放置而不与Android框架的代码混在一起。请一并参阅图I和图2,所述 Android Framework (即 Android 框架)中,设置有 Android 代码 I、Android 代码 2 和Android代码3,其中,所述Android代码3进一步包括三个代码片段原有代码片段I、原有代码片段2和原有代码片段3,配图I所示,现有技术将第三方代码片段(包括第三方代码片段I和第三方代码片段2)放入Android代码3的不同位置中,令Android代码3改得支离破碎。而本申请则不同,配图2所示,其提供一粘合剂(Glue),设置在Android框架和第三方代码之间,使第三方代码单独放置而不与Android框架的代码混在在一起第三方代码片段(包括第三方代码片段I和第三方代码片段2)放置在任意目录里。如此一来,降低了第三方代码与Android框架之间的耦合度,使得代码的维护更加简单,平台升级更加快速。由上述描述可知,粘合剂的设计和实现是本发明的关键必须要为每一个需要粘合的代码(在Android Framework中,以单独的一个java文件为单位)创建一个粘合剂,这样Android框架(其本质为Android框架中的Framework代码)就可以使用粘合剂去粘合他想要的代码了。请参阅图3,其为本发明的基于Android系统的框架集成方法的流程图。如图所示,所述方法包括以下步骤
51、在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架;
52、实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问;
53、Android框架使用所述粘合剂粘合对应的第三方代码。下面分别针对上述步骤进行详细介绍
首先在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架负责告诉Android框架这个粘合剂能粘合哪些代码,即定义粘合剂的粘合能力。粘合剂接口的定义必须有一定的格式,且有相似的结构。配图4所示,本实施例中,所述粘合剂接口的结构包括外部扩展模块、正向访问器和反向访问器,所述外部扩展模块用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分,具体来说,所述外部扩展模块负责这个粘合剂(即Glue)的外部可见部分Gl,如果有Framework代码使用此粘合剂,那么粘合剂中的外部扩展模块也成为Framework代码的一部分,且这部分是被外部可见的(原本的Framework对外有2个接口可见Fl和F2,当使用此粘合剂后,新的Framework的代码对外可见部分变成了 Fl,F2和GDo用Java技术描述这种情况就是在此模块中定义的方法/属性将会成为Framework代码的public域的一部分。所述正向访问器是供Framework代码使用,可以通过G2访问到第三方的代码片段,即此正向访问器用于Framework粘合第三方代码。所述反向访问器是供第三方代码使用,可以通过G3访问到Framework的代码片段,即此反向访问器用于第三方代码粘合Framework。在本实施例中,粘合剂接口定义的格式包括以下
Cl)定义一个名为IGlueXXX的接口,XXX为Framework代码的名称。在此接口中定义的所有方法就是类似图4中描述的外部扩展模块Gl ;
(2)在IGlueXXX中定义一个名为IAccesser的接口,在此接口中定义的所有的方法就是类似图4中描述的反向访问器的G3 ;
(3)在IGlueXXX中定义一个名为IGlue的接口,并且此接口必须继承IGlueXXX接口;
(4)在IGlue接口中定义的所有方法就是类似图4中正向访问器中的G2;粘合剂接口定义的格式结合图3给出Java的伪代码如下所示
public interface IGlueXXX {
定义接口 Gl interface IAccesser {
定义接口 G3
}
interface IGlue extends IGlueXXX {
定义接口 G2
}
然后是实现粘合剂的具体粘合行为,完成了第一部分中定义的粘合剂的接口后,由于粘合剂接口中只是定义了粘合剂的粘合能力,而具体的粘合行为则是在粘合剂实现中。粘合剂的实现细分成2个部分,即实现粘合剂的正向访问和反向访问。正向访问的粘合剂的实现需要完成粘合剂接口中定义的IGlue接口中的所有方法,且必须有一定的格式,和相似的结构。以正向访问为例,正向访问的粘合剂实现的结构包括有
(I)粘合剂构造器此构造器负责制造此粘合剂,Framework只有获取到粘合剂之后才能真正的与第三方代码粘合。粘合剂的接口只是该粘合剂能力的表达,并不能真正粘合。(2)粘合剂的实体真正与第三方代码粘合的动作是在此部分完成的,他是整个粘合剂的核心部分。用Java技术表达就是,在此部分中才会有对第三方代码的直接调用。
正向访问的粘合剂的实现的格式包括
(I)定义一个名为GlueXXX的类,XXX为Framework代码的名称,和IGlueXXX中的相同。(2)定义一个带有IGlueXXX. IAccesser参数的GlueXXX的构造器。构造器需要保存传入的参数以及制造出粘合剂。(3)类GlueXXX必须实现IGlueXXX. IGlue中定义的所有的方法。在每个方法的实现过程中,可以直接调用第三方的代码以完成粘合动作。如果第三方代码需要反向访问Framework的代码,贝U可以通过IAccesser完成(IAccesser已经在粘合剂创建的同时被保存在粘合剂内部了)。正向访问的粘合剂的实现结合给出的Java伪代码如下 public class GlueXXX implements IGlueXXX. IGlue{
GlueXXX (IGlueXXX. IAcesser accesser) {
保存 accesser
}
实现Gl方法{
直接调用第三方代码
}
实现G2方法{
直接调用第三方代码
}
}
而反向访问的粘合剂的实现与正向访问的粘合剂的实现相比起来要简单的多,没有固定的格式和结构,只有一个要求,就是需要完成粘合剂接口中定义的IAccesser接口中的所有方法。对于反向访问的粘合剂的实现的放置位置有一个限制,就是必须放置在Framework中需要粘合的代码中。由于反向访问的粘合剂的实现与正向访问的粘合剂的实现类似,所以关于此部分的实现细节就不再赘述了。最后是Android框架使用所述粘合剂粘合所述粘合剂对应的第三方代码。在本实施例中,具体包括以下Ml、M2两步
Ml、Android框架根据粘合剂接口的定义获取所述粘合剂;即Framework代码中创建出合适的粘合剂,所谓合适的粘合剂指的是该粘合剂具备粘合此Framework代码中想要粘合的第三方代码的能力,其实,这样的粘合剂已经粘合剂接口中定义了。因此,本步骤需要做的就是找到这样的粘合剂接口定义,然后再根据粘合剂接口定义获取到粘合剂的实现,在粘合剂实现中,对于每一个粘合剂的实现必须要有一个粘合剂构造器的规定,这样,就可以使用粘合剂的构造器制造出该粘合剂供Framework代码使用。显然,这样创建合适的粘合剂有点复杂,在具体的实现过程中,有一个粘合剂工厂存在,此工厂负责生成各式各样的粘合剂。在Framework代码中只需要通过粘合剂工厂创建出合适的粘合剂正向访问接口即可。所述实现粘合剂工厂的实现采用如下方法粘合剂工厂具备根据Framework的要求生产粘合剂的能力,这里的要求包括粘合剂的名称、粘合剂的正向访问接口名、粘合剂的反向访问接口名和粘合剂反向访问接口的实现这4部分,其实这4部分正是在描述需要生产出来的粘合剂所具备的能力。该工厂使用Java的反射机制实现,用户不需要修改该工厂的代码,其Java的实现方式如下
public final class GlueFactory{
public final static <T,E> T buildGule(String moduleName, Class<T>glue,Class<E>iaccesser, E accesser) {
String glueName=,,com. xxx. glue. Glue”+moduleName; try {
return glue, cast(Class. forName(glueName)
.getDeclaredConstructor(new Class[]{iaccesser})
.newlnstance (iaccesser. cast(accesser)));
} catch (Exception e) {//捕获异常
}
return null;//返回值无效
}
}
M2、Android框架在所述粘合剂中找到需要与第三方代码粘合之处,然后完成粘合。在本实施例中,其采用调用粘合剂中的正向访问器来实现。本发明还提供了一种基于Android系统的框架集成系统,用于将第三方代码集成到Android框架中,如图5所示,所述系统包括粘合剂接口定义模块100、粘合剂行为实现模块200和构建模块300,其中,所述粘合剂接口定义模块100用于在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架;所述粘合剂行为实现模块200用于实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问;所述构建模块300用于令Android框架使用所述粘合剂粘合对应的第三方代码。优选地,所述粘合剂接口定义模块中定义粘合剂接口的结构包括外部扩展模块、正向访问器和反向访问器,所述外部扩展模块用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分;所述正向访问器用于Android框架粘合第三方代码;所述反向访问器用于第三方代码粘合Android框架。优选地,所述的框架集成系统中所述粘合剂行为实现模块中实现粘合剂的正向访问的结构包括用于负责制造所述粘合剂的粘合剂构造器,以及用于与第三方代码粘合并可通过第三方代码的直接调用的粘合剂的实体。优选地,所述构建模块具体包括第一构建模块和第二构建模块,所述第一构建模块用于Android框架根据粘合剂接口的定义获取所述粘合剂;所述第二构建模块用于Android框架在所述粘合剂中找到需要与第三方代码粘合的地方,调用粘合剂正向访问接口中的方法,完成粘合。关于其具体实现细节,都已经在上述基于Android系统的框架集成方法中进行了详细描述,这里就不再赘述了。综上所述,本发明的基于Android系统的框架集成方法及系统,用于将第三方代码集成到Android框架中,首先,在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架;然后,实现粘合剂的具体粘合行为,所述具体粘合行为包括Andro i d框架对第三方代码的正向访问和第三方代码对Andro i d框架的反向访问;最后,Android框架使用所述粘合剂粘合对应的第三方代码。从而使第三方代码单独放置而不与Android框架的代码混在在一起,达到Android框架集成弱稱合的目的,从而可以令Android框架只要获取到合适的粘合剂就可以粘合所需的第三方代码,其具有的强扩展性和弱耦合度在Android框架集成中的优势是显而易见的。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种基于Android系统的框架集成方法,用于将第三方代码集成到Android框架中,其特征在于,所述框架集成方法包括以下步骤 A、在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架; B、实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问; C、Android框架使用所述粘合剂粘合对应的第三方代码。
2.根据权利要求I所述的基于Android系统的框架集成方法,其特征在于,所述步骤A中定义粘合剂接口的结构包括 外部扩展模块,用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分; 正向访问器,用于Android框架粘合第三方代码; 反向访问器,用于第三方代码粘合Android框架。
3.根据权利要求2所述的基于Android系统的框架集成方法,其特征在于,所述在外部扩展模块中定义的方法和属性转化为Android框架的代码的public域的一部分。
4.根据权利要求I所述的基于Android系统的框架集成方法,其特征在于,所述步骤B中实现粘合剂的正向访问的结构包括 用于负责制造所述粘合剂的粘合剂构造器; 以及用于与第三方代码粘合并可通过第三方代码的直接调用的粘合剂的实体。
5.根据权利要求I所述的基于Android系统的框架集成方法,其特征在于,所述步骤C具体包括 CUAndroid框架根据粘合剂接口的定义获取所述粘合剂; C2、Android框架在所述粘合剂中找到需要与第三方代码粘合的地方,调用粘合剂正向访问接口中的方法,完成粘合。
6.根据权利要求5所述的基于Android系统的框架集成方法,其特征在于,所述步骤C2还包括创建一具备根据Framework的要求生产粘合剂的能力的粘合剂工厂,所述要求包括粘合剂的名称,粘合剂的正向访问接口名,粘合剂的反向访问接口名和粘合剂反向访问接口的实现。
7.一种基于Android系统的框架集成系统,用于将第三方代码集成到Android框架中,其特征在于,所述框架集成系统包括 粘合剂接口定义模块,用于在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,为每一粘合剂定义粘合剂接口,并将所述粘合剂对应的第三方代码通知所述Android框架; 粘合剂行为实现模块,用于实现粘合剂的具体粘合行为,所述具体粘合行为包括Android框架对第三方代码的正向访问和第三方代码对Android框架的反向访问; 构建模块,用于令Android框架使用所述粘合剂粘合对应的第三方代码。
8.根据权利要求7所述的框架集成系统,其特征在于,定义粘合剂接口的结构包括 外部扩展模块,用于当Android框架的代码使用粘合剂时,转化为Android框架的代码的一部分; 正向访问器,用于Android框架粘合第三方代码; 反向访问器,用于第三方代码粘合Android框架。
9.根据权利要求7所述的框架集成系统,其特征在于,所述粘合剂行为实现模块中实现粘合剂的正向访问的结构包括 用于负责制造所述粘合剂的粘合剂构造器; 以及用于与第三方代码粘合并可通过第三方代码的直接调用的粘合剂的实体。
10.根据权利要求7所述的框架集成系统,其特征在于,所述构建模块具体包括 第一构建模块,用于Android框架根据粘合剂接口的定义获取所述粘合剂; 第二构建模块,用于Android框架在所述粘合剂中找到需要与第三方代码粘合的地方,调用粘合剂正向访问接口中的方法,完成粘合。
全文摘要
本发明公开了一种基于Android系统的框架集成方法及系统,用于将第三方代码集成到Android框架中,首先,在Android框架和第三方代码之间增加一层粘合剂,每一个需要粘合的第三方代码对应一个粘合剂,并定义粘合剂接口;然后,实现粘合剂的具体粘合行为;最后,Android框架使用所述粘合剂粘合对应的第三方代码。从而使第三方代码单独放置而不与Android框架的代码混在在一起,达到Android框架集成弱耦合的目的,令Android框架只要获取到合适的粘合剂就可以粘合所需的第三方代码,其具有的强扩展性和弱耦合度在Android框架集成中的优势是显而易见的。
文档编号G06F9/44GK102866891SQ201210336000
公开日2013年1月9日 申请日期2012年9月12日 优先权日2012年9月12日
发明者史豪君 申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1