來源 邵洋江 的博客
一些常見的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應用支持
缺點: 一、安全和隱私
二,開發商自定義,不夠統一
留言列表