android 面試題集

來源:互聯網
上載者:User

做android很長時間了 下面是收集的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的瞭解程度,多移動開發的認識。

===================================================================================

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應用支援

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

=========================

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. 對Intent、Activity、廣播、Service等的理解。

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

   Application Not Response。

5. 隱式、顯式Intent的區別

·   顯式意圖

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

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

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

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

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

2011-07-05 補充

返回鍵與Home鍵區別。

back鍵預設行為是finish處於前台的Activity的即Activity的狀態為Destroy狀態為止,再次啟動該Activity是從onCreate開始的(不會調用onSaveInstanceState方法)。Home鍵預設是stop前台的Activity即狀態為onStop為止而不是Destroy,若再次啟動它,會調用onSaveInstanceState方法,保持上次Activity的狀態則是從OnRestart開始的---->onStart()--->onResume()。

【2011-10-12】百度Android工程師面試題(網友提供)(見附件)


【2011-11-21】思科面試題
1. Android中如何傳遞位元據。
2. ANR是什麼。哪些情況下會發生。開發時如何尋找ANR。
3. 解釋AIDL
4. SAX、DOM、PULL解析xml的原理,以及各自優缺點
4. DIP、DPI分別是什麼。


5.java線程的sleep(),wait(),notify(),yield()方法的區別。

1.sleep()使線程休眠一段時間,一段時間結束後,線程進入可執行狀態,但並不是立即執行,只是在被排程器調用的時候才執行。在休眠期間,並不釋放所持有的“鎖”;
2.wait()使線程休眠一段時間,若設定參數,時間到時,線程就自動進入可執行狀態。若沒有,則需要notify()方法去調用。注意:wait()方法和notify()方法都時針對this對象的,調用wait()方法後,會釋放加在對象上的“鎖”。
3.yield()使線程放棄執行的權利,進入可執行狀態,也就意味著線程在yield()方法後,有可能又執行。使用yield()方法,線程並不釋放自己鎖持有的“鎖”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.