识别android系统下应用程序启动阶段的方法技术方案

技术编号:11906358 阅读:58 留言:0更新日期:2015-08-19 19:36
本发明专利技术公开了一种识别android系统下应用程序启动阶段的方法,包括android系统运行时获取应用程序连续若干个统计周期内的物理内存分配数量,根据物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例来判断应用程序是否处于启动阶段;其中,当物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例大于等于预设值时,判定应用程序处于启动阶段;否则,则认为应用程序不处于启动阶段。该方法识别错误率相对较低,大部分控制在5%以内。

【技术实现步骤摘要】

本专利技术属于计算机内存优化
,具体的是一种识别android系统下应用程 序启动阶段的方法。
技术介绍
随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算 能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于 PC的桌面应用程序。Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus one对每个软件的内存限制是24M),同时Java语言本身比较消耗内存,dalvik虚拟机也要 占用一定的内存空间,所以合理使用内存是应用程序开发过程中一项比较重要的事情。 然而现在Linux的物理内存是较为离散的。对于内核的内存需求,Linux内存管 理系统倾向于从低物理地址的内存区分配;而对于用户进程的内存需求,则倾向于从高物 理地址的内存区分配。并且随着系统中进程的不断创建和消亡,加剧了物理内存的碎片问 题。应用程序的启动、运行到退出这三个阶段伴随着应用程序的整个生命周期,其不同阶段 对应的内存需求的不同变化。监测以及准确判断应用程序生命周期中的不同阶段,一方面 可以针对性的调整内存分配策略来优化应用程序;另一方面,可借助于调频机制加速应用 程序启动。本专利技术由此而来。
技术实现思路
本专利技术的目的是提供一种,解决了 现有技术中应用程序没有系统的进行监测,无法根据应用程序的内存需求规律针对性的进 行应用程序优化等技术问题。 为了解决现有技术中的这些问题,本专利技术提供的技术方案如下: -种,其特征在于所述方法包括 android系统运行时获取应用程序连续若干个统计周期内的物理内存分配数量,根据物理 内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例来判断应用程序是 否处于启动阶段;其中, 当物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例大 于等于预设值时,判定应用程序处于启动阶段;否则,则认为应用程序不处于启动阶段。 优选的技术方案中,所述方法中所述获取的所有统计周期的数量为3~10个;统 计周期为连续两次调用CPU frequency governor进行CPU频率调节之间的时间段;优选 的,所述获取的所有统计周期的数量为5个。 优选的技术方案中,所述方法中CPU主频调节器选自按需调节器(ondemand)、性 能调节器(performance)、节约电能调节器(powersave)、用户自定义调节器(userspace)、 传统调节器(conservative)。在linux系统中cpufreq是一个动态调整cpu频率的模块,系 统启动时生成一个文件夹 /sys/devices/system/cpu/cpuO/cpufreq/,其中 sealing_min_ freq代表最低频率,scaling_max_freq代表最高频率,scalin_governor代表cpu频率调 整模式,用它来控制CPU频率。 cpu频率调整模式根据CPU主频调节算法的不同对CPU的频率和电压进行调整。 大致有以下几种:l)performance :该算法只注重效率,将CPU频率固定工作在其支持的最 高运行频率上,而不动态调节。2)p〇werSa Ve :将CPU频率设置为最低,即所谓"省电"模式, CPU会固定工作在其支持的最低运行频率上。因此这两种调节器都属于静态调节器,即在使 用它们时CPU的运行频率不会根据系统运行时负载的变化动态作出调整。这两种调节器对 应的是两种极端的应用场景,使用performance governor是对系统高性能的最大追求,而 使用powersave governor则是对系统低功耗的最大追求。3)Userspace :最早的cpufreq 子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交 给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU运行频率使用。该 模式可以通过手动编辑配置文件进行配置。4) ondemand是按需快速动态调整CPU频率,一 旦CPU利用达到足够多的利用率,则立即达到最大频率运行;如果低于某个利用率,则缓慢 降低到最低支持频率运行,这样保持CPU利用率一直控制在70-80%。userspace是内核态 的检测,用户态调整,效率低。而ondemand是完全在内核态下工作并且能够以更加细粒度 的时间间隔对系统负载情况进行采样分析的governor。ondemand governor监测到系统负 载超过up_threshold所设定的百分比时,说明用户当前需要CPU提供更强大的处理能力, 因此ondemand governor会将CPU设置在最高频率上运行。但是当ondemand governor 监测到系统负载下降,可以降低CPU的运行频率时,ondemand governor的最初实现是在 可选的频率范围内调低至下一个可用频率,例如CPU支持三个可选频率,分别为1. 67GHz、 1. 33GHz和1GHz,如果CPU运行在1. 67GHz时ondemand governor发现可以降低运行频率, 那么1. 33GHz将被选作降频的目标频率。5) conservative,与ondemand不同,平滑地调整 CPU频率,频率的升降是渐变式的,会自动在频率上下限调整,与ondemand的区别在于它会 按需分配频率,而不是一味追求最高频率。 优选的技术方案中,所述方法中所述预定阈值为40~60个物理页;优选的,所述 预定阈值为50个物理页。 优选的技术方案中,所述方法中所述预设值为50~100% ;优选的,所述预设值为 60%〇 优选的技术方案中,所述方法具体按照如下步骤进行: (l)android系统运行时获取应用程序连续若干个统计周期内的物理内存分配数 量,根据物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例来判断 应用程序是否处于启动阶段; (2)继续步骤(1)获取应用程序连续若干个统计周期内的物理内存分配数量,根 据物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例来判断应用 程序是否处于启动阶段;依次循环。 优选的技术方案中,所述方法中物理内存分配数量的统计方法是采用_alloc_ pages_nodemask()函数统计系统中内存请求的数量并在该函数中使用该变量进行累加即 可获得统计周期内系统接受的物理内存请求的数量。 优选的技术方案中,所述方法中当存在垃圾回收机制时,在统计周期内android 系统先对当前进程进行判断,如果当前进程是垃圾回收进程,则不进行物理内存分配数量 的统计;否则进行物理内存分配数量的统计。 本专利技术的另一目的在于提供一种降低android系统智能设备功耗的方法,其特征 在于所述方法包括按照前面所述的方法识别应用程序的启动阶段;根据识别的结果对内存 分配策略和CPU频率和电压进行调整的步骤。 对Android应用程序启动阶段进行辨识可以作为很多对Android功耗优化的基础 之一。应用程序生命周期中不同的阶段有不同的特征(比如内存操作的行为、CPU使用的 行为等),根据不同阶段间各自的特征进行功耗优化可以更有效地提升优化效果,识别应用 程序本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104850423.html" title="识别android系统下应用程序启动阶段的方法原文来自X技术">识别android系统下应用程序启动阶段的方法</a>

【技术保护点】
一种识别android系统下应用程序启动阶段的方法,其特征在于所述方法包括android系统运行时获取应用程序连续若干个统计周期内的物理内存分配数量,根据物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例来判断应用程序是否处于启动阶段;其中,当物理内存分配数量大于预定阈值的统计周期的数量占所有统计周期的比例大于等于预设值时,判定应用程序处于启动阶段;否则,则认为应用程序处于非启动阶段。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡延军朱宗卫丁恩杰赵端
申请(专利权)人:中国矿业大学
类型:发明
国别省市:江苏;32

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

1