安卓绿色联盟分析八大新闻类App内存占用情况

  • 时间:
  • 浏览:0

IT之家6月11日消息 据安卓绿色联盟消息,随着手机内存不断增大,应用的功能也日益比较复杂。每个App不是被委托人的应用应用进程,每个应用应用进程不是被委托人的内存空间,已经 做的好处是当App无缘无故 冒出大大问题 的已经 ,系统仅仅杀死当前应用应用进程,不需要愿因其他的App受到牵连,回收已经 释放出内存给其他App用。

其中前台应用应用进程已经 正在与用户交互的应用应用进程,即当前使用App的应用应用进程。手机内存空间是一定的,已经 不都能不能企业企业合作和相互切换的应用太满,已经 当前App使用的应用应用进程占用内存较大,不都能不能 预留给其他应用的内存就会变小,用户在使用过程中会感觉应用越用越卡,影响用户体验。

手机系统内存机制工作原理

用户在选择 “退出”、“关闭”执行后,应用应用应用进程会被直接杀死,其他应用的生命周期从不由应用自身直接控制,而取决于系统。当系统不都能不能释放内存来运行新的应用应用进程已经 保证其他后台应用应用进程和前端应用应用进程顺利执行的已经 才会释放应用内存资源。

分配机制

采用弹性的分配方式为每个应用应用进程分配内存,即刚开使英文从不需要给应用分配其他其他的内存,已经 给每已经 应用应用进程分配已经 “够用”的内存大小。你一种大小值是根据每已经 设备的实际的内存大小来决定的。随着应用的运行和使用,系统会为应用应用进程分配其他额外的内存大小。已经 分配的大小是有限度的,系统从不是为每已经 应用分配无限大小的内存。

回收机制

“尽最大限度的使用”:不都能不能当内存存在问题的已经 ,才会杀死其他应用应用进程来回收足够的内存。但系统从不是随便的杀死已经 应用应用进程,它不是已经 机制杀死应用应用进程来回收内存。

杀死应用应用进程有已经 参考条件:

1.应用应用进程优先级

系统为每已经 应用应用进程分配了优先组的概念,优先组越低的应用应用进程,被杀死的概率就越大。

2. 回收收益

系统会判断每个应用应用进程杀死后带来的回收收益,已经 系统无缘无故 倾向于杀死随都能不能回收更多内存的应用应用进程,从而都能不能杀死更少的应用应用进程,来获取更多的内存。杀死的应用应用进程越少,对用户体验的影响就越小。

内存存在问题的影响

主要的影响包括:1.应用卡顿,响应带宽慢;2.应用从后台应用应用进程变为空应用应用进程;3.应用莫名的崩溃等。无缘无故 冒出的哪此大大问题 会严重影响用户体验。

测试方案

测试环境及操作步骤

1.测试环境

硬件环境:荣耀Magic 2 8+128g

软件版本:9.0.0

2.测试范围

本次测试选择 了8款主流新闻类App附版本:

3.预置条件

手机未安装其他第三方应用,已经 应用不是首次安装

手机卸载手机管家

4.操作步骤

下载并打开已经 App,进入主页后,等待歌曲300s,获取应用内存信息,对应用进行耗时3000s的测试,其中每6s自动下发一次测试数据;分别对首次启动、页面滑动和页面切换一种高频用户使用场景的数据信息进行下发下发

5.测试结果

从以上首次启动场景结果来看,8款应用中首次启动时已经 不都能不能加载和初始化信息,愿因第第一根测试数据明显偏大,待稳定已经 ,整体呈缓慢下降趋势。其中天天快报降幅明显,降幅为1300MB左右。网易新闻在首次启动场景中内存消耗最大,平均为318.67MB,高出表现最好的新浪新闻138个百分点。

在页面滑动,即快速浏览场景中,从以上结果都能不能看出,例如应用内存消耗大不相同,整体呈缓慢增长趋势,各应用之间的内存差值达到414.23MB。其中今日头条增幅最大,增幅近23000MB左右。

在页面切换场景中,从以上结果都能不能看出,在切换场景中已经 不都能不能加载的数据逐渐增多,愿因整体增长相对迅猛,其中天天快报增幅最大,增幅347.72MB;其次是腾讯新闻,增幅354.68MB。

6.大大问题 分析

今日头条应用在快速浏览场景下内存增幅明显,通过对比启动时场景的内存,发现Native堆内存使用量明显增多,说明该场景下使用了较多的Native层实现优化代码执行带宽。

天天快报应用在页面切换场景下内存增幅明显,通过对比启动时场景的内存,发现Native堆内存使用量明显增多。

7.优化建议

1、必要时释放内存以响应事件

2、后台服务在任务完成后应该停止运行,出理 内存泄漏

3、使用优化的数据容器,包括SparseArray,SparseBooleanArray,和LongSparseArray等已经 不都能不能 明显的好处,出理 使用代码抽象(时间和内存成本较高)

4、使用nano protobufs进行序列化数据

5、出理 频繁创建临时对象,以免短时间内造成多量垃圾回收事件

6、从代码中删除冗余,从从不或臃肿的组件、资源或库,已经 打算在APK中使用依赖注入框架,考虑使用Dagger 2