一種獲取卸載信息的方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)通信領域,特別涉及一種獲取卸載信息的方法及裝置。
【背景技術】
[0002] 目前,用戶經(jīng)常會因為各種原因卸載終端上安裝的應用程序,例如,當終端上安裝 的應用程序出現(xiàn)故障時,用戶可能會卸載該出現(xiàn)故障的應用程序。此時服務器需要獲取該 應用程序的卸載信息,然后根據(jù)該應用程序的卸載信息分析該應用程序的卸載原因,進而 根據(jù)卸載原因來完善該應用程序。
[0003] 當前,當用戶需要卸載某應用程序時,用戶向終端提交該應用程序的卸載請求。終 端當接收到該應用程序的卸載請求時,卸載該應用程序。在該應用程序被卸載之后,該應用 程序的所有文件都被刪除,且該應用程序與服務器之間的連接斷開,因此該應用程序無法 獲取到該應用程序的卸載信息,也無法將卸載信息發(fā)送給服務器,導致服務器無法獲取到 該應用程序的卸載信息,進而無法根據(jù)該應用程序的卸載信息分析該應用程序的卸載原因 以及根據(jù)卸載原因來完善該應用程序。
【發(fā)明內容】
[0004] 為了在應用程序卸載之后獲取到該應用程序的卸載信息并將卸載信息發(fā)送給服 務器,本發(fā)明提供了一種獲取卸載信息的方法及裝置。所述技術方案如下:
[0005] -種獲取卸載信息的方法,所述方法包括:
[0006] 當應用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;
[0007] 通過所述監(jiān)控進程監(jiān)控所述應用程序以及獲取所述應用程序在運行過程中產(chǎn)生 的狀態(tài)數(shù)據(jù);
[0008] 當監(jiān)控出所述應用程序被卸載時,通過所述監(jiān)控進程獲取所述應用程序的卸載信 息;
[0009] 通過所述監(jiān)控進程將所述應用程序的卸載信息發(fā)送給服務器。
[0010] 一種獲取卸載信息的裝置,所述裝置包括:
[0011] 創(chuàng)建模塊,用于當應用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;
[0012] 監(jiān)控獲取模塊,用于通過所述監(jiān)控進程監(jiān)控所述應用程序以及獲取所述應用程序 在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);
[0013] 獲取模塊,用于當監(jiān)控出所述應用程序被卸載時,通過所述監(jiān)控進程獲取所述應 用程序的卸載信息;
[0014] 發(fā)送模塊,用于通過所述監(jiān)控進程將所述應用程序的卸載信息發(fā)送給服務器。
[0015] 在本發(fā)明實施例中,當應用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;通過 該監(jiān)控進程監(jiān)控該應用程序以及獲取該應用程序在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);當監(jiān)控出 該應用程序被卸載時,通過該監(jiān)控進程獲取該應用程序的卸載信息;通過該監(jiān)控進程將該 應用程序的卸載信息發(fā)送給服務器。由于在終端的操作系統(tǒng)層創(chuàng)建了監(jiān)控進程,在該應用 程序卸載之后,通過該監(jiān)控進程獲取了該應用程序的卸載信息,并將該應用程序的卸載信 息發(fā)送給服務器。如此在應用程序卸載之后可以使服務器獲取到該應用程序的卸載信息, 進而根據(jù)卸載信息分析該應用程序的卸載原因以及根據(jù)卸載原因來完善該應用程序。
【附圖說明】
[0016] 圖1是本發(fā)明實施例1提供的一種獲取卸載信息的方法流程圖;
[0017] 圖2是本發(fā)明實施例2提供的一種獲取卸載信息的方法流程圖;
[0018] 圖3是本發(fā)明實施例3提供的一種獲取卸載信息的裝置結構示意圖;
[0019] 圖4是本發(fā)明實施例4提供的一種終端的結構示意圖。
【具體實施方式】
[0020] 為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方 式作進一步地詳細描述。
[0021] 實施例1
[0022] 參見圖1,本發(fā)明實施例提供了一種獲取卸載信息的方法,包括:
[0023] 步驟101 :當應用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;
[0024] 步驟102 :通過該監(jiān)控進程監(jiān)控該應用程序以及獲取該應用程序在運行過程中產(chǎn) 生的狀態(tài)數(shù)據(jù);
[0025] 步驟103 :當監(jiān)控出該應用程序被卸載時,通過該監(jiān)控進程獲取該應用程序的卸 載信息;
[0026] 步驟104 :通過該監(jiān)控進程將該應用程序的卸載信息發(fā)送給服務器。
[0027] 優(yōu)選地,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程,包括:
[0028] 通過該應用程序創(chuàng)建一個獨立于該應用程序的第一進程;
[0029] 在終端的操作系統(tǒng)層對第一進程進行復制得到第二進程;
[0030] 設置第二進程運行卸載監(jiān)控程序,以將第二進程轉變?yōu)楸O(jiān)控進程。
[0031] 優(yōu)選地,在終端的操作系統(tǒng)層對第一進程進行復制得到第二進程,包括:
[0032] 通過第一進程從終端的操作系統(tǒng)層調用分叉fork方法;
[0033] 設置第一進程在終端的操作系統(tǒng)層通過fork方法對第一進程進行復制得到第二 進程。
[0034] 優(yōu)選地,設置第二進程運行卸載監(jiān)控程序,包括:
[0035] 通過第二進程從終端的操作系統(tǒng)層調用執(zhí)行exec方法;
[0036] 控制第二進程通過exec方法運行卸載監(jiān)控程序。
[0037] 優(yōu)選地,獲取該應用程序在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù),包括;
[0038] 在該監(jiān)控進程與該應用程序之間建立套接字連接;
[0039] 控該制監(jiān)控進程通過該套接字連接獲取該應用程序在運行過程中產(chǎn)生的狀態(tài)數(shù) 據(jù)。
[0040] 優(yōu)選地,通過該監(jiān)控進程監(jiān)控該應用程序,包括:
[0041] 通過該監(jiān)控進程對文件目錄中該應用程序對應的文件目錄項進行實時監(jiān)控,以實 現(xiàn)通過該監(jiān)控進程監(jiān)控該應用程序。
[0042] 進一步地,通過該監(jiān)控進程獲取該應用程序的卸載信息之前,還包括:
[0043] 如果通過該監(jiān)控進程監(jiān)控到該應用程序對應的文件目錄項從文件目錄中刪除,則 判斷該應用程序被卸載。
[0044] 優(yōu)選地,該卸載信息包括終端標識、該應用程序的應用標識和狀態(tài)數(shù)據(jù)。
[0045] 在本發(fā)明實施例中,當應用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;通過 該監(jiān)控進程監(jiān)控該應用程序以及獲取該應用程序在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);當監(jiān)控出 該應用程序被卸載時,通過該監(jiān)控進程獲取該應用程序的卸載信息;通過該監(jiān)控進程將該 應用程序的卸載信息發(fā)送給服務器。由于在終端的操作系統(tǒng)層創(chuàng)建了監(jiān)控進程,在該應用 程序卸載之后,通過該監(jiān)控進程獲取了該應用程序的卸載信息,并將該應用程序的卸載信 息發(fā)送給服務器。如此在應用程序卸載之后可以使服務器獲取到該應用程序的卸載信息, 進而根據(jù)卸載信息分析該應用程序的卸載原因以及根據(jù)卸載原因來完善該應用程序。
[0046] 實施例2
[0047] 參見圖2,本發(fā)明實施例提供了一種獲取卸載信息的方法,當用戶需要卸載某應用 程序時,終端可以通過本發(fā)明實施例提供的方法獲取該應用程序的卸載信息,然后將獲取 的卸載信息發(fā)送給服務器,該方法具體包括:
[0048] 步驟201 :當應用程序啟動時,通過該應用程序創(chuàng)建一個獨立于該應用程序的第 一進程;
[0049] 其中,第一進程為獨立于該應用程序的一個進程。第一進程用于配置監(jiān)控進程,監(jiān) 控進程用于對該應用程序進行監(jiān)控,以及在該應用程序卸載之后獲取該應用程序的卸載信 息并將獲取的卸載信息發(fā)送給服務器。
[0050] 本步驟具體為,當應用程序啟動時,該應用程序在應用層利用應用層服務進程創(chuàng) 建第一進程,第一進程獨立于該應用程序。
[0051] 其中,應用層服務進程負責進行業(yè)務邏輯處理,應用程序可以利用應用層服務進 程來創(chuàng)建其他進程。第一進程包含系統(tǒng)資源和虛擬機環(huán)境,所以第一進程所占的內存空間 較大。
[0052] 例如,當應用程序A啟動時,應用程序A在應用層利用應用層服務進程創(chuàng)建第一進 程Pl,第一進程Pl獨立于應用程序A。
[0053] 步驟202 :在終端的操作系統(tǒng)層對第一進程進行復制得到第二進程;
[0054] 其中,第二進程在后續(xù)被轉變?yōu)楸O(jiān)控進程。第二進程位于操作系統(tǒng)層,不受應用程 序卸載的影響,如果該應用程