面試官看一個Android項目看的是什麼?

本人應屆生,想往安卓方向發展。

有一定的java基礎。現在在自學android開發。

想開發一個項目,去應聘安卓實習生。

RT,各位大神認為我的項目里最好體現些什麼?

美觀的UI?清晰的結構代碼?項目的健壯性?新穎的圖片載入演算法?

註:

我的畢業設計也是一個安卓項目,結構還算清晰吧,不過沒有什麼亮點,基本都是api功能的實現。界面更是不堪入目。

用到了版本控制,sqlite,多線程,socket,當然集合肯定不會少的。

真心求教

當然,可能安卓實習生看重的可能更多的是java基礎知識?

這方面怎麼說呢,應該還可以吧,因為我自己做的項目,出現什麼錯誤提示,我基本都能明白和解決。


最近面試過幾家公司,也找到了Android客戶端開發的實習,最主要看的應該是項目的結構吧。

我當時在技術一面的時候主要講了項目涉及到的技術,還有一些基本的Android開發問題,比如OOM的時候怎麼解決等等;

技術二面的時候,就要在白板上畫出整個項目架構,說明對項目各模塊的包裝,設計模式,性能優化等等(UI方面根本不問)。

技術三面的時候,直接談到了軟體工程,敏捷開發的東西。我對軟體工程的理解僅僅來自於書本,結果被面試官(一個leader)一下就看出來是背書了,說沒有跟上時代。。。

Java基礎肯定是要過硬的,更看重的是語言設計層面,面向對象通用的。比如說,Java中的數據結構有哪些,使用情境在哪?(我把collection和map兩大類全部講了),override和overload區別,高度並發且線程安全的HashMap怎麼實現。

總的來看,面試官都不是特別關注項目的細節,而是要在談話中探聽出你的開發經驗,風格等等,我做Android開發兩年了,去面試之前又有了半年的創業公司實習經歷,所以前兩面談起來還是比較順的。如果你的開發經驗足夠,而且開發過程中善於自己去解決問題,觸類旁通,應該就沒有什麼問題的


1 ,OOM(這是Adroid開發最常見,最重要的)

2,內存管理(主要就是圖片載入,緩存機制),

3,java垃圾回收,

如果這幾點你都能闡述的不錯,多半都會給你機會的~~~

——————————更新——————————————————

上面說了3個比較重要的點,下面根據我自己的面試經歷補充一下其他的。。。。。。

面試的時候,面試官會根據你簡歷上的項目經歷(或者是你的作品)讓你自己選一個演示一下,然後會根據你演示問其中用到的一些技術。比如:

1,問你實現這個用到了哪些技術,有其他的實現方式嗎?還可以做出哪些優化?

2,整個項目中用到了哪些開源框架?他們的實現思路是什麼?你看過他們的源碼嗎?

3,說說你知道的當前幾個比較火比較流行的開源框架(比如 Volley ,Universnal-image-loader等),是怎麼用的,研究過他們的源碼沒?

4,此外還會問一些系統的常用組件,比如說 Listview 的用法,自定義Adapter,Listview中的重用優化(我記得當時面試官是這樣問我的,ScrollView 和ListView 都能展示一個列表,為什麼用Listview 而不用ScrollView ? 這個問題主要就是ListView 的重用,使用了covertview,只載入可見的item,釋放不可見的item)。

以上基本就是基於你做的項目問的一些問題,此外還有一些常見的面試問題:

1,叫你說一下,Java中集合的類整個繼承結構,list,map,set, queue的區別?

2,說一下你了解的幾個常用的設計模式。(簡單的要會寫哦!!比如單例模式,上次我旁邊的面試官同事說,他叫面試者在紙上寫一個單例模式,然後沒寫出來,直接pass)

3 ,最好自己有個Github帳號,上面有自己的代碼,這是個很好的加分項。。

好了,,,基本上就是這些,希望能夠幫助到正在找工作的朋友~~~好運!!!


面試官通常關注以下方面:

1. 項目是否完整;

2. 面試者是否能完整闡述項目架構,項目難點或創新點;

3. 安卓和java基礎是否紮實:

安卓主要是四大組件,網路通信,性能優化,數據存儲,內存管理,UI;

