一种基于安卓智能终端的应用程序多开管理方法和系统的制作方法

文档序号:6626764阅读:258来源:国知局
一种基于安卓智能终端的应用程序多开管理方法和系统的制作方法
【专利摘要】本发明提供一种基于安卓智能终端的应用程序多开管理方法和系统,包括启动安卓智能终端上的一个应用程序;然后通过控制单元进行多开属性、筛选参数和正在运行的进程的判断,其中,多开属性是针对安卓智能终端上的应用程序是否可以多次启动并分别建立进程而预先通过用户界面设置的;筛选参数是对满足多开属性的应用程序通过用户界面或由生产厂家在出厂时预先设置的;最后控制单元根据判断结果分配PID创建应用程序的进程、对正在运行的进程之间进行切换,或者分配新PID再次创建应用程序的新进程。通过本发明,用户可以方便快捷地实现某个应用程序的多开,并且对多开的应用程序,使用和管理更加直观和方便。
【专利说明】一种基于安卓智能终端的应用程序多开管理方法和系统

【技术领域】
[0001]本发明涉及一种移动通信设备的应用程序的多开方法,特别是涉及一种基于安卓智能终端的应用程序多开管理方法和系统。

【背景技术】
[0002]随着移动通信技术的越来越成熟,移动通信终端,如智能手机和平板电脑等已经成为了人们日常生活的必备品。并且,智能手机的应用系统中,安卓系统还是使用比较广泛的,当然在平板电脑的应用系统中,也有使用安卓系统的。
[0003]目前市场上安卓系统的智能手机或平板电脑,一个应用程序只能启动一个实例并运行,不能像在电脑上使用某些应用程序一样实现多开。例如,针对某个聊天工具或微博,用户具有多个账号,需要同时登陆使用;或者针对某款游戏,用户具有多个账号,需要同时登陆满足切换、交易等方便操作。这些多开的需求在电脑上实现起来比较容易,但是,智能手机或平板电脑受限于安卓系统的特性,用户在安卓系统下同时只能开启一个应用程序的实例,当需要登录另一个账号时,只能在当前运行的实例中注销当前账号以达到切换的目的,这就带来了诸多的不便。
[0004]安卓应用系统下的应用程序都是以APK (Android Package,安卓安装包)格式的文件发布的,通过将APK文件直接传到安卓系统下执行即可安装。APK文件是安卓软件开发工具包编译的工程打包成的一个安装程序文件。安卓系统在运行一个应用程序时,首先需要解压,解压后可以看到Dex(DalvikVMesecutes)文件,即安卓Dalvik执行文件。
[0005]在安卓系统下,Activity (活动界面)和Service (服务)是应用程序的核心组件,它们以藕合的方式组合在一起构成了一个完整的应用程序。应用程序的框架层提供了一套完整的机制来协助应用程序启动这些Activity和Service,以及提供Binder ( —种安卓进程间通信机制)机制帮助它们相互间进行通信。
[0006]在安卓系统下,用户点击应用程序的图标时,会启动应用程序的主Activity ;应用程序的默认Activity启动起来后,它又可以在内部通过调用接口启动新的Activity,依此类推,每一个Activity都可以在内部启动新的Activity。通过这种连锁反应,按需启动Activity,从而完成应用程序的功能。但是,Activity的启动最终是在一个活动界面管理服务中执行的,该服务是安卓系统的一个组件,也是一个进程,在系统启动时被创建,负责监听系统创建Activity或服务的请求,为安卓应用程序创建新的进程。在系统中运行的应用程序都有不同的包名,系统为每个应用程序创建一个唯一的PID(进程号)。
[0007]当然,现在也有很多的安卓爱好者研究了一些可以使某些应用程序实现多开的方法,例如,于需要多开的应用程序,在手机上安装该应用程序的多个不同版本(这些不同版本不会冲突和覆盖),通过启动不同版本的应用程序来实现多个账号的同时登陆;或者采用一些创建共存的工具,克隆一个相同的应用程序以实现同时多开:对某个应用软件的安装程序实行反编译后修改签名,再重新打包安装一个相同的应用程序;还有一些工具可以制作应用程序的共存版,实际上也是反编译后修改签名再重新打包。上述这些方法本质上所都是通过启动不同的应用程序来实现多开,并非真正的一个应用程序启动多个实例。并且,采用上述方法,也有很多的局限性:当用户针对一个应用程序需要同时完成数量较多的多开时,例如用户需要同时登陆三个、四个或者更多的账号,那么就需要安装更多的该应用程序的不同版本,这样在使用时很容易造成混淆,而且切换起来也不方便。


