怎么减轻手机运行大内存手机推荐的负担,加快运行速度

战略合作伙伴:https://github.com/mrzhousf
App运行速度分析以及初步优化方案
App运行速度分析以及初步优化方案
一、 App运行速度分析
(1)硬件约束
CPU主频,多核;
CPU主频决定手机的运算速度,多核则更多体现在并发任务方面。
内存:运存与内存(RAM+ROM)
图1-1 移动端内存示例图
运存是指手机运行程序时的内存,也叫RAM简称运存;RAM越大,手机可运行的APP应用程序越多,运行越流畅,目前RAM基本是2GB够用,3GB流畅,4GB极佳。
内存是指手机的存储控件,也叫ROM;ROM越大,手机储存的文件空间越多,目前ROM基本是16GB,32GB,64GB;ROM不影响手机的运行速度。
当运存(RAM)匮乏时,运行大型APP会出现卡顿、黑屏甚至出现暂时性卡死状态。
在运存不够时可以采取手动关闭后台不必要的程序进行释放,或者通过手机管理软件进行内存释放,例如手机管家、手机安全卫士等。
(2)网络环境影响以及服务器接口环境
网络状况直接影响业务型APP的体验,例如用户登陆业务;登陆时手机端需要向服务器发送用户的登录名及密码等信息,服务器进行信息核对后返回登陆状态指令,手机端接收到返回信息进行业务跳转。登陆业务只需要进行一次接口调用,在网络和服务器环境都理想的情况下,http三次握手时间可以控制在1秒以内。综合考虑手机端网络以及服务器环境,登陆控制在2.5秒内是可以被用户接受的。
手机端针对网络环境可采取相应的缓存策略以降低服务器的频繁访问,从直观上提高页面响应速度。根据业务级别提供相对可靠的有损服务,可采用懒加载、延迟异步加载等方式降低服务器压力。
对于服务器可采用缓存服务器、分布式服务器、反向代理等方式进行数据提供业务,对于图片、视频等媒体资源采用CDN进行加速。服务器端的优化性能提高率远大于手机端优化的提高率。
(3)View的绘制过程
Measure(计算) -&
Layout(定位)
-& Draw(绘制)
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),其框架过程如下:
图 1-2 View绘制流程示例图
View的绘制时间可以利用hierarchyviewer工具进行查看。
图1-3 hierarchyviewer示例图
上图Measure为0.089ms,Layout为0.115ms,Draw为1.088ms,该view的绘制总耗时为1.292ms。
(4)16ms原则
目前大多数手机的屏幕刷新频率是60hz,如果在.67ms内没有办法把这一帧的任务执行完毕,就会发生丢帧的现象。丢帧越多,用户感受到的卡顿情况就越严重。16ms时间很短,身为一名应用开发者,为了让用户有更好的体验,应该要充分利用这16ms,确保刷新一帧的时候在16ms内。
图1-4 UI刷新示例图
如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。
图1-5丢帧示例图
优化16ms问题可以通过尽可能减少过度绘制,减少布局嵌套,尽可能不要在UI线程做过多耗时操作。
(5)OverDraw过度绘制
当设计上追求更华丽的视觉效果的时候,我们就容易陷入采用复杂的多层次重叠视图来实现这种视觉效果的怪圈。这这很容易导致大量的性能问题,为了获得最佳的性能,我们必须尽量减少Overdraw的情况发生。
图 1-6 过度绘制四种级别示例图
蓝色、淡绿、淡红、深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。
(6)GC垃圾回收
GC一般耗时在几毫秒到几百毫秒之间,然而对于手机16ms渲染机制来说,GC会带来不小的开销,所以在开发过程中尽量避免显示调用GC。频繁GC会导致页面卡顿,当执行GC操作时,任何线程都进入暂停状态,等待GC操作结束后才能够继续运行。导致频繁GC有两个原因:
内存抖动,即大量的对象被创建后又在短时间内立刻被释放
瞬间产生大量的对象会严重占用Young Generation的内存区域,当达到阀值时会触发GC过程。
以上这些GC操作可能会造成丢帧情况,如下图:
图 1-7 GC时丢帧示例图
24ms的GC形成了丢帧,用户感知到页面卡顿。
(7)同步任务过多
页面启动时同步任务过多会在短期内过多占用手机资源,直接导致其他性能下降,影响页面响应时间。例如在Activity的onCreate方法中进行了大量的同步任务。
二、 初步优化方案
综上所述,App运行速度分析概括为以下七点:硬件约束、网络环境影响以及服务器接口环境、View的绘制过程、16ms原则、OverDraw过度绘制、GC垃圾回收、同步任务过多。在这里我们只对移动端开发并对后面五点提出相应的初步优化方案:异步延迟加载。
不妨先针对View的绘制过程、16ms原则来分析下某首页,采用hierarchyviewer工具分析首页如下:
图 2-1 首页MLD分析示例图
从上图可以看出首页包含了1435个view,Measure耗时43.476ms,Layout耗时1.141ms,Draw耗时2.840,总耗时47.457ms(大于16ms)。基于16ms原则,该页面会出现丢帧情况从而导致卡顿现象。针对这种长篇幅的页面可以根据实际情况进行异步延迟加载,对于第三屏、第四屏、第五屏采用梯级延迟加载从而避开同步加载。
异步延迟加载的关键是延迟时间为多少是合适的,对于配置较低的手机延迟相对要高一些,对于配置较高的手机延迟相对要低一些。如果延迟配置的不合理的话,高配置手机会产生等待延迟加载的内容的情况,而低配置手机会出现优化效果不明显的情况。所以这个时间需要结合业务以及不同配置的手机进行测试来确定的。
针对GC垃圾回收,我们以某APP MainActivity为例子分析下。MainActivity作为项目中所有Activity的托管,采用getLocalActivityManager().startActivity().getDecorView()方法获取启动Activity的视图进行显示。jumpActivity为切换Activity的方法,每次进行页面跳转时必须经过该方法,该方法包含GC过程。通过测试分析统计出每次跳转页面GC的耗时在8ms到300毫秒之间,这里的GC时间会随着下个启动页面的工作量越多而耗时越长。我们采用异步处理一下,GC过程耗时在0~4ms之间,效果提升显著。
使用低配置的手机打开某APP进入首页时会黑屏8~·14秒,然后出现界面,通过代码分析发现首页同步初始化五个重量级的Fragment,导致系统运存缺乏,影响了后续的界面绘制渲染等逻辑。我们采用异步延迟加载进行处理一下,先对第一个主Fragment进行异步加载,主Fragment加载完毕后再异步加载第二个Fragment,接着第三个,最后第四个,这样就可以在短时间内合理分配运存,避免了黑屏的情况。
以上就是App运行速度分析以及初步优化方案,我们只有对App运行速度的硬件环境、开发的软件因素以及App运行交互的原理进行了解后才能制定相应的优化方法,方可对症下药。对于每一个可能影响用户体验的问题进行逐步优化,以先解决大问题、迫切问题为前提,以解决繁琐、细小的问题为原则进行深入优化,App体验才会越来越好。
参考资料:
[前端优化]webAPP优化方案总结
Android App优化方案梳理
App性能优化浅谈
【iOS开发】25种常见的APP性能优化方法
Android APP性能优化十大方案
Android 性能优化之内存检测、卡顿优化、耗电优化、APK瘦身
浅谈App的性能优化
Android App 性能优化方案
Android App界面和流畅度优化
Android App性能优化笔记之一:性能优化是什么及为什么?
没有更多推荐了,手机运行慢?学这几招让你速度快起来!
现在很多时候,手机用久了都会出现越来越慢的情况,很多人可能会觉得是内存越来越小的原因,但其实不只有这一个因素。今天小编就来跟大家聊聊手机变慢的几个原因和帮助手机提速的方法,跟着小编来学学吧!
手机变慢的原因
1、手机的垃圾过多
手机用久了会产生各种缓存文件占用内存,除此之外,各类软件安装包、升级包,若长期不清理,便影响手机存储空间和运行速度。
2、手机的安全隐患
安卓平台上有较多危害应用,若下载了山寨或病毒APP,可能会出现偷跑流量、后台自启动等情况,然后影响手机的运行速度。
3、手机内存不足
这个大家都应该知道,若没有及时清理内存和管理后台运行软件的习惯,会导致手机内存不足,影响手机的运行速度。
手机提速的诀窍
1、及时清理存储空间
QQ、微信是我们目前使用最频繁的APP,其中聊天信息、小视频、图片等会占用大量内存,但很少有人会定期清理APP存储空间,所以平时应养成定期清理的习惯。不需要了的信息和图片可及时清理,这样可节省大量存储空间。
2、正确退出程序,及时清理内存
有时程序运行完后,按返回或HOME键并未关闭程序,只是切换到后台,这样不仅占用CPU又占用内存。所以,用后一定要及时将其正确关闭,才能释放出其占用的内存。退出可打开手机主菜单,选择“设置”&“更多设置”&“应用程序”&“正在运行”,可看到当前打开的所有应用和后台服务,根据自己的需求,点击相应APP停止进程。
3、恢复出厂设置
有时手机用久了,即使经常清理内存,也禁止了不必要的程序自运行,手机速度还是很慢,我们就需要使用终极办法——恢复出厂设置。打开手机菜单,找到“设置”&“更多设置”&“恢复出厂设置”,即可恢复出厂设置。但在恢复出厂设置之前记得一定要备份资料!备份资料!备份资料!
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点&>&&>& > 手机越用越卡?教你提升手机运行速度
手机越用越卡?教你提升手机运行速度
来源:互联网&&&&更新时间: 09:44:39
  经常会有很多朋友抱怨手机刚买的时候很流畅,但用过一段时间后就不可避免地变卡,即使现在的手机内存已经普遍达到3到4G,处理器的参数也是相比之前有了很大的提升,同样无法避免手机越用越卡的现象。那么如何才能提升手机运行速度呢?今天小编就来教大家几招,其实平时使用的时候稍加注意,就可以使手机的性能像之前一样顺畅了。
  养成清理后台的习惯
  大内存为手机带来了更强性能的同时,也使用户有了&内存这么大,我随便用也用不完&的错觉。然而实际上,在手机内存增大的同时,手机的系统和应用本身也在升级迭代,需要占用比以前的版本更大的内存空间。
  这样看来的话,3G和4G的内存也只是够用或者刚刚好而已,况且现在人们很少有点击&退出&的习惯,更多的是点击home键返回到桌面,稍加不注意,多打开几个应用程序,这点看似庞大的内存空间就没有了,所以大家需要时不时清理一下暂时没用的后台程序,只保留重要的、在用的后台即可。
  用清理工具定期大扫除
  不知大家是否有使用清理工具的习惯,如果没有的话,小编建议大家隔个一个月左右清理一下手机的垃圾,根据使用情况不同,大概一次能清理1G至数G不等的垃圾,不要小看这些垃圾,这些垃圾很有可能就是造成我们手机卡顿的罪魁祸首。
  可能有朋友会担心这些清理工具会清理掉手机上的重要数据比如照片等,其实并不会,只要在清理垃圾时留意一下需要清除的数据类型即可,不要傻傻的勾选&删除照片音乐等大文件&就可以。
  手动删除&垃圾&文件
  上边我们谈到了垃圾的处理,但是手机上还有一部分数据是垃圾处理程序所不能处理的.就拿图片来讲,有我们常用的,手机截图等,这些数据相比碎片化的垃圾,单个文件体积更大,也是造成我们手机卡顿的凶手。
  这个时候就需要是我们手动删除这些文件了,操作方法很简单,选取那些过时的表情包或者不用的截图或者是歌曲和视频文件,点击删除。
  关闭应用/系统的自动更新
  现在很多应用都自带自动更新的功能,小编觉得这个功能并没有太大用处。因为很多基于安卓定制的系统都带有应用商店,即便没有,用户大多也安装了第三方的替代应用,能够检测手机的应用是否需要更新。
  一个应用监测自己需要是否升级还好,十个八个甚至更多的程序都监测是否升级那就会占用手机很多的性能了,因此小编建议大家关闭应用本身的自动更新功能,只打开应用商店的这一选项即可。
  同理,系统自动更新最好也关闭,一般来讲,用户买手机的时候手机所搭载的即是最稳定的系统,厂商后期的确会修一些bug之类,但总体来讲还是不要升级为好,非要升的话,建议在系统大更新的时候才升级,并且是手动升级,及清除缓存,但是新系统很可能也是有坑...
  关闭无用的功能
  现在的手机功能太多了,什么红外、NFC、各种传感器等等等等,而对于大部分用户而言,这些功能并没有长久的用武之地,很可能是新手机到手的那两天趁着新鲜劲玩了玩,以后就再也没用过了,对于这些功能,小编建议大家在系统中关闭,提升了性能不说,还省电。
  关闭没有必要的消息推送
  小编特别痛恨这些乱七八糟的推送,特别是某些国产app,在这里就不点名了,推送的消息乱七八糟不说,频率还特别频繁。
  针对这些app,小编建议大家在系统设置中直接禁用这些app的推送功能,只保留那些必要的app比如微信等。
  限制应用自启动功能
  小编在这里要说的不是开机启动,对于开机启动,相信大家都能找得到系统中相应设置的入口,小编要谈的是app的唤醒自启动。
  现在的app不像前几年是独立的,引用一下现在比较潮的词,现在的app都是在生态圈混的,A程序被用户点击打开之后,B程序在用户不知情的情况下就也默默打开了,一声招呼都不打,你还别嫌多,C一看见B醒了,就把D和E也叫醒了,稍微夸张一点讲,用户点击的是一个程序,可最后被唤醒的程序数量足可以组成一个队了。
  针对这种情况,小编建议大家为自己的手机安装一下类似守护这样的app,好好治理一下自己手机上的生态圈,当然,这可能需要root。
  重启手机&恢复出厂设置
  最后就是大招了,跟在网吧一样,机器上出现的很多问题都是可以靠重启解决的,如果你觉得清理后台麻烦,管理自启动麻烦,那就干脆重启手机吧,简单粗暴还有效果。
  而对于积累了长时间的垃圾数据,就选择恢复出厂设置,备份好图片、联系人等数据,恢复出厂设置,手机就又变得春风拂面了。
  Android手机硬件性能不断提升的同时,各个APP也在不断的升级,导致了几乎每隔一两年换一次手机才能保证系统的流畅性,不过,在预算有限的情况下,养成良好的手机使用习惯能在一定程度上改善手机卡顿的问题,当然,当性能达到瓶颈时,不用考虑太多,换手机吧。本文链接:http://www.desktx.com/news/shoujizixun/5909.html
