精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

Android開發(fā)工程師面試試題

時(shí)間:2024-11-04 22:20:47 曉璇 面試試題 我要投稿
  • 相關(guān)推薦

Android開發(fā)工程師面試試題

  很早就想寫一下面經(jīng)總結(jié)一下自己最近的經(jīng)歷,然而面完以后人一下子就懶了,緊張不起來(lái)了,一拖就拖到了十一,如果來(lái)不及對(duì)今年找工作的同學(xué)有幫助,那對(duì)來(lái)年春招或者更小一些的學(xué)弟學(xué)妹有所參考也是好的,還是寫一下吧。下面是小編為大家收集的Android開發(fā)工程師面試試題,歡迎閱讀與收藏。

Android開發(fā)工程師面試試題

  一、網(wǎng)易內(nèi)推面試(電話一面、杭州二面、跪)

  其實(shí)呢,內(nèi)推有兩大好處,一是不用筆試,二嘛,電話面試,發(fā)揮余地就很強(qiáng)了(我不細(xì)說(shuō)了 大家都懂的),而且一般不會(huì)問復(fù)雜的算法,就算問也只會(huì)問個(gè)思路,對(duì)我這種算法白癡來(lái)說(shuō)簡(jiǎn)直是贊到不行。

  一面:

  電話面,中午12點(diǎn)整,面試官好像很著急去吃飯的樣子。說(shuō)話特別快,而且問問題一旦聽?zhēng)讉(gè)字感覺你像是知道,馬上就打住問下一個(gè)問題,一共問了15分鐘,20問題,java部分問比較基礎(chǔ),Android稍微問到了內(nèi)核。

  java部分:

  1、jvm分區(qū),GC(基本上后續(xù)所有地方面試都問了,基礎(chǔ)中的基礎(chǔ))

  2、volatile和Synchronized區(qū)別

  3、原子性、可見性的概念

  4、進(jìn)程與線程的區(qū)別

  5、線程池的概念、好處、常見的線程池舉例

  6、Callable和Runnable的區(qū)別

  7、HashMap的內(nèi)部原理

  8、ConcurrentHashMap原理

  Android部分:

  1、Android的存儲(chǔ)方式

  2、Handler、Lopper、MessageQueue

  3、AsyncTask 為什么java已經(jīng)有線程池的實(shí)現(xiàn)了,還要繼續(xù)使用AsyncTask,AsyncTask相對(duì)于java自帶的線程池的好處

  4、onTouch事件的處理機(jī)制

  5、說(shuō)一下MVC以及其在Android中的應(yīng)用

  6、說(shuō)一下OOM以及你怎么解決的

  7、了解Android的Framework么

  8、說(shuō)一下一個(gè)Android APP從點(diǎn)擊打開開始,是怎樣展示在用戶面前的(Zygote、Ams、Wms等)

  網(wǎng)絡(luò)基礎(chǔ)部分:

  1、TCP、UDP的區(qū)別

  2、TCP的三次握手、四次揮手

  3、HTTP的特點(diǎn)

  4、HTTP與HTTPS的區(qū)別

  二面:

  杭州現(xiàn)場(chǎng)面,一個(gè)月了路費(fèi)還沒報(bào)銷回來(lái)。現(xiàn)場(chǎng)面是一個(gè)看起來(lái)很囂張的面試官,看你的眼神從頭到尾都充滿了鄙視,從一開始的感覺就很不好。

  1、viewpager里面只能嵌套view嗎 可不可以嵌套Activity

  2、假如viewpager里面的每一頁(yè)都有有很大數(shù)據(jù)量的內(nèi)容,那么在快速的左右滑動(dòng)時(shí),如果出現(xiàn)了內(nèi)存被回收的情況,如何處理 假如出現(xiàn)了OOM,怎么處理

  3、同上情況,使用Fragment,又當(dāng)如何?與viewpager有什么區(qū)別

  4、ExpandableListView的Adapter怎么寫

  5、在ListView的每個(gè)item中如果可能出現(xiàn)的view都不一樣,如何處理?動(dòng)態(tài)獲取view種類數(shù)量的話是不是就不能使用viewHolder進(jìn)行優(yōu)化?固定顯示view如果不存在該種view就不顯示的方法是否太耗內(nèi)存

  6、ListView的Adapter的getView具體是什么機(jī)制?

  7、Activity之間傳遞大量的數(shù)據(jù)用什么方法

  Binder

  Bundle不夠大

  Socket 在同一應(yīng)用中沒必要使用

  共享內(nèi)存

  static變量——同一應(yīng)用中static變量如何控制,會(huì)不會(huì)并發(fā)出問題,如果Activity由于內(nèi)存不足被kill掉,再重啟的時(shí)候static變量的值還可靠嗎:設(shè)置專門的訪問類,進(jìn)行讀寫控制,以及Activity重啟后的初始化工作。

  8、SQLite在使用時(shí) 假如ActivityA是用于修改SQLite,ActivityBCDEF。是用來(lái)展示SQLite的內(nèi)容,如何在修改SQLite的同時(shí)使得BCDEF...都立刻獲得最新的數(shù)據(jù)?SQLite有沒有類似于ContentObserver的這么一種監(jiān)視類可以監(jiān)聽到SQLite內(nèi)容的改變?如果廣播通知所有類,那么廣播可以攜帶多大的數(shù)據(jù)?

  9、假設(shè)把一個(gè)ActivityB向右滑動(dòng)可以回到上一個(gè)ActivityA,B漸漸透明,A漸漸清晰,要怎么編寫頁(yè)面?說(shuō)說(shuō)你對(duì)android:theme的理解,說(shuō)說(shuō)你對(duì)alpha值的理解

  10、ListView在數(shù)據(jù)量很大圖片很多的情況下怎么優(yōu)化?假如一個(gè)圖片,輕輕的向上滑動(dòng)一丟丟,那么需要重繪嗎?(什么鬼。)

  11、詳細(xì)展開說(shuō)一下所有LaunchMode的應(yīng)用場(chǎng)景

  假如A-》B-》C,想讓C后退直接到A,使用什么樣的intentflag?

  假如A-》B-》C,C使用singleTask,C后退,后退到什么地方呢?

  12、在全屏顯示高清大圖的時(shí)候,網(wǎng)速慢的情況下如何顯示?漸進(jìn)式顯示是怎么做到的?如果想顯示下載進(jìn)度圈圈,該如何實(shí)現(xiàn)?

  13、AsyncTask在4.x以后有什么改變?怎樣改回并發(fā)執(zhí)行好多個(gè)?如果一個(gè)AsyncTask結(jié)束取得結(jié)果之前Activity就因?yàn)閮?nèi)存原因被Destroy掉了,那會(huì)有什么情況發(fā)生?會(huì)內(nèi)存泄露嗎?會(huì)空指針嗎?需要在Activity徹底死掉之前把AsyncTaskcancel掉嗎?如果沒有cancel掉,然后Activity重啟了,那這個(gè)Asynctask又當(dāng)如何呢?

  14、AsyncTask內(nèi)部實(shí)現(xiàn)機(jī)理 與Thread+Handler有什么不同

  15、說(shuō)一下HandlerThread

  16、你的APP里,是每個(gè)Activity都有一個(gè)Handler呢還是所有Activity共享一個(gè)Handler

  17、基于事件監(jiān)聽、基于事件回調(diào) 假如一個(gè)touch事件發(fā)生,那是監(jiān)聽先收到還是onTouch函數(shù)先收到

  18、假如你要記錄ListView滾動(dòng)到的位置,要記錄什么信息,view怎樣獲得坐標(biāo)信息

  19、說(shuō)一下canvas

  20、dialog和popupwindow的應(yīng)用場(chǎng)景 如果popupwindow在沒有dismiss的時(shí)候Activity finish了,會(huì)出現(xiàn)什么情況?

  21、了解過什么三方庫(kù)?為什么不用三方庫(kù)?

  22、你覺得安卓的未來(lái)在哪里?你自己為什么都用IOS了?

  23、Service和推送通知,通知有沒有可能出現(xiàn)有推送但是通知欄收不到通知?service被kill掉會(huì)如何?如何保證service不被kill掉

  24、了不了解Scrollview scrollview和ListView有什么相似點(diǎn) 有什么不同 那如果這兩個(gè)是繼承關(guān)系 那應(yīng)該是誰(shuí)繼承誰(shuí)?

  25、dp sp px各自的應(yīng)用場(chǎng)景是什么 換算關(guān)系是什么 使用sp的時(shí)候如果調(diào)整系統(tǒng)字體,顯示字體會(huì)跟著調(diào)整嗎?

  26、gallery為什么被廢棄?為什么Google推薦使用viewpager代替gallery呢?有什么改進(jìn)?

  27、handler.postAtTime不是延時(shí)post么 那handler怎么延時(shí)處理Message

  總結(jié):二面問的很偏應(yīng)用,面試官應(yīng)該是開發(fā)網(wǎng)易新聞,直接不看我的APP,拿著網(wǎng)易新聞的APP各種問我,你看我這里是這樣的,你說(shuō)一下我是怎么實(shí)現(xiàn)的,我怎么知道你是怎么實(shí)現(xiàn)的啊真是的。 之前為準(zhǔn)備校招相對(duì)基礎(chǔ)準(zhǔn)備的比較多, 應(yīng)用僅限于使用過的比較熟練,其他沒接觸過的就呵呵了。最讓我生氣的是,面試官居然問我,身為一個(gè)女生,你覺得你做Android開發(fā),有未來(lái)嗎?當(dāng)時(shí)真是氣死我了,做Android的女生怎么就沒未來(lái)了。

  這一面跪的很慘,面完回來(lái)就把問題全都記錄下來(lái)而且每個(gè)問題都專門找了詳細(xì)的解答,雖說(shuō)面完這一面回來(lái)著實(shí)也是消沉了好幾天,期間蘑菇街打來(lái)內(nèi)推電話我還直接跟人家說(shuō)改天,就是不想面了,不過后來(lái)振作回來(lái)以后也發(fā)現(xiàn)這一次挫折真的是一次相當(dāng)寶貴的經(jīng)驗(yàn)。

  二、美團(tuán)(拿到offer)

  美團(tuán)是一口氣三面面完的,其實(shí)當(dāng)時(shí)三面面完的人特別多,到最后收到offer的并不是那么多,感覺決定權(quán)基本在三面面試官那里吧,這種也沒什么可說(shuō)的。一二面面試官那里都是有一張表,每個(gè)面試官都要打分,我瞄了一下,有編程能力、操作系統(tǒng)。其他沒看到。分?jǐn)?shù)有2.5有3據(jù)說(shuō)有人還有3.5的。是美團(tuán)讓我找到了之后面試的總套路,最后說(shuō)。

  一面,40分鐘,除去項(xiàng)目介紹等,貌似并沒有問什么特殊的,我提到我平時(shí)主要做界面,所以后面的問題大多與界面相關(guān) :

  ListView的優(yōu)化

  OOM的處理

  GC原理

  循環(huán)引用的問題

  引用計(jì)數(shù)與可達(dá)性算法

  LaunchMode 這一點(diǎn)我之前也是簡(jiǎn)簡(jiǎn)單單準(zhǔn)備的有四種,每種什么意思,然后網(wǎng)易讓我發(fā)現(xiàn)了,大家都知道這些,重點(diǎn)是要知道如何應(yīng)用。美團(tuán)這里問到的是我A打開了B,B打開了C,C的右上角有一個(gè)叉叉,那我怎樣做到使我點(diǎn)擊C的叉叉,就直接關(guān)閉了BC回到A,PS,不可以用startActivityForResult

  我提到我的APP中使用到了ViewPager,面試官問,假如,ViewPager里面一頁(yè)的寬度超過了屏幕的寬度,ViewPager是怎么顯示的,這還真沒試過。

  然后問到了app是怎么通知Android系統(tǒng)頁(yè)面有刷新的,還有view的measure函數(shù)之類的,進(jìn)而討論到了View樹,然后編程就讓我寫View樹。

  編程題是,因?yàn)樵谟械男阅鼙容^差的機(jī)型上,view樹深度過大會(huì)造成crash,那么我想做一個(gè)提醒,進(jìn)入APP后首先求出這個(gè)APP的最大View樹深度,如果深度過大則進(jìn)行提醒。其實(shí)就是二叉樹的最大深度只不過換成了View樹嘛,并沒有什么難度。

  二面,30分鐘,除去項(xiàng)目介紹等沒有什么特殊的,期間突然看到一面面試官在操作系統(tǒng)那里很可愛的寫了一句 忘了問了。

  主要問了ListView的優(yōu)化、HTTP與HTTPS、進(jìn)程與線程,編程題是給定一個(gè)char,然后翻轉(zhuǎn),其實(shí)就是翻轉(zhuǎn)字符串啦,然后進(jìn)一步的就是給出一個(gè)句子,翻轉(zhuǎn)這個(gè)句子但是不翻轉(zhuǎn)其中的單詞,就是劍指offer那個(gè),也很簡(jiǎn)單。

  然后問了一個(gè)智力題,說(shuō)有十層樓,每層樓有一個(gè)鉆石,鉆石大小不一,沒有規(guī)律,電梯只上不下,只能選一層下電梯,拿走該層鉆石,問什么樣的策略可以盡量大的拿到鉆石。

  三面,20分鐘吧,基本聊人生,跟技術(shù)有關(guān)的人生,并沒有什么說(shuō)的。

  總結(jié):其實(shí)這三面中,一面是答得最不好的,因?yàn)檎f(shuō)了太多我平時(shí)是做界面的,面試官就把界面問到了比較深,然而我并沒有準(zhǔn)備過各種view的繪制方面的知識(shí),所以答的不是那么的好,也是一面讓我找到了我以后面試的總套路,一是要誘導(dǎo)面試官到你擅長(zhǎng)的方面去,我這里就是典型的誘導(dǎo)錯(cuò)誤==自己給自己挖坑了,所以以后尤其是騰訊,我就使用了另一套引導(dǎo)說(shuō)辭。二是要逗面試官笑?赡芎軟]邊。但是我后續(xù)的各種面試基本上都是跟面試官說(shuō)說(shuō)笑笑的過的,好處一是面試官本身面試很無(wú)聊,能笑一下放松心情自然對(duì)你的印象好一些,二是在說(shuō)說(shuō)笑笑中,體現(xiàn)出來(lái)了你的溝通交流能力,這也是拿到offer以后,美團(tuán)的面試官所說(shuō)的,覺得我軟實(shí)力很強(qiáng),可能就來(lái)源于這一點(diǎn)。三是說(shuō)說(shuō)笑笑扯閑話,時(shí)間一下就過去了,面試官對(duì)于每個(gè)應(yīng)聘者,時(shí)間大約都是有一個(gè)限度的,扯廢話時(shí)間越長(zhǎng),真正考察你的時(shí)間就越短,出錯(cuò)的幾率就越小。

  三、百度(面完三面,居然沒消息了,呵呵呵)

  百度給我的最大感覺是,重編程,重算法,面經(jīng)都寫不了多少因?yàn)楦径紱]問多少,就是寫寫寫。

  一面面試官比我大不了幾歲,上來(lái)就問我,你們學(xué)校好有意思啊,面了這么多你們學(xué)校做移動(dòng)端的,居然都是通信學(xué)院的,你們學(xué)校的計(jì)算機(jī)學(xué)院的人呢?然后就扯開了,從我們學(xué)校的培養(yǎng)人才的方式扯到了阿里的擁抱變化,然后扯到了阿里的股價(jià)以及百度的股價(jià),面試了一共50分鐘有30分鐘在閑聊,10分鐘寫了個(gè)翻轉(zhuǎn)字符串,10分鐘問了點(diǎn)java基礎(chǔ)的不能再基礎(chǔ)的問題,上面的公司基本都問過,然后這就過了。

  二面面試官是充分的體現(xiàn)出來(lái)了重編程,讓我自我介紹,還沒介紹完呢就說(shuō),我們寫個(gè)程序吧,我只好一臉委屈的說(shuō),人家剛剛就要說(shuō)到最最重點(diǎn)的項(xiàng)目呢,然后他就讓我繼續(xù)說(shuō)了。說(shuō)完展示了一下自己的APP,之后就是寫寫寫了。第一個(gè)讓我寫二叉樹的深度,我想這簡(jiǎn)單啊,在美團(tuán)剛寫過view樹的,結(jié)果寫寫寫就寫岔了。面試官一看我卡殼了,說(shuō)沒事,來(lái)寫個(gè)冒泡壓壓驚= =。壓壓驚。寫完冒泡以后,說(shuō),冷靜下來(lái)沒?繼續(xù)寫二叉樹的深度吧。冷靜下來(lái)寫好以后,又讓寫了個(gè)二分查找,問了個(gè)java的反射,就沒了,然后跟我說(shuō)你過了,等三面吧?次姨(dòng)了還問我,我是不是問的太簡(jiǎn)單了。

  三面面試官跟我說(shuō),我一點(diǎn)都不想問技術(shù),但是這個(gè)表上有,那我們走個(gè)過場(chǎng),隨便問問,就問了個(gè)android中的MVC,問了一下Activity的生命周期,沒寫代碼,然后就是聊人生了,一聊就停不下來(lái),聊了一個(gè)半小時(shí),還說(shuō)什么別的面試官都下了要求說(shuō)最多要幾個(gè),我這里我覺得行就行,聊的特別親切,最后走的時(shí)候還送我到電梯口。然而,后來(lái)就沒下文了。沒下文了你對(duì)我這么好干嘛。

  四、騰訊(拿到Offer)

  一面重基礎(chǔ),自從美團(tuán)以后我一是誘導(dǎo)面試官去我擅長(zhǎng)的方面,二是逗面試官笑。然而一面面試官并不笑。從頭到尾嚴(yán)肅臉。

  首先問了一個(gè)智力題,說(shuō)有1000瓶水,其中一瓶有毒,有10條狗,狗喝了毒水以后會(huì)在1小時(shí)內(nèi)死去,問怎樣能最快發(fā)現(xiàn)哪瓶水有毒。

  然后寫了代碼,用遞歸和非遞歸方式實(shí)現(xiàn)二叉樹的前序遍歷。

  后面我在自我介紹的時(shí)候直接就說(shuō)我不是計(jì)算機(jī)出身,操作系統(tǒng)什么的都沒學(xué)過,本身是學(xué)通信的所以網(wǎng)絡(luò)方面了解比較多,然后面試官就開始,哦?你網(wǎng)絡(luò)學(xué)得好?那我問下你網(wǎng)絡(luò)。這就掉到我挖的坑里了嘛。有關(guān)網(wǎng)絡(luò)方面,這里已經(jīng)總結(jié)的比較全面,另外我自己還準(zhǔn)備了HTTPS和TCP的慢啟動(dòng)和擁塞控制,不等面試官問,直接就說(shuō),從它第一個(gè)問的就開始不停的說(shuō),把網(wǎng)絡(luò)相關(guān)的問題全都說(shuō)完,面試官就一副,你果然網(wǎng)絡(luò)學(xué)的很好的表情。我覺得如果面試官問一個(gè)你答一個(gè),可能你都答上來(lái)了但是面試還是沒有過,所以我覺得干脆在面試官問一個(gè)點(diǎn)的時(shí)候,把跟這個(gè)點(diǎn)所有相關(guān)的問題全跟他說(shuō)一遍,這樣一個(gè)是你自己掌握了面試的內(nèi)容,一個(gè)是讓面試官覺得你的知識(shí)范圍的確比較廣。

  二面面試官好帥,而且很年輕,后來(lái)聽說(shuō)居然是cto,驚呆了。也是照樣說(shuō)項(xiàng)目,說(shuō)擅長(zhǎng)網(wǎng)絡(luò),然后問了TCP三次握手,為什么是三次,兩次為什么不行。還有,如果你的APP突然連接不上Server了,你怎么一步步排查出來(lái)是哪里的問題。緊接著就是智力題了,100層樓,兩個(gè)瓶子,用你的策略在最壞情況下最少扔多少次能測(cè)出來(lái)從幾樓開始扔瓶子會(huì)碎,我算出來(lái)是19次,類似于TCP擁塞控制的那么一種思想,后來(lái)出來(lái)百度了一下發(fā)現(xiàn)是14次,不過我前一個(gè)同學(xué)貌似答的是50+次,所以感覺表現(xiàn)的還行。之后問如果只有一個(gè)瓶子呢?我說(shuō)那只能一層一層扔啊,最壞情況就是100次嘛,面試官一直在問,沒有更好的了么?我表示想不出來(lái),F(xiàn)在依舊覺得沒有更好的了,如果哪位大神有更好的思路的話麻煩告訴我謝謝。

  三面HR,看人很準(zhǔn),說(shuō)話很犀利,女的,好不擅長(zhǎng)對(duì)付女的面試官,沒什么可說(shuō)的。

  我覺得騰訊校招主要是從人才培養(yǎng)出發(fā),所以項(xiàng)目經(jīng)驗(yàn)不足并不是什么特別大的問題,主要是基礎(chǔ)要很扎實(shí),腦袋要很靈光能答得上智力題,做過的項(xiàng)目要掌握的很清晰。

  五、蘑菇街(差cto沒面)

  蘑菇街是9月1號(hào)打來(lái)電話內(nèi)推面,當(dāng)時(shí)正在網(wǎng)易消沉期,不想面,推了以后覺得不會(huì)再打來(lái)了,結(jié)果9月8號(hào)又打來(lái)面試,問的全是Android,但是比較基礎(chǔ),生命周期、LaunchMode、ListView與ViewPager的優(yōu)化等。二面說(shuō)是并到校招,然而校招仍然是一面=。=,內(nèi)容跟之前電話一面類似,二面是HR面,談及人才培養(yǎng)的時(shí)候說(shuō),我們認(rèn)為能者多勞,所以有能力的人會(huì)當(dāng)好幾個(gè)同學(xué)的導(dǎo)師,言外之意是,人少,不能一個(gè)人一個(gè)導(dǎo)師。印象一般吧,后來(lái)約cto面的時(shí)候在火車上,改天約。

  六、阿里(一輪游)

  阿里其實(shí)沒什么說(shuō)的,不怎么要人了,想著軟件園那邊有家飯館想吃,就去了,一輪游很happy。因?yàn)樽约旱捻?xiàng)目有推送功能所以主要問了怎么保持長(zhǎng)連接,怎么選擇是長(zhǎng)連接還是短連接,怎么在長(zhǎng)連接的時(shí)候盡可能降低功耗等,還有GC、jvm內(nèi)部使用了什么數(shù)據(jù)結(jié)構(gòu)以及循環(huán)引用,然后問道如果就要使用引用計(jì)數(shù)算法,怎么避免循環(huán)引用。就不能乖乖的用可達(dá)性算法么真是的。

  最后一點(diǎn)就是,多在?途W(wǎng)上刷題,筆試過了是王道,霸面真的很吃虧、很費(fèi)時(shí)間,有時(shí)候默默等著希望很渺茫,其實(shí)可以托正式面試的同學(xué)把簡(jiǎn)歷帶上去或者直接堵門,機(jī)會(huì)要略大些。不過我的騰訊面試官比較嚴(yán)肅,態(tài)度也比較強(qiáng)硬,幫別人霸面未遂,一直也挺愧疚的。

  大概就是這么多了,希望給接下來(lái)或者來(lái)年找工作的人一點(diǎn)幫助吧。

【Android開發(fā)工程師面試試題】相關(guān)文章:

android面試題08-16

Android面試試題及答案02-06

android面試題大全12-30

android面試題摘要02-20

android面試題目匯總02-17

70道Android面試題(大全)07-03

BIOS開發(fā)工程師筆試題02-18

iOS開發(fā)設(shè)計(jì)面試試題02-13

前端開發(fā)常見面試試題02-14