基于Android系统内存优化与应用调度方法及系统技术方案

技术编号:10182850 阅读:134 留言:0更新日期:2014-07-03 13:31
本发明专利技术公开一种基于Android系统内存优化与应用调度方法及系统,该方法包括:利用安卓系统应用程序接口获取当前所有UI进程的任务信息列表,将其转化为对应任务栈;将相邻时间点任务栈进行比较,并将比较结果与预设用户行为与堆栈变化对应表进行比对,得出所对应的用户行为;根据所得出的用户行为对任务栈中的元素进行选择回收其内存,以及根据该用户行为进行应用程序的切换。本发明专利技术方法可实现在不影响用户操作和体验的前提下,对系统应用状态变化进行有效检测,并进一步实现内存的优化和用户行为分析,其简化了目前内存管理机制,有效避免了影响用户体验的误杀等操作,并且系统根据用户行为的分析实现了自身应用和系统界面切换的统一性。

【技术实现步骤摘要】
【专利摘要】本专利技术公开一种基于Android系统内存优化与应用调度方法及系统,该方法包括:利用安卓系统应用程序接口获取当前所有UI进程的任务信息列表,将其转化为对应任务栈;将相邻时间点任务栈进行比较,并将比较结果与预设用户行为与堆栈变化对应表进行比对,得出所对应的用户行为;根据所得出的用户行为对任务栈中的元素进行选择回收其内存,以及根据该用户行为进行应用程序的切换。本专利技术方法可实现在不影响用户操作和体验的前提下,对系统应用状态变化进行有效检测,并进一步实现内存的优化和用户行为分析,其简化了目前内存管理机制,有效避免了影响用户体验的误杀等操作,并且系统根据用户行为的分析实现了自身应用和系统界面切换的统一性。【专利说明】基于Android系统内存优化与应用调度方法及系统
本专利技术涉及内存管理
,尤其涉及一种基于安卓系统的内存优化与应用调度方法及系统。
技术介绍
现在安卓(Android)系统的发展迅速,越来越多的手机设备、电视厂商都引入了Android系统,但是对于设备厂商而言,深入定制Android系统是一件工作量大而又必须进行的工作。为利用Android系统实现自身设备的最大有效管理,通常需要的对Android自身源码进行大量改动,但对源码的改动工作通常既耗时又繁琐。现有的Android机制中,用户进行的操作所产生的交互的activity会被任务栈收集,所述任务栈如图1所示,该栈包含了所有当前在系统中显示的UI界面的层次,栈底为首页(Laucher) 10,栈中元素应用1/1 (即指应用I)的activity组件11、应用2/2 (即指应用2)的activity组件12,栈顶元素应用3/3的activity组件13表示展示在界面的最顶端的应用,也就是用户最关心的用户行为。在Android现有的机制中,只关心栈顶元素的变化,对于栈中的其他元素均不作处理,这就造成系统的很多内存将被消耗在用户不可见的行为上,造成资源的浪费。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供一种基于Android系统的存优化与应用调度方法及系统,旨在解决目前不能实现在不改动Android源码的前提下实现内存的有效管理的问题。本专利技术的技术方案如下: 一种基于Android系统的内存优化与应用调度方法,其中,所述方法包括以下步骤:利用Android系统的应用程序接口获取当前的所有UI进程的任务信息列表,并将其转化为对应的任务栈; 将相邻时间点的任务栈进行比较,并将所述比较结果与预设的用户行为与堆栈变化对应表进行比对,得出该比较结果所对应的用户行为; 根据所得出的用户行为对任务栈中的元素进行选择并回收其内存,以及根据该用户行为进行应用程序的切换。所述的基于Android系统内存优化与应用调度方法,其中,所述利用Android系统的应用程序接口获取当前的所有Π进程的任务信息列表,并将其转化为对应的任务栈具体包括: 系统开机启动,创建用于检测系统中应用状态变化的线程; 所述线程根据Android系统的应用程序接口获取当前所有UI进程的任务信息列表; 将所得到的任务信息列表转化为Java的栈数据结构。所述的基于Android系统内存优化与应用调度方法,其中,所述将相邻时间点的任务栈进行比较,并将所述比较结果与预设的用户行为与堆栈变化对应表进行比对,得出该比较结果所对应的用户行为,具体包括: 当所述比较结果为相邻时间点的第一任务栈中不包含有第二任务栈中的栈顶元素时、则其与用户行为与堆栈变化对应表比对后,得出该比较结果对应用户启动一新应用的行为; 当所述比较结果为相邻时间点的第一任务栈的栈顶元素不包含在第二任务栈中时、则其与用户行为与堆栈变化对应表比对后,得出该比较结果对应用户退出一可视化应用的行为; 当所述比较结果为相邻时间点的第一任务栈与第二任务栈元素及其个数相同,但两者元素排列顺序不同时、则其与用户行为与堆栈变化对应表比对后,得出该比较结果对应用户未发生行为变化; 当所述比较结果为相邻时间点的第一任务栈的非栈顶元素不包含在第二任务栈中时、则其与用户行为与堆栈变化对应表比对后,得出该不包含在第二任务栈中的非栈顶元素自动退出。所述的基于Android系统的内存优化与应用调度方法,其中,所述根据所得出的用户行为对任务栈中的元素进行选择并回收其内存具体包括: 根据所述用户行为判断出任务栈中元素间的关联性,并根据该关联性设置相应的应用程序的优先级; 根据所得出的任务栈中元素间关联性及应用程序优先级对任务栈中的元素进行选择并回收其内存。所述的基于Android系统的内存优化与应用调度方法,其中,当确定用户启动一新应用行为时,则弹出显示该新应用的交互界面; 当确定用户退出一可视化应用的行为时,检测并确定该应用所退出到的系统应用,弹出该系统应用的交互界面。所述的基于Android系统的内存优化与应用调度方法,其中,所述根据该关联性设置相应的应用程序的优先级具体包括: 设置所述任务栈中栈顶元素对应的应用程序具有最高优先级,设置与所述栈顶元素具有关联行为的栈中元素所对应的应用程序具有次高优先级,设置与所述栈顶元素未发生关联行为的栈中元素所对应的应用程序具有比所述次高优先级更低的优先级。所述的基于Android卓系统的内存优化与应用调度方法,其中,所述根据所得出的任务栈中元素间关联性及应用程序优先级对任务栈中的元素进行选择并回收其内存具体包括: 按照优先级的由高到低回收任务栈中的元素的内存,其中,当检测到任务栈中具有比次高优先级更低优先级所对应的栈中元素时,优先回收其内存; 当检测到任务栈中具有次高优先级对应的栈中元素时,同时检测系统内存是否达到阈值,若是,则回收该栈中元素的内存; 当检测到任务栈中栈顶元素所占内存一直在增长并且达到虚拟机的峰值时,回收该栈顶元素的内存。所述的基于Android系统的内存优化与应用调度方法,其中,所述根据所得出的任务栈中元素间关联性及应用程序优先级对任务栈中的元素进行选择并回收其内存,还包括: 检测所述任务栈中的元素个数是否大于预设数量,若是,则直接将任务栈中与栈顶元素未发生关联行为的元素进行内存回收,其检测回收顺序是对任务栈的元素进行自下而上的检测回收。一种基于Android系统的内存优化与应用调度系统,其中,所述系统包括: 任务栈创建模块,用于利用Android系统的应用程序接口获取当前的所有UI进程的任务信息列表,并将其转化为对应的任务栈; 比较模块,用于将相邻时间点的任务栈进行比较,并将所述比较结果与预设的用户行为与堆栈变化对应表进行比对,得出该比较结果所对应的用户行为; 内存回收模块,用于根据所述比较模块所得出的用户行为对任务栈中的元素进行选择并回收其内存。切换模块,用于根据所述比较模块所得出的用户行为进行应用程序的切换。有益效果:本专利技术提供一种基于Android系统的内存优化与应用调度方法及系统,该方法可实现在不影响用户操作和体验的前提下,对系统应用状态变化进行有效检测,并进一步实现内存的优化和用户行为分析,其简化了目前内存管理机制,有效避免了影响用户体验的误杀等操作,并且系统根据用户行为的分析实现本文档来自技高网
...
基于Android系统内存优化与应用调度方法及系统

【技术保护点】
一种基于Android系统内存优化与应用调度方法,其特征在于,所述方法包括以下步骤:利用Android系统的应用程序接口获取当前的所有UI进程的任务信息列表,并将其转化为对应的任务栈;将相邻时间点的任务栈进行比较,并将所述比较结果与预设的用户行为与堆栈变化对应表进行比对,得出该比较结果所对应的用户行为;根据所得出的用户行为对任务栈中的元素进行选择并回收其内存,以及根据该用户行为进行应用程序的切换。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭尚锋
申请(专利权)人:深圳创维RGB电子有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1