來源 邵洋江 的博客

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



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應用的入口點嗎?


-------------------------------------------------- ------------------------------

 
真正的Andr​​oid入口點是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應用支持

缺點: 一、安全和隱私
二,開發商自定義,不夠統一

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 OK熊 的頭像
    OK熊

    OK熊 碼農時代

    OK熊 發表在 痞客邦 留言(0) 人氣()