Android應用程式的生命週期

2021-07-07 11:08:47 字數 991 閱讀 1343

乙個常見的程序生命週期漏洞的例子是intent receiver,當intent receiver在方法onreceiver()中接收到乙個intent時會啟動乙個執行緒,然後返回。一旦返回,系統將認為intent receiver不再處於活動狀態,因為intent receiver所在的程序也就不再有用了,除非在該程序中還有其他的元件處於活動狀態。

因此,系統可能會在任意時刻終止該程序,以**占有的記憶體,這樣在程序中建立出的那個執行緒也將被終止。

解決這個問題的方法是從intent receiver中啟動乙個服務,讓系統知道在程序中還有處於活動狀態的工作。

為了使系統能夠正確決定在記憶體不足時應該終止哪個程序,android根據每個程序中執行的元件及元件的狀態把程序放進乙個「important hierarchy(重要性分級)」中,在其中程序的型別是按照重要程度排序的。

1、前台程式(foreground)

最前面的。

它的onresume()被呼叫。

2、可見程式(visible)

比如乙個對話方塊下面的那個活動就是可見程式。

它的onpause()被呼叫。

3、服務程序(service)

使用者不可見服務程序,系統一直執行服務,除非記憶體不足以維持所有的前台程序和可見程序。

startservice()方法呼叫。

4、後台程序(background)

使用者看不到的活動。

它的onstop()被呼叫。

5、空程序(empty)

它是不擁有任何活動的應用程式元件的程序。保留這種程序的唯一原因是在下次應用程式的某個元件需要執行時,不需要重新建立程序,這樣可以提高啟動速度。系統將以程序中當前處於活動狀態元件的重要程度為基礎對程序進行分類。程序的優先順序可能也會根據該程序與其他程序的依賴關係而增長。

例如:如果程序a通過在程序b中設定context.bind_auto_create標記或使用contentprovider被繫結到乙個服務,那麼程序b在分類時至少要被堪稱與程序a同等重要。

Android應用程式簽名

android系統要求所有的程式經過數字簽名才能安裝,如果沒有可用的數字簽名,系統將不許安裝執行此程式,不管是模擬器還是真實手機。因此,在裝置或者是模擬器上執行除錯程式之前,必須為應用程式設定數字簽名。android 系統僅僅會在安裝的時候測試簽名證書的有效期,如果應用程式的簽名是在安裝之後才到期,...

android 應用程式框架

在進行android軟體開發時,開發者所開發的android應用程式都是通過應用程式框架來與android底層進行互動的,所以開發中接觸到最多的部分就是應用程式框架。在整合應用程式框架 中有4個重要的元件,介紹如下。activities 乙個activities就表示乙個程式的顯示介面,在乙個應用程...

Android 應用程式架構

android應用程式架構 1 可擴充套件檢視 view 建立應用程式 2 內容管理器 content providers 訪問其他應用程式資料 共享自身資料 3 資源管理器 resource manager 提供非 資源訪問,本地字串 分層檔案 4 通知管理器 notification manag...