當前位置:首頁 » 技能特長 » 安卓三年工作經驗面試題

安卓三年工作經驗面試題

發布時間: 2021-01-26 04:59:08

面試時,問哪些問題能試出一個Android應用開發者真正的水平

首先,面試官們一定要知道,每個人由於經歷不同,擅長的方向是千差萬別的,所以一定不要抓住自己擅長的某個方面去問的很深,覺得「如果連這個都不會還算毛程序員啊」。

所以我問問題的時候,往往是「兩步走」的循環:
1. 問他做過什麼,如果有成品的話,我能看看更好。
2. 從他做過的東西裡面,找到問題進行提問。具體的問題要看情況,可以是界面或效果的實現方式、相關bug的排除、該部分原理的分析。

舉一次面試時的對話作為例子吧:
我先開始:
「這份簡歷和網上投過來的那份是一樣的吧?」
「嗯,應該是一樣的。」
「嗯好。你在之前的團隊的位置是什麼?」
「中高級吧。」
「具體的工作呢?」
「寫框架,讓新人比較容易上手,能夠輕松工作。」
「你說的框架具體包括什麼呢?」
「一些會共用的東西,寫出來可以讓新人就算是剛來也能很好的完成工作。」
「聯網是你封裝的嗎?」
「是。」
「你們聯網用的是什麼?」
「就是……安卓自帶的……HttpClient。」
「直接用的?」
「嗯。」
「那你們的網路請求是怎麼做的非同步呢?」
「嗯……用Handler嘛,還有AsyncTask。」
「能具體一點嗎?」
「嗯……就是……額……」
「例如什麼情況下用Handler,什麼情況下用AsyncTask,你是怎麼決定的呢?」
「嗯……」
「或者說,他們有什麼區別呢?谷歌為什麼要造他們兩個出來,而不是只造一個呢?」
「區別……區別……他們肯定是有區別的,不然谷歌不可能造兩個。嗯……」(到這里,這個問題就可以結束了。評級減一。)
「這樣吧,你的簡歷上提到『熟悉大圖片的載入』,能說一下大圖片載入有什麼需要注意的嗎?」
「緩存嘛。」
「緩存?」
「嗯,大圖片的載入不就是ListView裡面的大圖片載入嗎?要防止內存溢出。」
「ListView裡面一定是大圖?」
「嗯……」(不了解的東西卻說自己熟悉,評級減一。繼續順著問。)
「那麼ListView中圖片的緩存你是怎麼做的呢?」
「三級緩存嘛。」
「哪三級?」
「如果內存裡面有,就用內存裡面的;如果沒有就用本地的;如果本地也沒有就從網路上取。三級。」
「網路上的也叫緩存?」
「啊。你可以把他看作緩存,也可以不看作緩存嘛。」(這個……)
「內存緩存你是怎麼實現的?」
「用的一個HashMap。」
「直接用的HashMap嗎?」
「嗯……嗯。」
「直接用HashMap的話,怎麼防止你剛才提到的內存溢出呢?」
「你可以用軟引用嘛。」(首先答案有問題,另外當聽到關鍵詞「你可以」,多數情況下這個問題也可以結束了——八成是不會,僅僅聽說過。不過出於謹慎還是繼續問了)
「軟引用就能防止內存溢出嗎?」
「還有……還有谷歌出的一個叫LRUCache的。」(迴避正面回答,確認他是不會。這個問題結束。評級減一。到此就再沒必要聊下去了。)
然後簡單過渡一下,就結束了面試。

⑵ Android工程師面試會問哪些問題

1、請用最簡潔的語言描述您之前的工作經歷和工作成果。
2、您認為此工作崗回位應當具備哪些素答質和特質?
3、您平時習慣於單獨工作還是團隊工作?
4、您對原來的單位和上司的看法如何?
5、您如何描述自己的個性?
6、是否方便告訴我您目前的薪資待遇是多少?
7、您是否介意我們通過您原來的單位進行一些調查?
95%的面試基本上都離不開這些問題,當然還會提問一些專業問題,慕課網聽聽關於安卓面試的課程,老師會教你一些回答的技巧。

⑶ 面試時,問哪些問題能試出一個 Android 應用開發者真正的水平

首先,面試官們一定要知道,每個人由於經歷不同,擅長的方向是千差萬別的,所以一定不要抓住自己擅長的某個方面去問的很深,覺得「如果連這個都不會還算毛程序員啊」。

