智能终端应用程序管理的配置方法和装置转让专利

申请号 : CN201210519526.1

文献号 : CN103853575B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈静聪李斌

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例提供了一种智能终端第三方应用程序启动的配置方法和装置。该方法包括:以新程序启动程序替换原程序启动程序,并在新程序启动程序中配置原程序启动程序的开机启动对象和原程序启动程序的调用指针,且为开机启动对象配置待启动的第三方应用程序的标识;以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在新开机启动程序的初始化子程序中配置新程序启动程序的调用指针和原开机启动程序的初始化子程序的调用指针。本实施例的技术方案,通过重新配置系统程序中的开机启动程序和程序启动程序,使得在开机启动时能够调用程序启动程序,并启动第三方应用程序,从而实现了第三方应用程序的开机自启动。

权利要求 :

1.一种智能终端第三方应用程序启动的配置方法,其特征在于,包括:以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;

以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。

2.根据权利要求1所述的智能终端第三方应用程序启动的配置方法,其特征在于,还包括:以新程序退出程序替换系统程序中的原程序退出程序,并在所述新程序退出程序中配置原程序退出程序的调用指针,所述新程序退出程序用于在执行时调用所述原程序退出程序并产生程序退出通知;

在所述新开机启动程序的初始化子程序中注册全局通知,用于监听所述程序退出通知;

在所述全局通知的回调处理函数中配置所述新程序启动程序的调用指针,用于在监听到所述程序退出通知时调用所述新程序启动程序。

3.根据权利要求1或2所述的智能终端第三方应用程序启动的配置方法,其特征在于,所述方法还包括:采用Hook技术以新程序在动态库中的调用指针替换系统程序中原程序的调用指针。

4.根据权利要求1或2所述的智能终端第三方应用程序启动的配置方法,其特征在于,在所述新程序启动程序中配置原程序启动程序 的开机启动对象的调用指针包括:获取原程序启动程序执行时创建的开机启动对象的调用指针;

将所述开机启动对象的调用指针配置在所述新程序启动程序中。

5.根据权利要求1或2所述的智能终端第三方应用程序启动的配置方法,其特征在于,还包括:获取用户输入的待启动的第三方应用程序的标识。

6.根据权利要求2所述的智能终端第三方应用程序启动的配置方法,其特征在于:所述原程序启动程序为SBDisplayStack类的初始化子程序;所述开机启动对象用于调用pushDisplay和popDisplay函数启动所述第三方应用程序;所述原开机启动程序为SpringBoard程序;所述原程序退出程序为SBApplication类的退出子程序。

7.一种智能终端第三方应用程序启动的配置装置,其特征在于,包括:启动程序配置模块,用于以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;

开机程序配置模块,用于以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。

8.根据权利要求7所述的智能终端第三方应用程序启动的配置装置,其特征在于,还包括退出程序配置模块,所述退出程序配置模块包括:退出程序替换单元,用于以新程序退出程序替换系统程序中的原 程序退出程序,并在所述新程序退出程序中配置原程序退出程序的调用指针,所述新程序退出程序用于在执行时调用所述原程序退出程序并产生程序退出通知;

通知注册单元,用于在所述新开机启动程序的初始化子程序中注册全局通知,用于监听所述程序退出通知;

函数配置单元,用于在所述全局通知的回调处理函数中配置所述新程序启动程序的调用指针,用于在监听到所述程序退出通知时调用所述新程序启动程序。

9.根据权利要求7或8所述的智能终端第三方应用程序启动的配置装置,其特征在于,启动程序配置模块包括:程序替换单元,用于以新程序启动程序替换系统程序中原程序启动程序;

对象指针获取单元,用于获取原程序启动程序执行时创建的开机启动对象的调用指针;

第一指针配置单元,用于将所述开机启动对象的调用指针配置在所述新程序启动程序中,且为所述开机启动对象配置待启动的第三方应用程序的标识;

第二指针配置单元,用于在所述新程序启动程序中配置所述原程序启动程序的调用指针。

10.根据权利要求7或8所述的智能终端第三方应用程序启动的配置装置,其特征在于,还包括:标识获取模块,用于获取用户输入的待启动的第三方应用程序的标识。

