阿里Android一面(校招)


4.8號晚上8點多接到了阿里一面的電話,面試官人很好,和我聊了半個多小時。我面的是無線事業部,就是做淘寶客戶端的那個部門。面試問的都很基礎,剛開始問了hashmap和快速排序。接着就是問Android相關的問題。因為數據結構和算法是基礎,這里就不多說了,主要寫一下與Android相關的問題。

   

首先問了一個Android中事件分發的問題,如下圖:

一個LinerLayout里放一個Button,當點擊Button的時候事件是怎么傳遞的?

點擊事件用MotionEvent來表示,當點擊事件發生時,最先傳遞給Activity,用Activity的dispatchTouchEvent來進行事件的派發,具體的工作是用Activity內部的Window來完成的。Window將事件傳遞個decor view,decor view一般是當前幾面的底層容器(setContentView所設置的View的父容器,decor view是一個FrameLayout),通過Activity.getWindow().getDecorView()可以獲得。現在,事件傳遞到decorView了,decorView再將事件傳遞給LinerLayout,LinerLayout將事件傳遞給Button。 

這里要補充的是:當父容器通過 dispatchTouchEvent來傳遞事件時,如果他的onInterceptTouchEvent函數返回true,就不會將事件傳遞個子view,當然Android的還提供了一種防止父容器阻斷事件的機制:只要子View調用requestDisallowInterceptTouchEvent方法,就能保證子View一定能收到點擊事件。 

關於事件的派發可以看一下我的另一篇博客Android滑動事件沖突

   

接着面試官又問了Button中調用setOnclickedListener和在onTouchEvent中處理點擊事件的區別,這個我覺的很簡單,就說都差不多,setOnclickedListener重點onClick就是Android在onTouchEvent中完成的。 

這個問題不懂面試官想問什么,歡迎大家評論,告訴我一下,謝謝 :)

   

還問了一個關於HTTP返回碼的問題:你知道HTTP返回碼代表什么嗎? 

1××  保留 

2××  表示請求成功地接收 

3××  重定向 

4××  客戶錯誤 

5××  服務器錯誤

   

最后,問了一個Android中動態加載SDK的問題,面試官給我提示了幾個參數,可這個我之前沒做過,完全不懂。 

問題描述:現在要動態加載倉庫中的兩個SDK,但這兩個SDK中都調用了同一個jar吧,怎么解決這個沖突? 

希望懂的朋友能評論一下,:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM