日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android最全面试题71道题 详解

發(fā)布時(shí)間:2025/6/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android最全面试题71道题 详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android面試題

1.?下列哪些語(yǔ)句關(guān)于內(nèi)存回收的說明是正確的??(b?)

?A、?程序員必須創(chuàng)建一個(gè)線程來釋放內(nèi)存

??B、?內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存?

??C、?內(nèi)存回收程序允許程序員直接釋放內(nèi)存?

??D、?內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對(duì)象?

android內(nèi)存回收機(jī)制

我想每個(gè)人第一次用Android的時(shí)候,不可避免的會(huì)去裝?個(gè)任務(wù)管理器,然后對(duì)里面時(shí)刻都停留著一大堆的程序表?示觸目驚心,然后會(huì)在桌面上建立一個(gè)快捷清空內(nèi)存的按?鈕,時(shí)不時(shí)啪的按一下,看著內(nèi)存剩余數(shù)量從30多變成100?多然后很有快感...?其實(shí)吧,Android是Linux的內(nèi)核,每一個(gè)程序都是一個(gè)獨(dú)立?的JAVA虛擬機(jī),就和油湯里的油花一樣互不干擾,這樣充分?保證了萬一某個(gè)程序的JAVA虛擬機(jī)崩潰,系統(tǒng)依舊穩(wěn)定正?常運(yùn)行.?而Android和傳統(tǒng)Linux不一樣的地方又在于,傳統(tǒng)Linux在?進(jìn)程活動(dòng)停止后就結(jié)束了,這就類似于我們用S60和WM一?樣,關(guān)閉程序,內(nèi)存釋放.而Android會(huì)把這些進(jìn)程保留在內(nèi)?存里,干嘛呢?為了保證你再次激活這些進(jìn)程時(shí)候啟動(dòng)的更?快,比如說我們掛在桌面的Widgets,?具體一點(diǎn)我們拿新浪微博舉例吧.我剛看完,退出,突然我想?我發(fā)一條微博吧,?那么這個(gè)時(shí)候我可以直接在桌面Widgets上操作----設(shè)想一?下如果我退出的時(shí)候這個(gè)進(jìn)程就終止了,那么我在桌面上?點(diǎn)擊Widgets的時(shí)候會(huì)不會(huì)卡頓一下甚至沒有響應(yīng)??----這就跟我們把Widgets掛在桌面的行為完全背離了,放?在桌面上就是為了能隨時(shí)觀察到程序運(yùn)行的情況,?以及隨時(shí)可以快速調(diào)用程序.所以Android并沒有在進(jìn)程活?動(dòng)停止就釋放對(duì)應(yīng)的內(nèi)存.那么也許你還是會(huì)有疑問,那么?內(nèi)存夠不夠用呢??
512的內(nèi)存被我用的只剩56M是不是很恐怖?其實(shí)系統(tǒng)一?點(diǎn)也不卡的,蛋定蛋定?是的,我理解,因?yàn)榇蠹疫@么多年Windows都用習(xí)慣?了,Windows內(nèi)存不足的時(shí)候機(jī)器卡的會(huì)讓你想砸掉機(jī)箱,?而且調(diào)用虛擬內(nèi)存的時(shí)候硬盤喀喀喀想的讓你肉疼.?你肯定也會(huì)怕你的手機(jī)明明512M內(nèi)存結(jié)果就剩下30來M?把你卡到崩潰.事實(shí)上呢,Android會(huì)在系統(tǒng)需要更多內(nèi)存?的時(shí)候,去釋放掉那些占用內(nèi)存的進(jìn)程----這個(gè)活動(dòng)是智能的.最早大家認(rèn)為是有個(gè)排序,比如最近使?用過哪些程序(LRU機(jī)制,Last?Recently?Used),然?后結(jié)束最早的進(jìn)程.不過并非如此,否則就變成我們上小學(xué)?時(shí)候那樣,個(gè)子高的塊頭大的男生跟班長(zhǎng)下去拔草扛新書,?女生們留在班里繡花吧...?這樣很明顯不公平而且沒準(zhǔn)會(huì)結(jié)束掉那些我們并不想結(jié)束?掉的進(jìn)程----譬如說這會(huì)兒我想切回到剛才后臺(tái)的網(wǎng)頁(yè)繼?續(xù)瀏覽結(jié)果悲愴的發(fā)現(xiàn)它被系統(tǒng)給我強(qiáng)制關(guān)閉了...
Android把進(jìn)程分成了一些優(yōu)先級(jí),比如?前臺(tái)進(jìn)程(Foreground),比如我們正在看書,那么看書?的程序就是前臺(tái)進(jìn)程,這些進(jìn)程是不會(huì)被系統(tǒng)優(yōu)先結(jié)束的.?當(dāng)我把它切到后臺(tái)的時(shí)候,它就變成后臺(tái)進(jìn)程了.?還有可見進(jìn)程(Visible),這個(gè)怎么說呢,譬如輸入法程?序,你平時(shí)是看不見它的,但是在你打開輸入界面的時(shí)候,它?會(huì)很快的彈出來,而不是讓你等啊等啊等,看不到的原因是?透明度的機(jī)制,咱就不要鉆牛角尖討論為啥我看不見了...?還有桌面的Widgets,比如我們的桌面時(shí)鐘,這個(gè)東西就是?可見的,如果它被系統(tǒng)終止了會(huì)有什么樣的結(jié)果?這個(gè)?Widgets依然會(huì)顯示在桌面上,但是時(shí)針不走了...?主要服務(wù),比如說,電話的撥號(hào)功能,你也不想正急著打?電話呢結(jié)果人家給你卡半天吧,尤其像我這樣聯(lián)系人上?2000的,載入一遍真的很慢啊...所以這些主要服務(wù)平時(shí)也?不會(huì)被系統(tǒng)自動(dòng)結(jié)束,除非你非要關(guān)它,關(guān)了也會(huì)自己重新?加載的.這也是你完全釋放內(nèi)存以后過一會(huì)就看著內(nèi)存可?用值又慢慢降低的原因.
次要服務(wù)(secondary?server),諸如谷歌企業(yè)套?件,Gmail,聯(lián)系人,看著這些程序出現(xiàn)在任務(wù)管理器里可能?你會(huì)非常的莫名其妙,丫的這都哪跟哪啊我沒開啊...其實(shí)?它們和一些系統(tǒng)功能也是息息相關(guān)的,比如Gmail的郵件推?送,我們時(shí)常需要用到它們,所以系統(tǒng)也太會(huì)去終止它們.甚?至于HTC機(jī)器上著名的HTC?Sense,這個(gè)也是次要服務(wù),但?是其實(shí)它承接著整個(gè)系統(tǒng)界面的運(yùn)行,所以,如果你強(qiáng)行關(guān)?閉所有進(jìn)程的時(shí)候,你的屏幕會(huì)變成一片白...然后慢慢等?HTC?Sense加載.
后臺(tái)進(jìn)程(hidden),就是我們通常意義上理解的啟動(dòng)后?被切換到后臺(tái)的進(jìn)程,比如如瀏覽器和閱讀器.后臺(tái)進(jìn)程的?管理策略有多種,但是一般來講,系統(tǒng)都會(huì)視內(nèi)存情況,盡可?能多的保留后臺(tái)程序,這樣會(huì)影響到你啟動(dòng)別的程序的運(yùn)?行速度----我想這個(gè)很好理解,因?yàn)閮?nèi)存確實(shí)不夠了,而且你?還沒讓系統(tǒng)自動(dòng)釋放內(nèi)存.但好處是,你再次切換到這些已?啟動(dòng)的程序時(shí)幾乎是無縫的,速度絕對(duì)比你從0開始啟動(dòng)它?要快得多.所以,這種后臺(tái)進(jìn)程在內(nèi)存極度不夠的時(shí)候,肯定?會(huì)被系統(tǒng)選擇性的干掉的.?內(nèi)容供應(yīng)節(jié)點(diǎn)(content?provider),沒有程序?qū)嶓w,僅提?供內(nèi)容供別的程序去用的,比如日歷供應(yīng)節(jié)點(diǎn),郵件供應(yīng)節(jié)?點(diǎn)等.在系統(tǒng)自動(dòng)終止進(jìn)程時(shí),這類程序享有優(yōu)先的被干掉?權(quán)...?空進(jìn)程(empty),?沒有任何東西在內(nèi)運(yùn)行的進(jìn)程,有些程序在退出后,依然會(huì)?在進(jìn)程中駐留一個(gè)空進(jìn)程,這個(gè)進(jìn)程里沒有任何數(shù)據(jù)在運(yùn)?行,作用往往是提高該程序下次的啟動(dòng)速度或者記錄程序?的一些歷史信息.這部分進(jìn)程無疑是系統(tǒng)最先終止的.
說了這么多,其實(shí)還是要結(jié)合實(shí)際的程序來看一下的,比如?Android這個(gè)很有名的自動(dòng)內(nèi)存調(diào)配的軟件,Auto?Memory?Manager,它的設(shè)置和幫助界面就如上面所說的,?它自動(dòng)提供了多種默認(rèn)配置,例如極速模式,這個(gè)模式下,會(huì)?幫助你在設(shè)定好的臨界值區(qū)間上,結(jié)束空進(jìn)程以及內(nèi)容供?應(yīng)節(jié)點(diǎn)等等低優(yōu)先級(jí)保留權(quán)的進(jìn)程,來給你騰出更多的內(nèi)?存,加速新運(yùn)行程序打開的速度,但是它也說明了這種模式?的弊端,就是一些可能你不想被關(guān)閉的進(jìn)程會(huì)被過早的關(guān)?閉,比如說,鬧鐘----在G2?G3還很火爆的2009年,很多用戶?在買完手機(jī)后給我抱怨,哎呀這個(gè)機(jī)器鬧鐘怎么老不響?啊...上班老遲到...其實(shí)這就是因?yàn)槭謩?dòng)結(jié)束進(jìn)程的時(shí)候結(jié)?果把鬧鐘也給干掉了.系統(tǒng)的時(shí)間是會(huì)一直走的,這屬于主?要服務(wù),而鬧鐘呢,只是主要服務(wù)的一個(gè)附屬品,所以被結(jié)束?后,是不會(huì)自動(dòng)被啟動(dòng)的,既然沒有啟動(dòng)自然就不會(huì)響了.與?此類似的例子就是里程碑不充電的BUG,這是因?yàn)镸oto的?機(jī)器里有個(gè)USB的進(jìn)程,如果你把它結(jié)束后,理論上會(huì)重新?啟動(dòng)的但是也會(huì)不啟動(dòng),后面這種情況出現(xiàn)的結(jié)果就是你?插充電器沒反應(yīng),插數(shù)據(jù)線連電腦沒反應(yīng)...重啟手機(jī)就好?了.?當(dāng)然我知道大家的潔癖很多,有的人就是見不得內(nèi)存值太?小...好吧如果你不想一些被系統(tǒng)認(rèn)為不太重要而你又很需?要的進(jìn)程被你自己親手扼殺的話,那么我推薦你使用高級(jí)?任務(wù)管理器這個(gè)程序,你可以把一些進(jìn)程自動(dòng)隱藏起來,也?就是說當(dāng)你揮起狼牙棒橫掃一堆進(jìn)程的時(shí)候,你設(shè)置好的?幾個(gè)進(jìn)程是不會(huì)受任何影響的,比如桌面Launcher,比如鬧?鐘,比如USB,等等等等.但話說回來,我是不建議大家去手動(dòng)?管理Android的內(nèi)存,也許你會(huì)不習(xí)慣----我也沒啥好勸告?的,總之,不要把你的智能機(jī)想的那么笨就行了.?剛才全殺掉進(jìn)程后,過了一會(huì),我的DEFY又變成剩余60M內(nèi)?存,還是沒啥鴨梨啊...如果你感興趣可以做個(gè)試驗(yàn),內(nèi)?存很少的時(shí)候,你打開一個(gè)大游戲,然后退出,你會(huì)發(fā)現(xiàn)...

http://reedhistudy.diandian.com/post/2011-09-15/5045645?

