- 相關(guān)推薦
安卓面試常見(jiàn)問(wèn)題
安卓工程師在求職面試中,提前了解面試的常見(jiàn)問(wèn)題很有必要,那么你知道面試常見(jiàn)問(wèn)題了嗎?下面陽(yáng)光網(wǎng)小編已經(jīng)為你們整理了安卓面試常見(jiàn)問(wèn)題,一起來(lái)看看吧。
安卓面試常見(jiàn)問(wèn)題一
1.如何優(yōu)化ListView?
①Item布局,層級(jí)越少越好,使用hierarchyview工具查看優(yōu)化。
②復(fù)用convertView
、凼褂肰iewHolder
、躨tem中有圖片時(shí),異步加載
、菘焖倩瑒(dòng)時(shí),不加載圖片
、辤tem中有圖片時(shí),應(yīng)對(duì)圖片進(jìn)行適當(dāng)壓縮
、邔(shí)現(xiàn)數(shù)據(jù)的分頁(yè)加載
2.對(duì)于Android 的安全問(wèn)題?
、馘e(cuò)誤導(dǎo)出組件
② 參數(shù)校驗(yàn)不嚴(yán)
、踂ebView引入各種安全問(wèn)題,webview中的js注入
、懿换煜⒉环蓝未虬
、菝魑拇鎯(chǔ)關(guān)鍵信息
、 錯(cuò)誤使用HTTPS
、嗌秸用芊椒
⑨濫用權(quán)限、內(nèi)存泄露、使用debug簽名
3. 如何縮減APK包大小?
代碼
保持良好的編程習(xí)慣,不要重復(fù)或者不用的代碼,謹(jǐn)慎添加libs,移除使用不到的libs。
使用proguard混淆代碼,它會(huì)對(duì)不用的代碼做優(yōu)化,并且混淆后也能夠減少安裝包的大小。
native code的部分,大多數(shù)情況下只需要支持armabi與x86的架構(gòu)即可。如果非必須,可以考慮拿掉x86的部分。。
資源
使用Lint工具查找沒(méi)有使用到的資源。去除不使用的圖片,String,XML等等。 assets目錄下的資源請(qǐng)確保沒(méi)有用不上的文件。
生成APK的時(shí)候,安卓面試常見(jiàn)問(wèn)題pt工具本身會(huì)對(duì)png做優(yōu)化,但是在此之前還可以使用其他工具如tinypng對(duì)圖片進(jìn)行進(jìn)一步的壓縮預(yù)處理。
jpeg還是png,根據(jù)需要做選擇,在某些時(shí)候jpeg可以減少圖片的體積。 對(duì)于9.png的圖片,可拉伸區(qū)域盡量切小,另外可以通過(guò)使用9.png拉伸達(dá)到大圖效果的時(shí)候盡量不要使用整張大圖。
策略
有選擇性的'提供hdpi,xhdpi,xxhdpi的圖片資源。建議優(yōu)先提供xhdpi的圖片,對(duì)于mdpi,ldpi與xxxhdpi根據(jù)需要提供有差異的部分即可。
盡可能的重用已有的圖片資源。例如對(duì)稱的圖片,只需要提供一張,另外一張圖片可以通過(guò)代碼旋轉(zhuǎn)的方式實(shí)現(xiàn)。
能用代碼繪制實(shí)現(xiàn)的功能,盡量不要使用大量的圖片。例如減少使用多張圖片組成animate-list的AnimationDrawable,這種方式提供了多張圖片很占空間。
安卓面試常見(jiàn)問(wèn)題二
1.Android與服務(wù)器交互的方式中的對(duì)稱加密和非對(duì)稱加密是什么?
對(duì)稱加密,就是加密和解密數(shù)據(jù)都是使用同一個(gè)key,這方面的算法有DES。
非對(duì)稱加密,加密和解密是使用不同的key。發(fā)送數(shù)據(jù)之前要先和服務(wù)端約定生成公鑰和私鑰,使用公鑰加密的數(shù)據(jù)可以用私鑰解密,反之。這方面的'算法有RSA。ssh 和 ssl都是典型的非對(duì)稱加密。
2.設(shè)備橫豎屏切換的時(shí)候,接下來(lái)會(huì)發(fā)生什么?
01、不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會(huì)執(zhí)行一次,切豎屏?xí)r會(huì)執(zhí)行兩次
02、設(shè)置Activity的android:configChanges=”orientation”時(shí),切屏還是會(huì)重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會(huì)執(zhí)行一次
03、設(shè)置Activity的android:configChanges=”orientation|keyboardHidden”時(shí),切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法
3.Android啟動(dòng)Service的兩種方式是什么? 它們的適用情況是什么?
如果后臺(tái)服務(wù)開始后基本可以獨(dú)立運(yùn)行的話,可以用startService。音樂(lè)播放器就可以這樣用。它們會(huì)一直運(yùn)行直到你調(diào)用 stopSelf或者stopService。你可以通過(guò)發(fā)送Intent或者接收Intent來(lái)與正在運(yùn)行的后臺(tái)服務(wù)通信,但大部分時(shí)間,你只是啟動(dòng)服務(wù)并讓它獨(dú)立運(yùn)行。如果你需要與后臺(tái)服務(wù)通過(guò)一個(gè)持續(xù)的連接來(lái)比較頻繁地通信,建議使用bind()。比如你需要定位服務(wù)不停地把更新后的地理位置傳給UI。Binder比Intent開發(fā)起來(lái)復(fù)雜一些,但如果真的需要,你也只能使用它。
startService:生命周期與調(diào)用者不同。啟動(dòng)后若調(diào)用者未調(diào)用stopService而直接退出,Service仍會(huì)運(yùn)行
bindService:生命周期與調(diào)用者綁定,調(diào)用者一旦退出,Service就會(huì)調(diào)用unBind->onDestroy
安卓面試常見(jiàn)問(wèn)題三
1.談?wù)勀銓?duì)Android中Context的理解?
Context:包含上下文信息(外部值) 的一個(gè)參數(shù). Android 中的 Context 分三種,Application Context ,Activity Context ,Service Context.
它描述的是一個(gè)應(yīng)用程序環(huán)境的信息,通過(guò)它我們可以獲取應(yīng)用程序的資源和類,也包括一些應(yīng)用級(jí)別操作,例如:?jiǎn)?dòng)一個(gè)Activity,發(fā)送廣播,接受Intent信息等
2.Service的onCreate回調(diào)在UI線程中嗎?
Service生命周期的各個(gè)回調(diào)和其他的應(yīng)用組件一樣,是跑在主線程中,會(huì)影響到你的UI操作或者阻塞主線程中的其他事情
3.請(qǐng)介紹下AsyncTask的內(nèi)部實(shí)現(xiàn),適用的場(chǎng)景是?
AsyncTask內(nèi)部也是Handler機(jī)制來(lái)完成的,只不過(guò)Android提供了執(zhí)行框架來(lái)提供線程池來(lái)執(zhí)行相應(yīng)地任務(wù),因?yàn)榫程池的大小問(wèn)題,所以AsyncTask只應(yīng)該用來(lái)執(zhí)行耗時(shí)時(shí)間較短的任務(wù),比如HTTP請(qǐng)求,大規(guī)模的下載和數(shù)據(jù)庫(kù)的.更改不適用于AsyncTask,因?yàn)闀?huì)導(dǎo)致線程池堵塞,沒(méi)有線程來(lái)執(zhí)行其他的任務(wù),導(dǎo)致的情形是會(huì)發(fā)生AsyncTask根本執(zhí)行不了的問(wèn)題
4.談?wù)勀銓?duì)binder機(jī)制的理解?
binder是一種IPC機(jī)制,進(jìn)程間通訊的一種工具.
Java層可以利用aidl工具來(lái)實(shí)現(xiàn)相應(yīng)的接口.
5.Android中進(jìn)程間通信有哪些實(shí)現(xiàn)方式?
Intent,Binder(AIDL),Messenger,BroadcastReceiver
6.介紹下實(shí)現(xiàn)一個(gè)自定義view的基本流程
01、自定義View的屬性 編寫attr.xml文件
02、在layout布局文件中引用,同時(shí)引用命名空間
03、在View的構(gòu)造方法中獲得我們自定義的屬性 ,在自定義控件中進(jìn)行讀取(構(gòu)造方法拿到attr.xml文件值)
04、重寫onMesure
05、重寫onDraw
【安卓面試常見(jiàn)問(wèn)題】相關(guān)文章:
安卓實(shí)習(xí)心得06-13
安卓實(shí)習(xí)心得04-23
早安晚安心語(yǔ)安卓版04-08
安卓手機(jī)垃圾短信攔截妙招05-05
圣誕節(jié)安卓手機(jī)的十款應(yīng)用04-09
安卓應(yīng)用商店用戶調(diào)查報(bào)告05-04
關(guān)于安卓應(yīng)用程序的實(shí)習(xí)心得與報(bào)告05-03
面試常見(jiàn)問(wèn)題04-04
外企面試常見(jiàn)問(wèn)題04-04