关于android app不注重过度绘制问题

来源:互联网 发布:双十一淘宝营业额2017 编辑:程序博客网 时间:2024/05/22 12:25
以下是一些比较有名的公司开发,用户量极大的app过度渲染的截图:

淘宝

这里写图片描述

网易Lofter
Lofter

携程
这里写图片描述
这里写图片描述

支付宝
这里写图片描述
这里写图片描述

再看有优化的是什么样子:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

红色是表示过度渲染,蓝色和绿色表示还好。
再看看张鸿洋博客里谈这个问题
我自己的开发经验是,一般加载内容不多的activity页面,这种过度绘制导致的性能和卡顿问题并不明显,或许这也是android开发者不太注重这个问题的原因之一。电商页面加载信息量庞大,应该会有影响吧。
自从知道这个开发者选项里这个性能测试之后,每次都会借助它优化自己的布局层级,android studio里使用代码分析工具时也会报这个层级太深的问题,比如:

<LinearLayout                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginRight="5dp"                android:layout_marginTop="5dp"                android:layout_weight="1" >                <ImageView                    android:layout_width="40dp"                    android:layout_height="wrap_content"                    android:layout_gravity="center_vertical"                    android:contentDescription="@null"                    android:src="@drawable/tuzhong" />                <TextView                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_gravity="center_vertical"                    android:layout_marginRight="5dp"                    android:gravity="center"                    android:text="@string/bus_on_way"                    android:textColor="@color/textColor_Blue"                    android:textSize="@dimen/textSize_15" /></LinearLayout>

这样一个布局,就是一个图片下面放文字这里写图片描述
上面的写法就很啰说,一个textview就可以搞定。一层套一层就很没必要。
最后再看看android的生态(自启严重),最近刚好买了个华为荣耀v8手机,想着搞android开发还是得多体验android系统吧,就暂时放下了苹果手机,2000出头顶配的华为荣耀v8卡顿时有发生,经理的三星note7,5000多,一问也是用着用着就卡。这个也是android系统运行在虚拟机机制上的老毛病了,垃圾回收不够好。
这里写图片描述

原创粉丝点击