2.?下面異常是屬于Runtime?Exception?的是(abcd(多選)

??????A、ArithmeticException?

??????B、IllegalArgumentException?

??????CNullPointerException?

??????D、BufferUnderflowException?

??A、ArithmeticException?????

???當(dāng)出現(xiàn)異常的運(yùn)算條件時(shí),拋出此異常。例如,一個(gè)整數(shù)除以零時(shí),拋出此類的一個(gè)實(shí)例


??????B、IllegalArgumentException?

??拋出的異常表明向方法傳遞了一個(gè)不合法或不正確的參數(shù)。


??????C、NullPointerException?

??????D、BufferUnderflowException?(不明白,沒碰到過)

編碼問題導(dǎo)致java_BufferUnderflowException異常

公共類BufferUnderflowException的

延伸的RuntimeException

未經(jīng)檢查的異常時(shí),拋出一個(gè)相對(duì)get操作達(dá)到源緩沖區(qū)的限制。



?

3.??Math.round(11.5)等于多少().?Math.round(-11.5)等于多少(c).?

A、11?,-11???B、11?,-12???C、12?,-11???D12?,-12

四舍五入?四和五是指正的45
-11.5?這么看?-11.5?=?-12?+0.5???,0.5按四舍五入為1?-12+1?=?-11,所以Math.round(-11.5)==-11
???????????-0.5?=?-1?+?0.5???0.5按四舍五入為1?-1+1?=?0,所以Math.round(-0.5)==0

????????????11.5?四舍五入?顯然?Math.round(11.5)==12

round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加0.5后求其floor(小于等于該數(shù)的最大整數(shù))



4.?下列程序段的輸出結(jié)果是:(b)

?????void?complicatedexpression_r(){
?????int?x=20,?y=30;
?????boolean?b;
?????b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;
?????System.out.println(b);
?????}
?????A、true??B、false??C、1??D、011.activity

? ? ? ? &&(與)的優(yōu)先級(jí)比||(或)高



5.?對(duì)一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個(gè)函數(shù)中進(jìn)行(d)

???A、onPause()??BonCreate()???C、?onResume()???D、onStart()


Activity詳解(生命周期、以各種方式啟動(dòng)Activity、狀態(tài)保存,完全退出等)

http://blog.csdn.net/tangcheng_ok/article/details/6755194


6.?Intent傳遞數(shù)據(jù)時(shí),下列的數(shù)據(jù)類型哪些可以被傳遞(abcd(多選)

???????ASerializable??B、charsequence??C、Parcelable??D、Bundle


android 數(shù)據(jù)傳遞詳解(Serialization、Parcelable、Parcel、Intent、Bundle)

http://jojol-zhou.iteye.com/blog/1401905

Android中Intent傳遞對(duì)象的兩種方法(Serializable,Parcelable)

http://blog.csdn.net/xyz_lmn/article/details/5908355



7.?android?中下列屬于Intent的作用的是(c)

??A、實(shí)現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享

??B、是一段長(zhǎng)的生命周期,沒有用戶界面的程序,可以保持應(yīng)用在后臺(tái)運(yùn)行,而不會(huì)因?yàn)榍袚Q頁(yè)面而消失

??C、可以實(shí)現(xiàn)界面間的切換,可以包含動(dòng)作和動(dòng)作數(shù)據(jù),連接四大組件的紐帶

??D、處理一個(gè)應(yīng)用程序整體性的工作


8.?下列屬于SAX解析xml文件的優(yōu)點(diǎn)的是(b)

??????A、將整個(gè)文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能(dom解析優(yōu)點(diǎn))

??????B、不用事先調(diào)入整個(gè)文檔,占用資源少(sax解析優(yōu)點(diǎn))

??????C、整個(gè)文檔調(diào)入內(nèi)存,浪費(fèi)時(shí)間和空間(dom解析缺點(diǎn))

??????D、不是長(zhǎng)久駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,若沒有保存數(shù)據(jù),數(shù)據(jù)就會(huì)(sax解析缺點(diǎn))

??消失


不需要像dom解析那樣在內(nèi)存中建立一個(gè)dom對(duì)象,占用內(nèi)存,sax解析是逐行解析的,每次讀入內(nèi)存的只是一行xml,所以速度快,效率高點(diǎn)。不過sax一般是處理固定格式的xml。


9.??下面的對(duì)自定style的方式正確的是(a

????A、?<resources>

<style?name="myStyle">

<item?name="android:layout_width">fill_parent</item>

</style>

?</resources>

?????B、?<style?name="myStyle">

<item?name="android:layout_width">fill_parent</item>(沒有<resources>

???</style>

?????C、?<resources>

<item?name="android:layout_width">fill_parent</item>(沒有</style>)

??</resources>

?????D、?<resources>

<style?name="android:layout_width">fill_parent</style>(</style>應(yīng)為</item>)

??</resources>

10.???在android中使用Menu時(shí)可能需要重寫的方法有(ac)。(多選)

??????AonCreateOptionsMenu()?

??B、onCreateMenu()

??C、onOptionsItemSelected()

??D、onItemSelected()


?//當(dāng)客戶點(diǎn)擊MENU按鈕的時(shí)候,調(diào)用該方法
? ? @Override
public boolean onCreateOptionsMenu(Menu menu) {
? ??menu.add(0, 1, 1, R.string.exit);
? ??menu.add(0,2,2,R.string.about);
return super.onCreateOptionsMenu(menu);
}
? ? //當(dāng)客戶點(diǎn)擊菜單當(dāng)中的某一個(gè)選項(xiàng)時(shí),會(huì)調(diào)用該方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
finish();
}
return super.onOptionsItemSelected(item);
}

11.??在SQL?Server?Management?Studio?中運(yùn)行下列T-SQL語(yǔ)句,其輸出值(c)。

?SELECT?@@IDENTITY??

?????A、可能為0.1

?????B、可能為3

?????C、?不可能為-100

?????D、肯定為0

<span style="color: rgb(16, 9, 163);">@@identity是表示的是最近一次向具有identity屬性(即</span><span style="color: rgb(255, 0, 0);">自增列</span><span style="color: rgb(16, 9, 163);">)的表插入數(shù)據(jù)時(shí)對(duì)應(yīng)的自增列的值,是系統(tǒng)定義的全局變量。一般系統(tǒng)定義的全局變量都是以@@開頭,用戶自定義變量以@開頭。比如有個(gè)表A,它的自增列是id,當(dāng)向A表插入一行數(shù)據(jù)后,如果插入數(shù)據(jù)后自增列的值自動(dòng)增加至101,則通過select @@identity得到的值就是101。使用@@identity的前提是在進(jìn)行insert操作后,執(zhí)行select @@identity的時(shí)候連接沒有關(guān)閉,否則得到的將是NULL值。</span>


12.?SQL?Server?2005中運(yùn)行如下T-SQL語(yǔ)句,假定SALES表中有多行數(shù)據(jù),執(zhí)行查詢之?后的結(jié)果是(d)。

?BEGIN?TRANSACTION?A

??Update?SALES?Set?qty=30?WHERE?qty<30

?BEGIN?TRANSACTION?B

Update?SALES?Set?qty=40?WHERE?qty<40

Update?SALES?Set?qty=50?WHERE?qty<50

Update?SALES?Set?qty=60?WHERE?qty<60

?COMMITTRANSACTION?B

?COMMIT?TRANSACTION?A

?A、SALES表中qty列最小值大于等于30

?B、SALES表中qty列最小值大于等于40

?C、SALES表中qty列的數(shù)據(jù)全部為50

?DSALES表中qty列最小值大于等于60


Update?SALES?Set?qty=60?WHERE?qty<60(關(guān)鍵在最后一句,執(zhí)行完數(shù)據(jù)就都是大于等于60了)

13.??在android中使用SQLiteOpenHelper這個(gè)輔助類時(shí),可以生成一個(gè)數(shù)據(jù)庫(kù),并可以對(duì)數(shù)據(jù)庫(kù)版本進(jìn)行管理的方法可以是(ab)

?????A、getWriteableDatabase()

?B、getReadableDatabase()

?C、getDatabase()

?D、getAbleDatabase()

14.?android?關(guān)于service生命周期的onCreate()onStart()說法正確的是(ad)(多選題)

?????A、當(dāng)?shù)谝淮螁?dòng)的時(shí)候先后調(diào)用onCreate()onStart()方法

?????B、當(dāng)?shù)谝淮螁?dòng)的時(shí)候只會(huì)調(diào)用onCreate()方法

?????C、如果service已經(jīng)啟動(dòng),將先后調(diào)用onCreate()onStart()方法

?D、如果service已經(jīng)啟動(dòng),只會(huì)執(zhí)行onStart()方法,不在執(zhí)行onCreate()方法

15.?下面是屬于GLSurFaceView特性的是(abc)(多選)

?A、管理一個(gè)surface,這個(gè)surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖

????view上。

?B、管理一個(gè)EGL?display,它能讓opengl把內(nèi)容渲染到上述的surface上。

?C、讓渲染器在獨(dú)立的線程里運(yùn)作,和UI線程分離。

?D、可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù)


android.opengl.GLSurfaceView概述

http://blog.csdn.net/xqhrs232/article/details/6195824

?GLSurfaceView是一個(gè)視圖,繼承至SurfaceView,它內(nèi)嵌的surface專門負(fù)責(zé)OpenGL渲染。

GLSurfaceView提供了下列特性: 1> 管理一個(gè)surface,這個(gè)surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖view上。 2> 管理一個(gè)EGL display,它能讓opengl把內(nèi)容渲染到上述的surface上。 3> 用戶自定義渲染器(render)。 4> 讓渲染器在獨(dú)立的線程里運(yùn)作,和UI線程分離。 5> 支持按需渲染(on-demand)和連續(xù)渲染(continuous)。 6> 一些可選工具,如調(diào)試。


16.?下面在AndroidManifest.xml文件中注冊(cè)BroadcastReceiver方式正確的(a)

???A、<receiver?android:name="NewBroad">

<intent-filter>

<action??

???????????????????android:name="android.provider.action.NewBroad"/>

????????????????<action>

</intent-filter>

</receiver>

?????B、<receiver?android:name="NewBroad">

<intent-filter>

???????????????????android:name="android.provider.action.NewBroad"/>

</intent-filter>

</receiver>

?????C、<receiver?android:name="NewBroad">

<action??

??????????????????android:name="android.provider.action.NewBroad"/>

?????????????<action>

</receiver>

?????D<intent-filter>

?????????<receiver?android:name="NewBroad">

?<action>?

???????????????????android:name="android.provider.action.NewBroad"/>

??????????????<action>

</receiver>

</intent-filter>

17.?關(guān)于ContenValues類說法正確的是(a)

??????A、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的

?????????名是String類型,而值都是基本類型

??????B、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的

?????????名是任意類型,而值都是基本類型

??????C、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中的

?????????名,可以為空,而值都是String類型??????

??????D、他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)一些名值對(duì),但是他存儲(chǔ)的名值對(duì)當(dāng)中

?????????的名是String類型,而值也是String類型

18.?我們都知道Hanlder是線程與Activity通信的橋梁,如果線程處理不當(dāng),你的機(jī)器就會(huì)變得越慢,那么線程銷毀的方法是(a)

???????A、onDestroy()?

???????B、onClear()

???????ConFinish()?

???????D、onStop()

