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

文档序号:8942871阅读:212来源:国知局
一种启动界面的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机通信技术,尤其涉及一种启动界面(Activity)的方法及装置。
【背景技术】
[0002]目前,安卓(Android)操作系统以其操作简单且方便快捷的特性,越来越为用户所接受,已普遍应用于用户的工作以及生活中。界面(Activity)是基于Android操作系统的应用程序中最基本也是最为常见用的组件之一。一个Activity是一个应用程序组件,提供一个屏幕,用户可以通过提供的屏幕,用于与应用程序交互以完成某项任务。
[0003]根据Android开发的设计标准,每一 Activity需要在AndroidManifest.xml文件中注册该Activity的信息,当应用程序启动Activity时,向Android操作系统发送启动该Activity的请求,Android操作系统接收到该请求后,对请求启动的Activity进行一系列的检验其合法性的操作,其中包括判断该Activity是否在AndroidManifest.xml文件中注册,如果合法性校验通过,贝Ij可以启动Activity。但该启动Activity的方法,需要在AndroidManifest.xml文件中注册有该Activity的信息,这样,在特定的一些应用场景中,会导致应用程序的灵活性较差,不能满足用户的个性化需求。
[0004]为了解决上述问题,现有技术提出了一种改进的启动Activity的方法,即通过代理Activity启动未注册的Activity。具体来说,在AndroidManifest.xml文件中注册一Activity,称为ActivityA,并在ActivityA中的每一个被Android操作系统回调的环节中再去调用与ActivityA绑定的未注册的ActivityB,并且,在未注册的ActivityB请求Android操作系统服务时,可以通过调用注册的ActivityA的方法去请求Android操作系统,即通过与ActivityA的绑定使得ActivityB在一定程度上拥有一个已注册的Activity所拥有的功能。
[0005]上述通过ActivityA启动ActivityB的方法,虽然能避免ActivityB必须在AndroidManifest.xml文件中注册的问题,但需要编写ActivityA与ActivityB之间的绑定接口代码,增加了编写绑定接口代码的工作量,同时还增加了使用该绑定接口技术的学习成本。

【发明内容】

[0006]有鉴于此,本发明实施例提供一种启动界面的方法及装置,降低编写界面代码的工作量。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]—方面,本发明实施例提供一种启动界面的方法,包括:
[0009]在启动第一界面Activity时,获取向系统发送的启动请求,所述启动请求包括写入所述第一 Activity的类名的Intent类,所述第一 Activity的类名以一变量表示;
[0010]将所述启动请求中以所述第一 Activity的类名表示的变量修改为以第二Activity的类名表示的变量;
[0011]将经过修改的所述启动请求发送给系统以启动所述第一 Activity。
[0012]本发明实施例提供的启动界面的方法,将启动请求中以第一 Activity的类名表示的变量替换为以第二 Activity的类名表示的变量,再将经过修改的所述启动请求发送给系统以启动所述第一 Activity。从而实现只需要在AndroidManifest.xml文件中注册一Activity,其他未注册的Activity都能通过两次替换的方法正常地启动起来,无须维护所有的Activity注册信息,无需编写注册的Activity与未注册的Activity的绑定接口代码,减少了编写绑定接口代码以及界面代码的工作量以及开发代价,启动Activity的效率尚O
[0013]另一方面,本发明实施例提供一种启动界面的装置,包括:启动请求拦截模块、变量替换校验模块以及变量替换启动模块,其中,
[0014]启动请求拦截模块,用于在启动第一界面Activity时,获取向系统发送的启动请求,所述启动请求包括写入所述第一 Activity的类名的Intent类,所述第一 Activity的类名以一变量表不;
[0015]变量替换校验模块,用于将所述启动请求中以所述第一 Activity的类名表示的变量修改为以第二 Activity的类名表示的变量;
[0016]变量替换启动模块,用于将经过修改的所述启动请求发送给系统以启动所述第一Activity。
[0017]本发明实施例提供的启动界面的装置,启动请求拦截模块在启动第一界面Activity时,获取向系统发送的启动请求,所述启动请求包括写入所述第一 Activity的类名的Intent类,所述第一 Activity的类名以一变量表示,变量替换校验模块将所述启动请求中以所述第一 Activity的类名表示的变量修改为以第二 Activity的类名表示的变量,变量替换启动模块再将将经过修改的所述启动请求发送给系统以启动所述第一 Activity。从而实现只需要在AndroidManifest.xml文件中注册一 Activity,其他未注册的Activity都能通过两次替换的方法正常地启动起来,无须维护所有的Activity注册信息,无需编写注册的Activity与未注册的Activity的绑定接口代码,减少了编写绑定接口代码以及界面代码的工作量以及开发代价,启动Activity的效率高。
【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0019]图1为本发明实施例启动界面的方法总体流程示意图;
[0020]图2为本发明实施例启动界面的方法具体流程示意图;
[0021]图3为本发明实施例启动界面的装置结构示意图;
[0022]图4为本发明实施例启动界面的装置具体结构示意图。
【具体实施方式】
[0023]下面结合附图对本发明实施例进行详细描述。
[0024]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0025]图1为本发明实施例启动界面的方法总体流程示意图。参见图1,该流程包括:
[0026]步骤11,在启动第一界面Activity时,获取向系统发送的启动请求,所述启动请求包括写入所述第一 Activity的类名的Intent类,所述第一 Activity的类名以一变量表示;
[0027]本步骤中,所述第一 Activity为未注册的Activity,所述第二 Activity为已注册的 Activity。
[0028]步骤12,将所述启动请求中以所述第一 Activity的类名表示的变量修改为以第二Activity的类名表示的变量;
[0029]本步骤中,所述将所述启动请求中以所述第一 Activity的类名表示的变量修改为以第二 Activity的类名表示的变量包括:
[0030]分析android操作系统源码,采用反射机制,将应用程序Applicat1n类中的mBase变量的mPackagelnfo变量的mMainThread变量的mlnstrumentat1n变量替换为所述第一 Activity的类名。
[0031]本发明实施例中,在修改为以第二 Activity的类名表示的变量之后,所述方法进一步包括:
[0032]保存以所述mlnstrumentat1n变量表示的第一Activity的类名。
[0033]本发明实施例中,作为一可选实施例,所述启动请求由mlnstrumentat1n变量中的 execStartActivity 方法实现。
[0034]在所述将所述启动请求中以所述第一 Activity的类名表示的变量修
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1