想让安卓 App 如丝般顺滑?(安卓手机怎么搞)

网友投稿 993 2022-09-23

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

想让安卓 App 如丝般顺滑?(安卓手机怎么搞)

随着安卓手机市场占有率的节节攀升,随便在大街上找几个人估计 80% 用的都是安卓手机吧!用安卓手机的人这么多,不知道大家是否曾经感觉到过 App 卡顿、死机?是否遇到应用程序无响应、闪退?本文就为大家解释一下其中的原因,如何通过帧数来监测 App 流畅度及解决此问题。

为何 App 会运行缓慢

学过计算机的人都知道, App 运行在操作系统上,操作系统依赖于系统的硬件,例如 CPU 、内存等,也就是说 App 运行也是需要一定的环境的,所以要分析为何 App 运行缓慢也要从两个方面来考虑:

一、App 的运行环境

从图中可以看出,App 即使在后台也会消耗一些资源,试想,如果手机安装的 App 多了,手机资源剩余的就比较少了,这样 App 运行慢也就不难理解了 。

二、App 本身的质量问题

我就不自黑了,就写这么多吧!

如何让 App 流畅运行

知道了原因,就可以各个击破!

首先 App 运行和硬件环境有关,这个好解决,换一个好点的手机喽,这样说是有些欠妥当但真的能解决问题,平时使用的时候,也要尽量少地安装 App ,不要以为安装 App 的成本低就一味地安装,App 安装的越多在后台运行的程序可能也就越多,最后会过多地占用系统资源。但有时这些因素都不能避免的情况下,我们该怎么办呢?

其实我们还可以采取下面的外科手术式的方法来解决这个问题:

1、使用 XX 清理大师终结不需要的进程,这里的降温其实也就是杀进程。如下图:

3、 上述的的方法可以说只能解决一时的问题,治标不治本。据说有些 App 为了逃避后台进程和服务被杀死,拦截了手机开机、屏幕解锁、网络状态变化、电量变化等事件,拦截了之后一旦发现进程没有开启就会自动把死掉的进程和服务重启。对于消费者来说真是防不胜防!这里介绍一个从系统层面解决的方法,限制后台进程。具体操作是(拿小米手机举例子),设置->其他高级设置->开发者选项->后台进程限制,如下图:

如何检测 App 流畅度

Process :表示渲染引擎执行显示列表所花的时间, VIEW 越多,时间就越长;

Execute :表示把一帧数据发送到屏幕上排版显示实际花费的时间,其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间。所以这个时间,一般都很短;

PS: View 类包含 Surface (变量名 mSurface ),每个 Surface 通常对应两个 buffer ,一个 front buffer , 一个 back buffer ( 4.1 之后是 3 个,一个前,两个后)。其中,back buffer 就是 canvas 绘图时对应的 bitmap (研究 AndroidviewSurface.cpp::lockCanvas )。因此,绘画总是在 back buffer 上,需要更新时,则将 back buffer 和 front buffer 互换。

Draw + Process + Execute = 完整显示一帧 ,这个时间要小于 16ms 才能保存每秒 60 帧。

这里大致能看见帧数,但是操作起来比较麻烦,也不是很直观。所以,如果有一款不那么麻烦,对开发者友好的流畅度检测工具对开发者来说简直是一个福音,特别是 App 发布出去之后,App 在不同的运行环境和在不同的操作环境下的真实体验究竟如何,对开发者价值非常大。

上一篇:程序员,你有多久没关爱自己了?(程序员关怀)
下一篇:如何利用快照( snapshot )功能快速定位性能问题(在电脑上怎么使用快照功能)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~