说明书 :

智能终端应用程序管理的配置方法和装置

技术领域

[0001] 本发明涉及智能终端数据处理技术,尤其涉及一种智能终端应用程序管理的配置方法和装置。

背景技术

[0002] 智能终端是目前移动终端的主流形式,其与一般的计算机类似,均配置有操作系统(Operating System,简称OS),能调度智能终端的硬件资源和软件资源以实现各种功能。不同的开发商提供有不同的操作系统,例如,典型的如苹果公司开发并使用的iOS就是智能终端的操作系统之一。
[0003] 现有智能终端中除操作系统之外,通常配置有基础的应用程序,以便提供一些基础性功能,此类基础应用程序与操作系统都可称为智能终端的系统程序。例如,iOS中的“SpringBoard”就是一种系统程序,可称为屏幕显示管理程序,用于管理主屏幕,同时也负责管理其他任务,包括窗口服务、应用程序的启动和切换、设置设置等。
[0004] 智能终端的优势在于用户还可以下载安装新的第三方应用程序,以不断丰富智能终端的功能。对于第三方应用程序的启动和退出等程序生命周期的管理,现有智能终端只能通过系统程序进行管理,例如通过上述的屏幕显示管理程序进行启动和退出。该管理方式使得启动和退出非常慢,且不能设置开机自启动。所以,现有技术中用户对于应用程序生命周期的管理始终受限于系统程序,而不能提高响应速度和丰富管理功能。

发明内容

[0005] 本发明实施例提供了一种智能终端第三方应用程序启动的配置方法和装置,以优化第三方应用程序的启动方式。
[0006] 本发明实施例提供了一种智能终端第三方应用程序启动的配置方法,包括:
[0007] 以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;
[0008] 以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。
[0009] 本发明实施例提供了一种智能终端第三方应用程序启动的配置装置,包括:
[0010] 启动程序配置模块,用于以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;
[0011] 开机程序配置模块,用于以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。
[0012] 本实施例的技术方案,通过重新配置系统程序中的开机启动程序和程序启动程序,使得在开机启动时能够调用程序启动程序,并启动第三方应用程序,从而实现了第三方应用程序的开机自启动。

附图说明

[0013] 图1为本发明实施例一提供的智能终端第三方应用程序启动的配置方法的流程图;
[0014] 图2为本发明实施例二提供的智能终端第三方应用程序启动的配置方法的流程图;
[0015] 图3为本发明实施例二所配置的智能终端的第三方应用程序启动和退出过程的流程图;
[0016] 图4为本发明实施例三提供的智能终端第三方应用程序启动的配置装置的结构示意图。

具体实施方式

