一种智能电视优化内存的方法、存储介质及智能电视与流程

文档序号:14993730发布日期:2018-07-20 23:06阅读:315来源:国知局

本发明涉及电视机技术领域,具体涉及一种智能电视优化内存的方法、存储介质及智能电视。



背景技术:

目前,市面上的安卓电视大部分内存配置都在512mb以上,安卓官方公布的数据也要求系统总内存最低不少于512mb。随着技术的进步以及电视产品市场竞争的加剧,各大厂家方案商都在想尽办法缩减成本,推出了内置512mb内存的电视soc芯片,通过对内存的缩减,可将产品价格做到更低,性能方面也会折损。

但是在现有技术下,512mb安卓电视启动后,剩余内存空间比较小,只有几十兆。当系统当前的剩余内存不足够启动某个应用程序时,则电视机系统会根据android内存管理方案和lowmemorykiller机制,按照一定的算法对停留在内存中的进程进行排序;根据系统自身的调度策略,结束优先级低的进程以达到释放内存空间的目的。如果启动的应用所需的内存很大,而可用的内存很小,就会出现反复的内存判断和释放,一定程度上系统的运行就会被拖慢,导致系统卡顿,更甚者会触发linuxoom(outofmemory),导致系统直接崩溃,严重影响系统的稳定性,给用户的使用带来了不便。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种智能电视优化内存的方法、存储介质及智能电视,旨在解决现有技术的智能电视在运行过程中由于剩余内存不足而导致系统卡顿,卡死无响应,随机重启等问题。

本发明解决技术问题所采用的技术方案如下:

一种智能电视优化内存的方法,其中,所述方法包括:

当启动某个应用程序时,智能电视获取当前剩余的内存空间;

将获取到的当前剩余的内存空间与预设的阈值比较;

若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭。

所述的智能电视优化内存的方法,其中,所述方法还包括:

预先修改device目录下的.mk文件,优化所述智能电视的内存,提高内存利用率。

所述的智能电视优化内存的方法,其中,所述当启动某个应用程序时,智能电视获取当前剩余的内存空间具体包括:

所述智能电视接收用户的操作指令,启动某个应用程序;

所述智能电视调用相应的程序,获取当前系统中剩余的内存空间。

所述的智能电视优化内存的方法,其中,所述将获取到的当前剩余的内存空间与预设的阈值比较具体包括:

预先在所述智能电视中设置一阈值,所述阈值用于判断当前剩余的内存空间是否满足用户需要启动的应用程序的运行要求;

所述智能电视将获取到的当前剩余的内存空间与所述阈值进行比较。

所述的智能电视优化内存的方法,其中,所述若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭,释放内存空间之前还包括:

预先在所述智能电视中设置一白名单文件,所述白名单文件用于存储允许在后台运行的进程的包名。

所述的智能电视优化内存的方法,其中,所述预先在所述智能电视中设置一白名单文件具体包括:

所述智能电视获取当前系统中所有的进程,并对进程进行分类;

根据所述进程的历史使用情况,分成允许在后台运行的进程和不允许在后台运行的进程;

将允许在后台运行的进程的的包名存储至所述白名单文件中,并保存。

所述的智能电视优化内存的方法,其中,所述若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭,释放内存空间具体包括:

若当前剩余的内存空间小于所述阈值,所述智能电视获取当前正在后台运行的进程;

获取正在后台运行的进程的包名,并与预设在白名单文件中的包名对比匹配;

若正在后台运行的进程的包名与所述白名单文件中的包名不相同,则判定该进程为不允许在后台运行的进程;

将不允许在后台运行的进程关闭,释放内存空间。

所述的智能电视优化内存的方法,其中,所述若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭,释放内存空间还包括:

若正在后台运行的进程的包名与所述白名单文件中的包名相同,则判定该进程为允许在后台运行的进程,并控制所述进程维持运行状态。

一种存储介质,其上存储有多条指令,其中,所述指令适于由处理器加载并执行,以实现上述任一项所述的智能电视优化内存的方法的步骤。

一种智能电视,其中,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述任一项所述的智能电视优化内存的方法的步骤。

本发明的有益效果:本发明通过设置用于判断智能电视的剩余的内存空间是否满足用户需要启动的应用程序的运行要求的阈值,从而在剩余内存空间小于阈值时,把不允许在后台运行的进程关闭,快速地释放出更多的空闲内存给系统使用,使系统运行稳定,保证智能电视可以正常运行,避免出现卡顿、卡死无响应,随机重启等问题。

附图说明

图1是本发明的智能电视优化内存的方法较佳实施例的流程图。

图2是本发明的智能电视优化内存的方法的具体应用的流程图。

图3是本发明的智能电视的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