【发明内容】

[0008]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于安卓智能终端的应用程序多开管理方法和系统,用于解决现有技术中安卓系统下一个应用程序只能启动一个实例并运行的问题。
[0009]为实现上述目的及其他相关目的,本发明提供一种基于安卓智能终端的应用程序多开管理方法,包括:步骤S10,启动所述安卓智能终端上的一个应用程序;步骤S20,判断所述应用程序是否设置了所述多开属性:如果未设置所述多开属性,则跳转至步骤S40 ;如果设置了所述多开属性,则跳转至步骤S30 ;其中,所述多开属性是针对所述安卓智能终端上的应用程序是否可以多次启动并分别建立进程而预先设置的;步骤S30,判断所述应用程序是否有正在运行的进程:如果没有,则跳转至步骤S60 ;如果有,则跳转至步骤S70 ;步骤S40,判断所述应用程序是否有正在运行的进程:如果没有,则跳转至步骤S60 ;如果有,则跳转至步骤S50 ;步骤S50,打开所述应用程序正在运行的进程;步骤S60,分配PID,创建所述应用程序的进程;步骤S70,对正在运行的所述应用程序的进程之间进行切换,或者分配新PID,再次创建一个所述应用程序的新进程。
[0010]可选地,所述多开属性是用户通过所述安卓智能终端进行设置的。
[0011]可选地,所述步骤S20中还包括对满足所述多开属性的应用程序进行是否满足筛选参数的判断:如果满足所述筛选参数,则跳转至步骤S30 ;如果不满足所述筛选参数,则跳转至步骤S40。
[0012]可选地,所述筛选参数是针对所述安卓智能终端上满足所述多开属性的应用程序的预先设置的;且所述筛选参数是由用户通过所述安卓智能终端进行设置的或者是生产厂家在所述安卓智能终端出厂时在安卓系统中进行设置的。
[0013]可选地,所述步骤S50中,所述应用程序正在运行的进程只有一个,且所述进程对应唯——个所述PID。
[0014]可选地。所述步骤S70中,所述应用程序正在运行的进程至少为一个,且正在运行的不同的所述进程对应不同的所述PID。
[0015]可选地,所述步骤S70的分配新PID,再次创建所述应用程序的新进程中,所述新PID是区别于所述应用程序正在运行的进程所对应的所述PID的。
[0016]一种基于安卓智能终端的应用程序多开管理系统,包括控制单元和用户界面;所述用户界面是所述应用程序多开管理系统在所述安卓智能终端的交互界面,用于设置多开属性、显示多开应用程序正在运行的进程以及下达操作指令;所述控制单元用于判断所述安卓智能终端中启动的应用程序是否满足所述多开属性;判断所述应用程序是否存在正在运行的进程;根据所述操作指令对所述应用程序进行多开管理操作。
[0017]可选地,所述控制单元还用于判断所述安卓智能终端中满足所述多开属性的应用程序是否满足筛选参数;其中,所述筛选参数由用户通过所述用户界面进行设置或者由生产厂家在所述安卓智能终端出厂时在安卓系统中进行设置。
[0018]可选地,所述多开管理操作包括分配新PID,再次创建应用程序的新进程、切换应用程序的正在运行的多个进程。
[0019]如上所述,本发明的基于安卓智能终端的应用程序多开管理方法和系统,具有以下有益效果:
[0020]1.用户可以方便快捷地实现某个应用程序多开的需求,不用下载或者使用工具,免去了繁琐的操作流程,避免了多个版本的同一应用程序的混淆;
[0021]2.用户可以自行对应用程序是否多开进行设置;
[0022]3.生产厂家也可根据自身情况对安卓系统进行定制,指定自己的安卓系统终端对可设置多开的应用程序的筛选规则;
[0023]4.对于多开的某个应用程序,使用和管理起来更加直观和方便。

【专利附图】

【附图说明】
[0024]图1显示为本发明的实施例公开的一种基于安卓智能终端的应用程序多开管理系统的结构示意图。
[0025]图2显示为本发明的实施例公开的一种基于安卓智能终端的应用程序多开管理系统的显示应用程序列表的用户界面的示意图。
[0026]图3显示为本发明的实施例公开的一种基于安卓智能终端的应用程序多开管理系统的显示实例列表的用户界面的示意图。
[0027]图4显示为本发明的实施例公开的一种基于安卓智能终端的应用程序多开管理方法的多开管理部分的流程示意图。
[0028]元件标号说明
[0029]100应用程序多开管理系统
[0030]110用户界面
[0031]120控制单元
[0032]SlO ?S70 步骤