[0017] 实施例一
[0018] 图1为本发明实施例一提供的智能终端第三方应用程序启动的配置方法的流程图,该方法可适用于对智能终端系统程序进行配置,从而能够在智能终端开机时启动第三方应用程序,从而丰富第三方应用程序的启动形式。本实施例的配置方法可以通过软件形式实现,由智能终端运行此配置方法完成对智能终端的配置。
[0019] 本实施例的配置方法具体包括如下步骤:
[0020] 步骤110、以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;
[0021] 本步骤中,开机启动对象调用指针的获取方式可以是:获取原程序启动程序执行时创建的开机启动对象的调用指针;将所述开机启动对象的调用指针配置在所述新程序启动程序中。即通过配置在开机启动时实时采集创建的开机启动对象的调用指针,以便调用开机启动对象。
[0022] 步骤120、以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。
[0023] 本实施例的技术方案,通过重新配置系统程序中的开机启动程序和程序启动程序,使得在开机启动时能够调用程序启动程序,并启动第三方应用程序,从而实现了第三方应用程序的开机自启动。在上述技术方案中,第三方应用程序的标识可以预先定义,进一步也可以获取用户输入的待启动的第三方应用程序的标识,使得用户能够控制开机自启动的第三方应用程序。
[0024] 在上述技术方案的基础上,优选是进一步控制第三方应用程序的退出,即还包括如下步骤:
[0025] 步骤130、以新程序退出程序替换系统程序中的原程序退出程序,并在所述新程序退出程序中配置原程序退出程序的调用指针,所述新程序退出程序用于在执行时调用所述原程序退出程序并产生程序退出通知;
[0026] 步骤140、在所述新开机启动程序的初始化子程序中注册全局通知,用于监听所述程序退出通知;
[0027] 步骤150、在所述全局通知的回调处理函数中配置所述新程序启动程序的调用指针,用于在监听到所述程序退出通知时调用所述新程序启动程序。
[0028] 上述技术方案,当系统程序中的原程序退出程序执行第三方应用程序的操作时,一方面正常执行退出操作,另一方面产生程序退出通知,以此触发新程序启动程序重新启动该退出的第三方应用程序。该技术方案相当于使得第三方应用程序始终在内存中保持活跃状态,便于迅速被使用。
[0029] 本实施例的技术方案中,各个程序的替换操作具体可以是采用Hook技术以新程序在动态库中的调用指针替换系统程序中原程序的调用指针。
[0030] 各类智能终端的操作系统可能不同,其系统程序中负责开机启动、程序启动和程序退出的程序也不同。下面以iOS系统为例对本发明的技术方案进行说明。
[0031] 实施例二
[0032] 图2为本发明实施例二提供的智能终端第三方应用程序启动的配置方法的流程图。在iOS系统中,原程序启动程序为SBDisplayStack类的初始化子程序,SBDisplayStack类用于进行程序生命周期的管理,例如程序的启动。开机启动对象是SBDisplayStack类在开机执行时所创建的第二个对象,用于调用pushDisplay和popDisplay函数,可配置第三方应用程序的标识为pushDisplay和popDisplay函数的输入参数,以便启动所述第三方应用程序。原开机启动程序为SpringBoard程序。所述原程序退出程序为SBApplication类的退出子程序。
[0033] 则如图2所示,本实施例的方法包括如下步骤:
[0034] 步骤201、采用Hook技术以新程序启动程序在动态库中的调用指针替换系统程序中SBDisplayStack类的初始化(init)子程序;
[0035] 该动态库例如可以为“mobilesubstrate”基础依赖包,是cydia插件或者软件运行的基础依赖包,能提供软件运行的公共库,可以用来动态替换内存中的代码、数据等。
[0036] 步骤202、在新程序启动程序中配置SBDisplayStack类的初始化(init)子程序的调用指针,并获取且配置SBDisplayStack对象的调用指针;
[0037] 其中,SBDisplayStack对象为开机启动时基于SBDisplayStack类创建的第二个对象,SBDisplayStack对象用于以新程序启动程序中的第三方应用程序的标识为输入参数连续调用pushDisplay和popDisplay函数,以启动第三方应用程序。
[0038] 步骤203、采用Hook技术以新开机启动程序的初始化子程序在动态库中的调用指针替换系统程序中SpringBoard程序的初始化子程序的调用指针;
[0039] 步骤204、在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述SpringBoard程序的初始化子程序的调用指针;
[0040] 通过步骤204的配置,以便新开机启动程序在执行了新程序启动程序后还能执行SpringBoard程序的原初始化子程序,不遗漏原开机启动的功能;
[0041] 步骤205、采用Hook技术以新程序退出程序在动态库中的调用指针替换系统程序中SBApplication类的退出子程序的调用指针;
[0042] 步骤206、在所述新程序退出程序中配置SBApplication类的退出子程序的调用指针,新程序退出程序用于在执行时调用原退出子程序并产生程序退出通知。
[0043] 上述步骤206的配置,使得调用原退出子程序,以便执行新程序退出程序自身程序时,还能保留原退出子程序的功能。
[0044] 步骤207、在所述新开机启动程序的初始化子程序中注册全局通知,用于监听所述程序退出通知;
[0045] 步骤208、在所述全局通知的回调处理函数中配置所述新程序启动程序的调用指针,用于在监听到所述程序退出通知时调用所述新程序启动程序。
[0046] 采用本发明实施例提供的技术方案对智能终端的系统程序进行配置之后,该智能终端在开机启动时,如图3所示,将按照如下步骤执行:
[0047] 步骤301、在开机后,触发运行新开机启动程序;
[0048] 步骤302、新开机启动程序的执行过程中,调用新程序启动程序和原开机启动程序;
[0049] 上述步骤中,原开机启动程序为SpringBoard程序的初始化子程序,SBDisplayStack类为SpringBoard程序的一部分,所以会创建SBDisplayStack类的对象,一般会创建四个对象,其中第二个为开机启动对象。
[0050] 步骤303、新程序启动程序的执行过程中,获取开机启动对象的调用指针;
[0051] 步骤304、新程序启动程序的执行过程中,调用开机启动对象,以第三方应用程序的标识为输入参数连续调用pushDisplay函数和popDisplay函数,以启动第三方应用程序;
[0052] pushDisplay函数和popDisplay函数用于将输入参数压入堆栈,并在开机过程中,逐一从堆栈中取出以启动。
[0053] 步骤305、当用户控制第三方应用程序退出时,触发执行新程序退出程序;
[0054] 步骤306、在新程序退出程序的执行过程中,调用原程序退出程序,以将第三方应用程序退出,同时产生程序退出通知;
[0055] 步骤307、新开机启动程序的初始化子程序将监听到程序退出通知,调用对应的回调处理函数;
[0056] 步骤308、回调处理函数调用新程序启动程序,重复步骤304,再次启动第三方应用程序。
[0057] 由上述分析可见,通过本发明实施例对智能终端的配置,使得第三方应用程序可以实现开机自启动,并且在退出后始终能驻留在内存中,以便用户能快速的切换使用。
[0058] 实施例三
[0059] 图4为本发明实施例三提供的智能终端第三方应用程序启动的配置装置的结构示意图,该配置装置可以采用软件方式实现,具体包括:启动程序配置模块410和开机程序配置模块420。其中,启动程序配置410,用于以新程序启动程序替换系统程序中原程序启动程序,并在所述新程序启动程序中配置原程序启动程序的开机启动对象的调用指针,以及所述原程序启动程序的调用指针,且为所述开机启动对象配置待启动的第三方应用程序的标识,用于在所述新程序启动程序执行时启动所述第三方应用程序,并执行所述原程序启动程序;开机程序配置模块420,用于以新开机启动程序的初始化子程序替换系统程序中原开机启动程序的初始化子程序,并在所述新开机启动程序的初始化子程序中配置所述新程序启动程序的调用指针和所述原开机启动程序的初始化子程序的调用指针,用于在开机时执行所述新程序启动程序和所述原开机启动程序的初始化子程序。
[0060] 优选是该配置装置还包括退出程序配置模块430,所述退出程序配置模块430包括:退出程序替换单元431、通知注册单元432和函数配置单元433。其中,退出程序替换单元431,用于以新程序退出程序替换系统程序中的原程序退出程序,并在所述新程序退出程序中配置原程序退出程序的调用指针,所述新程序退出程序用于在执行时调用所述原程序退出程序并产生程序退出通知;通知注册单元432,用于在所述新开机启动程序的初始化子程序中注册全局通知,用于监听所述程序退出通知;函数配置单元433,用于在所述全局通知的回调处理函数中配置所述新程序启动程序的调用指针,用于在监听到所述程序退出通知时调用所述新程序启动程序。
[0061] 上述技术方案中,启动程序配置模块410优选是包括:程序替换单元411、对象指针获取单元412、第一指针配置单元413和第二指针配置单元414。其中,程序替换单元411,用于以新程序启动程序替换系统程序中原程序启动程序;对象指针获取单元412,用于获取原程序启动程序执行时创建的开机启动对象的调用指针;第一指针配置单元413,用于将所述开机启动对象的调用指针配置在所述新程序启动程序中,且为所述开机启动对象配置待启动的第三方应用程序的标识;第二指针配置单元414,用于在所述新程序启动程序中配置所述原程序启动程序的调用指针。
[0062] 该配置装置还可以进一步设置标识获取模块440,用于获取用户输入的待启动的第三方应用程序的标识。
[0063] 本发明实施例提供的智能终端第三方应用程序启动的配置装置可执行本发明任意实施例提供的智能终端第三方应用程序启动的配置方法,具备相应的功能模块,能够通过配置系统程序丰富第三方应用程序的启动功能,实现其快速启动。
[0064] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0065] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。