Android基礎知識(可能對面試有幫助)
阿新 • • 發佈:2019-01-07
1、Android的四大元件
- Activity:提到Activity就要想到它的生命週期,一般一個活動啟動的順序是onCreate()➝onStart()➝onResume();當另外一個活動如B啟動的時候,活動A就onPause(),而活動B就onCreate()➝onStart()➝onResume();當返回第一個活動A的時候,活動B就會onPause(),活動A就會onRestart()➝onStart()➝onResume();活動B就onPause()➝onStop()➝onDestory();
一個Activity的銷燬順序是:onPause()➝onStop()➝onDestory() 一般我們這樣理解:onCreate()
- Server服務:可以用在許多地方,比如播放多媒體時啟動另外一個活動,多媒體還要後臺繼續播放;又比如後臺記錄你的位置發生變化。要提到的是,使用Service,需要在配置檔案裡宣告,才可以使用startservice()和bindservice();
- Broadcast Receiver廣播接收器:(例子:手機來信有廣播通知,電量不足有廣播)分為兩種,一、標準廣播,完全非同步執行,特點是:廣播播出後,所有廣播接收器都可以接收,因為他們之間沒有順序,缺點是無法截斷。二、有序廣播,特點是:廣播播出後,同一時刻只有一個廣播器能接收,當該廣播器處理完後,才會繼續傳遞,可以選擇截斷,不讓下面接收,優先順序高的先接收。
廣播接收器可以自由地對自己感興趣的廣播進行註冊,當有相應的廣播發出後,就會接收。他有兩種註冊方式。一、動態註冊
- Content Provider內容提供者:即對外共享資料,把應用中的資料提供給其他應用,如聯絡人,圖片等資料
- Linux核心層:Android是基於Linux核心的,該層為安卓的硬體提供了底層的驅動,如顯示驅動,藍芽驅動。
- 系統執行庫:該層通過一些c/c++庫來為Android系統提供一些主要的特性支援,如SQLite庫提供資料庫的支援,Webkit提供瀏覽器核心的支援。同樣這一層還有系統執行庫,它提供了一些核心庫,能夠使開發者使用java語言來編寫Android應用。該庫還提供了Dalvik虛擬機器,使得每一android應用程式能夠獨立執行
- 應用框架層:提供構建應用程式時要用到的API
- 應用層:手機安裝的應用程式都在這一層
- standard:系統預設的載入方式,在同一個task裡可以反覆例項同一個Activity,比如在棧A,B,C,D裡,當用intent啟動D時,會例項一個新的D-Activity,放進task裡,即A,B,C,D,D;如果此時按返回鍵的話,就會依次彈出D,D,C,B,A。
- singleTop:用一句話來概述就是,同一個Activity可以被多次例項,但是不允許兩個相同的Activity相鄰。比如在棧A,B,C,D裡,當要啟動D時,是不會新建一個D的,即還是A,B,C,D;但是如果要啟動一個B時,就會新建一個B,即A,B,C,D,B;
- singleTask:在這個task裡,不會出現兩個相同的Activity,會把要跳轉的Activity上面所有的Activity彈出。比如在棧A,B,C,D裡,要啟動B的話,就把C,D彈出,即task裡只剩A,B;
- singleInstance:為有定義的singleInstance的Activity,新建一個task來放。比如說D的啟動模式是singleInstance,同時棧裡有A,B,C,如果要跳轉D,則會新建個task2,並把D放在task2。
- SharePreferences:是用來儲存一些簡單的資訊,如使用者的密碼,賬號。使用Map的資料結構來儲存資料,以鍵值對的方式儲存,採用了XML的格式將資料儲存到裝置中。(只能在同一個應用中共享資料)
- 檔案儲存方式:使用了Java的IO操作來進行檔案的儲存和讀取,只不過Android的Context類中封裝好了輸入和輸出流的方法。可以如圖片,音訊等
- SQLite:是一個輕量型的關係型資料庫,操作語句與mysql,sqlserver有類似。
- ContentProvider:可以提供一個數據如:系統的音訊,視訊,圖片,私人通訊錄等,當然要獲得許可權。除此之外,一個應用程式想訪問另外一個程式資料也可以使用ContentProvider。