❶ android面試注意事項
1.基礎在於Activity的生命周期,必須熟悉onResume onNewIntent onDestroy onFinish啊什麼東西的發生條件 時間順序
2.控制項什麼的不會問 太弱智了
3.網路交互 WebService方式和基本HttpRequest方式,可能問到Socket長連接這個難
4.框架級別,對Android設計的整體框架認識,主要2點,1:對跳轉的集中管理 2:對所有界面的集中管理
後者可以都繼承一個baseview 在baseview里記錄所有打開的view為一個集合以便管理
前者參考非同步的方式把所有任務跳轉請求等都發task讓後台排隊解決,解決後通過消息和Handle刷新頁面
5.進階知識,我搞了半年多了老手了才開始研究這些,比如現在正在研究的PN推送等,這個實時的推送用處很廣,比如實時聊天或實時消息播報或廣告推送,這個代表你的水平高度是要薪資的籌碼
注意的嘛,對整體框架一定要有好的認識,設計一個合理的框架去實現功能非常重要
還有如果你告訴別人你懂後台,可以做或者協調後台服務端完成功能那會非常好
❷ android工程師面試一般會問哪些問題
1. Android經驗
如果不是校招,Android經驗是必須的,我比較喜歡問一些基礎概念與技術原理,比如Activity、View、Window的理解,各LaunchMode的使用場景,View的繪制流程,Touch事件機制,Android動畫的原理,Handler, Looper的理解,Android跨進程通訊的方式,Binder的理解,Android Mashup設計的理解等等。
2. java水平
基本上就是Effective Java那本書里提到的東西,如果你背完那本書里的問題,並且對答如流,沒問題,就要你這樣的。其實也會考察關於final用法,反射原理,註解原理,java編譯過程,GC等一些常見問題。
3. IT基礎知識
其實就是計算機科班學生學校里學到的一些東西,在校招時這塊是重點,社招會放寬,但一些基本的常識是要有的,比如不少人都不知道http的get post有啥區別,https的那個s是什麼意思,講不清進程與線程的概念,不知道二分演算法是個啥東西。這些簡單問題的篩選,可以過濾一些所謂野路子的程序員,是不是科班出身不重要,搞這行就得對一些基本常識有概念,不然以後怎麼愉快的交流呢?
4. 代碼質量的認識
我們需要的是一個對代碼味道有感覺的人,關於這點,看下《Clean Code》就夠了,面試中這點其實不好考察,可以讓他聊一聊對代碼質量的認識,雖然不能排除對方誇誇其談,至少想法不多,只能提到命名風格這一點的人是不符合要求的,也可以在寫Code的環節中觀察。
5. 技術視野
比如對Android開發新技術的了解與學習,對其它流行技術領域的了解,這其實與我剛才提到的技術廣度的考察有關,就我面試過程中,發現很多非互聯網行業的從業人員,因為公司各種操蛋規定與公司技術氛圍的原因,技術視野相當狹窄。
我個人對這點深有體會,2011年我還在傳統行業從事軟體研發,當時的公司因為擔心技術信息泄露,不讓上網,相當封閉,我個人雖然自認為已在那個行業內做到業內專家的級別,但總感覺哪裡不對,有一天我很興奮的打算跟身邊同事聊一聊Android的時候,發現他們居然都不知Android為何物?2011年啊同志們,當時的震驚無法言表,深切感覺到需要作出改變了,毅然放棄多年行業積累,轉戰移動互聯網,直到現在。時至今日,多年前的小夥伴也有很多混出了名黨,開始走向人生巔峰,我也從來沒有後悔當初做出的選擇。
6. 技術想像力
一個優秀的技術人,如果知識的深度與廣度足夠,知識已成體系,那麼他對於一些從未接觸過的領域,也是可以做出足夠合理的想像與判斷,面試過程中如果問到一些領域候選人沒有涉獵,這時候一般不用過多糾纏,但如果你想借這個問題考察下他的技術想像力,可以深入下去,比如問他:「你覺得這個東西應該是什麼原理呢?」,「這個酷炫的控制項,如果要你來做,你會怎麼實現?」。在這方面表現出色的同學無疑是有深厚基礎與足夠廣度的人。
❸ android剛畢業怎麼面試
先背Android面試寶典,然後好好練習MVP和MVP然後讀一下OKhttp和RXjava這都是最近用的。然後對Android版本成長史有個大概的了解,然後別人問啥你都說懂,寫過。不要太具體。
❹ 請教有經驗者,一般android面試會問些什麼問題
其實,不管是什麼樣的面試形,問的問題都差不多,萬變不離其宗,都有規律可尋。其實對所有的面試官而言,只有一個目的:在最短的時間里了解到你最多的信息。想高效率的准備面試,先從這七個大方面著手吧!
一、基本情況
1、請用最簡潔的語言描述您從前的工作經歷和工作成果。
二、專業背景
您認為此工作崗位應當具備哪些素質?
三、工作模式
您平時習慣於單獨工作還是團隊工作?
四、價值取向
您對原來的單位和上司的看法如何?
五、資質特性
您如何描述自己的個性?
六、薪資待遇
是否方便告訴我您目前的待遇是多少?
七、背景調查
您是否介意我們通過您原來的單位迚行一些調查?
95%的面試基本上都離不開這些問題,當然還有可能問一些專業問題,我想如果你做過的話應該都不是什麼難事,一般面試官都不會過多的問專業方面的問題的。
❺ 安卓的面試,有什麼需要注意的
如果面試去吹的話請不要吹過頭,適量而至。不懂的不要裝懂,不懂很正常,反過來你可以詢問這個知識點,然後如果有筆試的話,代碼什麼不會寫沒關系,關鍵是你思路要寫下來,寫下偽代碼。最後去面試著裝不要邋遢,說話語速慢點,不要緊張,關鍵是不要緊張,了解下面試公司的背景,一般都會問到,有多少說多少。
❻ 好程序員android面試都面試哪些問題,不知道難不難。
根據公司的項目需求,比如公司做的是一個涉及到地圖定位,支付和聊天的項目,那一般就會找在這方面有開發經驗的人。
根據面試者簡歷上的項目經驗,看看這個人做了哪些項目,根據這些項目問一些相關的技術問題。
假設一些工作情況和條件,問面試者是如何面對和解決的。
有些公司確實會很刁難人,但這不能怪人家,畢竟他們想找一個能真正勝任工作的人,而你也想這樣的工作。所以,面試的時候最重要的還是做你自己。讓他們了解你,你自己也去了解他們。遇上自己很喜歡的工作但是人家又不要你,那你就努力提升自己。
❼ 面試android高級開發工程師具備哪些技能
1、關於團隊:對內:能提升團隊內聚力和執行力,注重個人成長,能快速提高團隊戰鬥力;對外:能住區更多的資源,使項目和組內成員獲得更好的成長和發展。
2、關於技術:領導項目優化,架構變更、核心模塊的修改,也能不斷引入新技術、對標競品,不但技術上領先,也能做出更優秀的作品。
一、了解系統核心機制
1. 了解SystemServer的啟動過程
2. 了解主線程的消息循環模型
3. 了解AMS和PMS的工作原理
4. 能夠回答問題」一個應用存在多少個Window?「
5. 了解四大組件的大概工作流程
二、基本知識點的細節
1. Activity的啟動模式以及異常情況下不同Activity的表現
2. Service的onBind和onReBind的關聯
3. onServiceDisconnected(ComponentName className)和binderDied()的區別
4. AsyncTask在不同版本上的表現細節
5. 線程池的細節和參數配置
6.熟悉設計模式,有架構意識
三、技術要求
1.稍微深入的知識點
2.系統核心機制
3.基本知識點的細節
4.設計模式和架構
當然,除了上面的知識點和技能外,你還要能玩轉RxJava、掌握自定義view 、要會進程間通信與進程保活、熱修復等知識點。
❽ 如何面試 Android 工程師
拿自身來舉個栗子把= ̄ω ̄=~
先介紹一下自己的情況,我是一名2016應屆畢業生,自學的android開發,面試過好多公司(目前待業/(ㄒoㄒ)/),有實習生的,也有社招的,也有校招的,下面就從這三個來說吧:
實習生:
對於實習生而言的話,可能對於android方面的要求並不是特別的高,比較注重基礎,但是基本的得會,比如:
四大組件基本的概念以及使用。
activity的生命周期流程,這是最基本的,但是你得清楚到底是啥時候調用各個方法,如一個頁面(A)當前正在跟用戶交互,彈出一個Dialog後,A的各個回調方法的流程調用情況等。
數據存儲的方式,五大存儲方式的基本使用。
掌握網路通信中httpClient和HttpUrlConnection基本使用,任何網路框架都是從最簡單的寫起,所以這個必須要知道。
熟悉json解析,JsonObject,JsonArray等等的各種使用。
會導入第三方庫。
線程(Thread,Runnable)的使用。
主線程和其他線程的交互(Handler,AsyncTask)。
校招:
對於校招而言的話,主要是對於計算機基礎能力的考察,尤其bat等公司更甚,當然android方面也是需要的,主要考察的方面是:
熟練掌握操作系統原理
熟練掌握計算機網路
熟練掌握數據結構以及演算法
良好的java基礎
android基本的都要會,在此基礎上需要掌握一定的源碼方面的知識,比如handler源碼,AsyncTask源碼,觸摸事件機制,view的事件分發機制,清楚他們是如何由0到1完成各自的工作的。
閱讀過相關開源項目,對開源項目做過校正或者貢獻的,Github好多小星星的~
社招:
再講之前先吐槽一下某大型互聯網照片處理類公司(B)的HR,說好的校招,結果把我安排到社招相關去了,嗶了狗了。
對於社招方面,個人了解的也比較少,主要是經歷了B這個公司的面試,所以就面試的內容來講講吧,拋磚引玉好了,個人覺得社招尤其注重你在工作項目中的對於代碼整體框架的整體認識以及熟練掌握程度:
對於源碼有一定的研究,Binder機制的理解,熟練自定View,能夠對開源庫進行再次的封裝,改寫等等,AWS,WWS等等有一定的認識。
閱讀過開源項目源碼,清楚開源項目的構建歷程,優缺點等。
設計模式的理解與運用。
對於上任公司項目的理解,能夠清楚的講解自己編寫代碼的思路。
獨立解決Bug的能力,優化代碼的能力,重構代碼的能力。
良好的計算機基礎。
最最重要的一點,我覺得是:
對於技術是否有熱情,有求知慾,願意去嘗試,去了解新的技術,這是我認為最重要的一點。
僅僅針對個人情況寫的,有什麼寫的不對的地方還請大家多多指正~
❾ 自學安卓的,去面試,該准備什麼
這個還真不容易准備,我簡單說下我面試都問吧...只適用於三年工作經驗以內的同學,再往上這么問就不太合適了。1、請候選人簡單自我介紹這個沒啥好說的,別太羅嗦就好。2、寫個簡單的代碼實現不會弄太復雜的代碼,一般就寫string類函數的重新實現;如果候選人是應屆生的話,會要求寫個復雜點的,比如單鏈表反轉;如果有地圖行業背景的,可以寫個從集合內找出/刪除最近的N個點。多數情況下,面試的時候沒有人能寫得很完美,總有些考慮不周的邊界條件或者比較亂的邏輯。這時候我會提醒候選人哪些地方有可能有問題,讓他試著改進。能比較順利地改出來就Ok了。3、Java的基礎和Android的基礎穿插著問我常常會問Java泛型類的使用,HashMap和ArrayList的內部實現,時間復雜度。Java的介面和抽象類的取捨,虛方法和多態的運用等等。關於Android,問一下布局(幾種Layout的使用)、數據存儲(SD卡、SQLite、共享配置這種)、Intent傳遞、消息機制、Activity生命周期等等。4、更深入的技術細節這個我最糾結了,我自個兒就半桶水,當然連半桶水的問題也問不出來...一般我就問問常見內存泄漏場景、App被銷毀後如何恢復、ListView如何重用、如何適配不同屏幕、生產環節出問題了咋辦...曾經我也問過Java GC這種教科書問題,後來發現沒啥效果,就再也不問了。至於項目經驗神馬的,那是二面的事兒,我只是個弱弱的一面。就這些 查看原帖>>
❿ android開發怎麼樣面試能詳到8000
無論大公司還是小公司,之所以在如何招聘到真正有能力的
前端工程師方面會遇到同樣的問題,就是因為負責招聘的那些人不知道自己公司需要什麼樣的人,結果問問題時也問不到點子上。經過這幾年在行業里的摸索,我總
結出了自己的一套很有效的面試前端工程的方法。
有的應聘者說我不好對付,但留給他們這樣的印象也並非我所願。我覺得之所以他們說我不好對付,主要是因為我問他們問題時問得太細了。以前我曾專門寫過一些
東西,告訴應聘者怎麼才能通過我的面試(Surviving an interview with me)以及優秀的前面工程師應該具備什麼樣的素質(What
makes a good front end
engineer?),而我的面試可以說完全是按照那兩篇文章的標准進行的。我不會問一些特別偏門的問題,也不認為出幾道邏輯題就能考出人的真實水平。我
唯一的想法就是確定你能否勝任我們要招的這個職位。為此,我需要簡單地考察如下幾個方面。
基本知識
我們生活在互聯網時代,你想知道的任何事情幾乎都能在15分鍾內找到相關信息。可是,能找到信息並不等於你會使用它。我認為所有前端工程師至少都應
該掌握某些基本的知識,才能有效地完成自己的工作。如果一遇到問題,就停下工作上網四處搜索解決方案,怎麼可能保證按期完成工作呢?聽聽,還有誰在說「我
不知道,但我可以上網搜到。」請這些同學把手舉起來,讓大家認識一下(immediately raises a flag for
me.)。下面我列出一些基本的知識點,這些都是我認為一名前端工程師(無論工作年頭長短)在沒有任何外來幫助的情況應該知道的。
DOM結構——兩個節點之間可能存在哪些關系以及如何在節點之間任意移動。
DOM操作——怎樣添加、移除、移動、復制、創建和查找節點。
事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。
XMLHttpRequest——這是什麼、怎樣完整地執行一次GET請求、怎樣檢測錯誤。
嚴格模式與混雜模式——如何觸發這兩種模式,區分它們有何意義。
盒模型——外邊距、內邊距和邊框之間的關系,IE 8以下版本的瀏覽器中的盒模型有什麼不同。
塊級元素與行內元素——怎麼用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式。
浮動元素——怎麼使用它們、它們有什麼問題以及怎麼解決這些問題。
HTML與XHTML——二者有什麼區別,你覺得應該使用哪一個並說出理由。
JSON——它是什麼、為什麼應該使用它、到底該怎麼使用它,說出實現細節來。
重申一下,上述這些知識點都應該是你應該「想都不用想」的東西。我一開始問的所有問題都是想摸清你對所有這些領域知識的掌握程度。雖然上面列出的這些知識點並沒有面面俱到,但我覺得你至少應該掌握這些,才有可能跟我坐到一間辦公室里來。
少量提問
我非常贊同面試者問的問題越少越好。反復問應聘者各種問題既不公平,也很無聊。我在任何一次面試中,通常只問三個大問題,但每個問題又會涉及我所能想到的多個方面。回答每個大問題一般要經過幾個步驟,這樣我就可以在每個步驟中穿插著問一些小問題。比如說:
現在有一個正顯示著Yahoo!股票價格的頁面。頁面上有一個按鈕,你可以單擊它來刷新價格,但不會重新載入頁面。請你描述一下實現這個功能的過程,假設伺服器會負責准備好正確的股票價格數據。
這個問題牽扯到一組我想要考察的基本知識點:DOM結構、DOM操作、事件處理、XHR和JSON。如果我要求你對換一種處理股票價格的方式,或者
讓你在頁面中顯示其他信息,就可以把更多的知識點包括進來。對於經驗比較豐富應聘者,我也可以自如地擴展要考察的知識范圍,最簡單像JOSN與XML的區
別、安全問題、容量問題,等等。
我還希望應聘者給出的任何解決方案中都不要使用庫。我想看到最原生態的代碼,你就當頁面中沒有包含任何庫。你說你對哪個庫了解多少多少,但我不能把
關於庫的知識作為評判能力的因素,因為庫是會隨時間變化的。我需要的是真正理解庫背後的機制,特別是能夠徒手寫出一個自己的庫的人。
解決問題
做為一名前端工程師,最值得高興的事莫過於解決同一個問題會有很多種不同的方法,而你要做的就是找出最合適的方法來。我在提問的時候,經常會在應聘
者解釋完一種方法後問他們還有沒有第二種方法。此時我會跟他們說,假設你的這個方法由於種種原因被否決了,那麼你還能不能給出另一種方法。這樣做可以達到
兩個目的。
首先,可以測試出他們是否在毫無意義地復述書本中的東西。不能不承認,某些人確實有過目不忘的天賦,聽他們在那裡滔滔不絕地講,你會覺得他們什麼都
明白。可是,只要一跟這些人談到怎麼查找方案無效的原因,以及能否拿出一個新方案來,他們往往就傻眼了。這時候,如果我聽到「我不明白這個方案為什麼不夠
好」之類的反問,心裡立刻就明白我的問題已經超出了他們的能力范圍,而他們只是想拿自己死記硬背的結論來矇混過關。
其次,可以測試出他們已經掌握的(還是那句話,「想都不用想」)瀏覽器技術知識。如果他們對瀏覽器平台的核心知識有較好的理解,想出解決同一問題的不同方案根本沒有那麼難。
對一名前端工程師來說,這絕對是最重要的能力。前端工程師在工作中遇到本該如此卻並未如此的難題(說你啦,IE6),應該說是一件很平常的事。一個方案無效就無計可施的人,做不了前端工程師。
考核應聘者解決問題能力的另一層原因,與我的個人喜好有關。在搞清楚應聘者知道什麼不知道什麼之後,我就會想著問一個他們知識領域之外的問題。這樣
做的目的,就是想看看他們怎樣運用已有的知識解決新問題。在解決問題的每一步,我也准備了一些提示,以防有人會卡殼打艮(在我面前15分鍾一言不發,對我
評價這個人毫無幫助)。我真正感興趣的,是他們能夠從上一步前進到下一步。我希望看到一個人就在我眼前學到新知識。
注意:所有問題都與瀏覽器技術相關。我不相信出幾道抽象的邏輯題,就能夠考出某人解決Web技術問題的能力。在我看來,這無異於讓素描大師畫肖像(或者讓劉翔跟博爾特同場競技),沒有意義,也得不到任何有價值的信息。
有激情
要成為一名優秀的前端工程師,最重要的莫過於對自己做的事要有激情。我們技能都不是從學校中或者從研討會上學來的,因此前端工程師必須具備自學能
力。瀏覽器技術的變化可謂日新月異,所以也只有不斷提升自己的技能才做得到與時俱進。我雖然不能強迫誰必須多看博客、不斷學習,但想應聘前端工程師的人恐
怕還是必須這么做的。
你怎麼知道誰對這種工作有沒有激情?實際上非常簡單。我只問一個簡單的問題:「目前你對什麼Web技術最感興趣?」這個問題永遠不會過期,而且也幾
乎不可能出錯……除非你答不上來。就眼下來說,我希望你對這個問題給出的技術中包括WebSocket、HTML、WebGL、客戶端資料庫,等等。只有
對Web開發充滿激情的人,才會堅持不懈地學習新知識、掌握新技能;這些人才是我真正想要的。當然,我會讓他們詳細解釋自己提到的技術,以保證他們不是隨
口說了幾個時髦的新詞彙。
最後一點
計算機科學或者Web設計方面的知識當然也有用,但那都是基本知識之外的東西。只要基本知識在那兒了,一切就都有了基礎,想擴充知識面也不難。可
是,如果等到正式上班以後,還得從頭學習基本技能,那種難度是不可同日而語的。另外,高級前端工程師與一般工程師相比,肯定需要掌握更多的技能。而面試幾
乎沒有經驗大學畢業生,同樣也會有一套完全不同的程序。我在這篇文章里列出來的都是一些最基本的東西。
對於那些還沒有多少面試經驗的人,我總是喜歡告訴他們,面試完了只要問自己一個問題就行:你想以後跟這個人在一起共事嗎?如果不管為什麼,回答是不,那就是不。