常見面試題之ListView的複用及如何最佳化,試題listview複用
經常有人問我,作為剛畢業的要去面試,關於安卓開發的問題,技術面試官會經常問哪些問題呢?我想來想去不能一股腦的全寫出來,我準備把這些問題單獨拿出來寫,並詳細的分析一下,這樣對於初學者是最有協助的。這次的第一個問題就是: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的複用及最佳化有了一定的瞭解,如果在面試的過程中說出來,相信面試官應該會對你滿意的!
期待第二個題吧!
個人組織了一個高端Android交流群,有意向的可以先加我,我把你拉進去。保你學到更多知識,可以第一時間收到乾貨推送。
號:smart_android (←長按複製)
介紹:非著名程式員,字耿左直右,號澀郎,愛搞機,愛編程,是爬行在移動互連網中的一名碼匠!
個人號:loonggg
微博:澀郎
QQ群:413589216 更多資料和源碼盡在QQ群檔案
今日頭條:搜尋“非著名程式員”訂閱更多資訊
工作:專註於移動互連網的開發和研究,本號致力於分享IT技術和程式猿工作心得體會。歡迎大家關注與轉載。
常見面試題之ListView的複用及如何最佳化
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。