83] 步驟207 :通過監(jiān)控進程將該應(yīng)用程序的卸載信息發(fā)送給服務(wù)器。
[0084] 具體地,通過監(jiān)控進程與服務(wù)器建立網(wǎng)絡(luò)連接,通過該監(jiān)控進程將該應(yīng)用程序的 卸載信息發(fā)送給服務(wù)器。
[0085] 例如,通過監(jiān)控進程Pni與服務(wù)器建立網(wǎng)絡(luò)連接,通過該監(jiān)控進程Pni將該應(yīng)用程序 A的卸載信息發(fā)送給服務(wù)器。
[0086] 其中,服務(wù)器接收到該應(yīng)用程序的卸載信息之后,通過如下步驟(A-l)-(A-)的操 作根據(jù)該應(yīng)用程序的卸載信息分析該應(yīng)用程序的卸載原因,進而根據(jù)卸載原因完善該應(yīng) 用,具體包括:
[0087] (A-I):服務(wù)器根據(jù)該卸載信息包括的終端標(biāo)識和該應(yīng)用程序的應(yīng)用標(biāo)識,獲取終 端對應(yīng)的歷史記錄;
[0088] 其中,歷史記錄為終端上的該應(yīng)用程序與服務(wù)器進行通信過程中產(chǎn)生的通信數(shù) 據(jù)。每次終端登錄服務(wù)器時,服務(wù)器都獲取該終端的通信數(shù)據(jù),將該終端的終端標(biāo)識、該應(yīng) 用程序的應(yīng)用標(biāo)識和獲取的通信數(shù)據(jù)存儲在終端標(biāo)識、應(yīng)用標(biāo)識和歷史記錄的對應(yīng)關(guān)系 中。
[0089] 本步驟具體為,服務(wù)器根據(jù)該卸載信息包括的終端標(biāo)識和該應(yīng)用程序的應(yīng)用標(biāo) 識,從終端標(biāo)識、應(yīng)用標(biāo)識和歷史記錄的對應(yīng)關(guān)系中獲取終端對應(yīng)的歷史記錄。
[0090] 例如,服務(wù)器根據(jù)該卸載信息包括的終端標(biāo)識M和該應(yīng)用程序A的應(yīng)用標(biāo)識Appl, 從如表2所示的終端標(biāo)識、應(yīng)用標(biāo)識和歷史記錄的對應(yīng)關(guān)系中獲取終端對應(yīng)的歷史記錄。
[0093] (A-2):根據(jù)該卸載信息包括的狀態(tài)數(shù)據(jù)和獲取的歷史記錄分析該應(yīng)用程序的卸 載原因;
[0094] 具體地,查看該卸載信息包括的狀態(tài)數(shù)據(jù)和獲取的歷史記錄,如果狀態(tài)數(shù)據(jù)和歷 史記錄中包含故障信息,則將故障信息確定為該應(yīng)用程序的卸載原因。如果狀態(tài)數(shù)據(jù)和歷 史記錄中均不包含故障信息,則從狀態(tài)數(shù)據(jù)和歷史記錄中確定出用戶經(jīng)常使用的該應(yīng)用程 序的功能,將確定的功能作為該應(yīng)用程序的卸載原因。
[0095] 其中,應(yīng)用程序可以具有多種功能,如通訊功能、閱讀功能和拍攝功能等,在此就 不一一舉例。如果應(yīng)用程序沒有出現(xiàn)故障,而用戶卸載了該應(yīng)用程序,則表明用戶經(jīng)常使用 的該應(yīng)用程序的功能已無法滿足用戶的需求。
[0096] 例如,查看該卸載信息包括的狀態(tài)數(shù)據(jù)Sl和獲取的歷史記錄Hl,且狀態(tài)數(shù)據(jù)Sl和 歷史記錄Hl中包含故障信息"閃退",則將故障信息"閃退"確定為該應(yīng)用程序的卸載原因。
[0097] 再如,查看該卸載信息包括的狀態(tài)數(shù)據(jù)Sl和獲取的歷史記錄Hl,且狀態(tài)數(shù)據(jù)Sl和 歷史記錄Hl中均不包含故障信息,則從狀態(tài)數(shù)據(jù)Sl和歷史記錄Hl中確定出用戶經(jīng)常使用 的該應(yīng)用程序的拍攝功能,將拍攝功能作為該應(yīng)用程序的卸載原因。
[0098] (A-3):根據(jù)該應(yīng)用程序的卸載原因完善該應(yīng)用程序。
[0099] 其中,如果該應(yīng)用程序的卸載原因為故障信息,則將故障信息發(fā)送給技術(shù)人員對 應(yīng)的終端,技術(shù)人員根據(jù)該故障信息對該應(yīng)用程序進行改進,然后將改進后該應(yīng)用程序的 安裝包發(fā)布到服務(wù)器上,或者僅將該故障對應(yīng)的改進程序發(fā)布到服務(wù)器上。如果該應(yīng)用程 序的卸載原因為用戶經(jīng)常使用的該應(yīng)用程序的功能,則將該功能的標(biāo)識發(fā)送給技術(shù)人員對 應(yīng)的終端,技術(shù)人員根據(jù)該功能的標(biāo)識確定該功能,然后通過分析該功能以及用戶的需求 來完善該功能。
[0100] 例如,該應(yīng)用程序A的卸載原因為故障信息"閃退",將故障信息"閃退"發(fā)送給技 術(shù)人員對應(yīng)的終端,技術(shù)人員根據(jù)該故障信息"閃退"對該應(yīng)用程序A進行改進,然后將改 進后該應(yīng)用程序A的安裝包發(fā)布到服務(wù)器上,或者僅將該故障信息"閃退"對應(yīng)的改進程序 發(fā)布到服務(wù)器上。
[0101] 再如,該應(yīng)用程序A的卸載原因為用戶經(jīng)常使用的該應(yīng)用程序A的拍攝功能,將拍 攝功能的標(biāo)識Camera發(fā)送給技術(shù)人員對應(yīng)的終端,技術(shù)人員根據(jù)該標(biāo)識Camera確定出該 功能為拍攝功能,然后分析該拍攝功能以及用戶的需求,發(fā)現(xiàn)該拍攝功能不能對圖像進行 美化,而當(dāng)前用戶具有對拍攝的圖像進行美化的需求,因此技術(shù)人員對該應(yīng)用程序A的拍 攝功能添加美化功能,以實現(xiàn)完善該應(yīng)用程序A。
[0102] 在本發(fā)明實施例中,當(dāng)應(yīng)用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;通過 該監(jiān)控進程監(jiān)控該應(yīng)用程序以及獲取該應(yīng)用程序在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);當(dāng)監(jiān)控出 該應(yīng)用程序被卸載時,通過該監(jiān)控進程獲取該應(yīng)用程序的卸載信息;通過該監(jiān)控進程將該 應(yīng)用程序的卸載信息發(fā)送給服務(wù)器。由于在終端的操作系統(tǒng)層創(chuàng)建了監(jiān)控進程,在該應(yīng)用 程序卸載之后,通過該監(jiān)控進程獲取了該應(yīng)用程序的卸載信息,并將該應(yīng)用程序的卸載信 息發(fā)送給服務(wù)器。如此在應(yīng)用程序卸載之后可以使服務(wù)器獲取到該應(yīng)用程序的卸載信息, 進而根據(jù)卸載信息分析該應(yīng)用程序的卸載原因以及根據(jù)卸載原因來完善該應(yīng)用程序。
[0103] 實施例3
[0104] 參見圖3,本發(fā)明實施例提供了一種獲取卸載信息的方法,包括:
[0105] 創(chuàng)建模塊301,用于當(dāng)應(yīng)用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;
[0106] 監(jiān)控獲取模塊302,用于通過該監(jiān)控進程監(jiān)控該應(yīng)用程序以及獲取該應(yīng)用程序在 運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);
[0107] 獲取模塊303,用于當(dāng)監(jiān)控出該應(yīng)用程序被卸載時,通過該監(jiān)控進程獲取該應(yīng)用程 序的卸載信息;
[0108] 發(fā)送模塊304,用于通過該監(jiān)控進程將該應(yīng)用程序的卸載信息發(fā)送給服務(wù)器。
[0109] 其中,創(chuàng)建模塊301包括:
[0110] 創(chuàng)建單元,用于通過該應(yīng)用程序創(chuàng)建一個獨立于該應(yīng)用程序的第一進程;
[0111] 復(fù)制單元,用于在終端的操作系統(tǒng)層對第一進程進行復(fù)制得到第二進程;
[0112] 設(shè)置單元,用于設(shè)置第二進程運行卸載監(jiān)控程序,以將第二進程轉(zhuǎn)變?yōu)楸O(jiān)控進程。
[0113] 其中,復(fù)制單元包括:
[0114] 第一調(diào)用子單元,用于通過第一進程從終端的操作系統(tǒng)層調(diào)用分叉fork方法;
[0115] 復(fù)制子單元,用于設(shè)置第一進程在終端的操作系統(tǒng)層通過fork方法對第一進程 進行復(fù)制得到第二進程。
[0116] 其中,設(shè)置單元包括:
[0117] 第二調(diào)用子單元,用于通過第二進程從終端的操作系統(tǒng)層調(diào)用執(zhí)行exec方法;
[0118] 運行子單元,用于控制第二進程通過exec方法運行卸載監(jiān)控程序。
[0119] 其中,監(jiān)控獲取模塊302包括;
[0120] 建立單元,用于在該監(jiān)控進程與該應(yīng)用程序之間建立套接字連接;
[0121] 獲取單元,用于控制該監(jiān)控進程通過該套接字連接獲取該應(yīng)用程序在運行過程中 產(chǎn)生的狀態(tài)數(shù)據(jù)。
[0122] 其中,監(jiān)控獲取模塊302,用于通過該監(jiān)控進程對文件目錄中該應(yīng)用程序?qū)?yīng)的文 件目錄項進行實時監(jiān)控,以實現(xiàn)通過該監(jiān)控進程監(jiān)控該應(yīng)用程序。
[0123] 進一步地,該裝置還包括:
[0124] 判斷模塊,用于如果通過該監(jiān)控進程監(jiān)控到該應(yīng)用程序?qū)?yīng)的文件目錄項從文件 目錄中刪除,則判斷該應(yīng)用程序被卸載。
[0125] 其中,該卸載信息包括終端標(biāo)識、該應(yīng)用程序的應(yīng)用標(biāo)識和狀態(tài)數(shù)據(jù)。
[0126] 在本發(fā)明實施例中,當(dāng)應(yīng)用程序啟動時,在終端的操作系統(tǒng)層創(chuàng)建監(jiān)控進程;通過 該監(jiān)控進程監(jiān)控該應(yīng)用程序以及獲取該應(yīng)用程序在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù);當(dāng)監(jiān)控出 該應(yīng)用程序被卸載時,通過該監(jiān)控進程獲取該應(yīng)用程序的卸載信息;通過該監(jiān)控進程將該 應(yīng)用程序的卸載信息發(fā)送給服務(wù)器。由于在終端的操作系統(tǒng)層創(chuàng)建了監(jiān)控進程,在該應(yīng)用 程序卸載之后,通過該監(jiān)控進程獲取了該應(yīng)用程序的卸載信息,并將該應(yīng)用程序的卸載信 息發(fā)送給服務(wù)器。如此在應(yīng)用程序卸載之后可以使服務(wù)器獲取到該應(yīng)用程序的卸載信息, 進而根據(jù)卸載信息分析該應(yīng)用程序的卸載原因以及根據(jù)卸載原因來完善該應(yīng)用程序。
[0127] 實施例4
[0128] 請參考圖4,其示出了本發(fā)明實施例所涉及的具有觸敏表面的終端結(jié)構(gòu)示意圖,該 終端可以用于實施上述實施例中提供的進行驗證碼驗證的方法。具體來講:
[0129] 終端900可以包括RF(Radio Freque