所以我問問題的時候,往往是「兩步走」的循環:
1. 問他做過什麼,如果有成品的話,我能看看更好。
2. 從他做過的東西裡面,找到問題進行提問。具體的問題要看情況,可以是界面或效果的實現方式、相關bug的排除、該部分原理的分析。

舉一次面試時的對話作為例子吧:
我先開始:
「這份簡歷和網上投過來的那份是一樣的吧?」
「嗯,應該是一樣的。」
「嗯好。你在之前的團隊的位置是什麼?」
「中高級吧。」
「具體的工作呢?」
「寫框架,讓新人比較容易上手,能夠輕松工作。」
「你說的框架具體包括什麼呢?」
「一些會共用的東西,寫出來可以讓新人就算是剛來也能很好的完成工作。」
「聯網是你封裝的嗎?」
「是。」
「你們聯網用的是什麼?」
「就是……安卓自帶的……HttpClient。」
「直接用的?」
「嗯。」
「那你們的網路請求是怎麼做的非同步呢?」
「嗯……用Handler嘛,還有AsyncTask。」
「能具體一點嗎?」
「嗯……就是……額……」
「例如什麼情況下用Handler,什麼情況下用AsyncTask,你是怎麼決定的呢?」
「嗯……」
「或者說,他們有什麼區別呢?谷歌為什麼要造他們兩個出來,而不是只造一個呢?」
「區別……區別……他們肯定是有區別的,不然谷歌不可能造兩個。嗯……」(到這里,這個問題就可以結束了。評級減一。)
「這樣吧,你的簡歷上提到『熟悉大圖片的載入』,能說一下大圖片載入有什麼需要注意的嗎?」
「緩存嘛。」
「緩存?」
「嗯,大圖片的載入不就是ListView裡面的大圖片載入嗎?要防止內存溢出。」
「ListView裡面一定是大圖?」
「嗯……」(不了解的東西卻說自己熟悉,評級減一。繼續順著問。)
「那麼ListView中圖片的緩存你是怎麼做的呢?」
「三級緩存嘛。」
「哪三級?」
「如果內存裡面有,就用內存裡面的;如果沒有就用本地的;如果本地也沒有就從網路上取。三級。」
「網路上的也叫緩存?」
「啊。你可以把他看作緩存,也可以不看作緩存嘛。」(這個……)
「內存緩存你是怎麼實現的?」
「用的一個HashMap。」
「直接用的HashMap嗎?」
「嗯……嗯。」
「直接用HashMap的話,怎麼防止你剛才提到的內存溢出呢?」
「你可以用軟引用嘛。」(首先答案有問題,另外當聽到關鍵詞「你可以」,多數情況下這個問題也可以結束了——八成是不會,僅僅聽說過。不過出於謹慎還是繼續問了)
「軟引用就能防止內存溢出嗎?」
「還有……還有谷歌出的一個叫LRUCache的。」(迴避正面回答,確認他是不會。這個問題結束。評級減一。到此就再沒必要聊下去了。)
然後簡單過渡一下,就結束了面試。

所以你看,只需要簡單提問,然後接著對方的回答繼續往深了問,就什麼都問出來了。

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

評論中有人問到這次面試中我沒有問完的問題的答案,那簡單就說一下,想了解更多還請自行谷歌。

Handler和AsyncTask:這倆類都是用來實現非同步的,其中AsyncTask的集成度較高,使用簡單,Handler則需要手動寫Runnable或者Thread的代碼;另外,由於AsyncTask內部實現了一個非常簡單的線程池,實際上是只適用於輕量級的非同步操作的,一般不應該用於網路操作。我問他Handler和AsyncTask的區別,一方面是因為他說用AsyncTask聯網,因此我認為他對AsyncTask並不熟悉;但更重要的是在我問他實現非同步的具體手段的時候,他同時提到了Handler和AsyncTask——用這種「混搭」的使用方式來寫聯網框架,就算不考慮AsyncTask的可用性,也顯得非常怪異,這聽起來更像是在「列舉Android實現非同步操作最常用的類」,而非「講述實現網路非同步操作的具體方式」。也就是說,我聽了這句話後開始懷疑他封裝過聯網框架這件事的真實性。但我只是懷疑,並不確定,因此接著問了我想問的。

