Android面試彙總(百度+360+Tencent+淘寶+Qualcomm+HTC)

idaretobe發表於2015-01-12
彙總自己經歷了一些來自百度,360,淘寶,騰訊,高通中國,htc上海的電話面試及現場面試,還有筆試相關題目
百度:百度在北京中關村上地七街奎科科技大廈,不大但是很安靜的一個辦公地點。
百度技術面試分為兩輪,第一輪基礎技術面試,一般為專案負責人,主要考察基本知識及知識廣度,第二輪面試一般為部門負責人,主要考察技術深度。基礎面試感覺個人答的還不錯,主要詢問了一些關於android基本知識的考察,涉及到Activity之間的跳轉,然後問了一些關於所參與專案中遇到的問題,比如現在做的雲信專案中,如何提供傳輸效率等,然後討論了一下關於View重新整理機制等問題。總體來看一面比較容易,時間差不多一個半小時。
第二輪面試,面試官看起來挺嚴肅的,當然由於是考技術深度,所以難度加大了,當然自己也敗在這裡邊了。由於看到簡歷邊有說JNI這塊,他就特地主要文這塊了,所有問題基本都是以C和資料結構為主。
主要問道:
1. 實現Strlen(char* str)
2. 說說常見的兩種資料結構之間的區別,這裡邊問道了MAP,TREE,佇列,資料,棧等。並且說說時間複雜度及空間複雜度。
3. 說說地圖定位方式,詳細說說wifi定位是如何實現的。
總體而言,之所以答的不好,對常見的資料結構確實並不是很熟悉,沒有做好充分準備,建議如果去面試,好好複習《劍指名企Offer》。第三個問題,面試官讓發揮想象去考慮wifi是怎麼實現定位的,沒有答出來。

360:位於北京朝陽區大望路地鐵站不遠處,辦公地點環境很好。

涉及的主要問題:
1. 筆試,hashcode 與 equals()區別?
2. 氣泡排序演算法實現
3. 常見的排序演算法時間複雜度
4. dp,px,sp區別及使用場景
5. lauchmode及應用場景
6. 說說你對android的理解。
7. Android sqlite3是否支援併發訪問?
8. 有沒有遇到過各個版本之間android api介面的區別?試列舉1~2個
9. Android wap訪問方式。
360此次面試總體而言,表現挺失敗的,筆試題沒有答好。面試也沒表現好。

騰訊面試:地點在騰訊大廈隔壁的樓裡邊。

騰訊在電話面試中主要問道了:
1. C++ 引用與指標的區別。
2. Android aidl原理。
3. 如何保證service在後臺不被kill
現場筆試題如下:
1. Broadcast生命週期。
2. Requestlayout,onlayout,onDraw,DrawChild區別與聯絡
3. Invalidate 與 postInvaliate區別
4. Android 2D動畫框架實現原理
5. Java狀態機
6. 執行緒wait(),yelid(),sleep()區別
7. Java垃圾回收機制
8. 兩種單例模式的實現方式
9. 與操作
10.遞迴演算法
11.Map原理
12.Java中int char long各佔多少位元組數
13.Android為每個應用程式分配的記憶體大小是多少?
14.Integer與Int的區別。
筆試大概耗時30分鐘。
面試過程中,主要是問關於演算法與資料結構的題,問了C裡邊比較經典的一個演算法題,求一個數N的2進製表現形式中1的個數。如3(0x0011)中為2個。
沒答出來。
騰訊面試兼顧android及java基礎知識,並且在面試中主要考察資料結構與演算法,但是面試前沒有花時間與精力複習此。悲劇的收場。

淘寶:淘寶面試只參與了電話面試,電話面試耗時約1小時,在電話面試中主要問了如下問題:
1. 自我介紹
2. 參考自我介紹,問了很多關於目前所做專案中遇到的問題
3. 在專案中遇到的最大的問題,回答,listview圖片快取機制。
4. 專案亮點:網路架構,說說對AsyncTask的理解。
5. 如何防止service被kill掉。
6. 說說View的重新整理機制。
7. 對Java虛擬機器的理解。Java記憶體回收機制的理解。
8. AIDL
淘寶電話面試時由於當時剛入門android沒多久,只接觸了一個專案,專案經驗不夠,並且由於對java理解很淺,所以得到的面試結果是:技術基礎還可以,但是技術深度不夠。

Qualcomm中國:
Qualcomm簡歷是在51job上投放的,這也是唯一一個通過網投簡歷獲得的面試機會,其餘全都是通過內部推薦獲取,這也驗證了,其實網投被HR看到的機率是很低,效率不高。不能完全依賴網投的方式進行找工作。、
此次電話面試的是Qualcomm中國上海的 android研發測試工程師,雖然是測試工程師職位,但是在面試過程中問到的問題,絲毫不比開發工程師難度低並且遠勝過開發職位。
具體面試問題如下:
1. 談談對SurfaceView的理解
2. 如何防止程式死鎖。
3. OO裡邊多型的概念
4. ContentProvider實現原理,為什麼能夠共享資料
5. 下載模組的優化
6. A a 與 Aa = new A();的區別
7. 說說常用的Intent Flag。
具體問題,目前只記得這幾個了,但是面試交談大概耗時一個小時,一個小時中問道了很多問題,包括linux系統知識,OO,C/C++知識,android及java。覆蓋範圍比較廣。

HTC中國上海:
HTC面試也是通過網投的。看來HTC跟Qualcomm等外企通過網投的概率比較大。
HTC也是採取電話面試:
HTC電話面試,從對方聽筒的聲音來看,對方一共有5~6人蔘與面試,包括技術與人力。鴨梨山大。
主要問道如下問題:
1. AIDL
2. 強引用,軟引用,弱引用之前的區別
3. Epub格式解析過程
4. 網路訪問方式。
5. Davink與jvm的區別
6. Jni相關知識
7. ConentProvider實現過程,這個比較偏像於如何實現。
8. 資料庫聯表查詢。
9. 抽象類跟介面的區別。
總體來看,其實HTC電話面試所問問題相對都比較容易答上,並且實際情況也是很容易通過電話面試了,但是考慮到個人職業規劃安排,後續沒有去上海總部面試。

經歷過以上這些面經歷,發現自己學到很多,也認識到很多不足:
1.在不斷的面試過程中,自己對如何自我介紹這個環節有了一定提高,比如在baidu的面試自我介紹過程中,完美結合自己對產品的理解,以及如何把這個理念在開發中實現,擺脫了之前面試一位的補充簡歷的弊端。
2.通過不斷的面試,發現了自己在技術上的不足,找到了後續提高的點。技術深度上下苦工,並且面試前要好好做好資料結構複習。
3.面試過程中,適度的低調,隱藏自己的知識面,通過 雖然我不知道是怎麼做的,但是我想****這種方式來增強面試官對你的印象。
接下來自己要努力的點:
1. 解決上述面試過程中遇到的問題。
2. 在平時的工作中,多問為什麼,多想想優缺點。
3. 研究SurfaceView,JNI,view工作原理,2D動畫框架
4. 深入理解BINDER,CONTENTPROVIDER。
5. 深入學習java,多問幾個為什麼。
來自:http://gjican.iteye.com/blog/1560335

相關文章