由于现有的智能电视,尤其是低内存android电视,在启动之后,剩余内存空间比较小,只有几十兆,而这么小的内存使不足以启动某个应用程序的额,这样在用户启动某个应用程序时就会出现卡顿、死机甚至是重启现象,给用户的使用带来了不便。为了解决上述问题,本发明提供一种智能电视优化内存的方法,如图1所示,图1是本发明的智能电视优化内存的方法较佳实施例的流程图。所述智能电视优化内存的方法包括以下步骤:

步骤s100、当启动某个应用程序时,智能电视获取当前剩余的内存空间。

较佳地,所述步骤s100具体包括:

所述智能电视接收用户的操作指令,启动某个应用程序;

所述智能电视调用相应的程序,获取当前系统中剩余的内存空间。

具体实施时,本发明主要针对的是android智能电视,当用户需要在智能电视上启动某个应用程序时,选择相应的按键操作,向所述智能电视发送启动指令,智能电视在接收到所述启动指令之后启动该应用程序。在所述应用程序启动之后,此时,所述智能电视就会调用相应的程序来获取当期系统中剩余的内存应用。具体地,当android电视启动应用程序时,先通过调用activitymanager.getmemoryinfo(activitymanager.memoryinfo)方法来获取当前剩余的内存空间。

进一步地,步骤s200、将获取到的当前剩余的内存空间与预设的阈值比较。

较佳地,所述步骤s200具体包括:

预先在所述智能电视中设置一阈值,所述阈值用于判断当前剩余的内存空间是否满足用户需要启动的应用程序的运行要求;

所述智能电视将获取到的当前剩余的内存空间与所述阈值进行比较。

具体实施时,本发明首先在智能电视中设置一阈值,通过设置的阈值来判断用户需要启动的应用程序是否能够正常运行,从而对所述智能电视的内存进行优化。具体地,所述阈值可以为一个内存值,当智能电视获取到当前剩余的内存空间之后,将所述剩余的内存空间与所述预制进行比较,从而判断出所述智能电视在用户启动所述应用程序之后是否还能够正常运行。本发明通过设置所述阈值来对应用程序运行情况进行预判,及时对智能电视的内存情况进行优化处理,有效降低了因剩余内存空间不足,导致应用程序无法正常运行,从而频繁触发智能电视的lowmemorykiller的概率,给用户的使用提供了方便。

