一种应用程序的启动方法及装置的制造方法

文档序号:8318974阅读:210来源:国知局
一种应用程序的启动方法及装置的制造方法
【技术领域】
[0001]本发明属于应用程序技术领域,尤其涉及一种应用程序的启动方法及装置。
【背景技术】
[0002]移动终端的普及率越来越高,安卓免费的特点使得它迅速成为移动终端主要的软件平台,安卓有提供适应不同屏幕的技术方案,但是安卓终端确实太多,差异性也很大,而安卓应用程序在开发时也很难覆盖到千差万别的安卓终端,因此会出现一些安卓应用程序因为系统可用内存不够、CPU处理不够快而无法在某些低配置终端上运行,恰恰低配置的终端用户数量巨大。
[0003]综上所述,现有的应用终端千差万别,存在因系统可用内存不够,导致应用程序无法启动的缺陷。

【发明内容】

[0004]本发明实施例的目的在于提供一种应用程序的启动方法,旨在解决现有的应用终端中存在的因系统可用内存不够,导致应用程序无法启动的问题。
[0005]本发明实施例是这样实现的,一种应用程序的启动方法,所述方法包括:
[0006]按默认显示比例启动应用程序;
[0007]当启动应用程序失败时,则缩小显示比例;
[0008]按照缩小后的显示比例重新启动应用程序。
[0009]本发明实施例还提供了一种应用程序的启动装置,所述装置包括:
[0010]启动单元,用于按默认显示比例启动应用程序;
[0011]缩小单元,用于在启动单元启动应用程序失败时,则缩小显示比例;
[0012]重启单元,用于按照缩小后的显示比例重新启动应用程序。
[0013]本发明实施例与现有技术相比,有益效果在于:当启动应用程序失败时,通过缩小显示比例,来缩小应用程序运行时所需的内存空间大小,并按照缩小后的显示比例重新启动应用程序,从而可有效的启动应用程序。
【附图说明】
[0014]图1是本发明实施例提供的应用程序的启动方法的流程图;
[0015]图2是本发明实施例提供的应用程序的启动方法的一个子流程图;
[0016]图3是本发明实施例提供的应用程序的启动方法的另一个子流程图;
[0017]图4是本发明实施例提供的应用程序的启动装置的逻辑结构示意图;
[0018]图5是本发明实施例提供的应用程序的启动装置的另一逻辑结构示意图;
[0019]图6是本发明实施例提供的应用程序的启动装置的又一逻辑结构示意图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021 ] 为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素:
[0022]系统可用内存:指在应用程序启动时,系统允许分配的最大内存空间。
[0023]应用程序所需内存:指应用程序运行时所需的内存空间大小。
[0024]显示比例:应用程序实际显示的长度与全屏长度的比例(也可取各自的宽度来算比例)。
[0025]本发明实施例提供的实施方案如下:
[0026]请参阅图1,本发明实施例一种应用程序的启动方法,所述方法包括:
[0027]101、按默认显示比例启动应用程序。
[0028]在本发明实施例中,可预先创建一个应用程序运行时的显示比例数据库,该数据库以应用程序包名为索引。
[0029]在本发明实施例中,通过ActivityManagerService (Activity管理服务,负责activity栈管理和消息分发)来启动应用程序,在ActivityManagerService启动前,会先从数据库中获取当前所存储的显示比例。该数据库中预先存储的是默认显示比例。在本发明实施例中,默认显示比例通常为I,即应用程序全屏显示。
[0030]在本发明实施例中,应用程序具体为安卓系统下的应用程序。
[0031]102、当启动应用程序失败时,则缩小显示比例;
[0032]在本发明实施例中,显示比例可通过WindowManagerService (窗口管理服务,负责窗口的组织和显示)中的displayReady方法来进行放大或缩小修改,为了保证应用终端的屏幕旋转的时候显示比例也一样,显示比例需同时在computeNewConfigurat1nLocked方法中来进行放大或缩小的修改,修改后的应用程序的显示区域可同比例放大或者缩小,同时用户的操作区域也可同比例放大或者缩小,不会影响用户的使用。
[0033]103、按照缩小后的显示比例重新启动应用程序。
[0034]当应用程序启动成功后,可将成功启动时的显示比例存储至显示比例数据库中,当后期用户再启动该应用程序时,则按照最后一次存储的显示比例启动应用程序。
[0035]在本发明实施例中,所述方法还包括:
[0036]当重新启动应用程序失败时,则循环执行所述缩小显示比例及所述按照缩小后的显示比例重新启动应用程序的步骤,直到可成功启动所述应用程序为止。
[0037]当然,在具体应用中可显示循环执行的次数,从而防止出现无限循环导致死机。也可以设置几个由大到小递减的显示比例值,如0.9,0.8,0.7,0.6,0.5五个值,循环执行步骤时按照五个比例值从大到小依次执行,直到可成功启动所述应用程序为止,若循环执行完毕仍不能成功启动,则终止循环执行步骤,应另行考虑系统可用内存外的其他原因导致启动失败。
[0038]在本发明实施例中,可通过调用WindowManagerService来设置新的显示比例,同时在handleAppCrashLocked方法中把该应用程序进程当做persistent process处理,即应用程序会自动重启。
[0039]在本发明的一个实施例中,所述方法还包括:
[0040]预先设置一组由大到小依次递减的比例值。
[0041]如可设置0.9,0.8,0.7,0.6,0.5五个值。当然也可以设置为其他值或其他数量,
在此并不用于限制本发明。
[0042]在循环执行所述缩小显示比例及所述按照缩小后的显示比例重新启动应用程序的步骤时,显示比例按所述由大到小依次递减的比例值来缩小。
[0043]循环执行步骤时按照设置的比例值从大到小依次执行,直到可成功启动所述应用程序为止,若循环执行到最小的比例值仍不能成功启动,则终止循环执行步骤,应另行考虑系统可用内存外的其他原因导致启动失败。
[0044]请参阅图2,在本发明的一个实施例中,所述缩小显示比例及按照缩小后的显示比例重新启动应用程序的步骤为:
[0045]缩小至最小显示比例;在本步骤中需要将缩小的显示比例存储至显示比例数据库中。
[0046]按照最小显示比例重新启动应用程序;
[0047]所述方法还包括:
[0048]201、获取系统可用内存及按照最小显示比例重新启动应用程序时的应用程序所需内存;
[0049]在本发明实施例中,可通过ActivityManager (为系统中所有运行着的Activity交互提供了接口)的getMemorylnfo方法来获取系统可用内存,通过ActivityManager的getProcessMemorylnfo方法来获取按照最小显示比例重新启动应用程序时的应用程序所需内存。
[0050]202、根据系统可用内存、最小显示比例及按照最小显示比例重新启动应用程序成功时的应用程序所需内存计算出应用程序可启动的最大显示比例。
[0051]本步骤中,可将(系统可用内存*最小显示比例)/按照最小显示比例重新启动应用程序时的应用程序所需内存,所得到的值作为应用程序可启动的最大显示比例。当然还可以通过其他公式来估算最大显示比例,在此并不用于限制本发明。
[0052]203、将应用程序从最小显示比例调至最大显示比例显示。
[0053]在本步骤中,显不比例直接由WindowManagerService的displayReady和computeNewConfigurat1nLocked方法控制调节显示,无需重新启动应用程序。
[0054]在本发明实施例中,当缩小至最小显示比例时,应用程序通常会启动成功,应用程序成功启动后,便可获取按照最小显示比例重新启动应用程序时的应用程序所需内存,从而为后续的计算应用程序可启动的最大显示比例及调节显示比例做了很好的铺垫。
[0055]请参阅图3,在本发明的一个实施例中,所述缩小显示比例及按照缩小后的显示比例重新启动应用程序的步骤为:
[0056]缩小至最小显示比例;在本步骤中需要将缩小的显示比例存储至显示比例数据库中。
[0057]按照最小显示比例重新启动应用程序;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1