畢業(yè)生,最近在找android方面的工作,遇到的面試題記錄下來,不會(huì)的不要再錯(cuò)第二次,會(huì)的當(dāng)做復(fù)習(xí)吧。
持續(xù)更新中
題目:
1,上下文菜單和普通的菜單有什么區(qū)別
2,java里面的線程之間是怎么溝通的
3,handler和looper分別有什么用,他們的區(qū)別是什么
4,隱式intent的作用是什么
5,你對(duì)數(shù)字簽名的理解
6,說下對(duì)ndk的理解
7,對(duì)MVC模式的理解
8,listview和Recyclerview的區(qū)別
9,廣播。廣播的類型,廣播怎么傳遞信息。
答案:
1,上下文菜單和普通的菜單有什么區(qū)別
? ? 答:上下文菜單類似右鍵菜單,對(duì)某一個(gè)控件長按后彈出菜單。和普通菜單的區(qū)別在于,普通的菜單是對(duì)activity進(jìn)行注冊(cè)的,而上下文菜單是對(duì)一個(gè)控件注冊(cè)。
2,java里面的線程之間是怎么溝通的
? ?答:這個(gè)不太懂~。~跪求大神告訴我
3,handler和looper分別有什么用,他們的區(qū)別是什么
? ?答:handler用于進(jìn)程間的傳遞信息的工具。而looper則是為某一特定線程運(yùn)行一個(gè)信息環(huán)。
線程通過handler的sendMessage方法把信息,即message,傳遞給另外一個(gè)線程,message會(huì)被放入該線程的MessageQueue(信息隊(duì)列)中排隊(duì),而該線程對(duì)應(yīng)的looper不斷從MessageQueue中取出message,交給handleMessage方法處理。
4,隱式intent的作用是什么
? ?答:啟動(dòng)其他程序的活動(dòng)。
5,你對(duì)數(shù)字簽名的理解
? ?答:同一個(gè)開發(fā)者的多個(gè)程序盡可能使用同一個(gè)數(shù)字證書,這可以帶來以下好處。
(1)有利于程序升級(jí),當(dāng)新版程序和舊版程序的數(shù)字證書相同時(shí),Android系統(tǒng)才會(huì)認(rèn)為這兩個(gè)程序是同一個(gè)程序的不同版本。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認(rèn)為他們是不同的程序,并產(chǎn)生沖突,會(huì)要求新程序更改包名。
(2)有利于程序的模塊化設(shè)計(jì)和開發(fā)。Android系統(tǒng)允許擁有同一個(gè)數(shù)字簽名的程序運(yùn)行在一個(gè)進(jìn)程中,Android程序會(huì)將他們視為同一個(gè)程序。所以開發(fā)者可以將自己的程序分模塊開發(fā),而用戶只需要在需要的時(shí)候下載適當(dāng)?shù)哪K。
(3) 可以通過權(quán)限(permission)的方式在多個(gè)程序間共享數(shù)據(jù)和代碼。Android提供了基于數(shù)字證書的權(quán)限賦予機(jī)制,應(yīng)用程序可以和其他的程序共 享概功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序。如果某個(gè)權(quán)限(permission)的protectionLevel是signature, 則這個(gè)權(quán)限就只能授予那些跟該權(quán)限所在的包擁有同一個(gè)數(shù)字證書的程序。
參考自:http://www.cnblogs.com/maxinliang/p/3169335.html
6,說下對(duì)ndk的理解
? ? 答:NDK提供了一系列的工具,幫助開發(fā)者快速開發(fā)C(或C++)的動(dòng)態(tài)庫,并能自動(dòng)將so和java應(yīng)用一起打包成apk。這些工具對(duì)開發(fā)者的幫助是巨大的。
NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件隔離CPU、平臺(tái)、ABI等差異,開發(fā)人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創(chuàng)建出so。
NDK可以自動(dòng)地將so和Java應(yīng)用一起打包,極大地減輕了開發(fā)人員的打包工作。
7,對(duì)MVC模式的理解
? ? 答:MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。
8,listview和Recyclerview的區(qū)別
? ? 答:Recyclerview是android5.0新出的控件。提供了一種插拔式的體驗(yàn),高度的解耦,異常的靈活,通過設(shè)置它提供的不同LayoutManager,ItemDecoration , ItemAnimator實(shí)現(xiàn)令人瞠目的效果。
自己沒用過~。~參考自:http://blog.csdn.net/lmj623565791/article/details/45059587
9,廣播。廣播的類型,廣播怎么傳遞信息。
? ?答:有序廣播,無序廣播。
? ? ? ? ?通過intent傳遞數(shù)據(jù)。sendBroadcast(intent)。