Android UI性能优化

2016-12-23  本文已影响104人  dafaycoding

Ui性能优化

参考博客:
Android UI性能优化实战 识别绘制中的性能问题
Android UI性能优化详解

1、我们在写视图的时候,要尽可能的少写视图层级

2、能用FrameLayout写的,就不要用RelativiLayout,能用RelativiLayout写的,就不要用LinearLayout(有权重 会计算两遍)。

3、使用merge合并 减少一个节点

<!-- merge合并 -->
<merge xmlns:android="http://schemas.android.com/apk/res/android"> -->
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:background="@drawable/ic_launcher"/>
        
    <TextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_marginLeft="50dp"
        android:layout_marginTop="10dp"
        android:textSize="20sp"
        android:text="我是小黑马"/>
</merge>

用include引入 merge会遵循引入它的Layout的属性

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <include layout="@layout/activity_main"/>
</LinearLayout>

4、 ViewStud 需要用到的时候才会去加载

在开发中经常会遇到这样的情况,会在程序运行时动态根据条件来决定显示哪个View或某个布局。那么通常做法就是把用到的View都写在布局中,然后在代码中动态的更改它的可见性。但是它的这样仍然会创建View,会影响性能。

这时就可以用到ViewStub了,ViewStub是一个轻量级的View,不占布局位置,占用资源非常小。

    <!-- 在需要用到额时候才会去加载 -->
    <ViewStub  
        android:id="@+id/mystub"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout="@layout/common_msg" >  
    </ViewStub> 
    ``` 
5、使用include 复用布局

>标签可以在一个布局中引入另外一个布局,这个的好处显而易见。类似于我们经常用到的工具类,随用随调。便于统一修改使用。

6、

>Fragment+viewpager (推荐使用)

>Fragment+fragment (多加节点) 1、容易有bug     2、嵌套很深  节点越少越好
上一篇下一篇

猜你喜欢

热点阅读