本发明专利技术提供的安卓系统解除非本地文件占用的方法,能够在不重新启动安卓系统的前提下非常快速的让安卓系统的进程解除对非本地文件的占用,进而快速实现安卓系统解除文件挂载,在云系统等一些特定场景中具有非常重要的使用价值。
【技术实现步骤摘要】
本专利技术涉及安卓系统解除非本地文件占用的方法。
技术介绍
安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。安卓系统支持将非本地文件(即没有存储在安卓系统所运行的设备上的文件)挂载到本地(mount命令),安卓系统的相关进程可以调用这些挂载的文件。挂载行为会影响被挂载文件所在设备的运行,因此满足设定的条件后安卓系统应当解除挂载(umount命令)。如果安卓系统的进程正在占用(也称为打开或使用)被挂载的非本地文件,则umount命令无法执行。针对该问题最常见的解决方法是停止安卓系统占用被挂载的非本地文件的所有进程。但上述进程中往往包括安卓系统的SystemServer进程,如果SystemServer进程被停止(kill,有时也直译为杀死),将导致安卓系统的重新启动,这不仅会浪费一定的时间,也会造成安卓系统上正在运行的应用全部终止。在云系统等一些特定场景中,这是不允许的。如何非常快速的让安卓系统的进程解除对被挂载的非本地文件的占用,避免安卓系统重新启动,尚未见报道。在说明书“
技术介绍
”部分公开的内容,有助于本领域技术人员理解本专利技术的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
技术实现思路
为了克服“
技术介绍
”部分所反映的缺陷,本专利技术提供安卓系统解除非本地文件占用的方法。安卓系统解除非本地文件占用的方法,包括:向安卓系统的SystemServer进程和SystemUI进程发送广播消息使得SystemServer进程和SystemUI进程解除对非本地文件的占用,所述的广播消息为android.intent.action.PACKAGE_REMOVED。进一步的,所述的方法还包括,如果安卓系统的SystemUI进程收到广播消息后仍未解除对非本地文件的占用,则停止SystemUI进程。进一步的,所述的非本地文件为非本地的安卓系统用户态应用的安装包。本专利技术技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。本专利技术提供的安卓系统解除非本地文件占用的方法,能够在不重新启动安卓系统的前提下非常快速的让安卓系统的进程解除对非本地文件的占用,进而快速实现安卓系统解除文件挂载,在云系统等一些特定场景中具有非常重要的使用价值。具体实施方式下面对本专利技术的实施方式进行进一步的具体说明。但应注意,本专利技术的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本专利技术的保护范围。安卓(Android)系统是目前智能移动终端等电子设备上广泛使用的操作系统,安卓系统中可以运行各种应用(应用指能够在安卓系统中运行的软件或程序)。安卓系统支持将非本地文件(即没有存储在安卓系统所运行的设备上的文件)挂载到本地(mount命令),安卓系统的相关进程可以调用这些挂载的文件。在一些特定场景中,挂载具有非常重要的使用价值。例如,将大量安装了安卓系统的开发板集中管理,可以形成云系统。在这类云系统中,每个安装了安卓系统的开发板可以作为独立单元,为用户提供服务。由于开发板的硬件配置较低,存储空间小,无法安装用户可能用到的所有应用,为此在云系统中设置具有较高配置的存储服务器。存储服务器的存储空间极大,其上可以存储所有云系统的用户可能用到的应用对应的所有文件。存储服务器上文件的存储形式完全模拟安卓系统,保留这些文件在安卓系统中的目录结构。这样,开发板的安卓系统可以通过挂载存储服务器上文件的方式让用户使用这些文件,如果挂载的文件是安卓系统用户态(usermode)应用的安装包(即安卓系统中的apk文件,根据安卓系统应用的开发习惯,该文件的名称往往是base.apk),甚至可以实现在开发板上免安装运行该应用。然而,从节约成本等多方面考虑,往往云系统中开发板的数量非常多而存储服务器的数量有限,挂载文件的开发板数量过多也会严重影响存储服务器的运行,因此要求满足设定的条件时开发板的安卓系统必须解除对存储服务器文件的挂载。如果安卓系统的进程正在占用被挂载的非本地文件,则解除挂载的umount命令无法执行。研究发现,如果安卓系统挂载的文件是安卓系统用户态应用的安装包(安装包一般位于安卓系统的“/data/app/应用包名”目录中。每一个安卓应用都有对应的包名,可以从该应用的apk文件中解析出来。存储服务器上文件的存储形式完全模拟安卓系统,安装包相应也位于“/data/app/应用包名”目录中,开发板的安卓系统以此目录挂载文件。),则占用被挂载文件的进程是SystemServer进程和SystemUI进程。如果停止SystemServer进程和SystemUI进程,对被挂载文件的占用即解除。然而,停止SystemServer进程的后果是安卓系统重新启动,在上述云系统的场景中,意味着用户对安卓系统的正常使用突然被打断,用户不仅要耐心等待系统重启,还要承担正在运行的应用终止的后果,对于绝大多数用户这是不能接受的。本专利技术技术方案提供的安卓系统解除非本地文件占用的方法,包括:向安卓系统的SystemServer进程和SystemUI进程发送广播消息使得SystemServer进程和SystemUI进程解除对非本地文件的占用,所述的广播消息为android.intent.action.PACKAGE_REMOVED。如果SystemServer进程和SystemUI进程占用的是非本地的安卓系统用户态应用的安装包,收到上述广播消息后,SystemServer进程会立即解除对非本地文件的占用,而SystemUI进程则不一定。利用安卓系统的lsof命令可以查看SystemUI进程占用的文件,如果SystemUI进程收到广播消息后仍未解除对非本地文件的占用,则直接停止SystemUI进程。与SystemServer进程不同,停止SystemUI进程既不会导致安卓系统重新启动,也不会对安卓系统中正常运行的应用产生影响。在安卓系统中编写相应的程序或者在安卓系统管理挂载文件和解除挂载的软件中增加相应的代码段,可以实现上述安卓系统解除非本地文件占用的方法。显然,发送广播消息、执行lsof命令、停止SystemUI进程这一系列步骤可以在人无法感知的极短时间内完成,上述安卓系统解除非本地文件占用的方法不会对用户正常使用安卓系统产生任何影响,而对于减轻云系统中存储服务器的运行负担具有重要意义。上述安卓系统解除非本地文件占用的方法还有另外一个优势,即上述方法无论对安卓系统本地还是位于存储服务器等的非本地文件都没有任何修改、删除等实质性操作,后续安卓系统再执行挂载等操作时完全不受已执行上述方法的影响。本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。本文档来自技高网...
【技术保护点】
安卓系统解除非本地文件占用的方法,其特征在于,所述的方法包括:向安卓系统的SystemServer进程和SystemUI进程发送广播消息使得SystemServer进程和SystemUI进程解除对非本地文件的占用,所述的广播消息为android.intent.action.PACKAGE_REMOVED。
【技术特征摘要】
1.安卓系统解除非本地文件占用的方法,其特征在于,所述的方法包括:向安卓系统的SystemServer进程和SystemUI进程发送广播消息使得SystemServer进程和SystemUI进程解除对非本地文件的占用,所述的广播消息为android.intent.action.PACK...
【专利技术属性】
技术研发人员:王小品,田乐,赵幸,
申请(专利权)人:海马云天津信息技术有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。