19.?下面退出Activity錯(cuò)誤的方法是(c

???????A、finish()

????B、拋異常強(qiáng)制退出

???????CSystem.exit() ?System.exit(0)?0是正常退出?
其他數(shù)字是表示不正常退出

???????DonStop()

20.?下面屬于android的動(dòng)畫分類的有(ab)(多項(xiàng))

???????A、Tween??B、Frame?C、Draw?DAnimation?


Android動(dòng)畫模式

Animation主要有兩種動(dòng)畫模式:
一種是tweened animation(漸變動(dòng)畫)?
XML中JavaCode
alphaAlphaAnimation
scaleScaleAnimation


一種是frame by frame(畫面轉(zhuǎn)換動(dòng)畫)?
XML中JavaCode
translateTranslateAnimation
rotateRotateAnimation

21.?下面關(guān)于Android?dvm的進(jìn)程和Linux的進(jìn)程,應(yīng)用程序的進(jìn)程說法正確的是(d)

????????A、DVMdalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個(gè)獨(dú)立?Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM都是在Linux?中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念.

????????BDVMdalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM不一定都是在Linux?中的一個(gè)進(jìn)程,所以說不是一個(gè)概念.

????????CDVMdalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM不一定都是在Linux?中的一個(gè)進(jìn)程,所以說不是一個(gè)概念.

????????D、DVMdalivk的虛擬機(jī).每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的?Dalvik虛擬機(jī)實(shí)例.而每一個(gè)DVM都是在Linux?中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念.

22.???Android項(xiàng)目工程下面的assets目錄的作用是什么b

A、放置應(yīng)用到的圖片資源。

B、主要放置多媒體等數(shù)據(jù)文件

C、放置字符串,顏色,數(shù)組等常量數(shù)據(jù)

D、放置一些與UI相應(yīng)的布局文件,都是xml文件

23.??關(guān)于res/raw目錄說法正確的是(a)

A、?這里的文件是原封不動(dòng)的存儲(chǔ)到設(shè)備上不會(huì)轉(zhuǎn)換為二進(jìn)制的格式

B?這里的文件是原封不動(dòng)的存儲(chǔ)到設(shè)備上會(huì)轉(zhuǎn)換為二進(jìn)制的格式

C?這里的文件最終以二進(jìn)制的格式存儲(chǔ)到指定的包中

D?這里的文件最終不會(huì)以二進(jìn)制的格式存儲(chǔ)到指定的包中

24.??下列對(duì)android?NDK的理解正確的是(abcd?)

A、?NDK是一系列工具的集合

B、?NDK?提供了一份穩(wěn)定、功能有限的?API?頭文件聲明。

C、?使?“Java+C”?的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式

D?NDK?將是?Android?平臺(tái)支持?C?開發(fā)的開端


Windows平臺(tái)下如何使用Android NDK

http://yuchen.blog.51cto.com/2739238/623472/

二.填空題

25.??android中常用的四個(gè)布局是LinearLayout(線性布局)、FrameLayout(單幀布局)、RelativeLayout(相對(duì)布局)和TableLayout(表格布局)

26.??android?的四大組件是activityservicebroadcastContent Provider。

27.??java.io包中的objectinputstreamobjectoutputstream類主要用于對(duì)對(duì)象(Object)的讀寫

28.??android?service的實(shí)現(xiàn)方法是startservicebindservice。

Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy?
我們有兩種方式啟動(dòng)一個(gè)Service,他們對(duì)Service生命周期的影響是不一樣的。

1 通過startService?
Service會(huì)經(jīng)歷 onCreate --> onStart?
stopService的時(shí)候直接onDestroy?

如果是 調(diào)用者 直接退出而沒有調(diào)用stopService的話,Service會(huì)一直在后臺(tái)運(yùn)行。?
下次調(diào)用者再起來仍然可以stopService。

2 通過bindService?
Service只會(huì)運(yùn)行onCreate, 這個(gè)時(shí)候 調(diào)用者和Service綁定在一起?

調(diào)用者退出了,Srevice就會(huì)調(diào)用onUnbind-->onDestroyed?
所謂綁定在一起就共存亡了。?

1. Started Service中使用StartService()方法來進(jìn)行方法的調(diào)用,調(diào)用者和服務(wù)之間沒有聯(lián)系,即使調(diào)用者退出了,服務(wù)依然在進(jìn)行【onCreate()-? >onStartCommand()->startService()->onDestroy()】,注意其中沒有onStart(),主要是被onStartCommand()方法給取代了,onStart方法不推薦使用了。

2. BindService中使用bindService()方法來綁定服務(wù),調(diào)用者和綁定者綁在一起,調(diào)用者一旦退出服務(wù)也就終止了【onCreate()->onBind()->onUnbind()->onDestroy()】。


29.??activity一般會(huì)重載7個(gè)方法用來維護(hù)其生命周期,除了onCreate(),onStart(),onDestory()??外還有onrestart,onresume,onpause,onstop。

30.??android的數(shù)據(jù)存儲(chǔ)的方式sharedpreference,文件,SQlite,contentprovider,網(wǎng)絡(luò)。

?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ù);

31.?當(dāng)啟動(dòng)一個(gè)Activity并且新的Activity執(zhí)行完后需要返回到啟動(dòng)它的Activity來執(zhí)行?的回調(diào)函數(shù)是

startActivityForResult

startActivityForResult(Intent,requestCode)//啟動(dòng)一個(gè)activity包含參數(shù)請(qǐng)求碼和具體的intent數(shù)據(jù),其中請(qǐng)求碼可以用來識(shí)別子活動(dòng)。

32.?請(qǐng)使用命令行的方式創(chuàng)建一個(gè)名字為myAvd,sdk版本為2.2,sd卡是在d盤的根目錄下,名字為scard.img,?并指定屏幕大小HVGA.________________android create acd -n myAvd -t 8 -s HVDA – C d:\card.img____________________。

33.???程序運(yùn)行的結(jié)果是:_____good?and?gbc__________。

????public?class?Example{?

  String?str=new?String("good");?

  char[]ch={'a','b','c'};?

  public?static?void?main(String?args[]){?

    Example?ex=new?Example();?

    ex.change(ex.str,ex.ch);?

    System.out.print(ex.str+"?and?");?

    Sytem.out.print(ex.ch);?

  }?

  public?void?change(String?str,char?ch[]){?

    str="test?ok";?

    ch[0]='g';?

  }?

}?

34.??在android中,請(qǐng)簡(jiǎn)述jni的調(diào)用過程。(8)

1)安裝和下載Cygwin,下載?Android?NDK

??2)ndk項(xiàng)目中JNI接口的設(shè)計(jì)

??3)使用C/C++實(shí)現(xiàn)本地方法

??4)JNI生成動(dòng)態(tài)鏈接庫(kù).so文件

??5)將動(dòng)態(tài)鏈接庫(kù)復(fù)制到java工程,在java工程中調(diào)用,運(yùn)行java工程即可

35.?簡(jiǎn)述Android應(yīng)用程序結(jié)構(gòu)是哪些?7分)

Android應(yīng)用程序結(jié)構(gòu)是:

??Linux?Kernel(Linux內(nèi)核)、Libraries(系統(tǒng)運(yùn)行庫(kù)或者是c/c++核心庫(kù))、Application??

??Framework(開發(fā)框架包)Applications(核心應(yīng)用程序)

36.?請(qǐng)繼承SQLiteOpenHelper實(shí)現(xiàn):(10)

???1.創(chuàng)建一個(gè)版本為1的“diaryOpenHelper.db”的數(shù)據(jù)庫(kù),

???2.同時(shí)創(chuàng)建一個(gè)?“diary”?表(包含一個(gè)_id主鍵并自增長(zhǎng),topic字符型100

???????長(zhǎng)度,?content字符型1000長(zhǎng)度)

????3.在數(shù)據(jù)庫(kù)版本變化時(shí)請(qǐng)刪除diary表,并重新創(chuàng)建出diary表。

public?class?DBHelper??extends?SQLiteOpenHelper?{

public?final?static?String?DATABASENAME?=?"diaryOpenHelper.db";

public?final?static?int?DATABASEVERSION?=?1;

//創(chuàng)建數(shù)據(jù)庫(kù)

public?DBHelper(Context?context,String?name,CursorFactory?factory,int?version)

{

super(context,?name,?factory,?version);

}

//創(chuàng)建表等機(jī)構(gòu)性文件

public?void?onCreate(SQLiteDatabase?db)

{

String?sql?="create?table?diary"+

"("+

"_id?integer?primary?key?autoincrement,"+

"topic?varchar(100),"+

"content?varchar(1000)"+

")";

db.execSQL(sql);

}

//若數(shù)據(jù)庫(kù)版本有更新,則調(diào)用此方法

public?void?onUpgrade(SQLiteDatabase?db,int?oldVersion,int?newVersion)

{

String?sql?=?"drop?table?if?exists?diary";

db.execSQL(sql);

this.onCreate(db);

}

}

37.?頁(yè)面上現(xiàn)有ProgressBar控件progressBar,請(qǐng)用書寫線程以10秒的的時(shí)間完成其進(jìn)度顯示工作。(10分)

答案

public?class?ProgressBarStu?extends?Activity?{

private?ProgressBar?progressBar?=?null;

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.progressbar);

//從這到下是關(guān)鍵

progressBar?=?(ProgressBar)findViewById(R.id.progressBar);

Thread?thread?=?new?Thread(new?Runnable()?{

@Override

public?void?run()?{

int?progressBarMax?=?progressBar.getMax();

try?{

while(progressBarMax!=progressBar.getProgress())

{

int?stepProgress?=?progressBarMax/10;

int?currentprogress?=?progressBar.getProgress();

progressBar.setProgress(currentprogress+stepProgress);

Thread.sleep(1000);

}

}?catch?(InterruptedException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

});

thread.start();

//關(guān)鍵結(jié)束

}

}

38.????請(qǐng)描述下Activity的生命周期。

??????必調(diào)用的三個(gè)方法:onCreate()?-->?onStart()?-->?onResume(),用AAA表示

1)父Activity啟動(dòng)子Activity,子Actvity退出,父Activity調(diào)用順序如下
AAA?-->?onFreeze()?-->?onPause()?-->?onStop()?-->?onRestart()?-->?onStart(),onResume()?…
2)用戶點(diǎn)擊HomeActvity調(diào)用順序如下
AAA?-->?onFreeze()?-->?onPause()?-->?onStop()?--?Maybe?-->?onDestroy()?–?Maybe
3)調(diào)用finish(),?Activity調(diào)用順序如下
AAA?-->?onPause()?-->?onStop()?-->?onDestroy()
4)在Activity上顯示dialog,?Activity調(diào)用順序如下
AAA
5)在父Activity上顯示透明的或非全屏的activityActivity調(diào)用順序如下
AAA?-->?onFreeze()?-->?onPause()
6)設(shè)備進(jìn)入睡眠狀態(tài),Activity調(diào)用順序如下
AAA?-->?onFreeze()?-->?onPause()

39.???如果后臺(tái)的Activity由于某原因被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?

??????onSaveInstanceState()

??????當(dāng)你的程序中某一個(gè)Activity?A在運(yùn)行時(shí),主動(dòng)或被動(dòng)地運(yùn)行另一個(gè)新的Activity?B,這個(gè)時(shí)候A會(huì)執(zhí)行onSaveInstanceState()B完成以后又會(huì)來找A,這個(gè)時(shí)候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調(diào)用onCreate()方法,不同于直接啟動(dòng)的是這回onCreate()里是帶上了參數(shù)savedInstanceState;而沒被收回的就直接執(zhí)行onResume(),跳過onCreate()了。?

40.????如何將一個(gè)Activity設(shè)置成窗口的樣式。

??????在AndroidManifest.xml?中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"android:theme="@android:style/Theme.Translucent"就變成半透明的

41.?如何退出Activity?如何安全退出已調(diào)用多個(gè)ActivityApplication

對(duì)于單一Activity的應(yīng)用來說,退出很簡(jiǎn)單,直接finish()即可。
當(dāng)然,也可以用killProcess()System.exit()這樣的方法。

但是,對(duì)于多Activity的應(yīng)用來說,在打開多個(gè)Activity后,如果想在最后打開的Activity直接退出,上邊的方法都是沒有用的,因?yàn)樯线叺姆椒ǘ际墙Y(jié)束一個(gè)Activity而已。
當(dāng)然,網(wǎng)上也有人說可以。
就好像有人問,在應(yīng)用里如何捕獲Home鍵,有人就會(huì)說用keyCode比較KEYCODE_HOME即可,而事實(shí)上如果不修改framework,根本不可能做到這一點(diǎn)一樣。
所以,最好還是自己親自試一下。

那么,有沒有辦法直接退出整個(gè)應(yīng)用呢?
2.1之前,可以使用ActivityManagerrestartPackage方法。
它可以直接結(jié)束整個(gè)應(yīng)用。在使用時(shí)需要權(quán)限android.permission.RESTART_PACKAGES。
注意不要被它的名字迷惑。

可是,在2.2,這個(gè)方法失效了。
2.2添加了一個(gè)新的方法,killBackgroundProcesses(),需要權(quán)限?android.permission.KILL_BACKGROUND_PROCESSES。
可惜的是,它和2.2restartPackage一樣,根本起不到應(yīng)有的效果。

另外還有一個(gè)方法,就是系統(tǒng)自帶的應(yīng)用程序管理里,強(qiáng)制結(jié)束程序的方法,forceStopPackage()。
它需要權(quán)限android.permission.FORCE_STOP_PACKAGES。
并且需要添加android:sharedUserId="android.uid.system"屬性
同樣可惜的是,該方法是非公開的,他只能運(yùn)行在系統(tǒng)進(jìn)程,第三方程序無法調(diào)用。
因?yàn)樾枰?span style="font-family:'Times New Roman'">Android.mk中添加LOCAL_CERTIFICATE?:=?platform。
Android.mk是用于在Android源碼下編譯程序用的。

從以上可以看出,在2.2,沒有辦法直接結(jié)束一個(gè)應(yīng)用,而只能用自己的辦法間接辦到。

現(xiàn)提供幾個(gè)方法,供參考:

1、拋異常強(qiáng)制退出:
該方法通過拋異常,使程序Force?Close。
驗(yàn)證可以,但是,需要解決的問題是,如何使程序結(jié)束掉,而不彈出Force?Close的窗口。

2、記錄打開的Activity
每打開一個(gè)Activity,就記錄下來。在需要退出時(shí),關(guān)閉每一個(gè)Activity即可。

3、發(fā)送特定廣播:
在需要結(jié)束應(yīng)用時(shí),發(fā)送一個(gè)特定的廣播,每個(gè)Activity收到廣播后,關(guān)閉即可。

4、遞歸退出
在打開新的Activity時(shí)使用startActivityForResult,然后自己加標(biāo)志,在onActivityResult中處理,遞歸關(guān)閉。

除了第一個(gè),都是想辦法把每一個(gè)Activity都結(jié)束掉,間接達(dá)到目的。
但是這樣做同樣不完美。
你會(huì)發(fā)現(xiàn),如果自己的應(yīng)用程序?qū)γ恳粋€(gè)Activity都設(shè)置了nosensor,在兩個(gè)Activity結(jié)束的間隙,sensor可能有效了。
但至少,我們的目的達(dá)到了,而且沒有影響用戶使用。

