【Android面試】Android面試題集錦 (陸續更新)

來源:互聯網
上載者:User

 

一些常見的Android面試基礎題做下總結,看看你能做出多少道?


 

  1. Intent的幾種有關Activity啟動的方式有哪些,你瞭解每個含義嗎?



 

 

    這裡Android123提示大家,Intent的一些標記有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK 等。每種含義大家看SDK文檔和具體跑下這樣你的記憶會更深刻些。

 

 

  2. Activity和Task的啟動模式有哪些? 每種含義是什麼?

 

 

   有關在AndroidManifest.xml中的android:launchMode定義,主要有standard、singleTop、singleTask和singleInstance,同時對於android:taskAffinity這些問題大家也要瞭解,Android開發網在以前的文章中講過,不過很多開發人員仍然不是很清楚,這些基礎問題我們以後仍然會再次總結。

 

   關於Activity的啟動模式,參考: http://blog.csdn.net/feng88724/archive/2011/05/11/6412638.aspx

 

  3. 通過Intent傳遞一些位元據的方法有哪些?

 

 

   1). 使用Serializable介面實現序列化,這是Java常用的方法。

   2). 實現Parcelable介面,這裡Android的部分類比如Bitmap類就已經實現了,同時Parcelable在Android AIDL中交換資料也很常見的。

 

 

  4. 能說下Android應用的進入點嗎?

 

 

  真正的Android進入點是application的main,你可以看下androidmanifest.xml的內含項目關聯性就清楚了。 可以沒有Activity但是必須有Application

 

 

 

  5. Android都有哪些XML解析器,都熟練掌握嗎?

 

 

  這裡XmlPull、SAX和DOM相信做過Web開發的都已經滾瓜爛熟了。

 

 

 

  6. SQLite支援事務嗎? 添加刪除如何提高效能?

 

 

  SQLite作為輕量級的資料庫,比MySQL還小,但支援SQL語句查詢,提高效能可以考慮通過原始經過最佳化的SQL查詢語句方式處理。

 

 

 

  7. Android Service和Binder、AIDL你都熟練嗎?

 

 

  作為Android重要的後台服務,這些每個Android開發人員都應該掌握,這也算是和Java SE最大的不同了,具體的執行個體大家可以查看Android音樂播放器的原始碼Music.git中的,這裡不再贅述。

 

 

  8. 你用過哪款Android手機,有哪些優點和不足,相對於iPhone或Symbian又有哪些優缺點?

 

 

   把這個作為面試題也是考察下,可以大概瞭解到它對Android的瞭解程度,多移動開發的認識。

 

 

【2011-5-12 補充】

 

1.    請描述下Activity的生命週期。


   建立 oncreate -  啟動onstart – 恢複 onResume – 暫停 onPause – 結束 onEnd – 銷毀onDestroy

 


2.    如果背景Activity由於某原因被系統回收了,如何在被系統回收之前儲存目前狀態?


    在”暫停 onPause” 狀態將資料儲存。

 

3.    如何將一個Activity設定成視窗的樣式。


   設定Theme。

 

 

4.    如何退出Activity?如何安全退出已調用多個Activity的Application?


    

5.    請介紹下Android中常用的五種布局。


    線性布局LinearLayout, 相對布局 RelativeLayout

    表單布局 TableLayout, 
絕對布局AbsLayout(已淘汰)

    幀布局FrameLayout

 


6.    請介紹下Android的資料存放區方式。


    Preference,檔案,資料庫SQlite,網路儲存

 

 

7.    請介紹下ContentProvider是如何?資料共用的。


  


8.    如何啟用Service,如何停用Service。


     啟動: Context.startService() and Context.bindService().

      關閉: Context.stopService().

           Service.stopSelf() or Service.stopSelfResult()

 


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

 

10.    請解釋下在單執行緒模式中Message、Handler、Message Queue、Looper之間的關係。

   

11.    AIDL的全稱是什嗎?如何工作?能處理哪些類型的資料?

   

12.    請解釋下Android程式運行時許可權與檔案系統許可權的區別。(Edited by Sodino)

   

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

   

14.    有一個一維整型數組int[]data儲存的是一張寬為width,高為height的圖片像素值資訊。請寫一個演算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調整為50%。

   

15.    你如何評價Android系統?優缺點。 (這一題重複了)


        優勢:  一、開放性 三、豐富的硬體選擇 五、無縫結合的Google應用支援

 

        缺點:  一、安全和隱私  二,開發商自訂,不夠統一 四、同類機型使用者減少

 

 

 

 

【2011-5-12 補充】

 

1、什麼是ANR 如何避免它?


 

 http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025671.aspx

 


2、什麼情況會導致Force Close ?如何避免?能否捕獲導致其的異常?


 


 

3、Android本身的api並未聲明會拋出異常,則其在運行時有無可能拋出runtime異常,你遇到過嗎?諾有的話會導致什麼問題?如何解決?


 

       會有運行時異常, 運行時異常無需捕捉

 

 

4、簡要解釋一下activity、 intent 、intent filter、service、Broadcast、BroadcaseReceiver


 

       這個問題問的很普遍,自己多看看吧。在此不多說了!

 



5
、IntentService有何優點?

      

 

【2011-5-12 補充】

1. android:paddingLeft與android:layout_marginLeft的區別

當按鈕分別設定以上兩個屬性時,得到的效果是不一樣的。
android:paddingLeft="30px"
按鈕上設定的內容(例片)離按鈕左邊邊界30個像素
android:layout_marginLeft="30px"
整個按鈕離左邊設定的內容30個像素

 

2. Android 動畫有哪幾種? 描述一下

       兩種。 Tween動畫和Frame動畫。 Tween動畫主要是透明度、尺寸伸縮、旋轉、位移等效果。

Frame動畫可以理解成gif, 一幀一幀的顯示圖片。比較常用的有捲軸效果。

 

3. IntentActivity、廣播、Service等的理解。

 

4. 哪些情況下會發生ANR ? 怎麼對應 ? (這個問題也重複了)

       Application Not
Response。

      

5. 隱式、顯式Intent的區別

·   顯式意圖  通過名字指明目標組件(這個組件名字欄位component name
field, 前面提到過, 有一個數值集)。既然組件名稱通常不為其他應用程式的開發人員所瞭解,顯式意圖典型的被用作應用程式的內部訊息-例如一個活動啟動一個附屬服務或姊妹活動。

   隱式意圖  不命名目標組件(組件名稱欄位為空白)。隱式意圖經常用來啟用其他應用程式的組件。

 

    這一塊參考Intent說明,可以同時看一下Notepad的例子, 協助理解,個人感覺很重要!

 

(上面幾個問題感覺都不錯,各位自己查漏補缺吧! 有些還沒有寫答案的, 各位有空可以回答一下~ 我會將你的答案填充上去)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.