圖片緩存:大多數情況下,內存中使用LRUCache是最合適的。如果用HashMap來實現,不是不可以,但完全沒必要嘛!需要注意在合適的時候釋放緩存。至於具體怎麼釋放,我沒考慮過,但用軟引用的問題在於,你很難控制緩存的大小,也就是說,只有等到你的內存快要撐爆,你的圖片緩存才會被回收。是不是感覺傻傻的?

對於初級和中級工程師,我更傾向於考慮對方的學習能力,也就是你對於自己所做過的東西是否足夠了解,而非要求你那裡都強,因為就像我開頭說的,每個人由於經歷不同,擅長的方向是千差萬別的,我不喜歡挑別人的軟肋問。只要你學習能力強,我就安全感滿滿噠!

⑷ 面試時,問哪些問題能試出一個 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. 技術想像力

一個優秀的技術人,如果知識的深度與廣度足夠,知識已成體系,那麼他對於一些從未接觸過的領域,也是可以做出足夠合理的想像與判斷,面試過程中如果問到一些領域候選人沒有涉獵,這時候一般不用過多糾纏,但如果你想借這個問題考察下他的技術想像力,可以深入下去,比如問他:「你覺得這個東西應該是什麼原理呢?」,「這個酷炫的控制項,如果要你來做,你會怎麼實現?」。在這方面表現出色的同學無疑是有深厚基礎與足夠廣度的人。

7. 技術習慣

好的程序員都會有好的習慣,比如各種快捷鍵的熟練應用,各種命令行的掌握,一些提高開發效率的工具與習慣,碰到問題是還是google,有沒有做一些小工具幫助減少重復工作,工作之餘有沒有繼續學習?有沒有看什麼不錯的書等等,這些小細節很大程度上決定了程序員的開發效率,這也是為什麼很多人說一個優秀程序員抵得上100個普通程序員,這也是重要原因之一。

⑸ android 面試題

1、前言 
  6 月  26  日,  Google Android  發布了  NDK  ,引起了很多發人員的興趣。  NDK  全
稱:   Native  Development  Kit  。下載地址為: 
http://developer.android.com/sdk/ndk/1.5_r1/index.html  。 
2、誤解 
  新出生的事物,除了驚喜外,也會給我們帶來一定的迷惑、誤解。 
2.1、誤解一:  NDK  發布之前,  Android  不支持進行  C  開發 
  在 Google  中搜索  「NDK」  ,很多  「Android  終於可以使用  C++  開發  」  之類
的標題,這是一種對  Android  平台編程方式的誤解。其實,  Android  平台從誕生起,就已
經支持  C  、   C++  開發。眾所周知,   Android  的  SDK  基於  Java  實現, 這意味著基於  Android 
SDK  進行開發的第三方應用都必須使用  Java  語言。但這並不等同於 「  第三方應用只能使
用  Java」  。在  Android  SDK  首次發布時,  Google  就宣稱其虛擬機  Dalvik  支持  JNI  編程
方式,也就是第三方應用完全可以通過  JNI  調用自己的  C  動態庫,即在  Android  平台上,  
「Java+C」  的編程方式是一直都可以實現的。 
  當然這種誤解的產生是有根源的:在 Android SDK  文檔里,找不到任何  JNI  方面的
幫助。即使第三方應用開發者使用  JNI  完成了自己的  C  動態鏈接庫(  so  )開發,但是  so 
如何和應用程序一起打包成  apk  並發布?這裡面也存在技術障礙。我曾經花了不少時間,
安裝交叉編譯器創建  so  ,並通過  asset (資源)方式,實現捆綁  so  發布。但這種方式只
能屬於取巧的方式,並非官方支持。所以,在  NDK  出來之前,我們將  「Java+C」  的開發
模式稱之為灰色模式,即官方既不聲明 「  支持這種方式  」  ,也不聲明 「  不支持這種方
式  」  。 
2.2、誤解二:有了  NDK  ,我們可以使用純  C  開發  Android  應用 
  Android SDK 採用  Java  語言發布,把眾多的  C  開發人員排除在第三方應用開發外
(  注意:我們所有討論都是基於「  第三方應用開發  」  ,  Android  系統基於  Linux  ,系
統級別的開發肯定是支持  C  語言的。   )。 NDK  的發布,許多人會誤以為,類似於  Symbian  、 
WM  ,在  Android  平台上終於可以使用純  C  、  C++  開發第三方應用了!其實不然,  NDK 
文檔明確說明:  it is not a good way  。因為  NDK  並沒有提供各種系統事件處理支持,也沒
有提供應用程序生命周期維護。此外,在本次發布的  NDK  中,應用程序  UI  方面的  API  也
沒有提供。至少目前來說,使用純  C  、  C++  開發一個完整應用的條件還不完備。 
 
