一种应用程序管理方法、装置、计算设备及可读存储介质转让专利
申请号 : CN202110214104.2
文献号 : CN113032038B
文献日 : 2022-05-03
发明人 : 李鹤 , 蔡梦辞 , 蔡涛
申请人 : 武汉深之度科技有限公司
摘要 :
权利要求 :
1.一种应用程序管理方法,适于在操作系统中执行,所述操作系统驻留在计算设备中,所述计算设备包括启动应用程序容器,所述启动应用程序容器中包括启动的应用程序,所述方法包括:
获取待处理的目标进程号;
根据所述目标进程号获取所述目标进程号对应的第一包名;
根据所述启动应用程序容器中的应用程序获取所述应用程序对应的第二包名;
根据所述第一包名和第二包名获取所述目标进程号对应的目标应用程序;
其中,所述计算设备包括程序数据库,所述程序数据库中包括应用程序的执行路径、包名以及桌面名称的关联关系;
所述根据所述目标进程号获取所述目标进程号对应的第一包名包括:根据所述目标进程号获取对应的执行路径;
根据所述执行路径及程序数据库获取所述目标进程号对应的第一包名;
所述启动应用程序容器中还包括应用程序的桌面名称,所述根据所述启动应用程序容器中的应用程序获取所述应用程序对应的第二包名包括:从所述启动应用程序容器中获取应用程序的桌面名称;
根据所述应用程序的桌面名称在所述程序数据库中获取所述应用程序对应的包名,并作为第二包名。
2.如权利要求1所述的方法,其中,所述根据所述第一包名和第二包名获取所述目标进程号对应的目标应用程序包括:遍历所述启动应用程序容器中的应用程序,获取所述应用程序对应的第二包名;
当所述应用程序的第二包名与所述目标进程号的第一包名一致时,当前所述应用程序为目标应用程序;
将所述第二包名存储到所述目标应用程序的相关信息中。
3.如权利要求2所述的方法,其中,所述程序数据库的构建过程包括以下步骤:获取所述操作系统中的所有应用程序安装包的包名;
获取所述包名的相关联文件;
从所述相关联文件中解析出包名所对应的应用程序的桌面名称和执行路径;
将所述包名、桌面名称和执行路径相关联的存储到所述程序数据库中。
4.如权利要求1‑3中任意一项所述的方法,所述方法还包括:当查询所述程序数据库时,判断所述程序数据库是否存在,当所述程序数据库不存在时,创建所述程序数据库。
5.一种应用程序管理装置,适于驻留在操作系统中,所述操作系统驻留在计算设备中,所述计算设备包括启动应用程序容器,所述启动应用程序容器中包括启动的应用程序,所述装置包括第一处理模块和第二处理模块,其中,第一处理模块,适于获取待处理的目标进程号,以便所述第二处理模块获取所述目标进程号对应的第一包名;还适于获取启动应用程序容器中的应用程序,以便所述第二处理模块获取所述应用程序对应的第二包名;还适于根据所述第一包名和第二包名获取所述目标进程号对应的目标应用程序;
第二处理模块,适于获取所述目标进程号对应的第一包名,还适于获取应用程序对应的第二包名;
其中,所述计算设备包括程序数据库,所述程序数据库中包括应用程序的执行路径、包名以及桌面名称的关联关系;
所述根据所述目标进程号获取所述目标进程号对应的第一包名包括:根据所述目标进程号获取对应的执行路径;
根据所述执行路径及程序数据库获取所述目标进程号对应的第一包名;
所述启动应用程序容器中还包括应用程序的桌面名称,所述根据所述启动应用程序容器中的应用程序获取所述应用程序对应的第二包名包括:从所述启动应用程序容器中获取应用程序的桌面名称;
根据所述应用程序的桌面名称在所述程序数据库中获取所述应用程序对应的包名,并作为第二包名。
6.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1‑4中任一项所述方法的指令。
7.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1‑4中任一项所述方法。
说明书 :
一种应用程序管理方法、装置、计算设备及可读存储介质
技术领域
背景技术
统会首先获取到进程号,例如,某一应用程序启动,系统先获取到的是用于启动该应用程序
的进程的进程号,进而根据获取到的进程号获取相应的应用程序,需要完成进程和应用程
序之间的关联匹配。
号的包名,还需要通过dpkg‑l来获取包名相关联文件信息,最后解析相关信息获取到
desktop名称,通过desktop匹配到应用程序。这种应用程序匹配过程需要执行两次dpkg命
令,同时需要信息解析才能完成,当同时启动多个进程时,很容易造成卡顿,影响应用程序
的处理性能。同时,因为一个应用程序可能存在多个desktop名称,在进行相关联文件信息
解析时,并不能准确解析出对应的desktop名称,导致应用程序匹配错误。
发明内容
动的应用程序,方法包括:获取待处理的目标进程号;根据目标进程号获取目标进程号对应
的第一包名;根据启动应用程序容器中的应用程序获取应用程序对应的第二包名;根据第
一包名和第二包名获取目标进程号对应的目标应用程序。
获取目标进程号对应的第一包名。
括:从启动应用程序容器中获取应用程序的桌面名称;根据应用程序的桌面名称在程序数
据库中获取应用程序对应的包名,并作为第二包名。
对应的第二包名;当应用程序的的第二包名与目标进程号的第一包名一致时,当前应用程
序为目标应用程序;将第二包名存储到目标应用程序的相关信息中。
件中解析出包名所对应的应用程序的桌面名称和执行路径;将包名、桌面名称和执行路径
相关联的存储到程序数据库中。
启动的应用程序,装置包括第一处理模块和第二处理模块,其中,第一处理模块,适于获取
待处理的目标进程号,以便第二处理模块获取目标进程号对应的第一包名;还适于获取启
动应用程序容器中的应用程序,以便第二处理模块获取应用程序对应的第二包名;还适于
根据第一包名和第二包名获取目标进程号对应的目标应用程序;第二处理模块,适于获取
目标进程号对应的第一包名,还适于获取应用程序对应的第二包名。
用于执行如上的应用程序管理方法的指令。
前第二包名对应的应用程序即为当前进程号所对应的应用程序,相较于根据desktop名称
进行应用程序与进程号的匹配,包名的唯一确定性能够实现精确匹配。进一步地,根据本发
明的应用程序管理方法,从进程号到包名的映射以及从应用程序到包名的映射是通过查询
数据库和表完成的,相对于现有技术中的dpkg命令,查询速度更快,能够避免进程较多时出
现卡顿的问题,提高应用程序的处理性能。
附图说明
旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述
以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的
部件或元素。
具体实施方式
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
的计算设备100仅为一个示例,在实践中,用于实施本发明的应用程序管理方法的计算设备
可以是任意型号的设备,其硬件配置情况可以与图1所示的计算设备100相同,也可以与图1
所示的计算设备100不同。实践中用于实施本发明的应用程序管理方法的计算设备可以对
图1所示的计算设备100的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情
况不做限制。
一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心
114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、
数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器
104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够
被处理器104读取。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序
数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利
用程序数据124执行指令。操作系统120例如可以是Linux、Unix、UOS等,其包括用于处理基
本系统服务以及执行依赖于硬件的任务的程序指令。应用122包括用于实现各种用户期望
的功能的程序指令,应用122例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开
发环境IDE、编译器等)等,但不限于此。当应用122被安装到计算设备100中时,可以向操作
系统120添加驱动模块。
来实现各种用户期望的功能。当用户启动应用122时,应用122会加载至存储器106中,处理
器104从存储器106中读取并执行应用122的程序指令。
的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由
一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外
设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于
经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸
输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设
备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一
个或者多个其他计算设备162通过网络通信链路的通信。
以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多
个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以
包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外
(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存
储介质和通信介质二者。
装时间等信息。
号,在获取到进程号(即目标进程号)后进入步骤S240。
桌面名称和包名的对应关系,本步骤中根据进程号和程序数据库可以获取到目标进程号对
应的包名,由于数据库中并没有进程号的信息,需要首先将进程号对应到执行路径,例如进
程号为6311,可以通过getFilePathByLink(“/proc/6311/exe”)得到对应的执行路径,还可
以通过fs.open(“/proc/6311/cmdline”)得到,获取到的执行路径为“/usr/bin/deepin‑
defender”,根据该执行路径在程序数据库中搜索,获取对应的包名,程序数据库中包括如
表1中的数据记录,其中,desktop_name对应desktop名称,exe_path对应执行路径,pkg_
name对应包名,则查询到的对应的包名(第一包名)为“deepin‑defender”。
的创建过程在程序数据库的创建过程300中具体说明,此处不再赘述。
称、应用程序名称、应用程序ID、应用程序图片、应用程序分类、应用程序安装时间等。在本
步骤中,根据预定顺序遍历启动应用程序容器中的应用程序,例如,从后向前,获取应用程
序的desktop名称,根据desktop名称从程序数据库中查询相应的包名(即第二包名)。
应用程序容器中的下一个应用程序的desktop名称对应的包名,作为新的第二包名,当启动
应用程序容器中的desktop名称对应的包名没有与第一包名匹配时,说明进程号与应用程
序匹配失败。
defender,与根据进程号6311获取到的第一包名一致,则在步骤S270中,第二包名对应的应
用程序“安全中心”与第一包名对应的进程号为6311的进程匹配成功。
create database datebase1命令完成数据库的创建,其中database1为程序数据库名称,
并通过create table创建表,例如,create table T1(desktop_name char(30),exe_path
char(30),pkg_name char(30)),其中,desktop_name为desktop名称,exe_path为执行路
径,pkg_name为包名。本步骤中,也可以创建其他类型的数据库,本发明对此不做限制,。
insert into T1(“/usr/share/applications/deepin‑defender.desktop”,“/usr/bin/
deepin‑defender”,“deepin‑defender”)。将所有包名对应的desktop名称和执行路径都存
储到数据库表中,完成程序数据库的创建。
应用程序容器中存储有应用程序与desktop名称的对应关系,程序数据库中存储有应用程
序的执行路径、desktop名称与包名的对应关系。
行路径在程序数据库中获取当前处理的进程号对应的包名(即第一包名),其中,所述目标
进程号对应一个目标应用程序;第一处理模块410与启动应用程序容器连接,还适于获取启
动应用程序容器中的应用程序所对应的desktop名称,以便第二处理模块420根据该
desktop名称获取应用程序对应的第二包名;还适于根据第一包名和第二包名获取目标进
程号对应的目标应用程序,当第二包名与第一包名一致时,与第二包名对应的应用程序即
为与第一包名对应的进程所对应的应用程序。
desktop名称获取对应的第二包名,并将第一包名和第二包名返回给第一处理模块410。
第二包名对应的应用程序即为当前进程号所对应的应用程序,相较于根据desktop名称进
行应用程序与进程号的匹配,包名的唯一确定性能够实现精确匹配。进一步地,根据本发明
的应用程序管理方法,从进程号到包名的映射以及从应用程序到包名的映射是通过查询数
据库和表完成的,相对于现有技术中的dpkg命令,查询速度更快,能够避免进程较多时出现
卡顿的问题,提高应用程序的处理性能。
移动硬盘、U盘、软盘、CD‑ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的
形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践
本发明的设备。
少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器
中存储的所述程序代码中的指令,执行本发明的图像显示方法。
波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它
数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可
以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为
了披露本发明的最佳实施方式。
构和技术,以便不模糊对本说明书的理解。
者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发
明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求
书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实
施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发
明的单独实施例。
不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个
子模块。
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任
意之一都可以以任意的组合方式来使用。
元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在
此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行
的功能。
须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本
发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。