相信有不少朋友都和小编一样遇到过WPS的广告。由于微软OFFICE收费,加之程序庞大,安装麻烦不说,对于一般的办公电脑又容易出现卡顿,因此很多朋友选择安装国产WPS办公软件。但是问题也随之而来,WPS广告太多,使用起来也不怎么方便。
近日爆发的“勒索病毒”(比特病毒)的抵抗方法。
WIN7自带软件很臃肿怎么办?作为一个强迫症患者,每次打开win7系统(抱歉,用不来win10),看见一大堆诸如“扫雷、纸牌”以及“示例音乐”或是“帮助文件”等,一辈子都不会点击的软件时,就莫名的烦躁,想要一次性删除,却因为系统限制,怎么也删不了。
Ryzen不支持Win7吗?众所周知,Intel和AMD都已经明确表示新平台CPU不支持Win7系统,用户只能选择Win10。其实,导致Intel和AMD不支持Win7主要是被微软限制了,说白只是一个官方通用术语,但用户也是可以通过其它途径来解决这个问题,就像Intel的100/200系列新主板,主要通过一些设置,同样可以安装Win7,而AMD Ryzen平台同样如此,下面小编就来分享下AMD Ryzen安装Win7系统方法,希望对大家有所帮助。
Fn键的功能在笔记本硬件层次上是由主板上的一个单片机控制的,通常这个单片机称之为EC(embeded controller 内嵌式控制器),Fn键的加入使笔记本按键更加灵活便捷。
相关专题推荐
最新手机资讯推荐
我们一直在努力日,优化最终下载页面;日,百度站内检索(内测)功能上线;日,在线留言功能上线;……桌面天下是国内最早、最专业的电脑桌面美化网站,从电脑主题美化开始,为您提供一站式系统美化服务.

我要回帖

更多关于 内存运行速度 的文章

 

随机推荐