常見面試題之ListView的複用及如何優化

乞力馬紮羅的雪CYF發表於2015-10-01

經常有人問我,作為剛畢業的要去面試,關於安卓開發的問題,技術面試官會經常問哪些問題呢?我想來想去不能一股腦的全寫出來,我準備把這些問題單獨拿出來寫,並詳細的分析一下,這樣對於初學者是最有幫助的。這次的第一個問題就是:ListView的複用及如何優化!

1、ListView的複用簡單來說就是使用ViewHolder複用convertView。說完大家尤其是初學者,沒看過原始碼的同學不太明白。那我就舉一個例子,讓大家能夠明明白白。

例子如下:

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {

convertView = mInflater.inflate(R.layout.lv_item, null);

holder = new ViewHolder();

holder.textView = (TextView)convertView.findViewById(R.id.tv_text);

convertView.setTag(holder);

} else {

holder = (ViewHolder)convertView.getTag();

}

holder.textView.setText(mData.get(position));

return convertView;

}

}

public class ViewHolder {

public TextView textView;

}

2、如何進行優化呢?

①、如果item中有圖片一定要用非同步載入。而且裡面的圖片儘量要用縮圖或者小圖。

②、判斷手勢,快速滑動時不載入裡面的圖片。

③、要對資料進行分頁載入。

④、item的佈局層級要越少越好。

3、如何檢查呢?

可以使用hierarchview工具檢視其優化。

什麼是hierarchview?為什麼要用它呢?

不合理的佈局會使我們的應用程式UI效能變慢,HierarchyViewer能夠視覺化的角度直觀地獲得UI佈局設計結構和各種屬性的資訊,幫助我們優化佈局設計。HierarchyViewer是我們優化程式的工具之一,它是Android自帶的非常有用的工具,可以幫助我們更好地檢視和設計使用者介面(UI),絕對是UI檢視的利器。

怎麼用它呢?

Hierarchy Viewer是隨Android SDK釋出的工具,位於Android SDK/tools/hierarchyviewer.bat (Windows作業系統,mac上顯示的為hierarchyviewer),使用起來也是超級簡單,通過此工具可以詳細的理解當前介面的控制元件佈局以及某個控制元件的屬性(name、id、height等)。

1)連線裝置真機或者模擬器。

2)啟動你要觀察的應用。

3)開啟Hierarchyviewer,點選hierarchyviewer檔案即可。

說到這裡,我相信大家應該會對ListView的複用及優化有了一定的瞭解,如果在面試的過程中說出來,相信面試官應該會對你滿意的!


原文連結:http://toutiao.com/a4721743636/?iid=2940446160&app=news_article&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share


github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!

相關文章