3、NDK  是什麼 
 
對 NDK  進行了粗略的研究後,我對  「NDK  是什麼  」  的理解如下: 
 
1、NDK  是一系列工具的集合。 
 
NDK 提供了一系列的工具,幫助開發者快速開發  C  (或  C++  )的動態庫,並能自動
將  so  和  java  應用一起打包成  apk  。這些工具對開發者的幫助是巨大的。 
NDK 集成了交叉編譯器,並提供了相應的  mk  文件隔離  CPU  、平台、  ABI  等差異,
開發人員只需要簡單修改  mk  文件(指出 「  哪些文件需要編譯  」  、 「  編譯特性要求  」 
等),就可以創建出  so  。 
NDK 可以自動地將  so  和  Java  應用一起打包,極大地減輕了開發人員的打包工作。 
2、NDK  提供了一份穩定、功能有限的  API  頭文件聲明。
 
  oogle 明確聲明該  API  是穩定的,在後續所有版本中都穩定支持當前發布的  API  。
從該版本的  NDK  中看出,這些  API  支持的功能非常有限,包含有:  C  標准庫(  libc  )、
標准數學庫(  libm  )、壓縮庫(  libz  )、  Log  庫(  liblog  )。 
G
 
4、NDK  帶來什麼 
 
1、NDK  的發布,使  「Java+C」  的開發方式終於轉正,成為官方支持的開發方式。 
使用 NDK  ,我們可以將要求高性能的應用邏輯使用  C  開發,從而提高應用程序的執
行效率。 
使用 NDK  ,我們可以將需要保密的應用邏輯使用  C  開發。畢竟,  Java  包都是可以反
編譯的。 
NDK 促使專業  so  組件商的出現。(樂觀猜想,要視乎  Android  用戶的數量) 
2、NDK  將是  Android  平台支持  C  開發的開端。 
  NDK 提供了的開發工具集合,使開發人員可以便捷地開發、發布  C  組件。同時,  
Google 承諾在  NDK  後續版本中提高  「  可調式  」  能力,即提供遠程的  gdb  工具,使我
們可以便捷地調試  C  源碼。在支持  Android  平台  C  開發,我們能感覺到  Google  花費了
很大精力,我們有理由憧憬 「C  組件支持  」  只是  Google Android  平台上 C  開發的開端。
畢竟,   C  程序員仍然是碼農陣營中的絕對主力,將這部分人排除在  Android  應用開發之外,
顯然是不利於  Android  平台繁榮昌盛的。

⑹ Android一小面試題求解

4.onStop() 只是使來activity處於停止狀態,比如從activityA 跳到源activityB,這時候A處於 onStop()

  1. 正常的結束activity的方法

  2. 特殊情況時退出方法,可使用重寫application的方式屏蔽掉錯誤提示對話框,實現退出效果

  3. java的結束進程的方法,也可以用來結束當前activity

⑺ 面試題:android手機有哪些缺點

一.短消息[SMS]的基本功能測試 1、短消息的基本功能:是指短消息的編輯,刪除,保存,收發,顯示,以及各種按鈕等功能的正常實現。 2、測試要求和執行:一般根據測試案例或軟體本身的流程就可以完成短消息的基本功能測試。 二.短消息的交叉事件測試 1、交叉測試:又叫事件或沖突測試,是指一個功能正在執行過程中,同時另外一個事件或操作對該過程進行干擾的測試。例如通話過程中接收到簡訊或來響鬧。應該以執行干擾的沖突事件不會導致手機死機或花屏等嚴重的問題出現為Pass的標准。 2、測試要求和執行:干擾要恰到好處,准確,否則很難發掘出深層次的軟體缺陷。 三.短消息的壓力性能測試 1、壓力測試:又叫邊界值容錯測試或極限負載測試,即測試過程中,已經達到某一軟體功能的最大容量,邊界值或最大的承載極限,仍然對其進行相關操作。例如連續進行簡訊的接收和發送,超過收件箱和PIM卡所能存儲的最大的條數,仍然進行短消息的接收或發送,以檢測軟體在超常態條件下的表現,來評估用戶能否接受。 2、測試要求和執行:可以考慮進行自動化測試 四.短消息的容量性能測試 1、容量測試:又叫滿記憶體測試,包括手機的用戶可用內存和SIM/PIM卡的所有空間被完全使用的測試。此時再對可編輯的模塊進行和存儲空間有關的任何操作測試,如果軟體的極限容量狀態下處理不好,有可能導致死機或嚴重的花屏等問題的出現。 2、測試要求和執行:可以考慮進行自動充滿記憶體測試,要對不同品牌和不同容量大小的SIM/PIM卡進行測試 五. 短消息的兼容性能測試 兼容性測試:也就是不同品牌手機,不同網路,不同品牌和不同容量大小的SIM/PIM卡之間的互相兼容的測試,以短消息為例:中國電信的小靈通接收到從中國移動或中國聯通GSM發來的短消息,接收,顯示和回復功能是否正常等;

