提高app的响应能力-布局优化

提高app的响应能力-布局优化

在刚开始开发安卓的时候,应用无响应(ANR)是很常见的,随着安卓手机的性能和编程能力的提高,现在不会遇到这样低级别的错误了,这篇文档分享如何提高应用程序的响应能力。

前言

应用响应能力意为用户操作时的速度,也就是让使用者感觉到轻、快、流畅才行。虽然现在的安卓设备一年比一年强劲,但我们在开发中要避免这些“慢”操作,打造让用户感觉到流畅的应用。

帧率控制

肉眼无法感知超过60FPS的动画

虽然有些证明人眼的感知极限是高于60FPS的,但60FPS的帧率已经完全满足。
那么每一帧的切换就是1000/60 等于16毫秒,手机原本为了保持视觉的流畅度,它的屏幕刷新频率是60hz,所以我们在开发中也应该注意这个时间,处理的间隔应当小于这个时间。

布局优化

GPU过度绘制

在开发者选项中有个一个很好用的功能叫“GPU过度绘制”,它的作用是可视化的显示出过度绘制的区域,那么什么叫过度绘制的区域呢。比如我们组件View是从上到下分布的,最顶部的View如果重合下面的View颜色,就叫做过度绘制。

它通过颜色来表示过度绘制的等级。

1.png

来看看下面的颜色级

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="#cfcfcf"
android:padding="10dp">

<RelativeLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:background="#cfcfcf"
android:padding="10dp">

<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="#cfcfcf"
android:padding="10dp" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>

Screenshot_2021-11-07-20-12-40-86_2a27335eaa331505125090a61677c0b2.jpg

颜色越浅越好,虽然现在的设备对视图的要求并不高,但为了追求极致,我们在开发中还是应该注意这方面的问题。

GPU 呈现模式分析

开发者选项中-GPU呈现模式分析 这个功能开启之后,可以分析GPU的渲染速度,它对每个应用会单独显示一个图形。

Screenshot_2021-11-07-20-27-26-10_2a27335eaa331505125090a61677c0b2.jpg

注意水平方向的每一个竖条代表一帧,绿色线条代表16毫秒,开发者尽量做到没帧在该竖条以下。但由于复杂的业务和动画,我们经常会超出这个值,所以我们作为参考,在闲暇之余往这个方向去追求。


0 个评论

要回复文章请先登录注册