常見面試題之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的複用及優化有了一定的瞭解,如果在面試的過程中說出來,相信面試官應該會對你滿意的!
原文連結: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 。歡迎大家訪問!
相關文章
- SpringCloud之Eureka的常見問題及配置優化SpringGCCloud優化
- 常見AI面試題及答案AI面試題
- MySQL複製效能優化和常見問題分析MySql優化
- 前端面試之webpack面試常見問題前端面試Web
- Java常見面試題及答案彙總Java面試題
- MySQL資料庫開發常見問題及優化MySql資料庫優化
- 雲端計算面試題及答案,常見的Shell指令碼面試題面試題指令碼
- Oracle面試常見的二十個問題及回答Oracle面試
- 做百度優化常見的十個問題及解答優化
- Java常見的面試題Java面試題
- Vue常見的面試題Vue面試題
- 常見的JVM 面試題JVM面試題
- 集合常見的面試題面試題
- ES6之Promise常見面試題Promise面試題
- OpenStack及雲端計算(面試)常見問題面試
- 軟體測試常見面試題及答案面試題
- 移動端網路常見問題及優化對策優化
- 常見的前端開發CSS 面試題及回答策略前端CSS面試題
- 常見的前端開發:Javascript 面試題及回答策略前端JavaScript面試題
- Hibernate的10個常見面試問題及答案面試
- ajax常見面試題面試題
- 前端常見面試題前端面試題
- 常見 React 面試題React面試題
- Redis常見面試題Redis面試題
- Golang常見面試題Golang面試題
- Mysql 常見面試題MySql面試題
- Redis 常見面試題Redis面試題
- Dubbo常見面試題面試題
- JDBC常見面試題JDBC面試題
- mybatis常見面試題MyBatis面試題
- SQL常見面試題SQL面試題
- 常見Java面試題Java面試題
- Docker常見面試題Docker面試題
- vue 常見面試題Vue面試題
- JVM之調優及常見場景分析JVM
- Android回顧--(十) ListView的優化和多佈局複用AndroidView優化
- Powerpoint常見問題及對策之如何插入公式公式
- 【Java面試】 Javascript常見面試題!JavaScript面試題