CN110780930A - 启动Android系统的方法、装置、电子设备及存储介质 - Google Patents

启动Android系统的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110780930A
CN110780930A CN201910898323.XA CN201910898323A CN110780930A CN 110780930 A CN110780930 A CN 110780930A CN 201910898323 A CN201910898323 A CN 201910898323A CN 110780930 A CN110780930 A CN 110780930A
Authority
CN
China
Prior art keywords
zygate
android system
android
user data
boot service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910898323.XA
Other languages
English (en)
Other versions
CN110780930B (zh
Inventor
苏良虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Shiyuan Electronics Thecnology Co Ltd, Guangzhou Shirui Electronics Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201910898323.XA priority Critical patent/CN110780930B/zh
Publication of CN110780930A publication Critical patent/CN110780930A/zh
Application granted granted Critical
Publication of CN110780930B publication Critical patent/CN110780930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种启动Android系统的方法、装置、电子设备以及存储介质,该方法包括:在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立boot service进程与zygote进程的通信连接;暂停zygote进程,以等待boot service进程触发zygote进程继续运行;获取用户数据目录,并将用户数据目录挂载到Android文件系统,且在boot service进程中创建用户数据目录属性;根据用户数据目录属性,通过boot service进程触发zygote进程继续运行,使zygote进程从Android系统文件中获取用户数据目录,完成Android系统的启动。本申请实施例在用户登陆前启动部分的Android系统,在用户登陆后启动后续的Android系统,以使Android系统在用户登陆后得以快速启动,提高用户体验。

Description

启动Android系统的方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及操作系统设计领域,特别是涉及一种启动Android系统的方法、装置、电子设备以及存储介质。
背景技术
发明人在实现本发明的过程中,发现现有技术中存在如下问题:为满足用户使用Android应用程序的要求,发现可在安装了第一操作系统(除Android系统的其他操作系统)的设备上同时使用Android系统,而如何实现在第一操作系统上启动Android系统,尤其在用户登录第一操作系统后快速启动Android系统,提高用户体验,成为了研究的课题。
发明内容
为克服相关技术中存在的问题,本申请提供了一种启动Android系统的方法、装置、电子设备以及存储介质,其实现了在第一操作系统上启动Android系统,尤其可使在用户登陆第一操作系统后快速启动Android系统,提高用户体验的优点。
根据本申请实施例的第一方面,提供一种启动Android系统的方法,包括如下步骤:
在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;
暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;
根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;
根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
根据本申请实施例的第二方面,提供一种启动Android系统的装置,包括:
第一启动模块,用于在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;
暂停模块,用于暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;
挂载模块,用于根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;
第二启动模块,用于根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
根据本申请实施例的第三方面,提供一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如上述任意一项所述的启动Android系统的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述的启动Android系统的方法。
本申请实施例通过建立所述boot service进程和所述zygote进程的通信连接,在用户登陆第一操作系统前,通过所述boot service进程暂停所述zygote进程;在用户登陆第一操作系统后,将所述用户数据目录挂载到Android文件系统时,在所述boot service进程中创建用户数据目录属性,并使用户数据目录属性指示为用户数据目录挂载到Android文件系统,进而使所述boot service进程根据所述用户数据目录属性触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动,从而实现在用户登陆第一操作系统前启动部分的Android系统,在用户登陆第一操作系统后触发启动后续的Android系统,以使Android系统在用户登陆后得以快速启动,提高用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例示出的启动Android系统的方法的应用环境的示意框图;
图2为本申请实施例示出的启动Android系统的方法的流程图;
图3为本申请实施例示出的启动Android系统的方法的原理图;
图4为本申请实施例示出的建立所述boot service进程与所述zygote进程的通信连接的流程图;
图5为本申请实施例示出的加载Android系统的用户应用进程的方法流程图;
图6为本申请实施例示出的启动Android系统的装置的结构框图;
图7为本申请实施例示出的第一启动模块的结构框图;
图8为本申请实施例示出的挂载模块的结构框图;
图9为本申请实施例示出的电子设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。在此所使用的词语“如果”/“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参阅图1,其是本申请实施例示出的启动Android系统的方法的应用环境的示意框图。
如图1所示,所述启动Android系统的方法的应用环境包括电子设备1000。所述电子设备上基于同一个Linux内核机制1100运行有第一操作系统1200和Android系统1300两个操作系统;其中,所述第一操作系统1200为主操作系统,所述Android系统1300为客操作系统;所述Android系统1300通过容器(Container)技术在第一操作系统1200之外独立运行应用进程,实现在同一个电子设备中同时运行第一操作系统1200和Android系统1300两个操作系统。
所述电子设备1000可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等设备,在本申请实施例中,所述电子设备1000为笔记本电脑,尤其为学生用笔记本电脑,通过在第一操作系统1200上设置管控策略以及对Android系统1300的Android应用商店进行管控,可防止学生使用笔记本电脑乱打开网页看视屏或者乱下载软件玩游戏等。
所述第一操作系统1200为除Android系统的其他操作系统。在本申请一个示例性实施例中,所述第一操作系统为Chromium OS,所述Chromium OS是Chrome OS开放的原始码开发版本,其作为一种计算机操作系统,主要以Linux核心作为其运作核心。Chromium OS中的所有的应用程序都是网络应用程序,所述Chromium OS提供的所有体验都在Chromium OS浏览器内进行。具体的,可在Chromium OS浏览器输入网址、点击窗口图标或者在ChromiumOS的应用程序选项中选择需要的程序,然后通过Chromium OS浏览器连接远程的服务器,在远程的服务器上运行计算后,通过Chromium OS浏览器显示运行结果,处理完成后的数据也只能存储在网络服务器上,从而为用户提供快速、简单、安全和高效的使用体验。
所述Android系统1300是一种基于Linux的自由及开放源代码的操作系统,其具有显著的开放性,允许开发者加入到Android系统1300中,同时,也为开发者提供了一个十分宽泛和自由的环境,不会受到各种条条框框的阻扰,使开发者可以根据需要开发出各种各样的Android应用程序,因此,随着Android技术的发展,在Android系统1300中适应使用的Android应用程序也越来越多。通过在第一操作系统1200同时运行Android系统1300,使第一操作系统1200上运行更多的Android应用程序,可大大提高用户体验。
所述容器技术是一种轻量级操作系统层面的虚拟技术,它为应用软件及其依赖组件提供了一个资源独立的运行环境,应用软件所依赖的组件会被打包成一个可重用的镜像,镜像运行环境并不会与主操作系统共享内存、CPU和硬盘空间,由此也保证了容器内部的进程与容器外部进程的独立关系,而且可从开发到测试再到生产的整个过程中轻松迁移应用和保留应用的全部功能,具有可移植性和一致性。
本申请发明人发现在第一操作系统1200中采用容器技术启动Android系统1300,可使所述第一操作系统1200和Android系统1300两个操作系统相互隔离,实现两个操作系统下的应用进程均可以正常运行,而如何在第一操作系统1200上启动Android系统1300,尤其是在用户登录后第一操作系统1200能够快速启动Android系统1300,提高用户体验成为了本领域技术人员研究的新课题。
实施例1
基于上述技术背景,本申请实施例公开了一种启动Android系统的方法,该方法应用于电子设备。
下面将结合附图2和图3,对本申请实施例提供的一种启动Android系统的方法进行详细介绍。
请参阅图2和图3,本申请实施例提供的一种启动Android系统的方法,包括如下步骤:
步骤S101:在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动所述Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件。
所述第一操作系统可通过虚拟机或者闪盘等方式事先安装在电子设备内,待电子设备开机时,将加载第一操作系统的BootLoader(Build Own Operat Transfer,系统启动加载器),以初始化硬件设备如ROM(Read-Only Memory,只读存储器)等,以及建立内存空间的映像图,为最终调用系统内核准备好环境,从而完成Linux内核的启动。当Linux内核启动后还会初始化各种软硬件环境,加载驱动程序,挂载根文件系统,启动第一操作系统的各种启动服务,其中,所述启动服务包括UI服务、cras服务、cros-disks服务、cryptohomed服务等,其中,所述UI服务用于加载第一操作系统的浏览器,所述cras服务用于播放与录制音频数据;所述cros-disks服务用于挂载内部与外围的存储设备;所述cryptohomed服务用于用户数据主目录安全管理;所述shill服务用于网络管理。
在本申请一个示例性实施例中,在启动第一操作系统时,通过启动UI服务加载第一操作系统的浏览器,通过所述第一操作系统的浏览器显示用于输入用户登陆信息的第一操作系统用户登陆界面、以及将Android系统的镜像文件挂载在第一操作系统的文件系统,进而启动所述Android系统文件中的boot service进程和zygote进程,建立所述bootservice进程与所述zygote进程的通信连接等。所述第一操作系统的浏览器为第一操作系统的运行载体,其用于接收用户的输入操作指令如获取用户输入的网址、点击的窗口图标或者在第一操作系统的应用程序选项中选择的程序;所述第一操作系统的浏览器还用于根据所述用户的输入操作指令打开网址、窗口图标或者第一操作系统的应用程序,所述第一操作系统的浏览器还用于连接远程服务器并显示经过远程服务器进行运算处理后的数据显示给用户,如将远程服务处理后的图片、文字、视频等在浏览器窗口进行显示等。所述第一操作系统的浏览器中还安装有各种插件,包括session_manager(会话管理器)等。所述session_manager是浏览器上的页面管理插件,其可以检测浏览器的状态,例如检测浏览器是否加载,对输入的用户登陆信息与存储的用户登陆信息进行比对,以及将当前页面以标签的形式保存在插件列表中,可以随意的编辑标签的名称,但不会影响页面本身内容,可以随时重新通过标签打开网页内容等。其中,所述session_manager在加载显示第一操作系统的用户登陆界面时,将触发启动其内置的arc-setup程序,通过运行所述arc-setup程序将Android系统的镜像文件挂载在Chromium OS文件系统,启动所述Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接等。
所述Android系统的镜像文件包括运行Android应用程序所必需的内核代码和驱动程序,具体包括Android Linux内核、本机库、Dalvik VM和Android系统文件,其中,Android系统文件包括Android框架和预安装的应用程序等代码,以及各种驱动程序如init进程、boot service进程和zygote进程等,通过所述Android系统的镜像文件可以基本构建Android系统,进而运行Android应用程序。具体的,所述Android系统的镜像文件指的Android的系统固件,能够直接烧录到设备的文件,我们常说的系统版本升级,针对的也就是系统固件,这个固件通常是以镜像文件发布,包含完整的Android系统的全部二进制库,可执行文件,启动脚本,配置文件等。在本申请的电子设备中存储有所述Android系统的镜像文件,以实现Android系统的启动。
所述Android系统文件是支持Android系统运行的文件,是Android系统中的存储在磁盘或内存中的一个文件或目录实体,可以是一个库,一个可执行程序,一个脚本或配置文件等;包括硬件驱动程序,系统运行所需的支持程序、存放在对应的文件夹中的相关文件,这些文件直接影响系统的正常运行,对维护计算机系统的稳定具有重要作用。
所述第一操作系统的文件系统是第一操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法,其执行的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施等。当Android系统的镜像文件挂载到第一操作系统的文件系统后,Android系统的镜像文件的全部Android系统文件就可以被访问了,从而启动Android系统文件的各个进程。
挂载是指由操作系统使一个存储设备上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。本申请利用容器技术里面的镜像技术,将所述Android系统的镜像文件挂载在所述第一操作系统的文件系统上,进而可使第一操作系统的文件系统访问所述Android系统文件,从而启动所述Android系统文件中的boot service进程和zygote进程等进程。
在本申请的一个示例性实施例中,启动所述Android系统文件中的boot service进程和zygote进程的步骤,包括:通过加载所述Android系统文件的init进程启动bootservice进程和zygote进程。所述init进程是启动Android系统的第一进程,是Android系统其他所有进程的父进程,即其他所有的进程都通过所述init进程中设置的脚本来创建和加载。具体的,在所述Android系统文件中存储有init进程的init.rc文件,所述init.rc文件中可定义Android系统启动时需要执行的系列脚本,如系列动作、设置环境变量、设置环境属性和执行特定的服务等,在本申请实施例中,所述init.rc文件定义了boot service进程和zygote进程,通过加载init进程的init.rc文件即加载init进程启动boot service进程和zygote进程。
所述zygote进程又称为进程孵化器,是Android系统的全部应用的父进程。在启动所述zygote进程时,所述zygote进程用于创建socket与各个系统服务通信(不包括本申请中加入的boot service),启动Java虚拟机,注册JNI方法等,之后与所述boot service进程建立通信连接。
所述boot service进程为本申请用于触发所述zygote进程,以实现本申请的两阶段启动Android系统而设置的启动服务进程;在启动所述boot service时,所述bootservice进程创建服务端,并在监听到所述zygote进程的客户端后,与所述boot service进程建立通信连接,从而在后续触发所述zygote进程继续运行进而以实现本申请的两阶段启动Android系统。
在本申请一个示例性实施例中,所述第一操作系统为Chromium OS,所述ChromiumOS中的所有的应用程序都是网络应用程序,所述Chromium OS提供的所有体验都在Chromium OS浏览器内进行。具体的,可在Chromium OS浏览器输入网址、点击窗口图标或者在Chromium OS的应用程序选项中选择需要的程序,然后通过Chromium OS浏览器连接远程的服务器,在远程的服务器上运行计算后,通过Chromium OS浏览器显示运行结果,处理完成后的数据也只能存储在网络服务器上,从而为用户提供快速、简单、安全和高效的使用体验。
步骤S102:暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行。
在建立所述boot service进程与所述zygote进程的通信连接后,所述zygote进程需要加载Android系统文件的用户数据目录才能继续运行,而用户数据目录需要根据用户输入的用户登录信息才能加载获取,此时,用户并未登录也就没有用户登录信息,进而也不能加载获取用户数据目录,此时,所述zygote进程则等待接收所述boot service进程发送的指示已经获取用户数据目录的信息,才能继续运行所述zygote进程,因此,此时所述zygote进程相当于处于暂停运行的状态。
步骤S103:根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统。
所述用户登陆信息包括用户账号和用户密码;所述用户账号和用户密码为用户在所述第一操作系统注册并认证的信息。具体的,所述第一操作系统的浏览器接收到用户输入的用户登陆信息后,第一操作系统将所述用户登陆信息传送到session_manager,session_manager将所述用户登陆信息发送给安全模块cryptohome进行校验。所述安全模块cryptohome用于加密用户主目录,当所述安全模块cryptohome校验成功后,将向所述session_manager发送校验成功的信息,此时,session_manager将启动其内置的arc-setup--mode=boot-continue程序,将用户数据目录中名为data的文件夹目录挂载到Android系统文件,以使所述zygote进程继续运行后加载所述用户数据目录。
所述用户数据目录是所述第一操作系统用于保存用户帐户,用户配置信息,下载,安装扩展,缓存,日志等内容的目录。同时,Android系统会在这个目录下创建一个专用于Android系统的数据目录,用于存储package,缓存等系统在运行时必须的信息。将所述用户数据目录挂载到Android文件系统后,用户安装的Android系统应用,保存的数据,就存储在该对应的用户目录下,进而统一了用户数据存储。
所述Android文件系统是Android系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法,其执行的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施等在磁盘上组织文件的方法。当用户数据目录挂载到Android文件系统后,各个Android进程即可实现对用户数据目录的访问和加载等操作。
所述session_manager执行将用户数据目录中名为data的文件夹目录挂载到Android系统文件后,session_manager控制运行nsenter程序,执行Android系统的seewo_arcboot程序,在所述boot service进程中创建用户数据目录属性,并使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统。其中,所述用户数据目录属性为0或1等可以供程序识别的符号,在本申请实施例中,所述用户数据目录属性为0默认为未创建这个属性,所述用户数据目录属性为1表示用户数据目录挂载到Android文件系统。
通过将所述Android系统的镜像文件挂载在所述第一操作系统的文件系统上,进而可使第一操作系统地文件系统访问所述Android系统文件,从而启动所述Android系统文件中的boot service进程和zygote进程等进程
步骤S104:根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
本申请实施例通过建立所述boot service进程和所述zygote进程的通信连接,在用户登陆第一操作系统前,通过所述boot service进程暂停所述zygote进程;在用户登陆第一操作系统后,将所述用户数据目录挂载到Android文件系统时,在所述boot service进程中创建用户数据目录属性,并使用户数据目录属性指示为用户数据目录挂载到Android文件系统,进而使所述boot service进程根据所述用户数据目录属性触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动,从而实现在用户登陆第一操作系统前启动部分的Android系统,在用户登陆第一操作系统后触发启动后续的Android系统,以使Android系统在用户登陆后得以快速启动,提高用户体验。
请参阅图4,在本申请的一个示例性实施例中,步骤S101中,所述boot service进程和所述zygote进程的通信连接方式为socket通信连接,具体的,建立所述boot service进程与所述zygote进程的通信连接的步骤,包括:
步骤S1011:在所述boot service进程端创建socket服务端、以及在所述zygote进程端创建第一socket客户端。
在本申请实例中,所述boot service进程和所述zygote进程中设置有建立socket相关的socket API代码,通过调用所述socket API代码分别建立所述socket服务端和第一socket客户端。
Socket(套接字)是一种通信机制,其一般通过socket()函数根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源,用于实现至少两个进程的开发工作的双向通信,在这两个进程中通常包括一个服务端和一个或多个客户端;服务端用系统调用socket来创建一个套接安,它是系统分配给该服务端进程的类似文件描述符的资源;服务端进程会给套接字起个名字,可使用系统调用bind来给套接字命名;然后,服务端就开始等待客户端连接到这个套接字。系统调用listen来创建一个队列并将其用于存放来自客户端的进入连接。服务端通过系统调用accept来接受客户端的连接,它会创建一个与原有的命名套接不同的新套接字,这个套接字只用于与这个特定客户端进行通信,而命名套接字(即原先的套接字)则被保留下来继续处理来自其他客户的连接。客户端在调用socket来创建一个未命名的套接字,然后将服务端的命名套接字作为一个地址来调用connect与服务端建立连接。
步骤S1012:通过所述第一socket客户端向所述socket服务端发送握手请求。
具体的,所述握手请求可以为socket通信中预先设置且可使电子设备可识别的字符串如“Client Hello”等。
步骤S1013:根据接收到的所述握手请求,通过所述socket服务端向所述第一socket客户端发送确认握手的信息。
具体的,所述确认握手的信息可以为socket通信中预先设置且可使电子设备可识别的字符串如“Server Hello”等。
步骤S1014:在所述第一socket客户端接收到所述确认握手的信息后,实现所述boot service进程和所述zygote进程的通信连接。
通过在所述boot service进程与所述zygote进程中建立socket通信连接,可实现通过所述boot service进程暂停所述zygote进程或者通过所述boot service进程来触发使所述zygote进程继续运行,进而方便快捷的实现所述zygote进程的暂停和继续运行。
请参阅图5,在本申请的一个示例性实施例中,步骤S103中,根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动的步骤,包括:
步骤S1031:在检测到所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统时,通过所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且通过所述init进程向所述boot service进程发送继续运行的指令。
在init进程的脚本文件init.rc文件中运行有on字段和trigger字段;所述on字段用于检测所述boot service进程中的用户数据目录属性,当所述用户数据目录属性改变为指示用户数据目录挂载到Android文件系统时,所述trigger字段触发所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且所述init进程向所述boot service进程发送继续运行的指令等。
所述执行用户进程必需的目录和权限包括:修改/data目录的拥有者为system用户,创建子目录/data/misc,/data/app,/data/system等,修改目录权限为可读可写。
所述继续运行的指令可以进程加载中预先设置且可使电子设备可识别的字符串如“RESUME”。
步骤S1032:通过所述boot service进程将所述继续运行的指令转发至所述zygote进程。
步骤S1033:根据所述继续运行的指令触发所述zygote进程继续运行,以从所述Android系统文件中获取用户数据目录中执行用户进程必需的目录和权限,进而根据所述执行用户进程必需的目录和权限,加载Android系统的用户应用进程,完成Android系统的启动。
根据所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统来触发所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,并通过所述boot service进程将所述继续运行的指令转发至所述zygote进程,以触发所述zygote进程继续运行,可实现在用户登录Chromium OS,快速加载Android系统的用户应用进程,完成Android系统的启动。进一步地,本申请结合Android系统init属性机制与socket进程间通信技术,在实现方面,相比zygote进程主动轮询用户数据目录是否准备就绪这种方式,更加合理有效,占CPU资源也会少很多。
在本申请的一个示例性实施例中,步骤S1031中,通过所述init进程向所述bootservice进程发送继续运行的指令的步骤,包括:在所述init进程端创建第二socket客户端;通过所述第二socket客户端向所述boot service的socket服务端发送继续运行的指令。步骤S1032中,通过所述boot service进程将所述继续运行的指令转发至所述zygote进程的步骤,包括:通过所述boot service进程的socket服务端接收所述继续运行的指令,并转发至所述zygote进程的第一socket客户端;根据所述继续运行的指令,通过所述zygote进程的第一socket客户端触发所述zygote进程继续运行。通过在所述boot service进程与所述init进程中建立socket通信连接,可在所述init进程创建好加载用户进程必需的目录和权限后,方便快捷地向所述boot service进程发送继续运行的指令,从而通过所述bootservice进程快捷触发使所述zygote进程继续运行,提高运行效率。
在本申请的一个示例性实施例中,所述启动Android系统的方法还包括如下步骤:将所述用户数据目录挂载到第一操作系统的文件系统,以加载第一操作系统的用户应用进程,完成第一操作系统的启动,从而实现在用户登录第一操作系统后,同时完成启动第一操作系统和Android系统,进而为快捷地为用户提供第一操作系统和Android系统的使用体验。
实施例2
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图6,其示出了本申请实施例提供的启动Android系统的装置的结构示意图。该上启动Android系统的装置可以通过软件、硬件或者两者的结合实现成为笔记本电脑的全部或一部分。所述启动Android系统的装置200包括:
第一启动模块201,用于在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;
暂停模块202,用于暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;
挂载模块203,用于根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;
第二启动模块204,用于根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
本申请实施例通过建立所述boot service进程和所述zygote进程的通信连接,在用户登陆第一操作系统前,通过所述boot service进程暂停所述zygote进程;在用户登陆第一操作系统后,将所述用户数据目录挂载到Android文件系统时,在所述boot service进程中创建用户数据目录属性,并使用户数据目录属性指示为用户数据目录挂载到Android文件系统,进而使所述boot service进程根据所述用户数据目录属性触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动,从而实现在用户登陆第一操作系统前启动部分的Android系统,在用户登陆第一操作系统后触发启动后续的Android系统,以使Android系统在用户登陆后得以快速启动,提高用户体验。
在本申请一个示例性实施例中,在启动第一操作系统时,通过启动UI服务加载第一操作系统的浏览器,通过所述第一操作系统的浏览器显示用于输入用户登陆信息的第一操作系统用户登陆界面、以及将Android系统的镜像文件挂载在第一操作系统的文件系统,进而启动所述Android系统文件中的boot service进程和zygote进程,建立所述bootservice进程与所述zygote进程的通信连接等。
请参阅图7,在本申请的一个示例性实施例中,所述boot service进程和所述zygote进程的通信连接方式为socket通信连接,第一启动模块201包括:
Socket通信端创建模块2011,用于在所述boot service进程端创建socket服务端、以及在所述zygote进程端创建第一socket客户端;
握手请求发送模块2012,用于通过所述第一socket客户端向所述socket服务端发送握手请求;
确认握手的信息发送模块2013,用于根据接收到的所述握手请求,通过所述socket服务端向所述第一socket客户端发送确认握手的信息;
通信连接建立模块2014,用于在所述第一socket客户端接收到所述确认握手的信息后,实现所述boot service进程和所述zygote进程的通信连接。
通过在所述boot service进程与所述zygote进程中建立socket通信连接,可实现通过所述boot service进程暂停所述zygote进程或者通过所述boot service进程来触发使所述zygote进程继续运行,进而方便快捷的实现所述zygote进程的暂停和继续运行。
请参阅图8,在本申请的一个示例性实施例中,所述挂载模块203包括:
检测模块2031,用于在检测到所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统时,通过所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且通过所述init进程向所述boot service进程发送继续运行的指令;
转发模块2032,用于通过所述boot service进程将所述继续运行的指令转发至所述zygote进程;
触发运行模块2033,用于根据所述继续运行的指令触发所述zygote进程继续运行,以从所述Android系统文件中获取用户数据目录中执行用户进程必需的目录和权限,进而根据所述执行用户进程必需的目录和权限,加载Android系统的用户应用进程,完成Android系统的启动。
根据所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统来触发所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,并通过所述boot service进程将所述继续运行的指令转发至所述zygote进程,以触发所述zygote进程继续运行,可实现在用户登录第一操作系统后,快速加载Android系统的用户应用进程,完成Android系统的启动。进一步地,本申请结合Android系统init属性机制与socket进程间通信技术,在实现方面,相比zygote进程主动轮询用户数据目录是否准备就绪这种方式,更加合理有效,占CPU资源也会少很多。
进一步地,所述检测模块2031用于通过所述init进程向所述boot service进程发送继续运行的指令时,包括用于:在所述init进程端创建第二socket客户端;通过所述第二socket客户端向所述boot service的socket服务端发送继续运行的指令。所述转发模块2032用于通过所述boot service进程将所述继续运行的指令转发至所述zygote进程时,包括用于:通过所述boot service进程的socket服务端接收所述继续运行的指令,并转发至所述zygote进程的第一socket客户端;根据所述继续运行的指令,通过所述zygote进程的第一socket客户端触发所述zygote进程继续运行。通过在所述boot service进程与所述init进程中建立socket通信连接,可在所述init进程创建好加载用户进程必需的目录和权限后,方便快捷地向所述boot service进程发送继续运行的指令,从而通过所述bootservice进程快捷触发使所述zygote进程继续运行,提高运行效率。
在本申请的一个示例性实施例中,所述启动Android系统的装置还包括第一操作系统的用户应用进程加载模块(图中未示),用于将所述用户数据目录挂载到第一操作系统的文件系统,以加载第一操作系统的用户应用进程,完成第一操作系统的启动,从而实现在用户登录第一操作系统,同时完成启动第一操作系统和Android系统,进而为快捷地为用户提供第一操作系统和Android系统的使用体验。
实施例3
下述为本申请设备实施例,可以用于执行本申请方法实施例。对于本申请设备实施例中未披露的细节,请参照本申请方法实施例。
请参阅图9,本申请还提供一种电子设备300,所述电子设备300可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等设备。在本申请实施例中,所述电子设备为笔记本电脑,尤其为学生用笔记本电脑,通过第一操作系统上设置管控策略以及对Android应用商店进行管控,从而防止学生使用所述笔记本电脑乱打开网页看视屏或者乱下载软件玩游戏等。所述电子设备300可以包括:至少一个处理器301、至少一个存储器302,至少一个网络接口303,用户接口304以及至少一个通信总线305。
其中,所述用户接口304主要用于为用户提供输入的接口,获取用户输入的数据,其可以包括显示终端和摄像终端;所述显示终端包括显示屏和触摸屏,所述显示屏用于显示经过处理器处理后的数据;所述触摸屏可以包括:电容屏,电磁屏或红外屏等,一般而言,该触摸屏可以接收用户通过手指或者输入设备输入的触摸操作或书写操作。可选的,所述用户接口304还可以包括标准的有线接口、无线接口。
其中,所述网络接口303可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,所述通信总线305用于实现这些组件之间的连接通信。
其中,所述处理器301可以包括一个或者多个处理核心。处理器301利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器302内的指令、程序、代码集或指令集,以及调用存储在存储器302内的数据,执行电子设备300的各种功能和处理数据。可选的,处理器301可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器301可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器301中,单独通过一块芯片进行实现。
其中,存储器302可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器302包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器302可用于存储指令、程序、代码、代码集或指令集。存储器302可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器302可选的还可以是至少一个位于远离前述处理器301的存储装置。如图9所示,作为一种计算机存储介质的存储器302中可以包括操作系统、网络通信模块、用户。
所述处理器301可以用于调用存储器63中存储的数据同步显示方法的应用程序,并具体执行以下操作:在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
本申请实施例通过建立所述boot service进程和所述zygote进程的通信连接,在用户登陆第一操作系统前,通过所述boot service进程暂停所述zygote进程;在用户登陆第一操作系统后,将所述用户数据目录挂载到Android文件系统时,在所述boot service进程中创建用户数据目录属性,并使用户数据目录属性指示为用户数据目录挂载到Android文件系统,进而使所述boot service进程根据所述用户数据目录属性触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动,从而实现在用户登陆第一操作系统前启动部分的Android系统,在用户登陆第一操作系统后触发启动后续的Android系统,以使Android系统在用户登陆后得以快速启动,提高用户体验。
在本申请的一个示例性实施例中,所述boot service进程和所述zygote进程的通信连接方式为socket通信连接,所述处理器301执行建立所述boot service进程与所述zygote进程的通信连接时,包括执行以下操作:在所述boot service进程端创建socket服务端、以及在所述zygote进程端创建第一socket客户端;通过所述第一socket客户端向所述socket服务端发送握手请求;根据接收到的所述握手请求,通过所述socket服务端向所述第一socket客户端发送确认握手的信息;在所述第一socket客户端接收到所述确认握手的信息后,实现所述boot service进程和所述zygote进程的通信连接。通过在所述bootservice进程与所述zygote进程中建立socket通信连接,可实现通过所述boot service进程暂停所述zygote进程或者通过所述boot service进程来触发使所述zygote进程继续运行,进而方便快捷的实现所述zygote进程的暂停和继续运行。
在本申请的一个示例性实施例中,所述处理器301执行根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动时,包括执行以下操作:在检测到所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统时,通过所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且通过所述init进程向所述boot service进程发送继续运行的指令;通过所述boot service进程将所述继续运行的指令转发至所述zygote进程;根据所述继续运行的指令触发所述zygote进程继续运行,以从所述Android系统文件中获取用户数据目录中执行用户进程必需的目录和权限,进而根据所述执行用户进程必需的目录和权限,加载Android系统的用户应用进程,完成Android系统的启动。根据所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统来触发所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,并通过所述boot service进程将所述继续运行的指令转发至所述zygote进程,以触发所述zygote进程继续运行,可实现在用户登录Chromium OS,快速加载Android系统的用户应用进程,完成Android系统的启动。进一步地,本申请结合Android系统init属性机制与socket进程间通信技术,在实现方面,相比zygote进程主动轮询用户数据目录是否准备就绪这种方式,更加合理有效,占CPU资源也会少很多。
在本申请的一个示例性实施例中,所述处理器301执行通过所述init进程向所述boot service进程发送继续运行的指令时,包括执行以下操作:在所述init进程端创建第二socket客户端;通过所述第二socket客户端向所述boot service的socket服务端发送继续运行的指令。所述处理器301执行通过所述boot service进程将所述继续运行的指令转发至所述zygote进程时,包括执行:通过所述boot service进程的socket服务端接收所述继续运行的指令,并转发至所述zygote进程的第一socket客户端;根据所述继续运行的指令,通过所述zygote进程的第一socket客户端触发所述zygote进程继续运行。通过在所述boot service进程与所述init进程中建立socket通信连接,可在所述init进程创建好加载用户进程必需的目录和权限后,方便快捷地向所述boot service进程发送继续运行的指令,从而通过所述boot service进程快捷触发使所述zygote进程继续运行,提高运行效率。
在本申请的一个示例性实施例中,所述处理器301执行以下操作:将所述用户数据目录挂载到第一操作系统的文件系统,以加载第一操作系统的用户应用进程,完成第一操作系统的启动,从而实现在用户登录第一操作系统,同时完成启动第一操作系统和Android系统,进而为快捷地为用户提供第一操作系统和Android系统的使用体验。
实施例4
本申请还提供一种计算机可读存储介质,其上储存有计算机程序,所述指令适于由处理器加载并执行上述所示实施例的方法步骤,具体执行过程可以参见实施例1所示的具体说明,在此不进行赘述。所述存储介质所在设备可以是个人计算机、笔记本电脑、智能手机、平板电脑等电子设备。
对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种启动Android系统的方法,其特征在于,包括如下步骤:
在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;
暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;
根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;
根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
2.根据权利要求1所述的启动Android系统的方法,其特征在于,
启动所述Android系统文件中的boot service进程和zygote进程的步骤,包括:
通过加载所述Android系统文件的init进程启动boot service进程和zygote进程;
根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动的步骤,包括:
在检测到所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统时,通过所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且通过所述init进程向所述bootservice进程发送继续运行的指令;
通过所述boot service进程将所述继续运行的指令转发至所述zygote进程;
根据所述继续运行的指令触发所述zygote进程继续运行,以从所述Android系统文件中获取用户数据目录中执行用户进程必需的目录和权限,进而根据所述执行用户进程必需的目录和权限,加载Android系统的用户应用进程,完成Android系统的启动。
3.根据权利要求2所述的启动Android系统的方法,其特征在于,
所述boot service进程和所述zygote进程的通信连接方式为socket通信连接,建立所述boot service进程与所述zygote进程的通信连接的步骤,包括:
在所述boot service进程端创建socket服务端、以及在所述zygote进程端创建第一socket客户端;
通过所述第一socket客户端向所述socket服务端发送握手请求;
根据接收到的所述握手请求,通过所述socket服务端向所述第一socket客户端发送确认握手的信息;
在所述第一socket客户端接收到所述确认握手的信息后,实现所述boot service进程和所述zygote进程的通信连接。
4.根据权利要求3所述的启动Android系统的方法,其特征在于,
通过所述init进程向所述boot service进程发送继续运行的指令的步骤,包括:
在所述init进程端创建第二socket客户端;
通过所述第二socket客户端向所述boot service的socket服务端发送继续运行的指令;
通过所述boot service进程将所述继续运行的指令转发至所述zygote进程的步骤,包括:
通过所述boot service进程的socket服务端接收所述继续运行的指令,并转发至所述zygote进程的第一socket客户端;
根据所述继续运行的指令,通过所述zygote进程的第一socket客户端触发所述zygote进程继续运行。
5.根据权利要求1-4中任一权利要求所述的启动Android系统的方法,其特征在于,所述方法还包括如下步骤:将所述用户数据目录挂载到第一操作系统的文件系统,以加载第一操作系统的用户应用进程,完成第一操作系统的启动。
6.根据权利要求5所述的启动Android系统的方法,其特征在于,所述方法还包括如下步骤:在启动第一操作系统时,加载第一操作系统的浏览器,通过所述第一操作系统的浏览器显示用于接收用户登陆信息的第一操作系统的用户登陆界面、以及通过所述第一操作系统的浏览器将Android系统的镜像文件挂载在第一操作系统的文件系统。
7.一种启动Android系统的装置,其特征在于,包括:
第一启动模块,用于在启动第一操作系统时,将Android系统的镜像文件挂载在第一操作系统的文件系统,启动Android系统文件中的boot service进程和zygote进程,建立所述boot service进程与所述zygote进程的通信连接;其中,所述Android系统的镜像文件中包括Android系统文件;
暂停模块,用于暂停所述zygote进程,以等待所述boot service进程触发所述zygote进程继续运行;
挂载模块,用于根据输入的用户登陆信息获取用户数据目录,并将所述用户数据目录挂载到Android文件系统,且在所述boot service进程中创建用户数据目录属性,使所述用户数据目录属性指示为用户数据目录挂载到Android文件系统;
第二启动模块,用于根据所述用户数据目录属性,通过所述boot service进程触发所述zygote进程继续运行,使所述zygote进程从所述Android系统文件中获取用户数据目录,加载Android系统的用户应用进程,完成Android系统的启动。
8.根据权利要求7所述的启动Android系统的装置,其特征在于,所述第一启动模块,用于通过加载所述Android系统文件的init进程启动boot service进程和zygote进程;所述挂载模块,包括:
检测模块,用于在检测到所述boot service进程中的所述用户数据目录属性指示为用户数据目录挂载到Android文件系统时,通过所述init进程在所述用户数据目录中创建执行用户进程必需的目录和权限,以供所述boot service进程加载运行,且通过所述init进程向所述boot service进程发送继续运行的指令;
转发模块,用于通过所述boot service进程将所述继续运行的指令转发至所述zygote进程;
触发运行模块,用于根据所述继续运行的指令触发所述zygote进程继续运行,以从所述Android系统文件中获取用户数据目录中执行用户进程必需的目录和权限,进而根据所述执行用户进程必需的目录和权限,加载Android系统的用户应用进程,完成Android系统的启动。
9.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至6中任意一项所述的启动Android系统的方法。
10.一种计算机存储介质,其上储存有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6中任意一项所述的启动Android系统的方法。
CN201910898323.XA 2019-09-23 2019-09-23 启动Android系统的方法、装置、电子设备及存储介质 Active CN110780930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910898323.XA CN110780930B (zh) 2019-09-23 2019-09-23 启动Android系统的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910898323.XA CN110780930B (zh) 2019-09-23 2019-09-23 启动Android系统的方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110780930A true CN110780930A (zh) 2020-02-11
CN110780930B CN110780930B (zh) 2023-06-06

Family

ID=69383726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910898323.XA Active CN110780930B (zh) 2019-09-23 2019-09-23 启动Android系统的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110780930B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552524A (zh) * 2020-05-06 2020-08-18 Oppo(重庆)智能科技有限公司 一种插件加载方法、装置及计算机可读存储介质
CN112581584A (zh) * 2020-12-24 2021-03-30 西安翔腾微电子科技有限公司 一种基于SysML视图的GPU图元装配模块的TLM装置及操作方法
CN113220645A (zh) * 2021-05-31 2021-08-06 技德技术研究所(武汉)有限公司 一种Linux兼容Android的文件显示方法及装置
CN113535243A (zh) * 2020-04-22 2021-10-22 宇龙计算机通信科技(深圳)有限公司 终端的启动方法、装置、终端及存储介质
CN114942793A (zh) * 2022-06-14 2022-08-26 中易通科技股份有限公司 一种基于硬件密码设备的终端安全管控方法
CN115587071A (zh) * 2022-12-12 2023-01-10 南京芯驰半导体科技有限公司 一种基于多核异构SoC车载系统数据储存系统及方法
CN116541085A (zh) * 2023-07-05 2023-08-04 成都阿加犀智能科技有限公司 一种Android/Linux融合方法、装置、设备及存储介质
WO2024037470A1 (zh) * 2022-08-16 2024-02-22 华为技术有限公司 一种音频数据处理方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252363A (zh) * 2013-06-25 2014-12-31 上海博泰悦臻电子设备制造有限公司 基于Android系统的车载系统的快速启动方法
CN104598254A (zh) * 2015-02-17 2015-05-06 福州瑞芯微电子有限公司 一种安卓系统快速开机的方法及装置
CN105808253A (zh) * 2016-03-04 2016-07-27 北京奇虎科技有限公司 安卓系统开机启动的方法及装置
WO2017049828A1 (zh) * 2015-09-25 2017-03-30 中兴通讯股份有限公司 基于Linux的数据处理方法、装置和系统
US20170168848A1 (en) * 2014-07-10 2017-06-15 Harman International Industries, Incorporated Operating system startup acceleration
CN108319480A (zh) * 2018-02-01 2018-07-24 微鲸科技有限公司 蓝牙服务启动方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252363A (zh) * 2013-06-25 2014-12-31 上海博泰悦臻电子设备制造有限公司 基于Android系统的车载系统的快速启动方法
US20170168848A1 (en) * 2014-07-10 2017-06-15 Harman International Industries, Incorporated Operating system startup acceleration
CN104598254A (zh) * 2015-02-17 2015-05-06 福州瑞芯微电子有限公司 一种安卓系统快速开机的方法及装置
WO2017049828A1 (zh) * 2015-09-25 2017-03-30 中兴通讯股份有限公司 基于Linux的数据处理方法、装置和系统
CN105808253A (zh) * 2016-03-04 2016-07-27 北京奇虎科技有限公司 安卓系统开机启动的方法及装置
CN108319480A (zh) * 2018-02-01 2018-07-24 微鲸科技有限公司 蓝牙服务启动方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
文伟平等: "一种基于Android内核的APP敏感行为检测方法及实现", 《信息网络安全》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535243A (zh) * 2020-04-22 2021-10-22 宇龙计算机通信科技(深圳)有限公司 终端的启动方法、装置、终端及存储介质
CN111552524A (zh) * 2020-05-06 2020-08-18 Oppo(重庆)智能科技有限公司 一种插件加载方法、装置及计算机可读存储介质
CN111552524B (zh) * 2020-05-06 2023-10-13 Oppo(重庆)智能科技有限公司 一种插件加载方法、装置及计算机可读存储介质
CN112581584A (zh) * 2020-12-24 2021-03-30 西安翔腾微电子科技有限公司 一种基于SysML视图的GPU图元装配模块的TLM装置及操作方法
CN113220645A (zh) * 2021-05-31 2021-08-06 技德技术研究所(武汉)有限公司 一种Linux兼容Android的文件显示方法及装置
CN114942793A (zh) * 2022-06-14 2022-08-26 中易通科技股份有限公司 一种基于硬件密码设备的终端安全管控方法
WO2024037470A1 (zh) * 2022-08-16 2024-02-22 华为技术有限公司 一种音频数据处理方法、装置及存储介质
CN115587071A (zh) * 2022-12-12 2023-01-10 南京芯驰半导体科技有限公司 一种基于多核异构SoC车载系统数据储存系统及方法
CN116541085A (zh) * 2023-07-05 2023-08-04 成都阿加犀智能科技有限公司 一种Android/Linux融合方法、装置、设备及存储介质
CN116541085B (zh) * 2023-07-05 2023-09-12 成都阿加犀智能科技有限公司 一种Android/Linux融合方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110780930B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN110780930B (zh) 启动Android系统的方法、装置、电子设备及存储介质
US11188353B2 (en) Runtime extension system for bundled web application
US11178207B2 (en) Software version control without affecting a deployed container
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
US10069832B2 (en) Ephemeral applications
CN110032413B (zh) 一种桌面虚拟化方法、相关设备及计算机存储介质
JP6397113B2 (ja) リモーティングセッションを通じた非サポートファイル形式の開封
JP6192534B2 (ja) 仮想アプリケーション拡張ポイント
CN110945480A (zh) 用于更新和加载应用程序的系统和方法
KR102015739B1 (ko) 스마트 카드 판독/기입 방법 및 디바이스
WO2015020909A2 (en) Virtual computing instance migration
WO2013182005A1 (zh) 一种用于拦截应用程序对服务的调用的方法和装置
US10908948B2 (en) Multiple application instances in operating systems that utilize a single process for application execution
US9350738B2 (en) Template representation of security resources
EP3633533B1 (en) Electronic apparatus and controlling method thereof
WO2019015491A1 (zh) 应用程序的分身方法、装置、设备和介质
US9350596B2 (en) On-demand tethered greedy virtual application appliance
KR20150057328A (ko) 어플리케이션 업데이트 방법 및 이를 지원하는 단말
US20190227815A1 (en) Preemptive loading of code dependencies for improved performance
CN115774742A (zh) 私有云的数据存储新增方法、装置、设备、介质及产品
US20180210770A1 (en) Enabling wpd devices to be managed at the capability level
EP4350516A1 (en) Control method and electronic device
US11537682B1 (en) Experience convergence for multiple platforms
US20210336999A1 (en) System and method for workspace sharing
US10394722B1 (en) Managing alt-mode interfaces of a USB Type-C device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant