《Android應用效能最佳化》 第8章 圖形

來源:互聯網
上載者:User

標籤:

1、例子中 30個組件的xml setContentView 幾乎佔用了從onCreate() 到 onResume() 結束之前所有時間的99%

因為展開布局的開銷很大。要盡量用不同的布局方式。比如減少使用一層層嵌套的LinearLayout,使用ReltiveLayout將控制項放在一層

減少建立對象的個數

 

2、Activity內容視圖的“父親”是一個FrameLayout。

因此當你的XML最頂層只是一個FrameLayout時,最終出現兩個FrameLayout

此時可以使用<merge>合并這兩個布局

 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:id="@+id/my_top_layout">

替換為:

<merge xmlns:android="http://schemas.android.com/apk/res/android">

 

3、使用<include>重用布局

4、ViewStub

<ViewStub

  android:id="@+id/mystubid"

  android:inflatedId="@+id/myid"

  android:layout="@layout/mylayout"/>

這時候布局 mylayout不會被setContentView展開

 

ViewStub stub = (ViewStub) findViewById(R.id.mystubid);

View inflatedView = stub.inflate();//inflatedView定義在mylayout.xml中

 

ViewStub view = (ViewStub) findViewById(R.id.mystubid);

view.setVisibility(View.VISIBLE);  //會把ViewStub在父容器中刪除。替換為id為myid的布局

view = findViewById(R.id.myid);

 

5、布局工具

Android內建的工具,tools目錄下:hierarchyviewer。

用了下,只能在模擬器中檢查布局。真機需要root

http://blog.csdn.net/autumn_xl/article/details/40741835

[hierarchyviewer]Unable to get view server version from device 00856cd5d08d2409[hierarchyviewer]Unable to get view server protocol version from device 00856cd5d08d2409[ViewServerDevice]Unable to debug device: lge-nexus_4-00856cd5d08d2409[hierarchyviewer]Missing forwarded port for 00856cd5d08d2409[hierarchyviewer]Unable to get the focused window from device 00856cd5d08d2409

 

另一個layoutopt在tools下沒找到

 

 

6、OpenGL

 

《Android應用效能最佳化》 第8章 圖形

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: