學習啦 > 創(chuàng)業(yè)指南 > 職場 > 面試題 > 安卓面試題及參考答案

安卓面試題及參考答案

時間: 如英753 分享

安卓面試題及參考答案

  面試題是安卓面試的時候經常出現(xiàn)的形式,是安卓面試過程中必不可少的組成部分。下面是學習啦小編為大家?guī)淼陌沧棵嬖囶}及答案,相信對你會有幫助的。

  安卓面試題及答案(一)

  1.簡要解釋一下activity、 intent 、intent filter、service、Broadcase、BroadcaseReceiver

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

  一個service不包含可見的用戶界面,而是在后臺無限地運行

  可以連接到一個正在運行的服務中,連接后,可以通過服務中暴露出來的借口與其進行通信

  一個broadcast receiver是一個接收廣播消息并作出回應的component,broadcastreceiver沒有界面

  intent:content provider在接收到ContentResolver的請求時被激活。

  activity, service和broadcast receiver是被稱為intents的異步消息激活的。

  一個intent是一個Intent對象,它保存了消息的內容。對于activity和service來說,它指定了請求的操作名稱和待操作數(shù)據(jù)的URI

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

  它是通過將Intent對象和目標的intent filter相比較來完成這一工作的。一個component的intent filter告訴android該component能處理的intent。intent filter也是在manifest文件中聲明的。

  2.IntentService有何優(yōu)點?

  答案:IntentService 的好處

  * Acitivity的進程,當處理Intent的時候,會產生一個對應的Service

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

  * 非常容易使用

  3.橫豎屏切換時候activity的生命周期?

  答案:1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執(zhí)行一次,切豎屏時會執(zhí)行兩次

  2、設置Activity的android:configChanges=”orientation”時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執(zhí)行一次

  3、設置Activity的android:configChanges=”orientation|keyboardHidden”時,切屏不會重新調用各個生命周期,只會執(zhí)行onConfigurationChanged方法

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

  答案:可以將dictionary.db文件復制到Eclipse Android工程中的res aw目錄中。所有在res aw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件??梢詫ictionary.db文件復制到res aw目錄中

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

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

  6.Android引入廣播機制的用意?

  答案:a:從MVC的角度考慮(應用程序內),其實回答這個問題的時候還可以這樣問,android為什么要有那4大組件,現(xiàn)在的移動開發(fā)模型基本上也是照搬的web那一套MVC架構,只不過是改了點嫁妝而已。android的四大組件本質上就是為了實現(xiàn)移動或者說嵌入式設備上的MVC架構,它們之間有時候是一種相互依存的關系,有時候又是一種補充關系,引入廣播機制可以方便幾大組件的信息和數(shù)據(jù)交互。

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

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

  d:設計模式上(反轉控制的一種應用,類似監(jiān)聽者模式)

  7.Android dvm的進程和Linux的進程, 應用程序的進程是否為同一個概念

  答案:DVM指dalivk的虛擬機。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux 中的一個進程,所以說可以認為是同一個概念。

  8.sim卡的EF 文件有何作用

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

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

  答案:頁式,段式,段頁,用到了MMU,虛擬空間等技術

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

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

  11.一條最長的短信息約占多少byte?

  答案:中文70(包括標點),英文160,160個字節(jié)。

  12.android中的動畫有哪幾類,它們的特點和區(qū)別是什么?

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

  13.handler機制的原理

  答案:andriod提供了Handler 和 Looper 來滿足線程間的通信。Handler先進先出原則。Looper類用來管理特定線程內對象之間的消息交換(MessageExchange)。

  1)Looper: 一個線程可以產生一個Looper對象,由它來管理此線程里的MessageQueue(消息隊列)。

  2)Handler: 你可以構造Handler對象來與Looper溝通,以便push新消息到MessageQueue里;或者接收Looper從Message Queue取出)所送來的消息。

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

  4)線程:UIthread 通常就是main thread,而Android啟動程序時會替它建立一個MessageQueue。

  14.說說mvc模式的原理,它在android中的運用

  答案:MVC(Model_view_contraller)”模型_視圖_控制器”。 MVC應用程序總是由這三個部分組成。Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。

  15.DDMS和TraceView的區(qū)別?

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

  16.java中如何引用本地語言

  答案:可以用JNI(java nativeinterface java 本地接口)接口。

  17.談談Android的IPC(進程間通信)機制

  答案:IPC是內部進程通信的簡稱, 是共享”命名管道”的資源。Android中的IPC機制是為了讓Activity和Service之間可以隨時的進行交互,故在Android中該機制,只適用于Activity和Service之間的通信,類似于遠程方法調用,類似于C/S模式的訪問。通過定義AIDL接口文件來定義IPC接口。Servier端實現(xiàn)IPC接口,Client端調用IPC接口本地代理。

  18.NDK是什么

  答案:NDK是一些列工具的集合,NDK提供了一系列的工具,幫助開發(fā)者迅速的開發(fā)C/C++的動態(tài)庫,并能自動將so和java 應用打成apk包。

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

>>>點擊下頁還有更多安卓面試題及參考答案

1083145