android進程保活

一、android進程的優先級

在這裏插入圖片描述

二、android進程的回收策略

在這裏插入圖片描述

三、進程保活方案

1、利用系統廣播拉活

缺點:
1)、系統廣播不可控,只有在系統廣播發生的時候能重啓,不能在進程一被殺死就重啓。
2)、

2、利用系統Service機制拉活

在service中有一個onStartCommend(),將返回值設置爲start_stick(當service因系統內存不足被殺死時,在系統內存充足時重新啓動service,調用onStartCommend()),這樣就可以在service被殺死時候,自動重啓service。
缺點:只能在當service因系統內存不足被殺死時,才能重新啓動。
當例如進程被強制殺死後,service無法重啓進程。

3、利用native進程拉活

利用linux 中fork機制創建一個native進程,在native進程可以監控主進程的存活,
當主進程掛掉後,可以立即對主進程拉活,主要利用的就是android裏面的AMS來管理。
在系統5.0後,系統對native進程加強了管理,就不管用了。
1、native進程中如何監控主進程呢?
1)、在native進程中只用死循環或定時器監控,但是這是比較耗時的,浪費資源的。
2)、在主進程中創建一個文件, 並且在主進程中持有文件的鎖,native進程在申請文件鎖時會被阻塞,一旦獲取了文件鎖,說明主進程掛掉了。就可以通過native進程拉活。

2、如何在native進程中對主進程進行拉活?
主要是am命令

4、 利用JobScheduler機制拉活

會監聽主進程

5、利用賬戶同步機制拉活

最新版本對賬戶同步改動了,估計不行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章