java主要是 IO/NIO 集合 異常 線程 並發 註解 網路 內存管理 ;

4. 是否有獨立解決問題的能力;


手機打字版式不對請見諒。

-------------------

仔細回答下吧。做了5年安卓了。負責技術招聘這塊大概兩年半吧。說下我現在的面試流程,我們可能跟其他大公司不一樣,我們這邊一般一面就可以了。兩面的也有但是很少。一面一般是我再加我一個小弟直接去面,非技術方面會在面試過程中根據面試者的交流來判斷是否容易溝通,思路是否清晰,工作穩定性是否高。樓主主要問技術方面吧。技術方面是這樣的。首先會看面試者想要面的職位,根據不同的級別會問不同的問題。我這邊沒有面試題給你做。做了也沒用,一般直接讓面試者拿項目看,初級或者實習生的職位,就會問如下幾點1.這個app都用到什麼技術點?2.app分了幾層,如何分層的?3.這麼設計有什麼優勢?能解決什麼問題。有沒有其他方式設計?(這是為了看知識的廣度)4.用了哪些開源庫,同類庫還知道哪些?他們大概怎麼實現的。5.項目用到的一些系統組件的大概用法以及相關衍生提問。基本上初級程序員就問這些。

高級程序員呢,上面的問題會問一部分,但是主要是看他對安卓本身的理解,比如如下。1.為什麼會有fragment這個東西,他是幹嘛的?能解決什麼問題?用view能做的事情為什麼還要用fragment? 2.用到開源庫了吧。用的啥啊?用的slidemenu?OK 他怎麼寫的啊?view繪製流程什麼樣啊?touch事件怎麼分發的啊?他為什麼加到decor view上啊?等等基於開源庫的相關於framework層的實現3.listview用過吧,他怎麼實現的啊?4.MVC mvvm他倆啥區別啊?哪個更適合安卓架構的開發啊?為啥呢?5.OOM肯定都遇到過吧?為什麼會產生OOM?GC的機制是什麼樣的?別說大圖片載入導致oom,那只是oom的一種,本質原因是啥?怎麼避免?說到這個會問handler啊內部類啊為什麼會導致內存泄漏什麼的。等等吧。 然後還會問一些後台的相關知識。

————————————

總結下來,基礎程序員我看中的是你對技術的熱情,以及你做過什麼。而高級程序員我看中的是你對安卓本身的理解。

插播軟廣告

招各方面大牛,技術產品運營都要。base蘇州。薪資看齊北上廣。團隊成員很多bat。歡迎加盟。


.。


想開發一個項目,去應聘安卓實習生。

如果時應聘實習生的話,技術1面的話比較多問的Android基礎部分,而且大部分是和你這個項目可能沒有關聯的。

2面試官會問比較多關於你這個項目用的了什麼技術,怎麼實現的。往往會結合公司將要你做的項目模塊有關。比如公司將要做電商類的應用,估計會問你這個XX界面要怎麼樣做,大概多長時間你能夠完成。

3面估計有個總監來面,估計也沒有。但是這個總監就不一定是技術類的。我發現這時候,很多問題時是和技術無關的,多是關於你這個人的,比如學校生活,產品想法,成長經歷等。

當然,可能安卓實習生看重的可能更多的是java基礎知識?

這個不敢保證,看什麼公司吧。但是作為android開發人員,java基礎還是要牢固點。建議交叉學習,主要android,遇到java上的一些問題,倒回去學習java,再回來干android。

-題外-

作為Android實習生的話,有完整項目經歷外,還需要多一點的其他知識。

建議,看完 Android Design,Training文檔部分。


做一個完整的應用比一個demo值錢得多,也複雜得多


其它答案說的差不多了,我補充一點

對於應屆生 首先是確認這個應用確實是你寫的。

你知道....現在來面試的....不知道哪裡複製點代碼...或者哪個培訓課程里弄一個項目就來的太多了.........所以你自己寫項目......千萬不要和各大培訓機構的訓練項目 相似......


推薦閱讀:

開發者在使用Andoid 6.0 新功能需要注意的地方有哪些?
Android 文字繪製與 DPI 、屏幕尺寸的關係?
為什麼中國的 Android 用戶付費數量少,如何分析本地市場的影響?

TAG:Android開發 | 面試官 | Android |