Android 的應用程式的優先順序和程序狀態

2021-09-01 20:26:02 字數 1553 閱讀 2470

**資源的時候,程序被終止的順序是由它們的承載(hosted)應用程式的優先順序所決定的。乙個應用程式的優先順序等同於它優先順序最高的元件的優先順序。(乙個應用程式的優先順序是根據 元件的優先順序進行判斷的(元件有 活動(activity),後台(service),內容提供者(contentprovider),intent(內容通訊協議),廣播(broadcastreceiver)))

當兩個應用程式有相同的優先順序時,處於較低優先順序且執行時間最長的程序將會首先被終止。

程序的優先順序也受到程序間依賴性的影響,如果乙個應用程式依賴於第二個應用程式所提供的服務或者內容提供器,那麼第二個應用程式至少會擁有與它所支援的這個應用程式相同的優先順序。

通過合理地組織應用程式來保證它具有能夠正常工作的適當的優先順序是非常重要的。如果沒有做到這一點,則應用程式就可能在某些比較重要的時刻被終止。

應用程式優先順序樹

1.活動程序

活動(前台)的程序是指那些有元件正和使用者進行互動的承載應用程式的程序。這些都是android嘗試通過**資源來保持效應的程序。這些程序的數量非常少,只有到最後的關頭才會終止這些程序。

活動程序包括:

· 處於「活動」狀態的activity(活動),也就是說,它們位於前台對使用者事件進行響應。

· 正在執行onreceive 事件處理函式的活動、服務或者廣播接收器。

· 正在執行onstart、oncreate或者ondestroy事件處理函式的服務。

2.可見程序

可見、但是非活動的程序,是指那些承載「可見」活動的程序。可見的活動能被使用者看到,但是它們並不在前台執行或者能對使用者事件做出反應。eg:當乙個活動被部分遮擋時(被乙個非全屏或者半透明的活動遮擋)就會出現這種情況。這些程序的數量也很少,只有在資源極度缺乏的環境下,為了保證活動程序繼續執行時才會終止這些程序。

3.啟動服務程序

已經啟動的承載服務程序。服務支援在沒有可見介面的情況下,仍然能夠繼續不間斷的處理。因為服務程序沒有直接和使用者互動,所以它們的優先順序要比可見程序低一些。但是它們仍然被認為是前台程序,直到活動或者可見的程序需要資源的時候,才會終止它們。

4.後台程序

那些承載不可見活動的,並且也沒有已經啟動的任何服務的程序即為後台程序。通常會有大量的後台程序,android將使用「最後乙個被看到,第乙個被殺死」的方式來終止它們,從而為前台程序提供資源。

5.空程序

為了提高系統整體效能,android經常在應用程式的生存期結束之後仍然把它們儲存在記憶體中。android通過維護這個快取來減少應用程式被再次啟動時的啟動時間。通常這些程序會按照要求被定期終止。

活動狀態:

Android應用程式的結構

1 src目錄 存放該項目的源 2 gen目錄 該目錄檔案是adt自動生成的,並不需要認為地去修改 3 android2.1 該目錄存放的是該專案支援的jar包,同時還包含專案打包時需要的meta inf目錄 4 assets目錄 在程式中可以使用 getresources.getassets op...

Android應用程式簽名

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

android 應用程式框架

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