為了編程方便,最好定義一個(gè)Activity基類,處理這些共通問題。?

42.?請(qǐng)介紹下Android中常用的五種布局。

FrameLayout(框架布局),LinearLayout?(線性布局),AbsoluteLayout(絕對(duì)布局),RelativeLayout(相對(duì)布局),TableLayout(表格布局)

43.?請(qǐng)介紹下Android的數(shù)據(jù)存儲(chǔ)方式。

.SharedPreferences方式

.文件存儲(chǔ)方式

.SQLite數(shù)據(jù)庫(kù)方式

.內(nèi)容提供器(Content?provider)方式

.?網(wǎng)絡(luò)存儲(chǔ)方式

44.??請(qǐng)介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的。

創(chuàng)建一個(gè)屬于你自己的Content?provider或者將你的數(shù)據(jù)添加到一個(gè)已經(jīng)存在的Content?provider中,前提是有相同數(shù)據(jù)類型并且有寫入Content?provider的權(quán)限。

45.?如何啟用Service,如何停用Service

Android中的service類似于windows中的serviceservice一般沒有用戶操作界面,它運(yùn)行于系統(tǒng)中不容易被用戶發(fā)覺,

可以使用它開發(fā)如監(jiān)控之類的程序。

一。步驟

第一步:繼承Service

public?class?SMSService?extends?Service?{?}

第二步:在AndroidManifest.xml文件中的<application>節(jié)點(diǎn)里對(duì)服務(wù)進(jìn)行配置:

<service?android:name=".DemoService"?/>

二。Context.startService()Context.bindService

服務(wù)不能自己運(yùn)行,需要通過調(diào)用Context.startService()Context.bindService()方法啟動(dòng)服務(wù)。這兩個(gè)方法都可

以啟動(dòng)Service,但是它們的使用場(chǎng)合有所不同。

1.使用startService()方法啟用服務(wù),調(diào)用者與服務(wù)之間沒有關(guān)連,即使調(diào)用者退出了,服務(wù)仍然運(yùn)行。

使用bindService()方法啟用服務(wù),調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,服務(wù)也就終止。

2.采用Context.startService()方法啟動(dòng)服務(wù),在服務(wù)未被創(chuàng)建時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的onCreate()方法,

接著調(diào)用onStart()方法。如果調(diào)用startService()方法前服務(wù)已經(jīng)被創(chuàng)建,多次調(diào)用startService()方法并

不會(huì)導(dǎo)致多次創(chuàng)建服務(wù),但會(huì)導(dǎo)致多次調(diào)用onStart()方法。

采用startService()方法啟動(dòng)的服務(wù),只能調(diào)用Context.stopService()方法結(jié)束服務(wù),服務(wù)結(jié)束時(shí)會(huì)調(diào)用

onDestroy()方法。?
?

3.采用Context.bindService()方法啟動(dòng)服務(wù),在服務(wù)未被創(chuàng)建時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的onCreate()方法,

接著調(diào)用onBind()方法。這個(gè)時(shí)候調(diào)用者和服務(wù)綁定在一起,調(diào)用者退出了,系統(tǒng)就會(huì)先調(diào)用服務(wù)的onUnbind()方法,

。接著調(diào)用onDestroy()方法。如果調(diào)用bindService()方法前服務(wù)已經(jīng)被綁定,多次調(diào)用bindService()方法并不會(huì)

導(dǎo)致多次創(chuàng)建服務(wù)及綁定(也就是說onCreate()onBind()方法并不會(huì)被多次調(diào)用)。如果調(diào)用者希望與正在綁定的服務(wù)

解除綁定,可以調(diào)用unbindService()方法,調(diào)用該方法也會(huì)導(dǎo)致系統(tǒng)調(diào)用服務(wù)的onUnbind()-->onDestroy()方法。

三。Service的生命周期

1.Service常用生命周期回調(diào)方法如下:


onCreate()?該方法在服務(wù)被創(chuàng)建時(shí)調(diào)用,該方法只會(huì)被調(diào)用一次,無論調(diào)用多少次startService()bindService()方法,

服務(wù)也只被創(chuàng)建一次。?onDestroy()該方法在服務(wù)被終止時(shí)調(diào)用。?
?

2.?Context.startService()啟動(dòng)Service有關(guān)的生命周期方法

onStart()?只有采用Context.startService()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在服務(wù)開始運(yùn)行時(shí)被調(diào)用。

多次調(diào)用startService()方法盡管不會(huì)多次創(chuàng)建服務(wù),但onStart()?方法會(huì)被多次調(diào)用。


3.?Context.bindService()啟動(dòng)Service有關(guān)的生命周期方法

onBind()只有采用Context.bindService()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在調(diào)用者與服務(wù)綁定時(shí)被調(diào)用,

當(dāng)調(diào)用者與服務(wù)已經(jīng)綁定,多次調(diào)用Context.bindService()方法并不會(huì)導(dǎo)致該方法被多次調(diào)用。

onUnbind()只有采用Context.bindService()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在調(diào)用者與服務(wù)解除綁定時(shí)被調(diào)用。

備注:

1.?采用startService()啟動(dòng)服務(wù)

?????Intent?intent?=?new?Intent(DemoActivity.this,?DemoService.class);

?????startService(intent);

2.Context.bindService()啟動(dòng)

????Intent?intent?=?new?Intent(DemoActivity.this,?DemoService.class);

????bindService(intent,?conn,?Context.BIND_AUTO_CREATE);

???//unbindService(conn);//解除綁定

46.?注冊(cè)廣播有幾種方式,這些方式有何優(yōu)缺點(diǎn)?請(qǐng)談?wù)?span style="font-family:'Times New Roman'">Android引入廣播機(jī)制的用意。

??Android廣播機(jī)制(兩種注冊(cè)方法)?

android下,要想接受廣播信息,那么這個(gè)廣播接收器就得我們自己來實(shí)現(xiàn)了,我們可以繼承BroadcastReceiver,就可以有一個(gè)廣播接受器了。有個(gè)接受器還不夠,我們還得重寫BroadcastReceiver里面的onReceiver方法,當(dāng)來廣播的時(shí)候我們要干什么,這就要我們自己來實(shí)現(xiàn),不過我們可以搞一個(gè)信息防火墻。具體的代碼:

public?class?SmsBroadCastReceiver?extends?BroadcastReceiver????

{???

??

????@Override??

????public?void?onReceive(Context?context,?Intent?intent)???

????{???

????????Bundle?bundle?=?intent.getExtras();???

????????Object[]?object?=?(Object[])bundle.get("pdus");???

????????SmsMessage?sms[]=new?SmsMessage[object.length];???

????????for(int?i=0;i<object.length;i++)???

????????{???

????????????sms[0]?=?SmsMessage.createFromPdu((byte[])object[i]);???

????????????Toast.makeText(context,?"來自"+sms[i].getDisplayOriginatingAddress()+"?的消息是:"+sms[i].getDisplayMessageBody(),?Toast.LENGTH_SHORT).show();???

????????}???

????????//終止廣播,在這里我們可以稍微處理,根據(jù)用戶輸入的號(hào)碼可以實(shí)現(xiàn)短信防火墻。???

????????abortBroadcast();???

????}???

???????

}??

??當(dāng)實(shí)現(xiàn)了廣播接收器,還要設(shè)置廣播接收器接收廣播信息的類型,這里是信息:android.provider.Telephony.SMS_RECEIVED?

??我們就可以把廣播接收器注冊(cè)到系統(tǒng)里面,可以讓系統(tǒng)知道我們有個(gè)廣播接收器。這里有兩種,一種是代碼動(dòng)態(tài)注冊(cè):

//生成廣播處理???

smsBroadCastReceiver?=?new?SmsBroadCastReceiver();???

//實(shí)例化過濾器并設(shè)置要過濾的廣播???

IntentFilter?intentFilter?=?new?IntentFilter("android.provider.Telephony.SMS_RECEIVED");?

//注冊(cè)廣播???

BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver,?intentFilter);??

一種是在AndroidManifest.xml中配置廣播

<?xml?version="1.0"?encoding="utf-8"?>??

<manifest?xmlns:android="http://schemas.android.com/apk/res/android"??

??????package="spl.broadCastReceiver"??

??????android:versionCode="1"??

??????android:versionName="1.0">??

????<application?android:icon="@drawable/icon"?android:label="@string/app_name">??

????????<activity?android:name=".BroadCastReceiverActivity"??

??????????????????android:label="@string/app_name">??

????????????<intent-filter>??

????????????????<action?android:name="android.intent.action.MAIN"?/>??

????????????????<category?android:name="android.intent.category.LAUNCHER"?/>??

????????????</intent-filter>??

????????</activity>??

???????????

????????<!--廣播注冊(cè)-->??

????????<receiver?android:name=".SmsBroadCastReceiver">??

????????????<intent-filter?android:priority="20">??

????????????????<action?android:name="android.provider.Telephony.SMS_RECEIVED"/>??

????????????</intent-filter>??

????????</receiver>??

???????????

????</application>??

???????

????<uses-sdk?android:minSdkVersion="7"?/>??

???????

????<!--?權(quán)限申請(qǐng)?-->??

????<uses-permission?android:name="android.permission.RECEIVE_SMS"></uses-permission>??

???????

</manifest>???

??兩種注冊(cè)類型的區(qū)別是:

?????1)第一種不是常駐型廣播,也就是說廣播跟隨程序的生命周期。

?????2)第二種是常駐型,也就是說當(dāng)應(yīng)用程序關(guān)閉后,如果有信息廣播來,程序也會(huì)被系統(tǒng)調(diào)用自動(dòng)運(yùn)行。

47.?請(qǐng)解釋下在單線程模型中MessageHandler、Message?QueueLooper之間的關(guān)系。

Handler簡(jiǎn)介:
一個(gè)Handler允許你發(fā)送和處理MessageRunable對(duì)象,這些對(duì)象和一個(gè)線程的MessageQueue相關(guān)聯(lián)。每一個(gè)線程實(shí)例和一個(gè)單獨(dú)的線程以及該線程的MessageQueue相關(guān)聯(lián)。當(dāng)你創(chuàng)建一個(gè)新的Handler時(shí),它就和創(chuàng)建它的線程綁定在一起了。這里,線程我們也可以理解為線程的MessageQueue。從這一點(diǎn)上來看,HandlerMessageRunable對(duì)象傳遞給MessageQueue,而且在這些對(duì)象離開MessageQueue時(shí),Handler負(fù)責(zé)執(zhí)行他們。

Handler有兩個(gè)主要的用途:(1)確定在將來的某個(gè)時(shí)間點(diǎn)執(zhí)行一個(gè)或者一些MessageRunnable對(duì)象。(2)在其他線程(不是Handler綁定線程)中排入一些要執(zhí)行的動(dòng)作。

Scheduling?Message,即(1),可以通過以下方法完成:
post(Runnable):Runnablehandler綁定的線程上執(zhí)行,也就是說不創(chuàng)建新線程。
postAtTime(Runnable,long):
postDelayed(Runnable,long):
sendEmptyMessage(int):
sendMessage(Message):
sendMessageAtTime(Message,long):
sendMessageDelayed(Message,long):
post這個(gè)動(dòng)作讓你把Runnable對(duì)象排入MessageQueue,MessageQueue受到這些消息的時(shí)候執(zhí)行他們,當(dāng)然以一定的排序。sendMessage這個(gè)動(dòng)作允許你把Message對(duì)象排成隊(duì)列,這些Message對(duì)象包含一些信息,HandlerhanlerMessage(Message)會(huì)處理這些Message.當(dāng)然,handlerMessage(Message)必須由Handler的子類來重寫。這是編程人員需要作的事。

當(dāng)posting或者sending到一個(gè)Hanler時(shí),你可以有三種行為:當(dāng)MessageQueue準(zhǔn)備好就處理,定義一個(gè)延遲時(shí)間,定義一個(gè)精確的時(shí)間去處理。后兩者允許你實(shí)現(xiàn)timeout,tick,和基于時(shí)間的行為。

當(dāng)你的應(yīng)用創(chuàng)建一個(gè)新的進(jìn)程時(shí),主線程(也就是UI線程)自帶一個(gè)MessageQueue,這個(gè)MessageQueue管理頂層的應(yīng)用對(duì)象(像activities,broadcast?receivers等)和主線程創(chuàng)建的窗體。你可以創(chuàng)建自己的線程,并通過一個(gè)Handler和主線程進(jìn)行通信。這和之前一樣,通過postsendmessage來完成,差別在于在哪一個(gè)線程中執(zhí)行這么方法。在恰當(dāng)?shù)臅r(shí)候,給定的RunnableMessage將在HandlerMessageQueue中被Scheduled


