亚洲v欧美v国产v在线成_制服丝袜中文字幕丝袜专区_一区二区三区韩国电影_激情欧美一区二区中文字幕

我要投稿 投訴建議

最新android面試題

時間:2021-02-05 10:05:53 面試試題 我要投稿

2016年最新android面試題

  1.如何避免ANR?

2016年最新android面試題

  答:ANR:Application Not Responding,五秒在Android中,活動管理器和窗口管理器這兩個系統(tǒng)服務(wù)負(fù)責(zé)監(jiān)視應(yīng)用程序的響應(yīng)。當(dāng)出現(xiàn)下列情況時,Android就會顯示ANR對話框了:   對輸入事件(如按鍵、觸摸屏事件)的響應(yīng)超過5秒   意向接受器(intentReceiver)超過10秒鐘仍未執(zhí)行完畢

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

  2. handler機(jī)制的原理

  答 :andriod提供了 Handler 和 Looper 來滿足線程間的通信。Handler 先進(jìn)先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)! 1)Looper: 一個線程可以產(chǎn)生一個Looper對象,由它來管理此線程里的Message Queue(消息隊列)! 2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息。    3) Message Queue(消息隊列):用來存放線程放入的消息! 4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue。

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

  答:a:從MVC的角度考慮(應(yīng)用程序內(nèi)) 其實回答這個問題的時候還可以這樣問,android為什么要有那4大組件,現(xiàn)在的移動開發(fā)模型基本上也是照搬的web那一套MVC架構(gòu),只不過是改了點嫁妝而已。android的四大組件本質(zhì)上就是為了實現(xiàn)移動或者說嵌入式設(shè)備上的MVC架構(gòu),它們之間有時候是一種相互依存的關(guān)系,有時候又是一種補(bǔ)充關(guān)系,引入廣播機(jī)制可以方便幾大組件的信息和數(shù)據(jù)交互。   b:程序間互通消息(例如在自己的應(yīng)用程序內(nèi)監(jiān)聽系統(tǒng)來電)   c:效率上(參考UDP的廣播協(xié)議在局域網(wǎng)的方便性)   d:設(shè)計模式上(反轉(zhuǎn)控制的一種應(yīng)用,類似監(jiān)聽者模式)

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

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

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

  講點輕松的吧,可能有人希望做出來的應(yīng)用程序是一個漂浮在手機(jī)主界面的東西,那么很   簡單你只需要設(shè)置 一下Activity的主題就可以了在AndroidManifest.xml 中定義 Activity的   地方一句話:   Xml代碼   1. android :theme="@android:style/Theme.Dialog"   3. android:theme="@android:style/Theme.Dialog"   android :theme="@android:style/Theme.Dialog"   android:theme="@android:style/Theme.Dialog"   這就使你的應(yīng)用程序變成對話框的形式彈出來了,或者   Xml代碼   1. android:theme="@android:style/Theme.Translucent"   3. android:theme="@android:style/Theme.Translucent"   就變成半透明的,[友情提示-.-]類似的這種activity的屬性可以在android.R.styleable 類的AndroidManifestActivity 方法中看到,AndroidManifest.xml中所有元素的屬性的介紹都可以參考這個類android.R.styleable   上面說的.是屬性名稱,具體有什么值是在android.R.style中 可以看到,比如這個"@android:style/Theme.Dialog" 就對應(yīng)于android.R.style.Theme_Dialog ,('_'換成'.' < --注意:這個是文章內(nèi)容不是笑臉)就可以用在描述文件 中了,找找類定義和描述文件中的對應(yīng)關(guān)系就都明白了。

  (簡單來說直接在配置文件引入風(fēng)格。追求效果的應(yīng)用此用法用到挺多);

  6、IntentService有何優(yōu)點?

  Acitivity的進(jìn)程,當(dāng)處理Intent的時候,會產(chǎn)生一個對應(yīng)的Service Android的進(jìn)程處理器現(xiàn)在會盡可能的不kill掉你 非常容易使用

  (這回答其實比較。。。其實我也不知道干嘛使,因為看幫助文檔就說了一個用來處理異步請求的service,工作完了自己停止。沒用過,不做評價)。

  7、 廣播的生命周期?

  廣播的生命周期非常端,當(dāng)發(fā)送之后intent會到AndroidManifest.xml方法中找是不是匹配的action,如果有就調(diào)用Receiver,然后獲得Receiver對象,再執(zhí)行onReceiver方法,這時候Receiver對象就沒有用了,當(dāng)我們再次點擊按鈕的時候就會重新獲得對象,這就是BroadcastReceiver的生命周期。

  在BroadcastReceiver里不能做一些比較耗時的操作,否則會彈出ANR(Application No Response)的對話框。

  如果需要完成一項耗時的工作,應(yīng)該通過發(fā)送Intent給Service,由Service來完成。這里不能使用子線程來解決,因為BroadcastReceiver的生命周期很短,子線程可能還沒有結(jié)束,BroadcastReceiver就先結(jié)束了。BroadcastReceiver一旦結(jié)束,此時BroadcastReceiver的所在線程很容易在系統(tǒng)需要內(nèi)存時被優(yōu)先殺死,因為它屬于空進(jìn)程(沒有任何活動組件的進(jìn)程)。如果它的宿主進(jìn)程被殺死,那么正在工作的子線程也會被殺死,所以采用子線程來解決是不可靠的。

  8、啟動service的兩種方法?有什么區(qū)別?

  一種是startService(),另一種是bindService()。這兩者的區(qū)別是第一種方式調(diào)用者開啟了服務(wù),即會與服務(wù)失去聯(lián)系,兩者沒有關(guān)聯(lián)。即使訪問者退出了,服務(wù)仍在運(yùn)行。如需解除服務(wù)必須顯式的調(diào)用stopService方法。主要用于調(diào)用者與服務(wù)沒有交互的情況下,也就是調(diào)用者不需要獲取服務(wù)里的業(yè)務(wù)方法。比如電話錄音。而后者調(diào)用者與服務(wù)綁定在一起的。當(dāng)調(diào)用者退出的時候,服務(wù)也隨之退出。用于需要與服務(wù)交互。

【2016年最新android面試題】相關(guān)文章:

最新android面試題及答案11-07

android面試題及答案精選11-12

最新競爭上崗面試題10-01

最新JAVA實現(xiàn)鏈表面試題10-24

最新關(guān)于精選php面試題及答案08-07

最新特崗教師面試題及答案參考05-28

最新事業(yè)單位面試題及答案05-12

最新招聘社區(qū)工作者面試題及答案02-26

德爾福面試題01-11

移動面試題04-01