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——ConstraintLayout的使用,優化佈局效能AndroidAI優化
- Android 佈局優化Android優化
- Android 優化之路(一)佈局優化Android優化
- Android中佈局的優化Android優化
- Android佈局優化三劍客Android優化
- 轉:Android佈局優化三劍客Android優化
- Android效能優化Android優化
- Android 效能優化 ---- 啟動優化Android優化
- Android效能優化----卡頓優化Android優化
- iOS Flexbox 佈局優化iOSFlex優化
- Android效能優化——圖片優化(二)Android優化
- Android效能優化(1)—webview優化篇Android優化WebView
- Android效能優化(Memory)Android優化
- Android效能優化——效能優化的難題總結Android優化
- Android效能優化:手把手教你如何讓App更快、更穩、更省(含記憶體、佈局優化等)Android優化APP記憶體
- Android 效能優化之記憶體優化Android優化記憶體
- Android效能優化篇之服務優化Android優化
- Android效能優化 筆記Android優化筆記
- Android效能優化筆記(一)——啟動優化Android優化筆記
- Android 效能優化(十二)之我為什麼寫效能優化Android優化
- Android回顧--(十) ListView的優化和多佈局複用AndroidView優化
- Android效能優化(4):UI渲染機制以及優化Android優化UI
- 六、Android效能優化之UI卡頓分析之渲染效能優化Android優化UI
- Android效能優化全方面解析Android優化
- 姿勢擺好,一招學會android的佈局優化!Android優化
- Android效能優化——列表類控制元件卡頓優化Android優化控制元件
- 【前端效能優化】vue效能優化前端優化Vue
- Android 把效能優化落到實處Android優化
- Android深度效能優化--記憶體優化(一篇就夠)Android優化記憶體
- Android Handler 訊息傳送效能優化Android優化
- 使用Android Profile做效能分析及優化Android優化
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- 效能優化優化
- Android效能優化篇之記憶體優化--記憶體洩漏Android優化記憶體
- Android效能優化,Startalk會話頁GIF記憶體優化實踐Android優化會話記憶體
- [效能優化]DateFormatter深度優化探索優化ORM
- 前端效能優化 --- 圖片優化前端優化