Message簡(jiǎn)介:
Message類就是定義了一個(gè)信息,這個(gè)信息中包含一個(gè)描述符和任意的數(shù)據(jù)對(duì)象,這個(gè)信息被用來傳遞給Handler.Message對(duì)象提供額外的兩個(gè)int域和一個(gè)Object域,這可以讓你在大多數(shù)情況下不用作分配的動(dòng)作。
盡管Message的構(gòu)造函數(shù)是public的,但是獲取Message實(shí)例的最好方法是調(diào)用Message.obtain(),或者Handler.obtainMessage()方法,這些方法會(huì)從回收對(duì)象池中獲取一個(gè)。


MessageQueue簡(jiǎn)介:
這是一個(gè)包含message列表的底層類。Looper負(fù)責(zé)分發(fā)這些message。Messages并不是直接加到一個(gè)MessageQueue中,而是通過MessageQueue.IdleHandler關(guān)聯(lián)到Looper。
你可以通過Looper.myQueue()從當(dāng)前線程中獲取MessageQueue。


Looper簡(jiǎn)介:
Looper類被用來執(zhí)行一個(gè)線程中的message循環(huán)。默認(rèn)情況,沒有一個(gè)消息循環(huán)關(guān)聯(lián)到線程。在線程中調(diào)用prepare()創(chuàng)建一個(gè)Looper,然后用loop()來處理messages,直到循環(huán)終止。

大多數(shù)和message?loop的交互是通過Handler

下面是一個(gè)典型的帶有Looper的線程實(shí)現(xiàn)。
??class?LooperThread?extends?Thread?{
??????public?Handler?mHandler;
??????
??????public?void?run()?{
??????????Looper.prepare();
??????????
??????????mHandler?=?new?Handler()?{
??????????????public?void?handleMessage(Message?msg)?{
??????????????????//?process?incoming?messages?here
??????????????}
??????????};
??????????
??????????Looper.loop();
??????}
??}

48.????AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?

AIDL的英文全稱是Android?Interface?Define?Language

當(dāng)A進(jìn)程要去調(diào)用B進(jìn)程中的service時(shí),并實(shí)現(xiàn)通信,我們通常都是通過AIDL來操作的

A工程:

首先我們?cè)?span style="font-family:'Times New Roman'">net.blogjava.mobile.aidlservice包中創(chuàng)建一個(gè)RemoteService.aidl文件,在里面我們自定義一個(gè)接口,含有方法get。ADT插件會(huì)在gen目錄下自動(dòng)生成一個(gè)RemoteService.java文件,該類中含有一個(gè)名為RemoteService.stub的內(nèi)部類,該內(nèi)部類中含有aidl文件接口的get方法。

說明一:aidl文件的位置不固定,可以任意

然后定義自己的MyService類,在MyService類中自定義一個(gè)內(nèi)部類去繼承RemoteService.stub這個(gè)內(nèi)部類,實(shí)現(xiàn)get方法。在onBind方法中返回這個(gè)內(nèi)部類的對(duì)象,系統(tǒng)會(huì)自動(dòng)將這個(gè)對(duì)象封裝成IBinder對(duì)象,傳遞給他的調(diào)用者。

其次需要在AndroidManifest.xml文件中配置MyService類,代碼如下:

<!--?注冊(cè)服務(wù)?-->??

<service?android:name=".MyService">?

???<intent-filter>?

???<!--??指定調(diào)用AIDL服務(wù)的ID??-->?

???????<action?android:name="net.blogjava.mobile.aidlservice.RemoteService"?/>?

????</intent-filter>?

</service>

為什么要指定調(diào)用AIDL服務(wù)的ID,就是要告訴外界MyService這個(gè)類能夠被別的進(jìn)程訪問,只要?jiǎng)e的進(jìn)程知道這個(gè)ID,正是有了這個(gè)ID,B工程才能找到A工程實(shí)現(xiàn)通信。

說明:AIDL并不需要權(quán)限

B工程:

??????首先我們要將A工程中生成的RemoteService.java文件拷貝到B工程中,在bindService方法中綁定aidl服務(wù)

??????綁定AIDL服務(wù)就是將RemoteServiceID作為intentaction參數(shù)。

??????說明:如果我們單獨(dú)將RemoteService.aidl文件放在一個(gè)包里,那個(gè)在我們將gen目錄下的該包拷貝到B工程中。如果我們將RemoteService.aidl文件和我們的其他類存放在一起,那么我們?cè)?/span>B工程中就要建立相應(yīng)的包,以保證RmoteService.java文件的報(bào)名正確,我們不能修改RemoteService.java文件

???????????bindService(new?Inten("net.blogjava.mobile.aidlservice.RemoteService"),?serviceConnection,?Context.BIND_AUTO_CREATE);?

???????ServiceConnectiononServiceConnected(ComponentName?name,?IBinder?service)方法中的service參數(shù)就是A工程中MyService類中繼承了RemoteService.stub類的內(nèi)部類的對(duì)象。

49.?請(qǐng)解釋下Android程序運(yùn)行時(shí)權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別。

運(yùn)行時(shí)權(quán)限Dalvik(?android授權(quán))?

文件系統(tǒng)?linux?內(nèi)核授權(quán)

50.??系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁(yè)面?請(qǐng)說明原由。

通過直接發(fā)送Uri把參數(shù)帶過去,或者通過manifest里的intentfilter里的data屬性

51.?你如何評(píng)價(jià)Android系統(tǒng)?優(yōu)缺點(diǎn)。

答:Android平臺(tái)手機(jī)?5大優(yōu)勢(shì):?

一、開放性?

在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。開放性對(duì)于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來講,隨大的受益正是豐富的軟件資源。開放的平臺(tái)也會(huì)帶來更大競(jìng)爭(zhēng),如此一來,消費(fèi)者將可以用更低的價(jià)位購(gòu)得心儀的手機(jī)。

二、掙脫運(yùn)營(yíng)商的束縛?

在過去很長(zhǎng)的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營(yíng)商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營(yíng)商的控制。從去年iPhone?上市?,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營(yíng)商的制約減少。隨著EDGE、HSDPA這些2G3G移動(dòng)網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營(yíng)商口中的笑談,當(dāng)你可以通過手機(jī)IM軟件方便地進(jìn)行即時(shí)聊天時(shí),再回想不久前天價(jià)的彩信和圖鈴下載業(yè)務(wù),是不是像噩夢(mèng)一樣?互聯(lián)網(wǎng)巨頭Google推動(dòng)的Android終端天生就有網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。

三、豐富的硬件選擇?

這一點(diǎn)還是與Android平臺(tái)的開放性相關(guān),由于Android的開放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容,好比你從諾基亞?Symbian風(fēng)格手機(jī)?一下改用蘋果?iPhone?,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常方便呢?

四、不受任何限制的開發(fā)商?

Android平臺(tái)提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如可控制正是留給Android難題之一。

五、無縫結(jié)合的Google應(yīng)用?

如今叱詫互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。

再說Android5大不足:

一、安全和隱私?

由于手機(jī)?與互聯(lián)網(wǎng)的緊密聯(lián)系,個(gè)人隱私很難得到保守。除了上網(wǎng)過程中經(jīng)意或不經(jīng)意留下的個(gè)人足跡,Google這個(gè)巨人也時(shí)時(shí)站在你的身后,洞穿一切,因此,互聯(lián)網(wǎng)的深入將會(huì)帶來新一輪的隱私危機(jī)。

二、首先開賣Android手機(jī)的不是最大運(yùn)營(yíng)商?

眾所周知,T-Mobile23日,于美國(guó)紐約發(fā)布?了Android首款手機(jī)G1。但是在北美市場(chǎng),最大的兩家運(yùn)營(yíng)商乃AT&TVerizon,而目前所知取得Android手機(jī)銷售權(quán)的僅有?T-MobileSprint,其中T-Mobile3G網(wǎng)絡(luò)相對(duì)于其他三家也要遜色不少,因此,用戶可以買賬購(gòu)買G1,能否體驗(yàn)到最佳的3G網(wǎng)絡(luò)服務(wù)則要另當(dāng)別論了!

三、運(yùn)營(yíng)商仍然能夠影響到Android手機(jī)?

在國(guó)內(nèi)市場(chǎng),不少用戶對(duì)購(gòu)得移動(dòng)定制機(jī)不滿,感覺所購(gòu)的手機(jī)被人涂畫了廣告一般。這樣的情況在國(guó)外市場(chǎng)同樣出現(xiàn)。Android手機(jī)的另一發(fā)售運(yùn)營(yíng)商Sprint就將在其機(jī)型中內(nèi)置其手機(jī)商店程序。

四、同類機(jī)型用戶減少?

在不少手機(jī)論壇都會(huì)有針對(duì)某一型號(hào)的子論壇,對(duì)一款手機(jī)的使用心得交流,并分享軟件資源。而對(duì)于Android平臺(tái)手機(jī),由于廠商豐富,產(chǎn)品類型多樣,這樣使用同一款機(jī)型的用戶越來越少,缺少統(tǒng)一機(jī)型的程序強(qiáng)化。舉個(gè)稍顯不當(dāng)?shù)睦?#xff0c;現(xiàn)在山寨機(jī)泛濫,品種各異,就很少有專門針對(duì)某個(gè)型號(hào)山寨機(jī)的討論和群組,除了哪些功能異常搶眼、頗受追捧的機(jī)型以外。

五、過分依賴開發(fā)商缺少標(biāo)準(zhǔn)配置?

在使用PC端的Windows?Xp系統(tǒng)的時(shí)候,都會(huì)內(nèi)置微軟Windows?Media?Player這樣一個(gè)瀏覽器程序,用戶可以選擇更多樣的播放器,如Realplay或暴風(fēng)影音等。但入手開始使用默認(rèn)的程序同樣可以應(yīng)付多樣的需要。在?Android平臺(tái)中,由于其開放性,軟件更多依賴第三方廠商,比如Android系統(tǒng)的SDK中就沒有內(nèi)置音樂?播放器,全部依賴第三方開發(fā),缺少了產(chǎn)品的統(tǒng)一性。

52.?什么是ANR?如何避免它??

  答:ANRApplication?Not?Responding,五秒?

Android中,活動(dòng)管理器和窗口管理器這兩個(gè)系統(tǒng)服務(wù)負(fù)責(zé)監(jiān)視應(yīng)用程序的響應(yīng)。當(dāng)出現(xiàn)下列情況時(shí),Android就會(huì)顯示ANR對(duì)話框了:?

  對(duì)輸入事件(如按鍵、觸摸屏事件)的響應(yīng)超過5秒?

  意向接受器(intentReceiver)超過10秒鐘仍未執(zhí)行完畢?

  Android應(yīng)用程序完全運(yùn)行在一個(gè)獨(dú)立的線程中(例如main)。這就意味著,任何在主線程中運(yùn)行的,需要消耗大量時(shí)間的操作都會(huì)引發(fā)ANR。因?yàn)榇藭r(shí),你的應(yīng)用程序已經(jīng)沒有機(jī)會(huì)去響應(yīng)輸入事件和意向廣播(Intent?broadcast)。?

  因此,任何運(yùn)行在主線程中的方法,都要盡可能的只做少量的工作。特別是活動(dòng)生命周期中的重要方法如onCreate()和?onResume()等更應(yīng)如此。潛在的比較耗時(shí)的操作,如訪問網(wǎng)絡(luò)和數(shù)據(jù)庫(kù);或者是開銷很大的計(jì)算,比如改變位圖的大小,需要在一個(gè)單獨(dú)的子線程中完成(或者是使用異步請(qǐng)求,如數(shù)據(jù)庫(kù)操作)。但這并不意味著你的主線程需要進(jìn)入阻塞狀態(tài)已等待子線程結(jié)束?--?也不需要調(diào)用Therad.wait()或者Thread.sleep()方法。取而代之的是,主線程為子線程提供一個(gè)句柄(Handler),讓子線程在即將結(jié)束的時(shí)候調(diào)用它(xing:可以參看Snake的例子,這種方法與以前我們所接觸的有所不同)。使用這種方法涉及你的應(yīng)用程序,能夠保證你的程序?qū)斎氡3至己玫捻憫?yīng),從而避免因?yàn)檩斎胧录^5秒鐘不被處理而產(chǎn)生的ANR。這種實(shí)踐需要應(yīng)用到所有顯示用戶界面的線程,因?yàn)樗麄兌济媾R著同樣的超時(shí)問題。?

53.?什么情況會(huì)導(dǎo)致Force?Close??如何避免?能否捕獲導(dǎo)致其的異常??

  答:一般像空指針啊,可以看起logcat,然后對(duì)應(yīng)到程序中?來解決錯(cuò)誤?

54.?Android本身的api并未聲明會(huì)拋出異常,則其在運(yùn)行時(shí)有無可能拋出runtime異常,你遇到過嗎?諾有的話會(huì)導(dǎo)致什么問題?如何解決??

