论文部分内容阅读
随着智能终端的普及和移动互联网的迅速发展,市面上涌现了大量的应用程序以满足用户生活中方方面面的需求。然而移动设备资源有限,高效管理这些应用程序对于提升用户体验、降低能耗和应用启动延迟至关重要。Android系统基于LRU算法管理应用程序,具体而言,在内存中维护了一定数量(MAX_HIDDEN_APPS)的后台进程,当用户切换回这些后台进程时,不需要重启程序,省去了大量创建和初始化的开销,并且可以使应用程序迅速恢复到之前的使用状态。当后台进程数达到MAX HIDDEN APPS而需要启动新的应用程序时,会触发基于LRU的Task killing机制,终止最近最少使用的应用程序,将其清理出内存。 然而上述基于LRU的Task killing机制存在两个主要问题:1)LRU算法只考虑了最近的应用程序使用情况,而没有考虑用户的应用程序使用习惯,可能错误终止即将启动的应用程序,从而造成较多的应用程序重启动。2) LRU算法效果非常依赖于MAX_HIDDEN_APPS的大小,后台中管理越多的应用程序,LRU算法效果越好。然而较大的MAX_HIDDEN_APPS不仅会带来更多的内存管理开销,而且可能带来内存泄露的风险。 针对基于LRU算法的Task killing机制存在的问题,本文对Android应用管理相关技术进行了深入研究,并且设计了一种基于用户行为分析的Task killing机制。主要包括:1)总结分析了Android应用管理机制——基于LRU的活动栈的主要功能特点和上述存在的问题。2)综合利用App使用日志、情景信息、App间关联等数据进行用户行为建模。3)提出了基于贝叶斯网络的应用启动预测方法BNLP(Bayesian Network-based Application Launch Predictor),分析用户使用习惯以预测应用程序启动可能性。 最后,本文基于上述研究成果设计并实现了一个基于贝叶斯网络的应用管理系统BNAM(Bayesian Network-based Application Manager)。并且利用LiveLab数据集在Android系统上进行重播验证实验,实验结果表明BNLP模型相比于基于LRU的Task killing机制能显著降低应用程序的重启率(17.2%),从而达到提升用户体验、降低能耗和应用启动延迟的目的。