[发明专利]一种获取进程名称的方法、装置、介质和设备有效
申请号: | 202010027042.X | 申请日: | 2020-01-10 |
公开(公告)号: | CN111209058B | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 刘洪凯 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 马瑞 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 进程 名称 方法 装置 介质 设备 | ||
本公开提供了一种获取进程名称的方法、装置、介质和设备,所述方法包括:激活任一组件;在文件清单中查找所述组件,并获取所述组件当前进程名称;在所述组件中添加静态代码模块,通过所述静态代码模块将所述进程名称发送至进程名称管理模块;访问所述进程名称管理模块,获取所述进程名称。本方法利用安卓框架下的四大组件,在运行时会自动确认各组件运行时的进程名称,且该名称是唯一确定的,进而通过各组件的静态代码模块将各组件运行时当前进程的名称报告给进程名称管理模块,当另一线程访问到进程名称管理模块时,便会自动的获取到需要运行的进程的名称,提高了应用程序启动速度,提升了用户体验。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种获取进程名称的方法、装置、介质和设备。
背景技术
当安卓应用进程启动时,很多模块需要获取进程的名称从而确定接下来的操作,例如有的模块在处于不同进程时会进行不同的操作。因为需要在应用刚刚启动后获取当前进程名称,所以获取进程名称的过程耗时一定不能太长,否则会影响应用的启动速度,进而影响用户体验。
现有的获取进程名称的方法主要有两种,一种是首先获取系统的ActivityManager对象,然后调用其getRunningAppProcesses方法,得到当前所有运行的app的进程的列表,然后遍历列表中的所有元素,找到pid与本进程pid相同的元素,该元素的processName成员就是当前进程的名称,getRunningAppProcesses是一个跨进程的binder调用,该方法耗时会比较长。另一种方法就是读取/proc/[pid]/cmdline文件,该方法需要将pid这个数字转化为字符串,在转化过程中也有一定的耗时,同样影响访问速度。
本公开的目的在于提供一种获取进程名称的方法、装置、介质和设备,能够解决上述提到的至少一个技术问题,快速的获取到相应进程的名称。具体方案如下:
根据本公开的具体实施方式,第一方面,本公开提供一种获取进程名称的方法,包括:
激活任一组件;
在文件清单中查找所述组件,并获取所述组件当前进程名称;
在所述组件中添加静态代码模块,通过所述静态代码模块将所述进程名称发送至进程名称管理模块;
访问所述进程名称管理模块,获取所述进程名称。
可选的,还包括:
遍历当前应用程序下的所有组件,直至所有组件都已激活。
可选的,所述访问所述进程名称管理模块,获取所述进程名称,包括:
访问所述进程名称管理模块,请求获取当前进程名称;
当所述当前进程名称存在于所述进程名称管理模块时,同步获取所述进程名称;
当所述当前进程名称不存在于所述进程名称管理模块时,异步获取所述进程名称。
可选的,所述当所述当前进程名称不存在于所述进程名称管理模块时,异步获取所述进程名称,包括:
当所述当前进程名称不存在于所述进程名称管理模块时,
回调过程中获取所述进程名称。
可选的,所述通过所述静态代码模块将所述进程名称发送至进程名称管理模块,包括:
加载当前应用程序下的类,通过所述静态代码模块将所述进程名称发送至进程名称管理模块。
可选的,所述组件为安卓框架下的组件,包括:活动组件、服务组件、内容提供组件以及广播接收组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010027042.X/2.html,转载请声明来源钻瓜专利网。