android面試題之一

在接下來的一段時間,我將收集一些常見面試題,綜合網上資料加本身測試與理解,將其總結出來和你們分享,裏面不免有一些問題,但願你們提出寶貴意見以便及時更正。android

 

1、Activity、Service、BroadcastReceiver的做用面試

1. Activity是android四大組件中最基本的組件,是程序與用戶交互的窗口,表明一個用戶所能看到的屏幕,它具備本身的生命週期,由系統控制。它能夠用來顯示控件、監聽系統事件(按鍵事件、觸摸屏事件等)、爲保持各界面的狀態作不少持久化的事情。數據庫

2. 一個Service 是一段長生命週期的,沒有用戶界面的程序,能夠用來開發如監控類程序等。好比音樂播放器就是啓動一個Service來保持音樂在後臺的播放。因此,Service組件一般用於爲其餘組件提供後臺服務或監控其餘組件的運行狀態。瀏覽器

3. Broadcast(廣播)是一種普遍運用的在應用程序之間傳輸信息的機制。BroadcastReceiver表明廣播接收器,是對發送出來的 Broadcast進行過濾接受並響應的一類組件。廣播接收器沒有用戶界面,然而,它們能夠啓動一個activity或service 來響應它們收到的信息,或者用NotificationManager 來通知用戶。框架

 

2、顯式intent和隱式intent的區別是什麼ionic

顯式Intent:對於明確指出了目標組件名稱的Intent,咱們稱之爲顯式Intentide

隱式Intent:對於沒有明確指出目標組件名稱的Intent,則稱之爲隱式Intent測試

顯式Intent直接用組件的名稱定義目標組件,這種方式很直接。可是因爲開發人員每每並不清楚別的應用程序的組件名稱,所以,顯式Intent更多用於應用程序內部傳遞消息。好比在某應用程序內,一個Activity啓動一個Servicespa

隱式Intent偏偏相反,它不會用組件名稱定義須要激活的目標組件,它更普遍地用於在不一樣應用程序之間傳遞消息。生命週期

另外,在顯式Intent消息中,決定目標組件的惟一要素就是組件名稱,一旦名稱肯定,就不須要其餘內容便可找到相應組件。 但在隱式Intent中須要藉助過濾器IntentFilter 來尋找與之相匹配的組件。

 

3、怎麼將一個Activity封裝成對話框的樣子? 半透明的樣子?長按Menu菜單的樣子?  

1. 封裝成對話框的樣子:給activity加上以下屬性

android :theme="@android:style/Theme.Dialog"

2.封裝成半透明的樣子:給activity加上以下屬性

android:theme="@android:style/Theme.Translucent"

3.封裝成長按菜單的樣子:

重寫onKeyDown()和onKeyLongPress()方法,在onKeyDown中對menu鍵調用event.startTracking()方法跟蹤,這樣長按Menu鍵會回調onKeyLongPress()方法,在裏面彈出對話框式的activity便可。

4、介紹一下Android系統的體系結構

從上至下包括應用層(Applications)、應用框架層(Application Framework)、系統運行庫層(Libraries and Android Runtime)和Linux內核層(Linux Kernel)。

1.應用層包含開發者本身開發的一些應用和Google已經綁定的一些核心應用。好比Email客戶端、瀏覽器、聯繫人、日曆等等。

2. 應用框架層就是應用開發者所必須瞭解API。該層提供了不少組件和管理器,好比活動管理器(Activity Manager)、窗口管理器(Window Manager)、內容提供器(Content Providers)、視圖系統(View System)、包管理器(Package Manager)等等,那麼開發者基於該層進行開發,就容易多了。

3. 系統運行庫層是一些底層C/C++庫,主要包括Bionic系統C庫(C語言標準庫,系統最底層的庫)、多媒體庫(Media Framework)、SGL2D圖形引擎庫)、SSL(位於TCP/IP協議與各類應用層協議之間,提供數據通訊支持)、OpenGL ES 1.03D效果支持)、SQLite(關係數據庫)、WebkitWeb瀏覽器引擎)、FreeType(位圖bitmap及矢量圖vector)。

4. Linux內核主要是做爲硬件和軟件棧之間的抽象層,內核層提供以下一些驅動:顯示驅動(Display Driver)、鍵盤驅動(Keyboard Driver)、Flash內存驅動(Flash Memory Driver)、照相機驅動(Camera Driver)、音頻驅動(Audio Driver)、藍牙驅動(Bluetooth Driver,基於IEEE 802.15.1)、WiFi驅動、Binder IPC驅動(Android的一個特殊驅動程序,具備單獨的設備節點,提供進程間通訊)、Power Management(電源管理)。從軟件角度看,Linux內核就是硬件

5、一條最長的短信息約佔多少 byte?

英文:160字節。中文:70個漢字即140字節,還有20字節用來標識是中文短信。

相關文章
相關標籤/搜索