1. 程式人生 > 其它 >安卓基礎知識

安卓基礎知識

看第一行程式碼時學習和記錄的

第一章:

Android的四層系統架構:

linux核心層(裡那克斯):安卓系統是基於linux核心的,這一層為安卓裝置的各種硬體提供了底層驅動

系統執行庫層:這一層通過一些C/C++庫來為android系統提供了重要的特性支援

應用框架層:這一層主要提供了構建應用程式時可能用到的各種API

應用層:這一層包含所有安裝在手機上的應用程式

Android系統四大元件

Activity、 Service、 Broadcast Reciver 、Content Provider

活動是安卓應用程式的門面,凡是在應用中你看的到的東西,都是放在活動中的

Activity是安卓系統提供的一個活動基類,我們專案中所有的活動都必須繼承它或者它的子類,才能擁有活動的特性

onCreate()方法,是一個活動被建立時必須要被執行的方法

安卓程式設計講究程式和檢視分離,因此不推薦直接在活動中編寫介面,更通用的一種方法時,在佈局檔案中編寫介面,然後在活動中引進來

專案中的資源:res資料夾

drawable開頭的放圖片

mipmap開頭的放應用圖示

values開頭的放字串 樣式 顏色等配置的

layout開頭的放佈局檔案的

程式碼中引用是用R.String.Hello

xml中引用 @String.Hello

android studio是利用gradle來構建工程的

安卓列印日誌的工具類是Log,等級首字母為方法名,從低到高分別是verbose、debug、info、warn(警告)、error(嚴重問題)

第二章 探究活動

活動是一種可以包含使用者介面的元件,主要用於和使用者互動,是安卓應用程式的門面,凡是你所看到的都是放在活動中的

專案中的任何activity都應該重寫Activity類的OnCreate()方法

最好每一個活動對應一個佈局

點選back按鈕可以銷燬一個環境,或者使用finish()方法,兩者效果是一樣的

點選啟動應用的圖示只會進入到這個應用的主頁活動頁面,那麼如何跳轉到其他活動呢

使用intent,其中有顯式intent和隱式intent

intent是安卓程式中各元件相互之間進行互動的一種方式,可以指明當前元件想要執行的動作,還可以在各個元件之間傳遞資料

intent一般可以用於啟動活動,啟動服務以及傳送廣播等場景

intent的有多個建構函式的過載,比如 Intent(Context,class),即需要兩個引數,一個是背景,一個是要開啟的活動

通過intent可以開啟網頁,一個活動向下一個活動傳遞資料,返回資料給上一個活動

活動的生命週期:

安卓中的活動是可以層疊的,每啟動一個新的活動,都會覆蓋在原來的活動之上,點選back會銷燬上面的活動,下面的一個活動重新展示出來

安卓是使用任務(Task)來管理活動的,一個任務就是一組存放在棧裡的活動的集合,這個棧也被稱為返回棧,棧是一種後進先出的資料結構

啟動一個新的活動時,該活動會在返回棧中入棧,位於棧頂,如果該活動被銷燬,那麼就會展示前一個入棧的活動,系統總是展示處於棧頂的活動給使用者

每個活動在其生命週期最多可能有四個狀態:

1、running 執行狀態:當一個活動位於返回棧的棧頂,此時活動處於執行狀態

2、paused 暫停狀態:當一個活動不再處於棧頂,但是仍然可見時,此時活動進入暫停狀態

3、stoped 停止狀態:當一個活動不再處於棧頂,並且完全不可見時,此時活動進入停止狀態,當其他地方需要記憶體時,停止狀態的活動會被回收

4、killed 銷燬狀態:當一個活動從返回棧中移除,就變成了銷燬狀態,系統最傾向於回收處於這種狀態的活動,從而保證手機裡的記憶體充足

(當一個Activity處於暫停狀態或停止狀態時就隨處可能進入死亡狀態,因為系統可能因記憶體不足而強行結束該Activity。
停止狀態到死亡狀態分為兩種情況:(1)由使用者操作導致,則執行:onStop() -> onDestroy()。(2)由系統自動強制執行,則該Activity被強行結束。)

Activity的七個回撥方法

啟動活動(從無要create--start--resume到running狀態)

onCreate() 該方法會在活動第一次被建立的時候呼叫,進行一些初始化操作

onStart()該方法在活動從不可見變成可見的時候呼叫

onResume()該方法在活動準備好和使用者互動的時候呼叫,此時的活動一定在棧頂且處於執行狀態

活動執行中

「另一個活動啟動,但是並未完全遮蓋」

onPause()在系統準備去啟動或者恢復另一個活動的時候呼叫(paused狀態執行resume到running狀態paused狀態執行stop到stoped狀態

「另一個活動啟動,且完全遮蓋」

onStop()在活動完全不可見時呼叫 (stoped狀態要執行restart--start-resume到running狀態

「活動被銷燬,退出app」

onDestroy()在活動被銷燬之前呼叫,之後活動的狀態將變為銷燬狀態

onRestart()在活動由停止狀態變成執行狀態之前呼叫,也就是活動被重新啟動了

以上七個方法,除了onRestart()方法,其他都是倆倆相對的

點選app圖示後主活動啟動,再點選進入其他頁面,這個過程中回撥方法的使用,和活動狀態的變化

1-點選app圖示--主活動被建立,主活動依次執行onCreate() onStart() onResume()方法,主活動是run執行狀態

2-點選一個全遮蓋主活動活動入口,主活動依次執行onPause() onStop(),主活動是Stop停止狀態

3-此時點選返回按鈕回到主活動頁面,執行onRestart()方法,之後依次執行onStart() onResume()方法,主活動run狀態

4-此時點選一個對話型別的活動入口,主活動執行onPause()方法,主活動paused狀態

5-再次點選返回按鈕,主活動執行onResume方法,主活動run狀態

6-再次點選返回,主活動依次執行onStop() onDestroy()

簡單來說,啟動app,主活動依次執行方法 onCreate onStart onResume 到達running狀態,其中onCreate是第一次建立活動才會呼叫

running活動被完全遮蓋,主活動依次執行(onPause onStop)到stoped狀態,如果從stoped狀態到running,需要onRestart onStart onResume

running活動被部分遮蓋,主活動執行onPause到paused狀態,如果從paused狀態到running,需要onResume

活動正在running,關閉app主活動依次執行方法 onPause onStop onDestroy 到destroyed狀態,其中onDestroyed要活動被銷燬或者被收回時執行

app放在後臺時,主活動要從當前狀態到達stoped狀態,如果是running那麼依次執行onPause onStop到stoped狀態,如果是paused那麼執行onStop到stoped狀態,已經stoped狀態則不變

app從後臺喚醒時,主活動走stoped狀態揮發到之前的狀態的步驟,如果之前是running那麼走onRestart onStart onResume,如果之前是paused那麼只走onRestart onStart