较佳地,本发明还可以对android电视的adj,minfree的阈值进行更改,来降低智能电视的lowmemorykiller的概率。更改之后的前台进程(foreground_app、可视进程(visible_app)、次要服务进程(secondary_server)、后台进程(hidden_app)、内容供应节点(content_provider)以及空进程(empty_app)这6种类型进程依次对应更改后的adj和minfree参数如下:

cat/sys/module/lowmemorykiller/parameters/adj

0,58,117,176,529,1000

cat/sys/module/lowmemorykiller/parameters/minfree

2977,3846,4715,5834,6703,8192

而8192/1024*4=32m,由此可见当剩余内存低于32m的时候,会杀死优先级为1000以上的进程,这样可以进一步地降低触发lowmemorykiller的概率,方便用户使用。

进一步地,所述步骤s300、若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭。

较佳地,所述步骤s300具体包括:

若当前剩余的内存空间小于所述阈值,所述智能电视获取当前正在后台运行的进程;

获取正在后台运行的进程的包名,并与预设在白名单文件中的包名对比匹配;

若正在后台运行的进程的包名与所述白名单文中的包名不相同,则判定该进程为不允许在后台运行的进程;

将不允许在后台运行的进程关闭,释放内存空间。

具体实施时,由于android智能电视启动完成后,有很多进程和service在后台运行,其中有部分进程和service是不需要在后台运行的,它们会占用一部分内存空间导致系统内存不足。因此,为了更好的对智能电视的内存空间进行管理,本发明需要预先设置一白名单文件。所述白名单文件中存储有预先确定的允许在后台运行的进程的包名。

具体地,智能电视会获取当前系统中所有的进程,并对进程进行分类。分类的依据是根据所述进程的历史使用情况,分成允许在后台运行的进程和不允许在后台运行的进程。例如,智能电视中的某一进程的使用频次比较高时,则将该进程设置成允许在后台运行的进程,若某个进程的使用频次比较低时,则将该进程设置成不允许在后台运行的进程。当然本发明还可以根据所述智能电视的功能对进程进行分类,将智能电视运行所必须用到的进程设置成允许在后台运行的进程,而将对智能电视的正常运行不是起着重要作用的进程设置成不允许在后台运行的进程。分类完成之后,将允许在后台运行的进程的的包名存储至所述白名单文件中,并保存。

进一步地,当前剩余的内存空间小于所述阈值,所述智能电视获取当前正在后台运行的进程。然后获取正在后台运行的进程的包名,并与预设在白名单文件中的包名对比匹配。如果正在后台运行的进程的包名与所述白名单文中的包名不相同,则判定该进程为不允许在后台运行的进程;进而将不允许在后台运行的进程关闭,释放内存空间。

具体地,当前剩余的内存空间小于所述阈值(例如130mb),智能电视就通过intent.getcomponent().flattentoshortstring()获取到当前正在运行的进程的包名,通过putextra方法把获取到当前正在启动运行的进程的包名附加到intent对象,最后通过调用sendbroadcast()方法,把intent对象携带的信息广播出去。在另外一个应用程序接收到对应的广播后,在onreceive方法进行处理。首先读取白名单文件里面的包名,再通过intent.getstringextra方法获取到intent携带的当前正在后台运行的进程的包名。通过(activitymanager)this.getsystemservice(context.activity_service);来获得系统的全局状况,然后调用getrunningappprocesses()办法就可以得到当前系统正在运行的所有进程。若发现系统正在运行的所有进程中某些进程的包名和白名单文件中的包名一样,不做任何操作,维持进程的运行状态;若发现系统正在运行的所有进程中某些进程包名和白名单的包名不一样,则会通过调用killbackgroundprocesses方法把这些进程给kill掉,从而释放更多的内存空间来使用户需要运行的应用程序运行流畅。由于本发明的整个白名单机制的算法很简单,可以很快地释放出更多的内存空间给系统使用,整个系统运行很流畅。

当然,在本发明中若发现系统正在运行的所有进程中有某个进程正好是正在启动运行的应用程序(及用户需要启动的应用程序),则也不做任何操作,维持进程的运行状态。

较佳地,为了使智能电视的运行更加的稳定,本发明还预先修改device目录下的.mk文件,优化所述智能电视的内存,提高内存利用率,如调节low_ram,ksm,zram,内核水线,lowmemorykiller水线以及surface的buffer数量。具体地,将low_ram的开关的ro.config.low_ram这个prop设置为true打开之后,进程不再使用硬件绘制加速进而节省内存。将ksm和zram的开关的ro.low_ram_zram和ro.low_ram_ksm这两个prop,都设置为true,当zram打开后,系统会将内存中不活跃的页面进行压缩,从而提高内存利用率,将zram大小设置为204796kb;ksm打开后,ksm进程会定时的进行扫描,将内存中的页表进行迁移和合并,从而提高内存利用率。此外,本发明还调整内核oom水线、lowmemorykiller水线以及修改surface的buffer数量,具体为:

修改persist.sys.extrafreekbytes=636

修改persist.sys.lmkminfreekbytes=32768

修改ro.config.layer_buffers_num=2

通过上述对智能电视的内存区硬件系统的修改与调整,使智能电视的运行更加的稳定。

基于上述实施例,本发明还一种具体应用的实施例,如图2所示,所述智能电视优化内存的方法包括以下步骤:

步骤s201、启动应用程序。

步骤s202、检验剩余内存是否满足阈值条件。若是,则执行步骤s203,若否,则执行步骤s208。

步骤s203、读取白名单文件的包名。

步骤s204、for循环。若是,则执行步骤s205;若否,则执行步骤s208。

步骤s205、判断后台运行进程的包名是否在白白名单文件里面。若是,则执行步骤s206,若否,则执行步骤s207。

步骤s206、保护起来不做任何处理。

步骤s207、kill掉释放内存空间。

步骤s208、系统正常启动应用。

基于上述实施例,本发明还公开了一种智能电视,如图3示,包括:处理器(processor)10、与处理器10连接的存储介质(memory)20;其中,所述处理器10用于调用所述存储介质20中的程序指令,以执行上述实施例所提供的方法,例如执行:

当启动某个应用程序时,智能电视获取当前剩余的内存空间;

将获取到的当前剩余的内存空间与预设的阈值比较;

若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭。

本发明实施例还提供一种存储介质,所述存储介质上存储计算机指令,所述计算机指令使计算机执行上述各实施例所提供的方法。

综上所述,本发明提供的一种智能电视优化内存的方法、存储介质及智能电视,所述方法包括:当启动某个应用程序时,智能电视获取当前剩余的内存空间;将获取到的当前剩余的内存空间与预设的阈值比较;若当前剩余的内存空间小于所述阈值,则启动内存优化机制,将不允许在后台运行的进程关闭。本发明通过设置用于判断智能电视的剩余的内存空间是否满足用户需要启动的应用程序的运行要求的阈值,从而在剩余内存空间小于阈值时,把不允许在后台运行的进程关闭,快速地释放出更多的空闲内存给系统使用,使系统运行稳定,保证智能电视可以正常运行,避免出现卡顿、卡死无响应,随机重启等问题。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1