【具体实施方式】
[0033]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0034]请参阅图1至图4,需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0035]实施例1
[0036]本实施例提供了一种基于安卓智能终端的应用程序多开管理系统100,如图1所示,包括用户界面110和控制单元120。
[0037]用户界面110是本发明的应用程序多开管理系统在安卓智能终端的交互界面,用户通过用户界面110可以设置多开属性,即安卓智能终端上安装的非系统应用程序(不是安卓系统自带的应用程序)是否可以多次启动并分别建立进程;显示多开的应用程序正在运行的进程的列表;根据列表和实际需要下达操作指令。控制单元120用于判断安卓智能终端点击打开的应用程序是否设置了多开属性,且该应用程序是否存在正在运行的进程,并根据操作指令对该应用程序进行多开管理操作。
[0038]用户打开基于安卓智能终端的应用程序多开管理系统100,用户界面110就会列出当前安卓系统中已经安装的非系统应用程序列表,用户可以在应用程序列表中勾选需要多开的应用程序,勾选的应用程序即为设置了多开属性。如图2所示,安卓系统中已经安装的非系统应用程序包括应用程序1、应用程序2、……、应用程序n,用户可以根据实际需要勾选需要多开的应用程序,图2所示中应用程序1、应用程序2和应用程序4都被设置了多开属性。
[0039]在用户点击安卓智能终端桌面上的应用程序图标时,应用程序多开管理系统100的控制单元120会对该应用程序的多开属性进行判断:如果该应用程序没有设置多开属性,则正常启动,即,如果没有正在运行的进程,则分配PID,创建进程,如果存在正在运行的进程,则直接打开正在运行的进程;并且,只要存在正在运行的进程,即使再多次启动该应用程序,也只会进入到正在运行的进程当中;如果该应用程序设置了多开属性,那么控制单元120还要继续对该应用程序的运行情况进行判断,判断其是否存在正在运行的进程:如果不存在,那么直接配置PID,创建一个应用程序进程;而如果该应用程序中已经存在了一个或多个正在运行的进程,则会弹出用户界面110,此时用户界面110会显示一个进程列表,进程列表中列出了正在运行的进程并伴有少量的信息说明以便用户辨认,例如,如果应用程序是聊天工具,可以采用聊天工具的登陆用户名作为信息来标注进程。如图3所示,对于应用程序QQ,正在运行的进程包括进程I和进程2,其中,进程I是用户使用QQ号为123456登陆的QQ程序进程;进程2是用户使用QQ号为654321登陆的QQ程序进程;那么,对于进程I就会标注信息“123456”,进程2标注信息“654321”,当然本发明并不仅限于上述方式。并且,在进程列表中还设置有一个创建新进程的选项,用户可以在该显示进程列表的用户界面110上下达操作指令:点击正在运行的任意一个进程;点击创建新进程的选项再次创建应用程序的新进程。而控制单元120接收到了用户界面110下达的操作指令后,会根据操作指令,打开点击选择的该应用程序正在运行的进程;或者分配一个与正在运行的进程所对应的PID都不一样的新PID,再次创建该应用程序的新进程。
[0040]实施例2
[0041]本实施例公开了一种基于安卓智能终端的应用程序多开管理方法,具体如图4所示,包括:
[0042]步骤S10,启动安卓智能终端上的一个应用程序:应用程序即可以通过点击桌面图标来启动的,也可以通过其他方式进行启动。
[0043]步骤S20,判断该应用程序是否设置了多开属性:如果设置了多开属性,则跳转至步骤S30 ;如果没有设置多开属性,则跳转至步骤S40 ;
[0044]其中,多开属性是安卓智能终端上安装的非系统应用程序是否可以多次启动并分别建立进程,是由用户通过应用程序的多开管理系统对安卓智能终端上的非系统应用程序进行预先设置的,只有勾选了多开属性的应用程序才可以进行多次启动并分别建立进程。
[0045]虽然非系统应用程序都可以被设置为多开属性,但是每个应用程序的用途、使用环境、可能存在的启动方式等都各不一样,所以并不是每个应用程序都适合多开运行的。例如,通常情况下,应用程序是通过点击桌面图标来启动的,但是应用程序的启动并非都是通过点击桌面上的图片来启动的;有些应用程序还可以在一个已经运行的应用程序里去启动,那么此时的多开管理就要根据之前运行的应用程序的具体情况来决定;并且有的应用程序可能还会和别的应用程序或者服务做通信交互,那么该应用程序的各个进程有可能会出现资源访问方面的冲突。所以,在本实施例中还增加了一个对筛选参数,以便对设置了多开属性的的应用程序进行进一步的筛选。筛选参数即可以通过安卓智能终端的应用程序多开管理系统进行设置,也可以通过生产厂家在安卓智能终端出厂时对其进行设置。筛选参数包括制定应用程序包名、Activity的指定启动模式等等。
[0046]如果设置了筛选参数,那么在此步骤中,除了要对该应用程序的多开属性进行判断,还需要对筛选参数进行判断,只有即满足多开属性,有满足筛选参数的应用程序才可以进行多开,即跳转至步骤S30,否则则跳转至步骤S40。
[0047]步骤S30,判断该应用程序是否存在正在运行的进程,即判断应用程序是不是首次启动使用:如果没有,则跳转至步骤S60 ;如果存在,则跳转至步骤S70。
[0048]步骤S40,判断该应用程序是否存在正在运行的进程,即判断应用程序是不是首次启动使用:如果没有,则跳转至步骤S60 ;如果存在,则跳转至步骤S50。
[0049]步骤S50,打开应用程序正在运行的进程;此时,应用程序正在运行的进程有且只有一个,并且该进程对应唯——个PID。
[0050]步骤S60,分配PID,创建应用程序的进程,在本步骤中,是按照安卓系统的正常方式建立的。
[0051]步骤S70,对正在运行的进程之间进行切换和处理,或者分配新PID,再次创建应用程序的新进程。
[0052]当步骤S30中判断出应用程序存在正在运行的进程时,应用程序多开管理系统会弹出如图3所示进程列表,用户可以根据该进程列表选择切换正在运行的进程或者创建应用程序的新进程。选择切换正在运行的进程,即为选择性地打开正在运行的进程。
[0053]通常情况下,应用程序的进程创建在安卓应用程序框架层中,是由ActivityManagerService组件负责的,其为Android应用程序创建新的进程,它是运行在一个独立的进程之中,其中,该独立的进程是在系统启动的过程中创建的。当系统决定要在一个新的进程中启动这个Activity或者Service (实例)时,它就会创建一个新的进程,然后在这个新的进程中启动这个Activity或者Service。并且,每一个应用程序的进程创建都是一个Dalvik虚拟机进程创建过程,该虚拟机进程启示就是一个Iinux进程,是从入□ ActivityThread 开始,由 ActivityManagerService 组件(ActivityManagerProxy、ActivityManagerNative^ActivityManagerService)直接通过 Process 类的静态成员函数start来请求Zygote进程创建的,而Zygote进程是通过dalvik.System.Zygote类的静态成员函数fork、forkSystemService和forkAndSpecialize来分配PID并创建应用程序进程的。在安卓系统中,每一个应用程序都有自己独有的包名,系统会根据包名为应用程序创建一个新的进程并分配给应用程序一个PID,也就是说,安卓智能终端的每一个应用程序对应一个唯一的PID。
[0054]按照通常情况下安卓系统的应用程序进程创建方式,当一个应用程序的进程开始运行,并且这个应用程序没有其他的进程在运行,系统会为这个应用程序启动一个新的Iinux进程,这个进程只有一个线程。并且,默认情况下,一个应用程序的所有进程都运行在这个进程或线程(主线程)中。如果一个应用程序被启动,并且该应用程序已经存在进程了,那么该应用程序的启动只会在这个已有的进程中启动并且运行在同一个进程中。
[0055]而本实施例的应用程序的多开管理方法中的创建应用程序的进程也是在安卓应用程序框架层中,也是一个虚拟机进程,一个Iinux进程,并且仍
[0056]仍是从入口 ActivityThread 开始,到 ActivityManagerService 组件(ActivityManagerProxy、ActivityManagerNative、ActivityManagerService)后锁停Process类的静态成员函数start,然后进行多开属性和是否有正在运行的进程的判断:
[0057]如果未设置多开属性并且存在正在运行的进程,则启动已存在的进程;由于该应用程序未设置多开属性,所以此时该应用程序对应唯一的PID ;
[0058]如果未设置多开属性并且不存在正在运行的进程,则继续按照安卓系统下的应用程序进程创建过程进行进程创建;并且由于此时只有一个进程,其PID也只有唯一的一个;
[0059]如果设置了多开属性,并且不存在正在运行的进程,也继续按照安卓系统下的应用程序进程创建过程进行进程创建;此时的应用程序的进程只有一个,对应的PID也只有一个;
[0060]如果设置了多开属性,并且存在正在运行的进程,那么再次按照安卓系统下的应用程序进程创建过程进行进程创建,但是该进程对应的PID是经过重新分配的,是与应用程序正在运行的进程所对应的PID完全不同的;并且,这个进程的创建是针对应用程序的启动的,应用程序启动一次就会创建一个进程,这也就是说,多个包名一样的应用程序的进程,其对应的PID却各不一样。
[0061]综上所述,本发明的基于安卓智能终端的应用程序多开管理方法和系统,可以方便快捷地实现某个应用程序多开的需求;并且用户可以自行对应用程序是否多开进行设置;而且生产厂家也可根据自身情况对安卓系统进行定制,指定自己的安卓系统终端对可设置多开的应用程序的筛选规则;对于多开的某个应用程序,使用和管理起来更加直观和方便,避免了混淆。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0062]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种基于安卓智能终端的应用程序多开管理方法,其特征在于,所述应用程序的多开管理方法包括: 步骤S10,启动所述安卓智能终端上的一个应用程序; 步骤S20,判断所述应用程序是否设置了所述多开属性:如果未设置所述多开属性,则跳转至步骤S40 ;如果设置了所述多开属性,则跳转至步骤S30 ;其中,所述多开属性是针对所述安卓智能终端上的应用程序是否可以多次启动并分别建立进程而预先设置的; 步骤S30,判断所述应用程序是否有正在运行的进程:如果没有,则跳转至步骤S60 ;如果有,则跳转至步骤S70 ; 步骤S40,判断所述应用程序是否有正在运行的进程:如果没有,则跳转至步骤S60 ;如果有,则跳转至步骤S50 ; 步骤S50,打开所述应用程序正在运行的进程; 步骤S60,分配PID,创建所述应用程序的进程; 步骤S70,对正在运行的所述应用程序的进程之间进行切换,或者分配新PID,再次创建一个所述应用程序的新进程。
2.根据权利要求1所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述多开属性是用户通过所述安卓智能终端进行设置的。
3.根据权利要求1所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述步骤S20中还包括对满足所述多开属性的应用程序进行是否满足筛选参数的判断:如果满足所述筛选参数,则跳转至步骤S30 ;如果不满足所述筛选参数,则跳转至步骤S40。
4.根据权利要求3所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述筛选参数是针对所述安卓智能终端上满足所述多开属性的应用程序预先设置的;且所述筛选参数是由用户通过所述安卓智能终端进行设置的或者是生产厂家在所述安卓智能终端出厂时在安卓系统中进行设置的。
5.根据权利要求1所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述步骤S50中,所述应用程序正在运行的进程只有一个,且所述进程对应唯一一个所述PID。
6.根据权利要求1所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述步骤S70中,所述应用程序正在运行的进程至少为一个,且正在运行的不同的所述进程对应不同的所述PID。
7.根据权利要求6所述的基于安卓智能终端的应用程序多开管理方法,其特征在于,所述步骤S70的分配新PID,再次创建所述应用程序的新进程中,所述新PID是区别于所述应用程序正在运行的进程所对应的所述PID的。
8.一种基于安卓智能终端的应用程序多开管理系统,其特征在于,所述应用程序多开管理系统包括控制单元和用户界面; 所述用户界面是所述应用程序多开管理系统在所述安卓智能终端的交互界面,用于设置多开属性、显示多开应用程序正在运行的进程以及下达操作指令; 所述控制单元用于判断所述安卓智能终端中启动的应用程序是否满足所述多开属性;判断所述应用程序是否存在正在运行的进程;根据所述操作指令对所述应用程序进行多开管理操作。
9.根据权利要求8所述的基于安卓智能终端的应用程序多开管理系统,其特征在于,所述控制单元还用于判断所述安卓智能终端中满足所述多开属性的应用程序是否满足筛选参数;其中,所述筛选参数由用户通过所述用户界面进行设置或者由生产厂家在所述安卓智能终端出厂时在安卓系统中进行设置。
10.根据权利要求8所述的基于安卓智能终端的应用程序多开管理系统,其特征在于,所述多开管理操作包括分配新PID,再次创建应用程序的新进程、切换应用程序的正在运行的多个进程。
【文档编号】G06F9/48GK104199734SQ201410464860
【公开日】2014年12月10日 申请日期:2014年9月12日 优先权日:2014年9月12日
【发明者】陈亚明 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1