55.?簡(jiǎn)要解釋一下activity、?intent?、intent?filterservice、Broadcase、BroadcaseReceiver?

  答:一個(gè)activity呈現(xiàn)了一個(gè)用戶可以操作的可視化用戶界面?

  一個(gè)service不包含可見的用戶界面,而是在后臺(tái)無限地運(yùn)行?

  可以連接到一個(gè)正在運(yùn)行的服務(wù)中,連接后,可以通過服務(wù)中暴露出來的借口與其進(jìn)行通信?

  一個(gè)broadcast?receiver是一個(gè)接收廣播消息并作出回應(yīng)的componentbroadcast?receiver沒有界面?

  intent:content?provider在接收到ContentResolver的請(qǐng)求時(shí)被激活。?

  activity,?servicebroadcast?receiver是被稱為intents的異步消息激活的。?

一個(gè)intent是一個(gè)Intent對(duì)象,它保存了消息的內(nèi)容。對(duì)于activityservice來說,它指定了請(qǐng)求的操作名稱和待操作數(shù)據(jù)的URI?

  Intent對(duì)象可以顯式的指定一個(gè)目標(biāo)component。如果這樣的話,android會(huì)找到這個(gè)component(基于manifest文件中的聲明)并激活它。但如果一個(gè)目標(biāo)不是顯式指定的,android必須找到響應(yīng)intent的最佳component。?

  它是通過將Intent對(duì)象和目標(biāo)的intent?filter相比較來完成這一工作的。一個(gè)componentintent?filter告訴androidcomponent能處理的intent。intent?filter也是在manifest文件中聲明的。?

56.? IntentService有何優(yōu)點(diǎn)??

  答:IntentService?的好處?

  *?Acitivity的進(jìn)程,當(dāng)處理Intent的時(shí)候,會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的Service?

  *?Android的進(jìn)程處理器現(xiàn)在會(huì)盡可能的不kill掉你?

  *?非常容易使用?

57.?橫豎屏切換時(shí)候activity的生命周期??

  1、不設(shè)置Activityandroid:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會(huì)執(zhí)行一次,切豎屏?xí)r會(huì)執(zhí)行兩次?

  2、設(shè)置Activityandroid:configChanges="orientation"時(shí),切屏還是會(huì)重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會(huì)執(zhí)行一次?

  3、設(shè)置Activityandroid:configChanges="orientation|keyboardHidden"時(shí),切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法?

如何將SQLite數(shù)據(jù)庫(kù)(dictionary.db文件)apk文件一起發(fā)布??

  解答:可以將dictionary.db文件復(fù)制到Eclipse?Android工程中的res?aw目錄中。所有在res?aw目錄中的文件不會(huì)被壓縮,這樣可以直接提取該目錄中的文件??梢詫?/span>dictionary.db文件復(fù)制到res?aw目錄中?

58.?如何將打開res?aw目錄中的數(shù)據(jù)庫(kù)文件??

  解答:在Android中不能直接打開res?aw目錄中的數(shù)據(jù)庫(kù)文件,而需要在程序第一次啟動(dòng)時(shí)將該文件復(fù)制到手機(jī)內(nèi)存或SD卡的某個(gè)目錄中,然后再打開該數(shù)據(jù)庫(kù)文件。復(fù)制的基本方法是使用getResources().openRawResource方法獲得res?aw目錄中資源的?InputStream對(duì)象,然后將該InputStream對(duì)象中的數(shù)據(jù)寫入其他的目錄中相應(yīng)文件中。在Android?SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法來打開任意目錄中的SQLite數(shù)據(jù)庫(kù)文件。?

59.?Android引入廣播機(jī)制的用意??

  答:a:MVC的角度考慮(應(yīng)用程序內(nèi))?

 其實(shí)回答這個(gè)問題的時(shí)候還可以這樣問,android為什么要有那4大組件,現(xiàn)在的移動(dòng)開發(fā)模型基本上也是照搬的web那一套MVC架構(gòu),只不過是改了點(diǎn)嫁妝而已。android的四大組件本質(zhì)上就是為了實(shí)現(xiàn)移動(dòng)或者說嵌入式設(shè)備上的MVC架構(gòu),它們之間有時(shí)候是一種相互依存的關(guān)系,有時(shí)候又是一種補(bǔ)充關(guān)系,引入廣播機(jī)制可以方便幾大組件的信息和數(shù)據(jù)交互。?

  b:程序間互通消息(例如在自己的應(yīng)用程序內(nèi)監(jiān)聽系統(tǒng)來電)?

  c:效率上(參考UDP的廣播協(xié)議在局域網(wǎng)的方便性)?

  d:設(shè)計(jì)模式上(反轉(zhuǎn)控制的一種應(yīng)用,類似監(jiān)聽者模式)

60.?Android?dvm的進(jìn)程和Linux的進(jìn)程,?應(yīng)用程序的進(jìn)程是否為同一個(gè)概念?

  DVMdalivk的虛擬機(jī)。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。而每一個(gè)DVM都是在Linux?中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念。?

61.?sim卡的EF?文件有何作用?

  sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機(jī)通訊,sim本?身可以有自己的操作系統(tǒng),EF就是作存儲(chǔ)并和手機(jī)通訊用的?

62.?嵌入式操作系統(tǒng)內(nèi)存管理有哪幾種,?各有何特性?

  頁(yè)式,段式,段頁(yè),用到了MMU,虛擬空間等技術(shù)?

63.??什么是嵌入式實(shí)時(shí)操作系統(tǒng),?Android?操作系統(tǒng)屬于實(shí)時(shí)操作系統(tǒng)嗎??

  嵌入式實(shí)時(shí)操作系統(tǒng)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的嵌入式操作系統(tǒng)。主要用于工業(yè)控制、?軍事設(shè)備、?航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時(shí)間有苛刻的要求,這就需要使用實(shí)時(shí)系統(tǒng)。又可分為軟實(shí)時(shí)和硬實(shí)時(shí)兩種,而android是基于linux內(nèi)核的,因此屬于軟實(shí)時(shí)。?

64.?一條最長(zhǎng)的短信息約占多少byte??

  中文70(包括標(biāo)點(diǎn)),英文160160個(gè)字節(jié)。?

65.?android中的動(dòng)畫有哪幾類,它們的特點(diǎn)和區(qū)別是什么??

  兩種,一種是Tween動(dòng)畫、還有一種是Frame動(dòng)畫。Tween動(dòng)畫,這種實(shí)現(xiàn)方式可以使視圖組件移動(dòng)、放大、縮小以及產(chǎn)生透明度的變化;另一種Frame動(dòng)畫,傳統(tǒng)的動(dòng)畫方法,通過順序的播放排列好的圖片來實(shí)現(xiàn),類似電影。?

66.?handler機(jī)制的原理?

  andriod提供了?Handler?和?Looper?來滿足線程間的通信。Handler?先進(jìn)先出原則。Looper類用來管理特定線程內(nèi)對(duì)象之間的消息交換(Message?Exchange)。?

  1)Looper:?一個(gè)線程可以產(chǎn)生一個(gè)Looper對(duì)象,由它來管理此線程里的Message?Queue(消息隊(duì)列)。?

  2)Handler:?你可以構(gòu)造Handler對(duì)象來與Looper溝通,以便push新消息到Message?Queue;或者接收LooperMessage?Queue取出)所送來的消息。?

  3)?Message?Queue(消息隊(duì)列):用來存放線程放入的消息。?

  4)線程:UI?thread?通常就是main?thread,而Android啟動(dòng)程序時(shí)會(huì)替它建立一個(gè)Message?Queue。?

67.?說說mvc模式的原理,它在android中的運(yùn)用?

 MVC(Model_view_contraller)”模型_視圖_控制器。?MVC應(yīng)用程序總是由這三個(gè)部分組成。Event(事件)導(dǎo)致Controller改變ModelView,或者同時(shí)改變兩者。只要?Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會(huì)自動(dòng)更新。類似的,只要Contro?

68.?DDMSTraceView的區(qū)別??

DDMS是一個(gè)程序執(zhí)行查看器,在里面可以看見線程和堆棧等信息,TraceView是程序性能分析器?。

69.?java中如何引用本地語(yǔ)言?

可以用JNIjava?native?interface??java?本地接口)接口?。

70.?談?wù)?span style="font-family:'Times New Roman'">AndroidIPC(進(jìn)程間通信)機(jī)制?

IPC是內(nèi)部進(jìn)程通信的簡(jiǎn)稱,?是共享"命名管道"的資源。Android中的IPC機(jī)制是為了讓ActivityService之間可以隨時(shí)的進(jìn)行交互,故在Android中該機(jī)制,只適用于ActivityService之間的通信,類似于遠(yuǎn)程方法調(diào)用,類似于C/S模式的訪問。通過定義AIDL接口文件來定義IPC接口。Servier端實(shí)現(xiàn)IPC接口,Client端調(diào)用IPC接口本地代理。

71.?NDK是什么

NDK是一些列工具的集合,NDK提供了一系列的工具,幫助開發(fā)者迅速的開發(fā)C/C++的動(dòng)態(tài)庫(kù),并能自動(dòng)將sojava?應(yīng)用打成apk包。

NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件和隔離cpu、平臺(tái)等的差異,開發(fā)人員只需簡(jiǎn)單的修改mk文件就可以創(chuàng)建出so


總結(jié)

