Android效能優——佈局優化
Android效能優——佈局優化
總結:提升UI的可複用性,減少巢狀,提高UI的渲染速度。
- RelativeLayout比LinearLayout要好
- Listview少用layout_weight屬性
- 利用include複用
- ViewStub隱藏不常用的控制元件
- merge減少巢狀層次,配合include天衣無縫
include標籤
include標籤常用於將佈局中的公共部分提取出來,比如我們要在activity_main.xml中需要上述LinearLayout的資料,那麼就可以直接include進去了。
<include
android:id="@+id/xixi"
layout="@layout/support_item"/>
merge標籤:
merge標籤是作為include標籤的一種輔助擴充套件來使用,它的主要作用是為了防止在引用佈局檔案時產生多餘的佈局巢狀。
Android渲染需要消耗時間,佈局越複雜,效能就越差。如上述include標籤引入了之前的LinearLayout之後導致了介面多了一個層級。
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/iv_image"
android:text="這個是MergeLayout,這個是MergeLayout"
android:textSize="12sp" />
</merge>
activity_main就可以直接include了。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/item_merge_layout" />
</RelativeLayout>
viewstub標籤:
viewstub是view的子類。他是一個輕量級View, 隱藏的,沒有尺寸的View。他可以用來在程式執行時簡單的填充佈局檔案。接著簡單試用下viewstub吧。首先修改activity_main.xml檔案如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_view_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="顯示ViewStub"
android:textAllCaps="false"
android:layout_below="@+id/tv_content"/>
<Button
android:id="@+id/btn_view_hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="50dp"
android:layout_toRightOf="@+id/btn_view_show"
android:text="隱藏ViewStub"
android:textAllCaps="false"
android:layout_below="@+id/tv_content"/>
<ViewStub
android:id="@+id/vs_test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/item_test_linear_layout"
android:layout_below="@+id/btn_view_show"
android:layout_marginTop="10dp" />
</RelativeLayout>
相關文章
- Android效能優化之佈局優化Android優化
- Android 效能優化(二)之佈局優化面面觀Android優化
- Android優化之佈局優化Android優化
- Android 佈局優化Android優化
- Android 優化之路(一)佈局優化Android優化
- Android佈局優化技巧Android優化
- Android繪製優化(二)佈局優化Android優化
- 效能優化技巧知識梳理(1) 佈局優化優化
- Android——ConstraintLayout的使用,優化佈局效能AndroidAI優化
- Android最佳效能實踐(4):佈局優化技巧Android優化
- Android佈局檢測優化Android優化
- Android中佈局的優化Android優化
- Android 佈局優化之includeAndroid優化
- 佈局優化優化
- Android佈局優化三劍客Android優化
- 轉:Android佈局優化三劍客Android優化
- Android佈局優化利器include和ViewStubAndroid優化View
- Android學習之 UI佈局優化AndroidUI優化
- Web效能優化系列:預防佈局抖動Web優化
- Android效能優化----卡頓優化Android優化
- 效能優化-FSL(Force Synchronous Layout)強制同步佈局優化
- Android 效能優化 ---- 啟動優化Android優化
- Android效能優化Android優化
- Android效能優化篇之計算效能優化Android優化
- iOS Flexbox 佈局優化iOSFlex優化
- Android效能優化——圖片優化(二)Android優化
- Android效能優化(1)—webview優化篇Android優化WebView
- Android效能優化——程式碼優化(一)Android優化
- Android效能優化 - 記憶體優化Android優化記憶體
- Android效能優化:手把手教你如何讓App更快、更穩、更省(含記憶體、佈局優化等)Android優化APP記憶體
- Android效能優化——效能優化的難題總結Android優化
- Android效能優化(Memory)Android優化
- Android效能優化(上)Android優化
- Android效能優化篇之服務優化Android優化
- 九、Android效能優化之網路優化Android優化
- Android 效能優化之記憶體優化Android優化記憶體
- Android 效能優化(八)之網路優化Android優化
- Android效能優化筆記(一)——啟動優化Android優化筆記