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