以上是生活随笔為你收集整理的android最全面试题71道题 详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产中文字幕在线免费观看 | 日韩国产高清在线 | 欧美午夜久久久 | 日韩v在线91成人自拍 | 久久国产网 | 五月开心激情 | 91资源在线播放 | 日韩啪视频 | 亚洲人片在线观看 | 99av在线视频 | 97超碰站 | 97热视频 | av先锋影音少妇 | 国产亚洲成av人片在线观看桃 | 久久亚洲欧美日韩精品专区 | 久久久国产精品视频 | 国产视频午夜 | 久久综合亚洲鲁鲁五月久久 | 国产精品美女久久久久久网站 | 免费在线观看av片 | 一区二区三区免费在线播放 | 日韩欧美在线一区 | 黄色精品在线看 | 一区中文字幕电影 | 五月婷婷综合在线观看 | 伊人va | 99精品视频精品精品视频 | 精品在线亚洲视频 | 国产一区二区三区四区在线 | 日韩黄色免费在线观看 | 久久久免费在线观看 | 色偷偷av男人天堂 | 91精品视频免费看 | a级片韩国 | 亚洲精品乱码久久久久久 | 欧美成年人在线视频 | 亚洲最大av网 | 国产精品丝袜久久久久久久不卡 | 中文字幕一二三区 | 亚洲第一中文网 | 91热视频在线观看 | 国产精品视频地址 | 亚洲人成精品久久久久 | 一区二区三区视频网站 | 日本69hd| 在线导航av | 精品国产伦一区二区三区免费 | 欧美色插 | 五月婷婷在线视频 | 国产精品免费在线视频 | 久久精品一区二区三区国产主播 | 91成人免费看 | 一级α片免费看 | 亚洲精品乱码久久久一二三 | 国产精品女教师 | 国内综合精品午夜久久资源 | www.福利 | 免费看污片 | 久久久91精品国产 | 亚洲理论电影网 | 亚洲成人精品久久 | 久久精品男人的天堂 | 在线观看自拍 | 91探花在线 | 国产第一页福利影院 | 黄色毛片一级片 | 2019精品手机国产品在线 | 国产精品毛片一区二区在线看 | 国产高清不卡av | 久久国产精品影视 | 日韩欧美成人网 | 天天色天天射天天操 | 日韩免费视频一区二区 | 亚洲 欧洲 国产 日本 综合 | 狠狠狠色丁香综合久久天下网 | 欧美另类xxx | 在线观看视频亚洲 | 韩国三级av在线 | 久久久男人的天堂 | 国产二区精品 | 00av视频 | 成人av电影免费观看 | 狠狠色丁香婷婷综合欧美 | 91在线看网站| 五月丁香 | 免费看十八岁美女 | 日韩高清免费在线观看 | 亚洲午夜精品福利 | 一区二区欧美激情 | 麻豆一二三精选视频 | www天天干 | 欧美一进一出抽搐大尺度视频 | 中文字幕av免费在线观看 | 精品欧美乱码久久久久久 | 综合激情 | 日日爽夜夜操 | 婷婷午夜天 | 黄色小视频在线观看免费 | 成人性生活大片 | 亚洲国产一区在线观看 | 国产资源站 | 天天天天天天天天操 | 人人添人人澡人人澡人人人爽 | 日韩在线中文字幕 | 人人网人人爽 | 中文字幕频道 | 99精品热视频 | 国产亚洲午夜高清国产拍精品 | 婷婷激情综合 | 在线观av | 久久国产区 | 美女视频是黄的免费观看 | 在线91观看 | 四虎影院在线观看av | 91久久丝袜国产露脸动漫 | 黄色片网站av | 中文字幕av在线不卡 | 国产免费亚洲高清 | 成年人免费观看在线视频 | 久久y| 天天做天天爱夜夜爽 | 在线免费91 | 欧美在线观看视频 | 国产一区观看 | 日韩精品 在线视频 | 国产精品一区二区美女视频免费看 | 亚洲精品国产拍在线 | 久久久免费看 | 日本99精品| 99在线观看精品 | 亚洲黄网址 | 五月激情综合婷婷 | av在线免费不卡 | 最新国产精品拍自在线播放 | 99免费精品 | 免费一级特黄毛大片 | 亚洲一级在线观看 | 蜜桃视频日本 | 日本久久中文字幕 | 久久久久久99精品 | 精品在线观看免费 | 成人午夜电影在线 | 国产一区二区在线免费播放 | 国内免费的中文字幕 | 成年人免费电影 | 欧亚久久| 久久久www成人免费精品 | 国产精品久久久久久五月尺 | 91久久国产露脸精品国产闺蜜 | 亚洲精品在线视频播放 | 国产麻豆果冻传媒在线观看 | 免费99视频 | 日韩av免费在线看 | 99视频在线免费看 | 四虎免费av | 草久热 | 欧美精品久久久久久 | 国产色视频 | 最新av在线网站 | 亚洲午夜精品一区二区三区电影院 | 久久国色夜色精品国产 | 免费av在线网站 | 国产福利在线免费 | 久久福利电影 | 久久国产精彩视频 | 亚洲精品视频一 | 国产成人精品一二三区 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩狠狠操 | 国产精品一区二区免费在线观看 | 国产精品九九热 | 久久精品视频在线免费观看 | 在线观看的av | 亚州精品成人 | 91av在线免费| 在线日韩一区 | 欧美日韩亚洲在线观看 | 亚洲国产午夜视频 | 欧美日一级片 | 国产精品成人品 | 婷婷在线视频观看 | 91最新网址在线观看 | 日本久热 | 久草视频国产 | 狠狠色丁香婷婷综合欧美 | 亚洲最大在线视频 | 国产综合福利在线 | 欧美色精品天天在线观看视频 | 草久中文字幕 | 久久久受www免费人成 | 91精品久久久久久久久久入口 | 久久99免费观看 | 国产精品123 | 国产成人久久av | 久久视频在线 | 久久99免费 | 人人看人人| 久久国产欧美日韩 | 四虎成人精品 | 九九导航 | 黄网站色视频 | 日韩大片在线 | 国产在线无 | 国产精品久久久久高潮 | 伊人手机在线 | 韩日av一区二区 | 久久视频中文字幕 | 最新中文在线视频 | 超碰99在线 | 色视频成人在线观看免 | 国产高清综合 | 毛片随便看 | 九九国产视频 | 69国产盗摄一区二区三区五区 | 欧美日韩高清国产 | 99色视频在线 | 久久久久久高潮国产精品视 | 69欧美视频 | 亚洲精选99 | 在线精品观看 | 久久久久久久久久久久国产精品 | 国产精品麻豆免费版 | 激情综合啪 | 91麻豆文化传媒在线观看 | 久久免费资源 | 日韩在线不卡视频 | 久久久影院一区二区三区 | 午夜精品一区二区三区免费视频 | 国产永久免费观看 | 国内精品久久久久久中文字幕 | 午夜在线免费观看 | 国产精品免费观看国产网曝瓜 | 久久久久日本精品一区二区三区 | 成人免费观看电影 | 国产99久久 | 91久久精品日日躁夜夜躁国产 | 天堂av在线免费观看 | 久久精品免费播放 | 久久人人爽人人片 | 中文字幕婷婷 | 成人黄色国产 | 成人在线播放免费观看 | 丝袜制服天堂 | 国产精品精品国产婷婷这里av | 黄色在线成人 | 激情五月综合 | 国产精品亚洲精品 | 国色天香第二季 | 黄污网| 手机av资源 | 精品主播网红福利资源观看 | 日韩在线免费视频观看 | 97电影在线看视频 | 99情趣网视频 | 日韩在线视频二区 | 日韩小视频网站 | 国产精品久久婷婷六月丁香 | 国产精品一区二区三区久久久 | 婷婷九九| 亚洲成av人片在线观看香蕉 | 一区久久久 | 久草在线中文888 | 欧美另类tv | 久久综合五月天 | www.成人精品 | 日韩乱理 | 91视频在线网址 | 久久精品日产第一区二区三区乱码 | 岛国大片免费视频 | 国产精品中文字幕在线 | 亚洲国产大片 | 日韩欧美高清一区二区三区 | 国产成人一区二区三区 | 日韩av电影网站在线观看 | av一级免费 | 96av在线| 欧美日韩在线观看视频 | 免费观看成年人视频 | 国产精品第一页在线 | 久久伊人五月天 | 成人网页在线免费观看 | 国内精品久久久久久久影视简单 | 揉bbb玩bbb少妇bbb | 成人全视频免费观看在线看 | 久综合网| 日韩在线视频一区 | 日韩有码中文字幕在线 | 在线播放亚洲 | 狠狠色狠狠色综合日日92 | 最近中文字幕免费av | 麻豆免费在线播放 | 日韩激情片在线观看 | 精品国产精品国产偷麻豆 | 黄p在线播放 | 国产高清在线看 | 五月开心激情 | 国产美女久久 | 四虎8848免费高清在线观看 | 中文av在线播放 | 高清不卡一区二区在线 | 国产一区二区三区 在线 | 五月天久久综合网 | 欧美精品首页 | 国产一二三精品 | 日韩专区一区二区 | 97超级碰碰碰碰久久久久 | 在线观看免费av网站 | 日韩乱码中文字幕 | 99精品偷拍视频一区二区三区 | 美女黄频免费 | 国产精品久久久久久久久蜜臀 | 在线观看91久久久久久 | 亚洲国产精品va在线看黑人动漫 | 区一区二区三区中文字幕 | 久久99热这里只有精品 | 视频在线观看91 | 免费国产在线精品 | 天天色天天色天天色 | 麻豆91视频 | 91大神视频网站 | 国产精品久久久久久久久大全 | 国产精品欧美在线 | 男女啪啪免费网站 | www.天天综合 | 91亚洲精品久久久中文字幕 | 我要色综合天天 | av中文电影 | 亚洲国产中文字幕 | 992tv成人免费看片 | 婷婷色影院 | 日日夜夜精品视频 | 999久久a精品合区久久久 | 天天干,夜夜操 | 五月天综合网 | 久久综合影视 | 91精品久久久久久久久 | 很污的网站 | 国产片免费在线观看视频 | 激情网五月天 | 三级黄色a | 国产色久| 国产精品久久久久久久电影 | 亚洲日韩中文字幕在线播放 | 国产日韩精品一区二区三区 | www.香蕉| 在线亚洲欧美日韩 | 69视频在线| 日黄网站| 夜夜骑天天操 | 国产精品ⅴa有声小说 | 国产精品一区二区av日韩在线 | www.一区二区三区 | 一区二区三区电影在线播 | 五月婷婷久久丁香 | 91精品在线播放 | 天堂成人在线 | 色播五月激情五月 | 亚洲一区精品二人人爽久久 | 色国产在线 | 成人免费一区二区三区在线观看 | 久久综合婷婷国产二区高清 | 成人在线电影观看 | 一级α片 | 久热久草 | 欧美激情精品久久 | 欧美一二三专区 | 97成人资源站 | 正在播放国产一区二区 | 9797在线看片亚洲精品 | 成人国产精品久久久久久亚洲 | 久久视奸 | va视频在线观看 | 香蕉手机在线 | 国产精品久久免费看 | 99精品国自产在线 | 在线观看久草 | 国产一区二区三区四区大秀 | 青草视频在线免费 | 99热只有精品在线观看 | 色婷婷影视 | 中文字幕av最新更新 | 色综合在| 香蕉视频在线视频 | 日韩影片在线观看 | 五月天天色 | 精品久久久久久久久久久久久久久久 | 精品国产aⅴ麻豆 | 久久香蕉一区 | 国产精品一区二区久久精品 | 狠狠狠色丁香婷婷综合久久五月 | 91精品国产自产在线观看 | 91在线看网站| 在线国产99 | 日韩免费看视频 | www.五月天婷婷 | 久久天堂影院 | 国产美女搞久久 | 黄色h在线观看 | 最新av免费| 国产无套视频 | 毛片888| 久久福利国产 | 亚洲日本成人网 | 久久精品国产v日韩v亚洲 | 色偷偷88888欧美精品久久久 | 片网站| 国产精品永久免费 | 国产999视频在线观看 | 99热只有精品在线观看 | 精品视频成人 | 亚洲一区二区三区毛片 | 久久视影| 亚洲人成在线观看 | 国产在线观看你懂得 | 狠狠躁日日躁狂躁夜夜躁av | 亚洲精品乱码久久久久 | 成人国产精品久久久 | 成年人电影免费看 | 国产福利专区 | 天天操天天曰 | 日韩欧美在线中文字幕 | 五月激情丁香图片 | 国产午夜亚洲精品 | 国产一区二区午夜 | 在线精品国产 | 国产精品免费观看网站 | 国产高清不卡av | 亚洲理论电影网 | 国产一区二区在线播放 | 国产精品久久久久久久久久久久久久 | 亚洲成av人片在线观看无 | 中文字幕在线观看免费观看 | 超碰成人网| 久久久国产在线视频 | 美女福利视频在线 | 精品嫩模福利一区二区蜜臀 | 操操操影院 | 久久超碰免费 | 性色大片在线观看 | 日本中文字幕影院 | 免费av在线网 | 91精选在线观看 | 伊人国产在线观看 | 九九热国产 | 亚洲狠狠| 黄网av在线 | 欧美无极色| 啪啪免费试看 | 丝袜网站在线观看 | 中文字幕在线播放日韩 | 91精品国产综合久久福利 | 一区二区日韩av | 午夜视频在线观看一区二区三区 | 久久久久亚洲精品 | 欧美一级特黄aaaaaa大片在线观看 | 天天操夜夜逼 | 五月婷网站 | 国产麻豆传媒 | 亚洲欧美日本一区二区三区 | 精品日韩在线 | 久草视频在| 亚洲国产成人在线 | 亚洲va欧美va国产va黑人 | 婷婷色网视频在线播放 | 免费日韩视 | 91丨porny丨九色 | 日韩免费久久 | 九九热re | 国产韩国精品一区二区三区 | 中文字幕免费观看视频 | 国产一区二区三区四区大秀 | 日韩欧美在线不卡 | 久久久久女教师免费一区 | 三级av网站| 一级片在线| av短片在线 | 99精品视频免费 | 婷婷色综 | 国产婷婷在线观看 | 久久免费视频5 | 日韩精品视频免费在线观看 | 亚洲激精日韩激精欧美精品 | 亚洲精品在线看 | 国产高清一级 | 久久艹艹 | 国产91av视频在线观看 | 国产激情电影综合在线看 | 久久久久在线视频 | 成人免费视频视频在线观看 免费 | www.色国产 | av在线看片 | 欧美一级免费黄色片 | 久草视频播放 | 一区二区三区在线视频111 | 国产福利午夜 | 亚洲天堂精品视频 | 久章草在线观看 | 中文网丁香综合网 | 国产精品自产拍在线观看桃花 | 免费在线观看黄网站 | 日韩欧美视频二区 | 亚洲综合色站 | 亚洲精品视频在线看 | 午夜精品婷婷 | 日韩色区| 久久久91精品国产一区二区三区 | 欧美精品久久久久久久久久丰满 | 国产99精品在线观看 | 插婷婷| 欧美在线视频第一页 | 高清不卡一区二区在线 | 四虎在线观看 | 欧美日韩一区二区三区在线免费观看 | 2023av在线 | 国产免费不卡av | 国产香蕉av| 国产成人在线免费观看 | 亚洲精品自在在线观看 | 免费合欢视频成人app | 日韩三级视频在线观看 | 成人动态视频 | 日韩高清在线一区二区三区 | 亚洲涩涩色 | 亚洲午夜大片 | 成人一区电影 | 日韩视频中文字幕在线观看 | 欧美日韩中字 | av电影久久| 天天操综| 激情大尺度视频 | 韩日av在线| 天天爽人人爽夜夜爽 | 成人aⅴ视频 | 国产精品黄 | 黄色亚洲在线 | 成人在线免费观看视视频 | 久久五月婷婷丁香社区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 四虎国产精品免费 | 国产高清一级 | 99精品视频在线观看视频 | 国产剧情在线一区 | 亚洲理论片在线观看 | 福利久久久 | av大全在线看| 久久99精品久久久久婷婷 | 精品一二区 | 视频国产在线 | 在线看污网站 | 欧美精品一区二区免费 | 最新日韩在线观看 | 国产精品国产三级国产aⅴ无密码 | 色多多污污在线观看 | 欧美老少交 | 国产午夜精品一区二区三区嫩草 | 日日精品| 色夜影院 | 91精品专区 | 永久精品视频 | 91完整版在线观看 | 最新日韩精品 | 婷婷激情综合 | 中文字幕在线日本 | 热久久精品在线 | 日韩精选在线 | 精品国产电影一区二区 | 久久久久久久久久电影 | 成人久久久久久久久久 | 久久精品电影 | 天天伊人网| 99免费在线播放99久久免费 | 人人讲下载 | 在线观看深夜福利 | 成人综合婷婷国产精品久久免费 | 在线国产一区 | 天天操天天操天天操天天操天天操天天操 | 久久精品网址 | 国产一区二区三区 在线 | 在线高清一区 | 亚洲黄色免费在线看 | 四虎成人精品永久免费av | 久久成人久久 | 国产成人久 | 午夜国产福利在线 | 成人看片| 久久视频国产 | 成人黄色小说视频 | 在线免费观看的av网站 | av免费网站| 国产精品永久免费在线 | 不卡的av在线播放 | 日日摸日日爽 | 久久99国产精品自在自在app | 国产精品岛国久久久久久久久红粉 | 韩日三级av | 国产一级在线免费观看 | 最近日本字幕mv免费观看在线 | 久久国产精品一区二区 | 婷婷伊人网 | 日本中文在线播放 | 91精品国 | 国产日韩精品在线观看 | 中文字幕一区二区三区视频 | 91porny九色在线播放 | 在线 视频 一区二区 | www.操.com| 国产精品高清一区二区三区 | 亚洲黄色免费网站 | 亚洲电影久久 | 亚洲乱亚洲乱亚洲 | 国产精品视频你懂的 | 久久精品视频中文字幕 | 丁香在线 | 亚洲a网 | 黄色看片 | 999国产 | 久久久国产精品视频 | 国产成人精品久久二区二区 | 欧美电影在线观看 | 天天爽人人爽 | 久久精品精品 | 久久久久久免费视频 | 人人干人人超 | 99精品视频在线观看免费 | 久久色亚洲 | 国产综合香蕉五月婷在线 | 国产一区二区在线观看视频 | 91传媒在线观看 | 国产精品一区二区在线观看 | 国产在线综合视频 | 人人爽人人爽人人片 | 人人干人人超 | 99精品国产在热久久下载 | 中文字幕亚洲欧美日韩 | 正在播放国产91 | 少妇18xxxx性xxxx片 | www.黄色片网站 | 天天要夜夜操 | 人人爽人人搞 | 亚洲综合狠狠干 | 香蕉网在线 | 天天躁天天躁天天躁婷 | 丁香九月激情 | 午夜私人影院久久久久 | 亚洲涩综合 | 伊人久久av | av视屏在线 | av免费在线免费观看 | 日日夜夜精品免费观看 | 久久久免费观看视频 | 国产精品欧美久久久久无广告 | 六月丁香激情综合 | 日韩av视屏 | 国产免码va在线观看免费 | 欧美一区二视频在线免费观看 | 亚洲首页 | 久久99精品国产 | 日韩免费在线播放 | 日韩精品亚洲专区在线观看 | 狠狠干 狠狠操 | 天天在线视频色 | 在线免费观看国产 | 97视频在线观看播放 | 免费视频久久久久久久 | 四虎4hu永久免费 | 亚洲精品999| 在线观看视频中文字幕 | 91在线精品秘密一区二区 | 操操操天天操 | 少妇性色午夜淫片aaaze | 免费看片网页 | 久久av不卡 | 综合久色| 午夜色大片在线观看 | av中文字幕网址 | 亚洲手机天堂 | 一区二区精品在线观看 | 香蕉久久国产 | 91久久精品一区二区二区 | 成年人免费观看国产 | 最新日韩精品 | 国产成人精品国内自产拍免费看 | 欧美色噜噜噜 | 在线播放 一区 | 国产精品 日韩精品 | 国产精品99蜜臀久久不卡二区 | 中文在线√天堂 | 日日爽| 国产精品地址 | av三级在线免费观看 | 超碰电影在线观看 | 麻豆视频91 | 亚洲精品乱码久久久久v最新版 | 亚洲综合在线五月天 | 色吊丝在线永久观看最新版本 | 中文字幕在线观看播放 | 日韩中文字幕免费在线播放 | 在线观看一区 | 精品久久久久国产 | 97超在线 | 97av在线| 免费成人av | 亚洲黄色小说网址 | 国产 欧美 日产久久 | 视频二区 | 中文 一区二区 | 免费日韩 精品中文字幕视频在线 | 看v片| 欧美日韩一区二区三区免费视频 | 91人人爽久久涩噜噜噜 | 月下香电影 | 色综合久久久久综合体 | 美国人与动物xxxx | 国产精品一区二区三区久久久 | 在线播放 日韩专区 | 免费色视频 | 在线观看91 | 青青河边草免费 | 久久免费精彩视频 | 国产乱码精品一区二区蜜臀 | 51久久成人国产精品麻豆 | www免费在线观看 | 婷婷久久网 | 五月婷激情 | 91看片看淫黄大片 | 日本字幕网| 99视频一区 | 国产精品手机视频 | 黄色三级免费 | av日韩不卡 | 国产福利av在线 | 久久国产色 | 亚洲五月 | 久久婷婷国产 | 99re久久精品国产 | 四虎影视av | 国产精品自在线 | 99夜色 | 免费男女羞羞的视频网站中文字幕 | 在线精品视频在线观看高清 | 久久久久国产一区二区三区 | 2022久久国产露脸精品国产 | 月丁香婷婷 | 99久久国产免费看 | 国产3p视频| 精品久久久久久久久久岛国gif | 欧美夫妻生活视频 | 在线看的毛片 | 日韩激情在线视频 | 久久精品在线免费观看 | 欧美日韩视频在线播放 | 日日操网站 | 天天拍天天干 | 亚洲电影图片小说 | 在线视频 区 | 国产黄 | av观看在线观看 | 久久96| 在线观看免费色 | 在线影院 国内精品 | www成人av | 久久精品99久久久久久2456 | 久久久免费观看完整版 | 欧美激情视频一区 | 91香蕉视频黄色 | 天天激情天天干 | 亚洲91精品在线观看 | 丁香 婷婷 激情 | 色综合五月 | 伊人色综合网 | av综合站| 亚洲精品小区久久久久久 | 久久黄色免费视频 | 超碰97中文 | 久草在线综合 | 久久污视频 | 国产青青青 | 免费网站黄 | 91精品播放 | 中文字幕亚洲不卡 | 日韩欧美精品在线观看视频 | 久久国产精品一国产精品 | 久久婷婷色 | 亚洲激情五月 | 国产精品第十页 | 国产欧美精品一区二区三区 | 欧美日韩国产一区 | 国产精品久久久一区二区三区网站 | 久久久久久欧美二区电影网 | 国产精品一区二区久久 | 欧美日韩网址 | 久久久久伊人 | 亚洲日本va中文字幕 | 在线观看免费日韩 | 成人日韩av| 日韩成人欧美 | 91传媒在线看 | 精品三级av | 欧美aa一级 | 最近中文字幕大全 | 午夜在线免费观看 | 国内小视频 | 国产小视频免费观看 | 亚洲色图av | 91精品第一页 | 福利av影院| 免费男女羞羞的视频网站中文字幕 | 四虎影院在线观看av | 国产精品视频免费 | 日本高清免费中文字幕 | 国产不卡在线观看 | 欧美一级特黄高清视频 | 日韩色一区二区三区 | 久久久黄视频 | 日日射av| 久视频在线播放 | 日韩中文字幕亚洲一区二区va在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 97在线资源 | 国产成人免费av电影 | 午夜性色 | 日本成人黄色片 | 91久久精品日日躁夜夜躁国产 | 亚洲午夜精品电影 | 99免费在线观看 | 国产美女网站在线观看 | 在线午夜av | 中文字幕亚洲不卡 | 4hu视频| 成人av电影在线观看 | 中文av字幕在线观看 | 精品产品国产在线不卡 | 九九在线精品视频 | 肉色欧美久久久久久久免费看 | 人人舔人人爽 | 国产精品毛片一区视频 | 中文字幕在线观看免费高清电影 | 激情av综合 | 国产91免费看| 麻豆高清免费国产一区 | 天天操夜夜爱 | 亚洲韩国一区二区三区 | 在线观看免费av网 | 亚洲无吗av| 五月婷婷视频在线 | 去看片 | 国产黄色网 | 粉嫩av一区二区三区入口 | 日韩网站一区二区 | 超碰成人免费电影 | 麻豆视频网址 | 国产在线第三页 | 综合久久久久久 | 美国三级黄色大片 | 午夜丰满寂寞少妇精品 | 色婷婷狠狠五月综合天色拍 | 9在线观看免费高清完整版在线观看明 | 国产啊v在线 | 97超碰免费在线 | www久久精品 | 九九九热精品免费视频观看 | 午夜婷婷综合 | 日韩高清片 | 久久字幕 | 中文字幕第一页在线vr | 亚洲电影一级黄 | 国产精品6 | 欧美久久久一区二区三区 | 九热精品 | 超碰在线94 | 午夜精品久久久 | 一级黄色电影网站 | 久久精品一二区 | 欧美动漫一区二区三区 | 欧美美女视频在线观看 | 在线免费观看国产黄色 | 久久不卡日韩美女 | 97在线观看视频免费 | 色夜视频 | 一级性av | 国产九色视频在线观看 | 色噜噜在线观看视频 | 成人午夜剧场在线观看 | 激情丁香综合五月 | 亚洲激情 欧美激情 | 久久激情视频免费观看 | 欧美精品乱码99久久影院 | 国产精品一区免费在线观看 | 久久精品视频一 | 日日日日日 | 在线观看91精品国产网站 | 午夜国产一区 | 亚洲精品免费在线观看 | 91在线精品播放 | 亚洲精品www久久久久久 | 欧美二区在线播放 | 国产精品久久久免费 | 美女激情影院 | 欧美激情视频三区 | 久久夜夜爽 | 日韩电影在线观看一区二区三区 | 国模精品一区二区三区 | 国产原创91 | 中文字幕一区二区三区久久蜜桃 | 亚洲一区二区三区四区精品 | 在线观看中文字幕第一页 | 国产精品自在线拍国产 | 激情婷婷 | 国产香蕉久久 | 日韩免费b | 久久久久国产精品免费 | 国产一区二区精品在线 | 成人97视频| 亚洲精品久久久久久久不卡四虎 | 亚洲精欧美一区二区精品 | 国产片网站 | 午夜99| 在线婷婷 | 三级av网站| 亚洲国产精品激情在线观看 | 东方av免费在线观看 | 国产成人精品av在线 | 99re国产视频 | 99久久国产免费,99久久国产免费大片 | 911精品视频 | 操操操操网 | 国产精品第54页 | 亚洲美女精品区人人人人 | 日韩欧美视频 | 四虎影视4hu4虎成人 | 国产资源| 国产美女视频网站 | 国产精品视频不卡 | 黄色网www | 99婷婷| 91av色| 亚洲japanese制服美女 | 国产免费专区 | 精品专区一区二区 | av高清免费在线 | 久久久96 | 久久av网址 | 黄色成人av| 久久精选 | 成年在线观看 | 91 在线视频播放 | 日韩视 | 久久黄色影院 | 国产精彩视频一区二区 | 成人av资源网站 | 亚洲成a人片77777潘金莲 | 六月婷色 | 人人爽久久久噜噜噜电影 | .国产精品成人自产拍在线观看6 | 99免在线观看免费视频高清 | 在线看免费 | 国产精品99久久久久久小说 | 亚洲美女视频在线观看 | 国产精品一区二区久久精品爱微奶 | 国产成人精品久久久久 | www最近高清中文国语在线观看 | 夜夜骑天天操 | 91视频3p | 婷婷在线免费视频 | 日b黄色片| 又紧又大又爽精品一区二区 | 欧美大荫蒂xxx| 99久久精品网| 日韩一区二区三区免费视频 | 亚洲视频观看 | 国产99久久久国产精品免费二区 | 国产精品午夜免费福利视频 | 国产精品成人免费一区久久羞羞 | 蜜桃av观看| 日韩美女一级片 | 最新极品jizzhd欧美 | 亚洲免费精品一区二区 | 日日婷婷夜日日天干 | 国产精品永久久久久久久www | 丁香五月缴情综合网 | 韩国av免费在线观看 | 久久综合五月婷婷 | 午夜体验区 | 在线观看一级片 | 国产 日韩 欧美 在线 | 亚洲精品国产精品国自产观看浪潮 | 999久久久久久久久6666 | 天天干人人干 | 久久一级电影 | 国产精彩视频一区 | 三级性生活视频 | 丝袜美腿av | 色综合久久综合中文综合网 | 91亚洲精品国偷拍 | 国产特级毛片aaaaaaa高清 | 美国三级黄色大片 | 国产黄色在线观看 | 免费av在|