android apk解除安裝監控調研與分析(1)

2021-06-20 15:15:28 字數 1082 閱讀 9871

因工作上的需要,需要對自己的apk做解除安裝監控,在這個過程中遇到了很多的問題,雖然實現了功能,不過個人覺得不夠完善。先記錄下來以便後續嘗試優化。

一。基本思路分析:

由於android並沒有自監控是否解除安裝的介面,網上有yiixe方法,包括監控系統日誌,啟用子程序的方式來監控等。個人覺得360的解除安裝自監控做的很好,雖然可以知道是通過子程序的方式來監控,但是其子程序的名稱,包括子程序的所用的資源都與父程序不同,通過fork()方式建立的子程序完全無法達到這個效果,雖然查了一些資料想達到類似的效果,可惜一直沒有結果。

通過嘗試監控系統日誌與子程序監控兩種方式,個人覺得子程序監控的方式更好,日誌監控的不穩定性教過,而且為了保證監聽的效果,很耗資源與電量。

總的來說思路如下:

主程序啟動時,通過ndk的方式啟動乙個子程序,該子程序首先使用目錄***用來監聽apk資源目錄的狀態,判斷是否出現了delete操作,如出現,則檢查apk包是否還存在,如果不存在,則表明出現了解除安裝操作。(當然,這個裡邊還涉及到時間間隔的控制)

二。遇到問題與解決方案:

1.apk多次啟動時,子程序重複建立的問題。

這個問題是通過檔案鎖來進行的,子程序建立時在apk資源目錄下建立乙個lockfile,通過檢查lockfile的狀態來判斷子程序是否存在,如果存在則不重複建立。

ps:這裡又會出現在使用了清理資料的操作後,由於資源目錄被delete,因此子程序又被重複建立的問題,這裡似乎陷入了乙個迴圈無解的地步。

2.子程序與父程序資源共享的問題。

fork出的子程序與父程序共享資源,這就存在乙個問題,當父程序結束時該如何處理?父程序結束時,子程序會被系統的inti接管,但是如果是父程序整在使用時被意外kill掉,由於子程序被init程序接管,因此父程序與子程序的共享資源還沒有釋放,就會導致手機卡在父程序的介面中,由於父程序已經結束,因此你無法做任何操作,除非系統會受到子程序,將資源釋放掉後才可。當然這個情況不確實是否多見,不過對於乙個桌面軟體來說這個問題就比較嚴重了。

嘗試過通過singal的方式使得父程序結束時通知子程序,子程序自行結束,雖然可以避免這個問題,但是需要的解除安裝監聽效果就不夠了。你沒辦法保證使用者在解除安裝apk時你的父程序時是存在的。

這裡似乎又陷入了乙個無解的地步。

OpenStack監控 整合Nagios調研總結

1.nagios是什麼?nagios 企業級開源監控系統,通過強大的外掛程式和附件功能,對於host,service,network,alert提供豐富的監控功能。以下為nagios的主要功能點 2.nagios能做什麼?3.nagios怎麼做?1 監控host service network 2 ...

威盾監控軟體解除安裝

1 思路 試用pe工具或進入安全模式刪除所有的監控軟體元件,重啟後刪除關停服務刪除登錄檔 2 大致內容 數字簽名為如下內容的軟體,確認公司歸屬 t.e.c solutions g.z.limited verisign time stamping services signer g2 在windows...

MySQL的監控和調優

懂php的人一般都懂mysql這一點不假,大多數書籍裡也是這樣,書中前面講php後面到資料庫這塊就會講到mysql的一些知識,前幾年mysql一直是php書籍的一部分,後來開始從國外翻譯了一些專門講述mysql的書籍。但大多數還是不如mysql手冊裡講的精細。目前國內也有了一些講mysql比較好的資...