標籤:android 效能最佳化 ui
1、adapter 和adapterview 複用曆史緩衝(item布局和資料緩衝)。
2、資料分頁顯示(利用操作引導使用者)
3、最佳化布局檔案xml。(layout盡量不要超過5層)
4、最佳化activity的背景圖片。利用getWindow.setBackgroudDrawable(id)設定背景圖,使用系統預設的最頂層來提高效率。
5、在自訂佈景主題中設定背景
6、使用stubView按需載入,減少記憶體消耗
stubView要載入的布局:
<?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="vertical"><TextView android:id="@android:id/text1" android:text="Portrait Mode" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <SeekBar android:id="@android:id/progress" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
消極式載入的主介面:
<?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"> <Button android:id="@android:id/button1"android:text="load"android:layout_width="wrap_content"android:layout_height="wrap_content"/> <ViewStub android:id="@+id/stub"android:inflatedId="@+id/subTree"android:layout="@layout/mystub_portrait"android:layout_width="match_parent"android:layout_height="match_parent" /> </LinearLayout>
stubView載入的實現
public class StubViewLoadActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.delay_load); Button btn = (Button) findViewById(android.R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.setEnabled(false); ViewStub stub = (ViewStub) findViewById(R.id.stub); View inflated = stub.inflate(); }}); }}
7、使用子線程和背景工作完成耗時操作
androidUI效能最佳化