一种获取卸载信息的方法及装置的制造方法_2

文档序号:9546971阅读:来源:国知局
序被卸载,由于第一进程位于应用层,第一进程会随着该应用 程序被卸载而被释放掉,所以在操作系统层对第一进程复制得到位于操作系统层的第二进 程,并在后续将第二进程配置成为监控进程,如此监控进程在应用程序被卸载后仍可以获 取该应用程序的卸载信息并将卸载信息发送给服务器。
[0055] 具体地,通过第一进程从终端的操作系统层调用fork方法。设置第一进程在终端 的操作系统层通过fork方法对第一进程进行复制得到第二进程。
[0056] 其中,fork方法,又称分叉函数,一个现有进程可以调用fork方法创建一个新进 程。由fork创建的新进程被称为子进程。子进程是父进程的副本,子进程与父进程占用的 内存空间大小相同。在本发明实施例中,第二进程是第一进程的子进程,第二进程所占的内 存空间与第一进程所占的内存空间大小相同。由于第一进程的内存空间较大,所以第二进 程的内存空间也较大。
[0057] 例如,通过第一进程Pl从终端的操作系统层调用fork方法。设置第一进程Pl在 终端的操作系统层通过fork方法对第一进程Pl进行复制得到第二进程P2。
[0058] 其中,在通过上述步骤202的操作在终端的操作系统层创建第二进程之后,通过 如下步骤203的操作将第二进程转变为监控进程。
[0059] 步骤203 :设置第二进程运行卸载监控程序,以将第二进程转变为监控进程;
[0060] 具体地,通过第二进程从终端的操作系统层调用exec方法。控制第二进程通过 exec方法运行卸载监控程序,以将第二进程转变为监控进程。
[0061] 其中,exec方法将当前进程的正文、数据和存储空间等替换成新的程序文件。如 果当前进程的逻辑复杂且内存空间很大时,可以通过exec方法将当前进程的正文、数据和 存储空间等替换为逻辑简单且内存空间较小的可执行程序。
[0062] 例如,通过第二进程P2从终端的操作系统层调用exec方法。控制第二进程P2通 过exec方法运行卸载监控程序,以将第二进程P2转变为监控进程P"。
[0063] 其中,由于应用层的进程包含系统资源和虚拟机环境,导致应用层的进程所占的 内存空间较大,一般为几十兆字节。所以第一进程所占的内存空间较大。导致通过fork 方法对第一进程进行复制得到的第二进程所占的内存空间也较大。为了节省内存空间,控 制第二进程通过exec方法运行一个内存空间较小的可执行程序,即卸载监控程序,该卸载 监控程序为一个含有卸载监控逻辑的二进制程序,由于该卸载监控程序所占的内存空间很 小,所以大大节省了内存空间。例如,假设第一进程的内存空间为20MB,卸载监控程序的内 存空间为100KB,则第二进程的内存空间也为20MB。控制第二进程通过exec方法运行卸载 监控程序,如此将内存空间20MB的第二进程转变为内存空间为100KB的监控进程,大大节 省了内存空间。
[0064] 其中,由于第一进程是由该应用程序创建的,所以第一进程中包含与该应用程序 进行通信的接口。通过fork方法对第一进程进行复制时也对该接口进行了复制,所以复制 得到的第二进程中也包含与该应用程序进行通信的接口。所以通过exec方法将第二进程 转变为监控进程后,该监控进程可以建立与该应用程序之间的套接字连接,并通过该套接 字连接与该应用程序进行通信。
[0065] 其中,通过上述步骤203的操作得到监控进程之后,按照如下步骤204和205的操 作通过该监控进程实时监控该应用程序以及获取该应用程序的状态数据。
[0066] 步骤204 :通过该监控进程监控该应用程序;
[0067] 具体地,根据该应用程序的名称,从文件目录中获取该应用程序对应的文件目录 项,通过该监控进程对文件目录中该应用程序对应的文件目录项进行实时监控,以实现通 过监控进程监控该应用程序。
[0068] 其中,文件目录中记录了终端上的每个应用程序对应的文件目录项。文件目录项 至少包括该应用程序的名称,文件目录项可以为应用程序的存储路径等。当某个应用程序 被卸载时,该应用程序对应的文件目录项将会从文件目录中删除。所以如果监控进程监控 到该应用程序对应的文件目录项被删除,则可以确定出该应用程序被卸载。
[0069] 例如,假设应用程序A的文件目录项为C:\Programe Files\A。根据该应用程序的 名称A,从文件目录中获取该应用程序A对应的文件目录项C: \Programe Files\A,通过该 监控进程Pm对文件目录中该应用程序A对应的存储路径C: \Programe Files\A进行实时 监控,以实现通过监控进程Pni监控该应用程序A。
[0070] 步骤205 :通过该监控进程获取该应用程序在运行过程中产生的状态数据;
[0071] 其中,状态数据包括应用程序在运行过程中产生的所有数据。例如,应用程序在运 行过程中打开一个网页页面,该网页页面包括文本输入框,用户向该网页页面包括的文本 输入框中输入文本信息,此时该应用程序发生了闪退。则在此过程中打开的网页页面以及 该网页页面的打开时间、用户输入的文本信息和应用程序的闪退信息都是该应用程序的状 态数据。
[0072] 本步骤具体为,在监控进程与该应用程序之间建立套接字连接。控制该监控进程 通过该套接字连接实时获取该应用程序在运行过程中产生的状态数据,将该应用程序的应 用标识和获取的状态数据存储在应用标识和状态数据的对应关系中。
[0073] 其中,在应用程序运行过程中,应用程序实时记录产生的状态数据,然后通过监控 进程与该应用程序之间的套接字连接将产生的状态数据发送给监控进程。
[0074] 例如,在监控进程Pni与该应用程序A之间建立套接字连接。控制该监控进程P ni通 过该套接字连接实时获取该应用程序A在运行过程中产生的状态数据,将应用程序A的应 用标识Appl和获取的状态数据Sl存储在如表1所示的应用标识和状态数据的对应关系 中。
[0077] 进一步地,除了通过监控进程与该应用程序之间的套接字连接来直接获取该应用 程序的状态数据外,还可以通过如下方式来获取该应用程序的状态数据,具体为:通过该应 用程序记录运行过程中产生的状态数据并将状态数据存储在终端的安全卡中。在监控进程 与该应用程序之间建立套接字连接。控制该监控进程通过该套接字连接从该应用程序获取 状态数据的存储位置。当应用程序被卸载时,该监控进程可以根据获取的状态数据的存储 位置,从该存储位置处获取该应用程序的状态数据。
[0078] 其中,将状态数据存储在终端的安全卡中,在应用程序被卸载之后,安全卡中的状 态数据不会被删除。
[0079] 步骤206 :当监控出该应用程序被卸载时,通过该监控进程获取该应用程序的卸 载信息,该卸载信息包括终端标识、该应用程序的应用标识和状态数据;
[0080] 具体地,通过该监控进程对该应用程序进行实时监控,如果通过该监控进程监控 到该应用程序对应的文件目录项从文件目录中删除,则判断出该应用程序被卸载。获取终 端标识和该应用程序的应用标识。根据该应用程序的应用标识,通过该监控进程从已存储 的应用标识和状态数据的对应关系中获取该应用程序的状态数据。将获取的终端标识、该 应用程序的应用标识和状态数据组成该应用程序的卸载信息。
[0081] 其中,当应用程序被卸载后,该应用程序的所有文件都被删除,且该应用程序在应 用层创建的所有进程都被释放掉,即第一进程也被释放掉。而位于操作系统层的第二进程 仍被保留,即监控进程仍保留。
[0082] 例如,通过该监控进程Pni对该应用程序A进行实时监控,如果通过监控进程P ni监 控到该应用程序A对应的文件目录项C: \Programe Files\A从文件目录中删除,贝U判断出 该应用程序A被卸载。获取终端标识M和该应用程序A的应用标识Appl。根据该应用程序 A的应用标识Appl,通过该监控进程Pni从已存储的如表1所示的应用标识和状态数据的对 应关系中获取应用程序A的状态数据S1。将获取的终端标识M、该应用程序A的应用标识 Appl和状态数据Sl组成该应用程序A的卸载信息。
[00
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1