android面試題
A. 怎麼准備Android面試
工作來經驗,如果從事過Android,就把具體做的自哪些內容全都列出來;如果是應屆生,就把自己學的與Android相關專業或課程列出來。
了解公司,了解公司的歷史、管理制度、公司主要是從事Android的哪方面。
熱愛工作,把自己在Android方面會的東西展現出來,然後喜歡這個行業的地方列出來。以及喜歡這份工作原因。
把性格方面,以及處理人際關系方便的回答准備下。
如果有過解決問題的成功案例等准備好,如果沒有,得表現出踏實,有愛心、責任心、誠信等。這樣才有利於公司發展。
工作中要有團隊精神,平時要與同時多溝通交流,與同事員工互相尊重、互相理解、互相包容。
B. Android okhttp面試的時候怎麼回答,盡量簡單一點又能說明9問題
封裝只是為了能更加簡單,僅此而已~功能UI線程切換可選擇的Callback(任意選擇UI線程或者子線程)參數規范化,GET與POST都一樣的傳參方式上傳/下載進度回調可以簡單的設置Head部分可以每次請求時自動加上需要的參數String/JSON/byte/File…都能一樣簡單用法由於輔助代碼較多,在這里就不一一貼出來了,在這里僅僅演示如何使用。非同步GETHttp.getAsync("/weather_mini",newUiCallback(){@OverridepublicvoidonFailure(Requestrequest,Responseresponse,Exceptione){log("getAsync:onFailed");}@OverridepublicvoidonSuccess(Stringresponse,intcode){log("getAsync:onSuccess:"+response);}},newStrParam("citykey",101010100));123456789101112由於是get請求,在這里參數中的citykey會被自動解析到url中。/weather_mini?citykey=1010101001同步GETfinalStringurl="/weather_mini?citykey=101010100";Stringstr=Http.getSync(String.class,url);log("getSync1:"+str);str=Http.getSync(url,newThreadCallback(){@OverridepublicvoidonFailure(Requestrequest,Responseresponse,Exceptione){log("getSync2:onFailed");}@OverridepublicvoidonSuccess(Stringresponse,intcode){log("getSync2:onSuccess:"+response);}});log("getSync2:"+str);12345678910111213141516同步方式支持兩種情況,一種有Callback,一種是沒有。當然就算加上了Callback也並不是非同步,此時方法會等到執行完成後才會繼續往下走。之所以這么干,是為了方便在callback中直接處理ui的事兒。在這里有必要說明一下,返回類型需要進行指定,如果沒有Callback哪么需要你傳入返回類型class。當然如果你傳入了callback,哪么此時class就由callbackAccountaccount=Http.getSync(Account.class,url);Useruser=Http.getSync(User.class,url);Stringstr=Http.getSync(String.class,url,newStrParam("citykey",101010100));123Callback的情況也如上所示。非同步與同步的區別在於方法名稱:Http.getSync()Http.getAsync()Http.postSync()Http.postAsync()Http.uploadSync()Http.uploadAsync()Http.downloadSync()Http.downloadAsync()默認情況下,upload與download具有callProgress回調進度功能。POSTStringvalue1="xxx";Stringvalue2="xxx";Stringurl="";Http.postAsync(url,newHttpCallback(){@OverridepublicvoidonFailure(Requestrequest,Responseresponse,Exceptione){e.printStackTrace();}@OverridepublicvoidonSuccess(Stringresponse,intcode){log(response);}},newStrParam("value1",value1),newStrParam("value2",value2));1234567891011121314151617post的請求方法與get基本如出一轍。UploadFilefile=getAssetsFile();Http.uploadAsync("/upload.php","uploadimg",file,newUiCallback(){@OverridepublicvoidonProgress(longcurrent,longcount){super.onProgress(current,count);log("uploadAsynconProgress:"+current+"/"+count);mUpload.setProgress((int)((current*100.00/count)));}@OverridepublicvoidonFailure(Requestrequest,Responseresponse,Exceptione){e.printStackTrace();log("uploadAsynconFailed");}@OverridepublicvoidonSuccess(Stringresponse,intcode){log("uploadAsynconSuccess:"+response);}});上傳部分也很簡單,如果需要帶有參數哪么和Post的使用方式一樣。當然此時傳入參數就不是StrParam而是IOParam.上傳的時候你可以僅僅傳遞文件+文件對應的name;或者傳遞IOParam;也可以StrParam+IOParam的方式;當然終極一點你可以傳遞:Param類型。
C. Android面試題關於像素減半問題,請問應該怎麼答,題目如下
這個不復難啊,圖像是由寬和高組成制的, 以1280*720的解析度,rgba圖像為例, 每行有1280個像素點,每個像素點佔4個位元組, r,g,b,a 各佔一個位元組, 程序只需要每次讀取4個位元組,將第四個位元組轉成int後在除以2,然後在寫回去,透明度就變成原來的一半了。
D. java和android的區別 面試題
兩者的區別抄:
襲1. Android是一個完備的移動裝備操縱體系,由linux操縱體系,中間件,C類庫和焦點應用措施構成。
2. java Me是java的一個微型版本,針對移動裝備開拓應用措施的開拓包,它必需有底層操縱體系支持。
兩者的接洽:
1. 都是用java說話編寫應用措施。
各自的上風:
1. Android的上風在於開拓性和開源,是一個優越的移動裝備操縱體系。
2. Java Me 是一個移動裝備軟體開拓包,跨平台是其首要特點。
E. 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. 技術想像力
一個優秀的技術人,如果知識的深度與廣度足夠,知識已成體系,那麼他對於一些從未接觸過的領域,也是可以做出足夠合理的想像與判斷,面試過程中如果問到一些領域候選人沒有涉獵,這時候一般不用過多糾纏,但如果你想借這個問題考察下他的技術想像力,可以深入下去,比如問他:「你覺得這個東西應該是什麼原理呢?」,「這個酷炫的控制項,如果要你來做,你會怎麼實現?」。在這方面表現出色的同學無疑是有深厚基礎與足夠廣度的人。
F. Android工程師面試會問哪些問題
1、請用最簡潔的語言描述您之前的工作經歷和工作成果。
2、您認為此工作崗回位應當具備哪些素答質和特質?
3、您平時習慣於單獨工作還是團隊工作?
4、您對原來的單位和上司的看法如何?
5、您如何描述自己的個性?
6、是否方便告訴我您目前的薪資待遇是多少?
7、您是否介意我們通過您原來的單位進行一些調查?
95%的面試基本上都離不開這些問題,當然還會提問一些專業問題,慕課網聽聽關於安卓面試的課程,老師會教你一些回答的技巧。
G. 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 平台繁榮昌盛的。
H. 面試題:android手機有哪些缺點
一.短消息[SMS]的基本功能測試 1、短消息的基本功能:是指短消息的編輯,刪除,保存,收發,顯示,以及各種按鈕等功能的正常實現。 2、測試要求和執行:一般根據測試案例或軟體本身的流程就可以完成短消息的基本功能測試。 二.短消息的交叉事件測試 1、交叉測試:又叫事件或沖突測試,是指一個功能正在執行過程中,同時另外一個事件或操作對該過程進行干擾的測試。例如通話過程中接收到簡訊或來響鬧。應該以執行干擾的沖突事件不會導致手機死機或花屏等嚴重的問題出現為Pass的標准。 2、測試要求和執行:干擾要恰到好處,准確,否則很難發掘出深層次的軟體缺陷。 三.短消息的壓力性能測試 1、壓力測試:又叫邊界值容錯測試或極限負載測試,即測試過程中,已經達到某一軟體功能的最大容量,邊界值或最大的承載極限,仍然對其進行相關操作。例如連續進行簡訊的接收和發送,超過收件箱和PIM卡所能存儲的最大的條數,仍然進行短消息的接收或發送,以檢測軟體在超常態條件下的表現,來評估用戶能否接受。 2、測試要求和執行:可以考慮進行自動化測試 四.短消息的容量性能測試 1、容量測試:又叫滿記憶體測試,包括手機的用戶可用內存和SIM/PIM卡的所有空間被完全使用的測試。此時再對可編輯的模塊進行和存儲空間有關的任何操作測試,如果軟體的極限容量狀態下處理不好,有可能導致死機或嚴重的花屏等問題的出現。 2、測試要求和執行:可以考慮進行自動充滿記憶體測試,要對不同品牌和不同容量大小的SIM/PIM卡進行測試 五. 短消息的兼容性能測試 兼容性測試:也就是不同品牌手機,不同網路,不同品牌和不同容量大小的SIM/PIM卡之間的互相兼容的測試,以短消息為例:中國電信的小靈通接收到從中國移動或中國聯通GSM發來的短消息,接收,顯示和回復功能是否正常等;
I. Android一小面試題求解
4.onStop() 只是使來activity處於停止狀態,比如從activityA 跳到源activityB,這時候A處於 onStop()
正常的結束activity的方法
特殊情況時退出方法,可使用重寫application的方式屏蔽掉錯誤提示對話框,實現退出效果
java的結束進程的方法,也可以用來結束當前activity