⑻ 請教有經驗者,一般android面試會問些什麼問題

其實,不管是什麼樣的面試形,問的問題都差不多,萬變不離其宗,都有規專律可尋。其實屬對所有的面試官而言,只有一個目的:在最短的時間里了解到你最多的信息。想高效率的准備面試,先從這七個大方面著手吧!
一、基本情況
1、請用最簡潔的語言描述您從前的工作經歷和工作成果。
二、專業背景
您認為此工作崗位應當具備哪些素質?
三、工作模式
您平時習慣於單獨工作還是團隊工作?
四、價值取向
您對原來的單位和上司的看法如何?
五、資質特性
您如何描述自己的個性?
六、薪資待遇
是否方便告訴我您目前的待遇是多少?
七、背景調查
您是否介意我們通過您原來的單位迚行一些調查?
95%的面試基本上都離不開這些問題,當然還有可能問一些專業問題,我想如果你做過的話應該都不是什麼難事,一般面試官都不會過多的問專業方面的問題的。

⑼ 三年的安卓開發面試會問什麼問題

現在的安卓行業,一年當三年用,兩年當五年用。一般不會問太高深的問題,主要在我看來就是一些優化的流程和開發的流程。比如如何搭建框架等等之類內容的東西,如果你對某個知識點知道的比較清楚的話,可以重點突出一下。千萬不要搬起石頭砸自己的腳。

⑽ 安卓系統面試題

一、面試程序 不同的單位對面試過程的設計會有所不同,有的單位會非常正式,有回的單位則相對比較隨意,但一般答來說,面試可以分為以下五個階段: 第一階段:准備階段。准備階段主要是以一般性的社交話題進行交談,例如主考會問類似「從宿舍到這里遠不遠」、「今天天氣很好,是嗎?」這樣的問題,目的是使應聘人員能比較自然地進入面試情景之中,以便消除畢業生緊張的心情,建立一種和諧、友善的面試氣氛。畢業生這時就不需要詳細地對所問問題進行一一解答,可利用這個機會熟悉面試環境和考官。 第二階段:引入階段。社交性的話題結束後,畢業生的情緒逐漸穩定下來,開始進入第二階段,這階段主要圍繞其履歷情況提出問題,給應聘者一次真正發言的機會。例如主考會問類似「請用簡短的語言介紹一下你自己」、「在大學期間所學的主要課程有哪些」、「談談你在學期間最大的收獲是什麼」等問題。畢業生在面試前就應對類似的問題進行准備,回答時要有針對性。 第三階段:正題階段。進入面談的實質性正題,主要是從廣泛的話題來了解應聘人員不同側面的心理特點、行為特徵、能力素質等,因此,提問的范圍也較廣,主要是為了針對應聘者的特點獲取評價信息,提問的方式也各...

熱點內容
鬼片高清畫質。電影。 發布:2024-08-19 09:14:10 瀏覽:650
一家看電影網 發布:2024-08-19 08:57:54 瀏覽:155
韓國大屍度電影推薦 發布:2024-08-19 08:55:58 瀏覽:719
接吻電影的名字美國 發布:2024-08-19 08:41:41 瀏覽:758
韓劇女主高中就懷孕了劇名 發布:2024-08-19 08:00:29 瀏覽:692
藍色頭發電影女主角 發布:2024-08-19 07:51:59 瀏覽:849
台灣電影老師上了學生 發布:2024-08-19 07:36:20 瀏覽:964
兩人吃屎的電影 發布:2024-08-19 07:25:07 瀏覽:450
有裸露下體的大尺度電影嗎 發布:2024-08-19 07:20:50 瀏覽:790
好看的電影在線觀看免費 發布:2024-08-19 06:55:37 瀏覽:912