android面試題大全

如果後台的activity由於某原因被系統回收了,如何在被系統回收之前保存當前狀態?

如何將一個activity設定成視窗的樣式。(edited by sodino)

如何退出activity?如何安全退出已調用多個activity的application?

請介紹下android中常用的五種布局。

請介紹下android的數據存儲方式。(edited by sodino)

請介紹下contentprovider是如何實現數據共享的。(edited by sodino)

如何啟用service,如何停用service。(edited by sodino)

註冊廣播有幾種方式,這些方式有何優缺點?請談談android引入廣播機制的用意。

請解釋下在單執行緒模型中message、handler、message queue、looper之間的關係。

aidl的全稱是什麼?如何工作?能處理哪些類型的數據?

請解釋下android程式運行時許可權與檔案系統許可權的區別。(edited by sodino)

系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。

嵌入式作業系統記憶體管理有哪幾種,各有何特性 ?

頁式,段式,段頁,用到了mmu,虛擬空間等技術

什麼是嵌入式實時作業系統, android 作業系統屬於實時作業系統嗎?

嵌入式實時作業系統是指當外界事件或數據產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速回響,並控制所有實時任務協調一致運行的嵌入式作業系統。主要用於工業控制、軍事設備、 航空航天等領域對系統的回響時間有苛刻的要求,這就需要使用實時系統。又可分為軟實時和硬實時兩種,而android是基於linux核心的,因此屬於軟實時。

一條最長的簡訊息約占多少byte?

中文70(包括標點),英文160個位元組

android中的動畫有哪幾類,它們的特點和區別是什麼?

兩種,一種是tween動畫、還有一種是frame動畫。tween動畫,這種實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化;另一種frame動畫,傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。

handler機制的原理

andriod提供了 handler 和 looper 來滿足執行緒間的通信。handler 先進先出原則。looper類用來管理特定執行緒內對象之間的訊息交換(message exchange)。 1)looper: 一個執行緒可以產生一個looper對象,由它來管理此執行緒里的message queue(訊息佇列)。 2)handler: 你可以構造handler對象來與looper溝通,以便push新訊息到message queue里;或者接收looper從message queue取出)所送來的訊息。 3) message queue(訊息佇列):用來存放執行緒放入的訊息。 4)執行緒:ui thread 通常就是main thread,而android啟動程式時會替它建立一個message queue。

說說mvc模式的原理,

它在android中的運用 mvc(model_view_contraller)” 模型_視圖_控制器”。 mvc應用程式總是由這三個部分組成。event(事件)導致controller改變model或view,或者同時改變兩者。只要 controller改變了models的數據或者屬性,所有依賴的view都會自動更新。類似的,只要controller改變了view,view會 從潛在的model中獲取數據來刷新自己

(view重繪和記憶體泄露面試經常問的問題 )

view的刷新:

在需要刷新的地方,使用handle.sendmessage傳送信息,然後在handle的getmessage裡面執行invaliate或者postinvaliate。

可以調用invalidate()和postinvalidate()這兩個方法刷新

gc記憶體泄露 出現情況:

1).資料庫的cursor沒有關閉

2).構造adapter時,沒有使用快取contentview 衍生listview的最佳化問題-----減少創建view的對象,充分使用contentview,可以使用一靜態類來最佳化處理getview的過程/

3).bitmap對象不使用時採用recycle()釋放記憶體

4).activity中的對象的生命周期大於activity 調試方法: ddms==> heapszie==>dataobject==>[total size]