一种启动组件的界面的方法及装置的制造方法

文档序号:9326727阅读:380来源:国知局
一种启动组件的界面的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机通信技术,尤其涉及一种启动组件的界面(Activity)的方法及装置。
【背景技术】
[0002]目前,安卓(Android)操作系统以其操作简单且方便快捷的特性,越来越为用户所接受,已普遍应用于用户的工作以及生活中。
[0003]组件是用于构造操作应用系统的可复用的实现某一特定功能的模块,具有特定的功能和自主能力,按一定的接口规范实现互操作。其中,一 Android应用程序由多个组件组成,每一组件实现特定的功能,例如,有的组件可以作为Android操作系统进入应用程序的入口点,各组件协同合作,共同组成一个完整的应用程序。实际应用中,组件可以单独地开发和测试,各组件之间通过接口进行交互,实现信息的传递和互操作。组件化技术是为了将应用程序模块化,使得每一组件可作为分离的编译单元建立并得到再利用,可以简化应用程序的开发。当Android操作系统启动一组件,会启动该组件所属的应用程序的进程,并实例化组件所需要的类。举例来说,当启动拍照(组件)的Activity时,会启动拍照应用程序(拍照组件所属的应用程序为拍照应用程序)的进程。每一应用程序(applicat1n)都会拥有一 applicat1n类,当应用程序启动(实际为组件启动)时,Android操作系统就会触发该应用程序中的applicat1n类的方法。实际开发中,程序员可以在该applicat1n类中加入需要的逻辑,例如,加入一些服务的初始化逻辑,以对该applicat1n类实例进行初始化。
[0004]由上述可见,通过触发该组件对应的应用程序中的applicat1n类的方法,只能在该applicat1n类的方法中加入应用程序需要的逻辑,使得组件中需要加入的逻辑需与应用程序的applicat1n类的方法中加入的逻辑相同,导致使用和维护组件的代价较大,组件开发效率较低。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种启动组件的界面的方法及装置,解决使用和维护组件代价较高以及组件开发效率较低的技术问题。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]—方面,本发明实施例提供一种启动组件的界面的方法,包括:
[0008]在应用程序的界面被创建之前,获取所述界面的实例调用的所述应用程序的应用程序类的逻辑;
[0009]将所述应用程序的应用程序类中的第一变量替换为第二变量,所述第一变量包括所述应用程序的应用程序类的系统调用方法,所述第二变量包括所述组件的应用程序类的启动方法;
[0010]使用所述组件的应用程序类的启动方法启动所述组件的应用程序类。
[0011]本发明实施例提供的启动组件的界面的方法,在应用程序的界面被创建之前,获取所述界面的实例调用的所述应用程序的应用程序类的逻辑,将所述应用程序的应用程序类中的第一变量替换为第二变量,所述第一变量包括所述应用程序的应用程序类的系统调用方法,所述第二变量包括所述组件的应用程序类的启动方法,从而实现在组件中加入applicat1n类,并实现在组件的启动阶段中加入需要的逻辑代码,减少程序员使用和维护组件的代价,有效提升组件开发效率。
[0012]另一方面,本发明实施例提供一种启动组件的界面的装置,包括:监测处理模块、变量替换模块以及实例调用模块,其中,
[0013]监测处理模块,用于在应用程序的界面被创建之前,获取所述界面的实例调用的所述应用程序的应用程序类的逻辑;
[0014]变量替换模块,将所述应用程序的应用程序类中的第一变量替换为第二变量,所述第一变量包括所述应用程序的应用程序类的系统调用方法,所述第二变量包括所述组件的应用程序类的启动方法;
[0015]实例调用模块,使用所述组件的应用程序类的启动方法启动所述组件的应用程序类。
[0016]本发明实施例提供的启动组件的界面的装置,监测处理模块在应用程序的界面被创建之前,获取所述界面的实例调用的所述应用程序的应用程序类的逻辑,变量替换模块将所述应用程序的应用程序类中的第一变量替换为第二变量,所述第一变量包括所述应用程序的应用程序类的系统调用方法,所述第二变量包括所述组件的应用程序类的启动方法,实例调用模块使用所述组件的应用程序类的启动方法启动所述组件的应用程序类。从而实现在组件中加入applicat1n类,并实现在组件的启动阶段中加入需要的逻辑代码,减少程序员使用和维护组件的代价,有效提升组件开发效率。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0018]图1为本发明实施例启动组件的界面的方法总体流程示意图;
[0019]图2为本发明实施例启动组件的界面的方法具体流程示意图;
[0020]图3为本发明实施例启动组件的界面的装置结构示意图;
[0021]图4为本发明实施例启动组件的界面的装置另一结构示意图。
【具体实施方式】
[0022]下面结合附图对本发明实施例进行详细描述。
[0023]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024]图1为本发明实施例启动组件的界面的方法总体流程示意图。参见图1,该流程包括:
[0025]步骤01,在应用程序的界面被创建之前,获取所述界面的实例调用的所述应用程序的应用程序类的逻辑;
[0026]步骤02,将所述应用程序的应用程序类中的第一变量替换为第二变量,所述第一变量包括所述应用程序的应用程序类的系统调用方法,所述第二变量包括所述组件的应用程序类的启动方法;
[0027]步骤03,使用所述组件的应用程序类的启动方法启动所述组件的应用程序类。
[0028]其中,所述将所述应用程序的应用类中的第一变量替换为第二变量包括:
[0029]确定当前启动的界面为第一次启动的组件的界面,利用反射机制,将程序类中的第一变量替换为所述组件的界面的类名表示的第二变量,并设置所述组件的界面的类名表示的第二变量的父类与所述第一变量相同。
[0030]较佳地,所述第一变量位于第一主线程(mMainThread)变量中,所述第一主线程变量位于第一包信息(mPackagelnfo)变量中,所述第一包信息变量位于第一基础变量(mBase)中,所述第一基础变量位于所述应用程序类中。
[0031]作为一可选实施例,所述使用所述组件的应用程序类的启动方法启动所述组件的应用程序类包括:
[0032]调用所述应用程序的界面线程(ActivityThread)实例,并使所述界面线程实例通过所述组件的界面的类名表示的第二变量中的方法调用所述组件的界面的方法,启动所述组件的应用程序类。
[0033]在组件的界面切换至应用程序的界面时,调用所述组件的界面的类名表示的第二变量的方法,利用JAVA反射机制,将置空的应用程序的第三变量(mApplicat1n)替换为保存的所述应用程序类中的第一变量(mlnstrumentat1n),所述第三变量为一空的所述应用程序的应用程序类的系统调用方法。
[0034]本发明实施例中,所述利用反射机制,将程序类中的第一变量替换为所述组件的界面的类名表示的第二变量包括:
[0035]利用JAVA反射机制,将应用程序的应用程序类中的第三变量置空;
[0036]当前启动的界面检查所述第三变量是否置空,如果置空,创建一新应用程序类;
[0037]将新应用程序类中的第一变量替换为所述组件的界面的类名表示的变量;
[0038]关联当前的组件的界面与新应用程序类。
[0039]实际应用中,所述方法进一步包括:
[0040]在所述新应用程序类中,重写所述应用程序的界面线程实例的方法,并在重写的方法中加入预先设置的组件逻辑。
[0041]图2为本发明实施例启动组件的界面的方法具体流程示意图。参见图2,该方法包括:
[0042]步骤101,在监测到 ActivityThread 实例调用 performLaunchActivity 方法创建applicat1n类的逻辑后,判断当前待启动的Activity是否为第一次启动的组件的Activity,所述ActivityThread实例为应用程序接收到Android操作系统的通知后生成的;
[0043]本步骤中,应用程序在启动Activity时,不管是应用程序的Activity还是组件的Activity,Andr
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1