阿里云面試題;概要:
;一.考察你對(duì)所了解的知識(shí)的掌握程度,要對(duì)所接觸的;其原理本質(zhì);二.會(huì)了解個(gè)人的學(xué)習(xí)主動(dòng)性及遇到問(wèn)題的解決方法,;候主動(dòng)學(xué)習(xí)知識(shí)點(diǎn)并深入了解;三.回答技術(shù)問(wèn)題的時(shí)候要拋開(kāi)以前做過(guò)或?qū)W過(guò)的項(xiàng)目;回答;四.;問(wèn)題:;一.深入理解Android消息處理系統(tǒng)——Loo;Android系統(tǒng)中Looper負(fù)責(zé)管理線(xiàn)程的消;Activity是一個(gè)UI線(xiàn)阿里云面試題
概要:
一. 考察你對(duì)所了解的知識(shí)的掌握程度,要對(duì)所接觸的知識(shí)點(diǎn)有很深的理解,掌握
其原理本質(zhì)。
二. 會(huì)了解個(gè)人的學(xué)習(xí)主動(dòng)性及遇到問(wèn)題的解決方法,要善于在沒(méi)有具體任務(wù)的時(shí)
候主動(dòng)學(xué)習(xí)知識(shí)點(diǎn)并深入了解。
三. 回答技術(shù)問(wèn)題的時(shí)候要拋開(kāi)以前做過(guò)或?qū)W過(guò)的項(xiàng)目經(jīng)驗(yàn)而從該問(wèn)題的本質(zhì)去
回答。
四.
問(wèn)題:
一.深入理解Android消息處理系統(tǒng)——Looper、Handler、Thread
Android系統(tǒng)中Looper負(fù)責(zé)管理線(xiàn)程的消息隊(duì)列和消息循環(huán)?梢酝ㄟ^(guò)Loop.myLooper()得到當(dāng)前線(xiàn)程的Looper對(duì)象,通過(guò)Loop.getMainLooper()可以獲得當(dāng)前進(jìn)程的主線(xiàn)程的Looper對(duì)象。
Activity是一個(gè)UI線(xiàn)程,運(yùn)行于主線(xiàn)程中,Android系統(tǒng)在啟動(dòng)的時(shí)候會(huì)為Activity創(chuàng)建一個(gè)消息隊(duì)列和消息循環(huán)(Looper)。
Handler的作用是把消息加入特定的(Looper)消息隊(duì)列中,并分發(fā)和處理該消息隊(duì)列中的消息。構(gòu)造Handler的時(shí)候可以指定一個(gè)Looper對(duì)象,如果不指定則利用當(dāng)前線(xiàn)程的Looper創(chuàng)建。 如果通過(guò)工作線(xiàn)程刷新界面,推薦使用handler對(duì)象來(lái)實(shí)現(xiàn)。
注意工作線(xiàn)程和主線(xiàn)程之間的競(jìng)爭(zhēng)關(guān)系。推薦handler對(duì)象在主線(xiàn)程中構(gòu)造完成(并且啟動(dòng)工作線(xiàn)程之后不要再修改之,否則會(huì)出現(xiàn)數(shù)據(jù)不一致),然后在工作線(xiàn)程中可以放心的調(diào)用發(fā)送消息SendMessage等接口。
hanlder對(duì)象之外的任何主線(xiàn)程的成員變量如果在工作線(xiàn)程中調(diào)用,仔細(xì)考慮線(xiàn)程同步問(wèn)題。如果有必要需要加入同步對(duì)象保護(hù)該變量。
handler對(duì)象的handleMessage接口將會(huì)在主線(xiàn)程中調(diào)用。在這個(gè)函數(shù)可以放心的調(diào)用主線(xiàn)程中任何變量和函數(shù),進(jìn)而完成更新UI的任務(wù)。
Android很多API也利用Handler這種線(xiàn)程特性,作為一種回調(diào)函數(shù)的變種,來(lái)通知調(diào)用者。這樣Android框架就可以在其線(xiàn)程中將消息發(fā)送到調(diào)用者的線(xiàn)程消息隊(duì)列之中,不用擔(dān)心線(xiàn)程同步的問(wèn)題。
二.ListView的各項(xiàng)功能及參數(shù)。(主要看下該控件)
getView()的參數(shù)有哪些?
一共有3個(gè)參數(shù) getView(int position,View convertView,ViewGroup parent){}
解釋各個(gè)參數(shù)的作用。
比較注重團(tuán)隊(duì)文化。項(xiàng)目不是一個(gè)人可以做成的,需要大家的配合。
三.概括一下android的布局文件,及常用的控件。(會(huì)隨機(jī)提問(wèn)各控件功能)
LinearLayout線(xiàn)性布局 分為橫向布局(horizontal)和縱向布局(vertical)
RelativeLayout相對(duì)布局 可以隨意布局各種控件。
TableLayout 表格布局 計(jì)算器的布局
AbsoluteLayout 絕對(duì)布局(已廢棄)
FrameLayout 框架布局 控件堆疊,又內(nèi)向外堆疊。
四.android的四大組件有哪些?ContentProvider的作用。
Activity BroadcastReceiver Service ContentProvider
應(yīng)用程序可以通過(guò)content provider訪問(wèn)其它應(yīng)用程序的一些私有數(shù)據(jù),這是
Android提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制。共享的數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)中、SQLite數(shù)據(jù)庫(kù)中或其它的一些媒體中。content provider擴(kuò)展自ContentProvider類(lèi),通過(guò)實(shí)現(xiàn)此類(lèi)的一組標(biāo)準(zhǔn)的接口可以使其它應(yīng)用程序存取由它控制的數(shù)據(jù)。然而應(yīng)用程序并不會(huì)直接調(diào)用ContentProvider中的方法,而是通過(guò)類(lèi)ContentResolver。ContentResolver能夠與任何一個(gè)ContentProvider通信,它與ContentProvider合作管理進(jìn)程間的通信。
五.android的數(shù)據(jù)存儲(chǔ)方式。
1. 使用SharedPreferences存儲(chǔ)數(shù)據(jù);
2. 文件存儲(chǔ)數(shù)據(jù);
3. SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù);
4. 使用ContentProvider存儲(chǔ)數(shù)據(jù);
5. 網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù);
六.Spinner的作用。
這個(gè)控件主要就是一個(gè)列表,那么我們就來(lái)說(shuō)說(shuō)這個(gè)控件吧,這個(gè)控件在以前
的也看見(jiàn)過(guò),但今天還是從新介紹一遍吧。Spinner位于 android.widget包下,每次只顯示用戶(hù)選中的元素,當(dāng)用戶(hù)再次點(diǎn)擊時(shí),會(huì)彈出選擇列表供用戶(hù)選擇,而選擇列表中的元素同樣來(lái)自適配器。Spinner是View類(lèi)得一個(gè)子類(lèi)。
總結(jié),該面試官主要看重個(gè)人的學(xué)習(xí)和理解知識(shí)的能力和團(tuán)隊(duì)配合力,答題時(shí)要表現(xiàn)得比較謙虛,簡(jiǎn)歷的寫(xiě)法也要注意,不要太張揚(yáng)。 ContentProvider作用:
[阿里云面試題]