CN117785221A - 一种应用程序安装方法及电子设备 - Google Patents
一种应用程序安装方法及电子设备 Download PDFInfo
- Publication number
- CN117785221A CN117785221A CN202211194032.0A CN202211194032A CN117785221A CN 117785221 A CN117785221 A CN 117785221A CN 202211194032 A CN202211194032 A CN 202211194032A CN 117785221 A CN117785221 A CN 117785221A
- Authority
- CN
- China
- Prior art keywords
- installation
- application program
- application
- electronic device
- shared folder
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000009434 installation Methods 0.000 claims abstract description 273
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 29
- 239000010410 layer Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 230000006854 communication Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000011900 installation process Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 208000006930 Pseudomyxoma Peritonei Diseases 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 229920000306 polymethylpentene Polymers 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种应用程序安装方法及电子设备,该方法包括:电子设备接收用户的安装请求。电子设备响应于安装请求,下载应用程序的安装包文件,并将应用程序的安装包文件存储在共享文件夹中,该共享文件夹支持被具有读写权限的包管理服务PMS服务访问。电子设备调用PMS服务获取应用程序对应的共享文件夹地址,基于共享文件夹地址获取共享文件夹,进一步基于共享文件夹中的安装包文件安装应用程序。这样,电子设备可以通过共享文件夹地址,可以得到存储在共享文件夹中的安装包文件。电子设备在安装应用程序的过程中,无需多次拷贝安装包文件,可以提高安装应用程序的速度,降低安装应用程序的时间,从而提高用户的使用体验。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种应用程序安装方法及电子设备。
背景技术
随着电子设备在生活中的广泛应用,用户可以在电子设备中安装可实现不同功能的应用程序,以满足用户的使用需求。例如,用户可以在电子设备中安装游戏类应用程序,用户通过游戏类应用程序,可以满足娱乐放松的需求。用户可以在电子设备中安装学习类应用程序,用户通过学习类应用程序,可以满足学习的需求。
为了不断丰富应用程序的使用功能和体验,开发人员会在应用程序中不断添加多种新功能和特性,这就导致应用程序的安装包文件数据量越来越大,进而导致电子设备安装应用程序的时间也越来越长,影响用户的使用体验。如何实现电子设备快速安装应用程序,成为亟待解决的问题。
发明内容
本申请实施例提供一种应用程序安装方法及电子设备,所述方法能够通过电子设备将应用程序的安装包文件下载至共享文件夹,电子设备调用PMS服务可基于共享文件夹中的安装包文件安装应用程序。这样,电子设备在安装应用程序过程中,无需多次拷贝安装包文件。改善了电子设备安装应用程序的时间较长的问题,提高了用户的使用体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种应用程序安装方法,该方法包括:电子设备接收用户的安装请求。电子设备响应于安装请求,下载应用程序的安装包文件,并将应用程序的安装包文件存储在共享文件夹中,该共享文件夹支持被具有读写权限的包管理服务PMS服务访问。电子设备调用PMS服务获取应用程序对应的共享文件夹地址,基于共享文件夹地址获取共享文件夹,进一步基于共享文件夹中的安装包文件安装应用程序。这样,电子设备可以通过共享文件夹地址,可以得到存储在共享文件夹中的安装包文件。电子设备在安装应用程序的过程中,无需多次拷贝安装包文件,可以提高安装应用程序的速度,降低安装应用程序的时间,从而提高用户的使用体验。
在第一方面的一种可实现方式中,电子设备调用PMS服务获取应用程序对应的共享文件夹地址包括:电子设备调用PMS服务,通过应用程序对应的包安装会话PackageInstallerSession,从包安装服务PIS服务获取会话参数SessionParams;其中,SessionParams包括共享文件夹地址。本实现方式中,电子设备可以通过调用PIS服务基于SessionParams向PMS服务传递共享文件夹地址,以使PMS服务可以根据SessionParams提取得到共享文件夹地址,以进一步基于共享文件夹中的安装包文件安装应用程序,提高安装应用程序的速度。
在第一方面的一种可实现方式中,该方法还包括:电子设备调用PIS服务创建PackageInstallerSession,该PackageInstallerSession用于传输应用程序对应的会话参数SessionParams。本实现方式中,电子设备通过PackageInstallerSession可以传输共享文件夹地址,以用于电子设备基于共享文件夹地址获取所述共享文件夹。这样,电子设备无需拷贝安装包文件,即可基于共享文件夹中的安装包文件安装应用程序,从而提高安装应用程序的速度。
在第一方面的一种可实现方式中,电子设备调用包安装服务PIS服务创建PackageInstallerSession,包括:电子设备调用PIS服务获取应用程序对应的会话参数SessionParams;基于会话参数SessionParams创建PackageInstallerSession。本实现方式中,PIS服务基于包括共享文件夹地址的会话参数SessionParams创建PackageInstallerSession,以实现通过PackageInstallerSession传输共享文件夹地址。这样,电子设备无需拷贝安装包文件,从而可以提高安装应用程序的速度。
在第一方面的一种可实现方式中,电子设备基于共享文件夹中的安装包文件安装应用程序的方法包括:电子设备调用安装守护进程Installd,将共享文件重命名为应用程序的安装文件夹。电子设备调用PMS服务通过安装文件夹中的安装包文件,安装应用程序。本实现方式中,电子设备可以通过调用安装守护进程Installd,将共享文件重命名为应用程序的安装文件夹。以使PMS服务可以通过安装文件夹中的安装包文件,安装应用程序。
第二方面,提供了一种电子设备,包括:接收模块,用于接收用户的安装请求,安装请求用于请求安装应用程序。处理模块,用于响应于安装请求,下载应用程序的安装包文件,并将应用程序的安装包文件存储在共享文件夹中,共享文件夹支持被具有读写权限的包管理服务PMS服务访问。处理模块,还用于调用PMS服务获取应用程序对应的共享文件夹地址,基于共享文件夹地址获取共享文件夹,基于共享文件夹中的安装包文件安装应用程序,共享文件夹地址用于指示应用程序的安装包文件所在的共享文件夹。这样,电子设备可以通过共享文件夹地址,可以得到存储在共享文件夹中的安装包文件。电子设备在安装应用程序的过程中,无需多次拷贝安装包文件,可以提高安装应用程序的速度,降低安装应用程序的时间,从而提高用户的使用体验。
在第二方面的一种可实现方式中,处理模块,具体用于调用PMS服务,通过应用程序对应的包安装会话PackageInstallerSession,从包安装服务PIS服务获取会话参数SessionParams;其中,SessionParams包括共享文件夹地址。
在第二方面的一种可实现方式中,处理模块,还用于调用PIS服务创建PackageInstallerSession,PackageInstallerSession用于传输应用程序对应的会话参数SessionParams。
在第二方面的一种可实现方式中,处理模块,具体用于调用PIS服务获取应用程序对应的会话参数SessionParams;基于会话参数SessionParams创建PackageInstallerSession。
在第二方面的一种可实现方式中,处理模块,还用于调用Installd进程,将共享文件重命名为应用程序的安装文件夹,进一步的,调用PMS服务通过安装文件夹中的安装包文件,安装应用程序。
第三方面,提供了一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面任一项所述的方法。
第四方面,提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得电子设备执行上述第一方面任一项所述的方法。
可以理解地,上述第二方面的电子设备,第三方面的计算机可读存储介质,第四方面的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备安装应用程序方法的流程示意图;
图2为本申请实施例提供的一种电子设备安装应用程序的原理示意图;
图3为本申请实施例提供的一种应用程序下载界面的示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件结构示意图;
图6为本申请实施例提供的一种应用程序安装方法的流程示意图;
图7为本申请实施例提供的一种应用程序安装方法的原理示意图;
图8为本申请实施例提供的一种向电子设备发起安装请求的示意图;
图9为本申请实施例提供的一种PMS服务安装应用程序的流程示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
为了便于技术人员理解本申请实施例的技术方案,下面先对本申请实施例涉及的技术术语进行解释说明。
包管理服务(PackageManagerService,PMS):PMS服务是安卓(Android)***中核心服务之一,提供与包(package)(或称为应用程序的安装包/软件包)相关的管理服务。例如,PMS服务可以基于应用程序的安装包提供应用程序的安装、卸载以及信息管理等服务。PMS服务运行在***服务(SystemServer)进程中,SystemServer进程为Android***在启动过程中主动创建的进程。
包安装服务(PackageInstallerService,PIS):PIS服务为Android***中的应用程序安装服务。PIS服务可以提供应用程序安装、卸载的接口等。
随着电子设备在生活中的广泛应用,用户可以在电子设备中安装可实现不同功能的应用程序,以满足用户的使用需求。例如,用户可以在电子设备中安装游戏类应用程序,用户通过游戏类应用程序,可以满足娱乐放松的需求。用户可以在电子设备中安装学习类应用程序,用户通过学习类应用程序,可以满足学习的需求。
图1为本申请实施提供的一种电子设备安装应用程序方法的流程示意图,图2为本申请实施提供的一种电子设备安装应用程序的原理示意图。结合图1和图2,以电子设备通过其内部署的应用市场模块下载安装应用程序为例,示例性的说明电子设备安装应用程序的方法,该方法可以通过以下步骤S101-S104实现:
S101、响应于用户的从应用市场下载应用程序的下载请求,电子设备的应用市场模块将应用程序的安装包文件下载至数据文件夹。
其中,应用程序的安装包文件可以替换描述为应用程序的安装包或者应用程序的软件包或应用程序的安装文件等。数据文件夹为应用市场模块的数据文件夹,即安装包文件保存在应用市场模块的数据文件夹中。示例性的,该数据文件夹的地址为:/data/data/com.xxxxxx.appmarket/files/。应用市场模块的数据文件夹位于电子设备的应用层,可以供应用市场模块访问,并从中读写应用程序的安装包文件,而电子设备的操作***中的其他功能模块(比如PMS服务等)不能从该数据文件夹中直接访问该安装包文件。
S102、电子设备调用PIS服务创建包安装会话(PackageInstallerSession),并通过PackageInstallerSession向PMS服务传递安装包文件。
具体的,电子设备调用PIS服务将应用市场模块的数据文件夹中的安装包文件,拷贝至通过PackageInstallerSession传输的临时数据文件夹中,并向PMS服务提供访问该安装包文件的接口,以向PMS服务传递安装包文件。可以理解的是,本申请实施例中,“拷贝”、“复制”、“写入”具有相同概念,可以替换使用,以下使用“拷贝”进行描述。
S103、电子设备通过PIS服务调用PMS服务启动应用安装过程。
S104、电子设备调用PMS服务从通过PackageInstallerSession传输的临时数据文件夹中提取安装包文件,并将安装包文件写入到应用程序的安装文件夹,以用于安装应用程序。
在上述电子设备安装应用程序的方法中,由于PMS服务运行在***服务(SystemServer)进程中,而应用市场模块运行在其自己的进程中,上述两个进程相互独立。因此,PMS服务没有访问应用市场模块的数据文件夹的权限,进而无法直接通过应用市场模块的数据文件夹获取已下载的安装包文件,而是需要通过PackageInstallerSession获取安装包文件。具体的,由上述步骤S102可见,通过PackageInstallerSession传输的临时文件夹中保存有安装包文件,该安装包文件是从应用市场模块的数据文件夹中拷贝得来。可见,电子设备在安装应用程序的过程中,会对安装包文件进行多次拷贝操作,如先从应用市场模块的数据文件夹中拷贝到PackageInstallerSession,再从PackageInstallerSession拷贝到应用程序的安装文件夹中。
在一些应用场景中,为了不断丰富应用程序的使用功能和体验,应用程序的开发人员会在应用程序中不断添加多种新功能和特性等,这就导致应用程序的安装包文件数据量越来越大。图3本申请实施例提供的一种应用市场应用程序下载界面的示意图。如图3所示,为应用程序“Aaa”的下载界面,根据下载界面的显示内容可见,应用程序“Aaa”的安装包文件的数据量为2010.9兆(Mbyte,MB),已接近2吉字节(Gigabyte,GB)。
由于电子设备在安装应用程序的过程中需要对应用程序的安装包文件进行多次拷贝,在应用程序的安装包文件数据量较大,和/或电子设备文件读写(也可称为拷贝、复制)速率较慢的情况下,则会导致电子设备安装应用程序的时间较长,从而影响用户的使用体验。
为了解决在电子设备安装应用程序的过程中,由于电子设备需要对应用程序的安装包文件进行拷贝,从而导致电子设备安装应用程序的时间较长的问题。本申请实施例提供一种应用程序安装方法,该方法包括:将应用程序的安装包文件预先下载在共享文件夹中,电子设备接收用户的用于请求安装应用程序的安装请求,响应于安装请求,获取用于指示应用程序的安装包文件存储的共享文件夹的共享文件夹地址,基于共享文件夹地址获取共享文件夹,并可基于共享文件夹中的安装包文件安装应用程序。这样,电子设备通过共享文件夹地址,可以得到存储在共享文件夹中的安装包文件。电子设备在安装应用程序的过程中,无需多次拷贝安装包文件,可以提高安装应用程序的速度,降低安装应用程序的时间,从而提高用户的使用体验。
可以理解的是,上述数据文件夹、共享文件夹和安装文件夹为示例性命名。例如还可替换成数据目录、共享目录和安装目录等名称。其中,数据目录可以理解为数据目录对应的文件夹,共享目录可以理解为共享目录对应的文件夹,安装目录可以理解为安装目录对应的文件夹。本申请实施例对此不做限定,下面本申请实施例所述方案中,以数据文件夹、共享文件夹和安装文件夹为例进行描述,在此统一说明,后续不再赘述。
上述实施例中的电子设备可以包括但不限于智能手机、上网本、平板电脑、智能手表、智能手环、电话手表、智能相机、掌上电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portablemultimedia player,PMP)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、电视机、投影设备或人机交互场景中的体感游戏机等。或者,电子设备还可以是其他类型或结构的电子设备,本申请不限定。
图4示出了电子设备100的硬件结构示意图。示例性的,图4所示的电子设备100可以是本申请实施例中的用户设备。
如图4所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口和/或通用串行总线(universal serial bus,USB)接口等。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图5是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图5所示,应用程序包可以包括应用市场模块,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
在本申请实施例中,应用市场模块用于对应用程序进行管理,例如包括应用程序的下载、安装以及卸载等。在本申请实施例中,应用市场模块用于下载应用程序的安装包文件,并保存在共享文件夹中。可以理解的是,应用市场模块为示例性命名。本申请实施例对应用市场模块的命名不做限定,例如可替换成安装下载模块、应用商城模块等具备相同或相似功能的名称。下面本申请实施例所述方案中,统一以应用市场模块为例进行描述。
如图5所示,应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
在本申请实施例中,应用程序框架层包括:包管理(PMS)模块和守护进程(Installd)。其中,PMS模块包括:包安装对象(PackageInstaller)、PIS服务、PMS服务、会话参数对象(SessionParams)、包安装会话对象(PackageInstallerSession)、安装对象(Installer)。PackageInstaller为PIS服务的代理对象,PIS服务可用于创建PackageInstallerSession,该PackageInstallerSession可以用于传递共享文件夹地址。具体的,PackageInstallerSession中包括SessionParams对象,SessionParams对象中包括共享文件夹地址,PMS服务可用于通过SessionParams对象提取共享文件夹地址,并基于该地址对应的共享文件夹内的安装包文件安装应用程序。Installd进程用于通过Installer向PMS服务安装***提供对文件夹的创建、重命名、删除等操作。Android Runtime包括核心库和虚拟机。Android Runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
以图5所示电子设备的软件框架为例,本申请实施例提供的应用程序安装方法的原理为:电子设备调用应用市场模块下载应用程序的安装包文件(.apk文件)并保存在共享文件夹中。安装包文件下载完成后,电子设备调用应用市场模块构造SessionParams对象,SessionParams对象用于配置PackageInstallerSession的各项参数。电子设备通过应用市场模块调用PIS服务基于SessionParams创建PackageInstallerSession。电子设备通过应用市场模块调用PackageInstaller的commit接口向PIS服务提交安装请求。PIS服务收到安装请求后,从PackageInstallerSession中解析出SessionParams,并完成安装过程初始化。其中,SessionParams中包括共享文件夹地址并完成安装过程初始化。最终电子设备通过PIS服务调用PMS服务的install接口启动安装。PMS服务基于共享文件夹地址获取共享文件夹,基于共享文件夹中的安装包文件安装应用程序。
下面对本申请实施例提供的应用程序安装方法进行说明。其中下述电子设备可以具体参照图4所示的部件以及图5所示的应用程序框架层。图6为本申请实施例示出的一种应用程序安装方法的流程示意图,图7为本申请实施例提供的一种应用程序安装方法的原理示意图,结合图6和图7所示,该方法可以包括如下步骤S201-S209:
S201、用户向电子设备发起安装请求。
在本申请实施例中,用户可以通过电子设备中具有下载安装功能的应用程序(application,APP)向电子设备发起安装请求。一种示例中,以用户通过应用市场APP发起安装请求为例。应用市场APP可以安装在用户设备上,并以应用市场APP图标的形式展示给用户。用户可以通过点击应用市场APP图标,打开应用市场APP,并可通过应用市场APP的显示界面上的安装控件发起安装请求。
示例性的,如图8所示,用户可以在用户设备上点击应用市场APP图标,以打开应用市场APP。应用市场APP中可提供多个应用程序的下载安装服务,每一个应用程序都可以图标的形式展示给用户,并显示有应用程序的名称、评分、安装包文件数据量大小等。用户可通过点击应用程序对应的安装控件,以向电子设备发起安装该APP的安装请求。
在一些实施例中,安装请求中至少包括:待安装应用程序的标识信息。待安装应用程序的标识信息用于标识应用程序,例如可以是应用程序的名称。这样以确保电子设备可以准确地安装用户选择的应用程序。
可选的,安装请求中还包括:安装请求方信息。安装请求方信息可用于配置PackageInstallerSession。具体的,安装请求方信息用于表征电子设备信息,例如包括电子设备的名称、电子设备的***。
S202、电子设备接收用户的安装请求,响应于安装请求,下载应用程序的安装包文件,并将安装包文件存储在共享文件夹中。
在一种实现方式中,步骤S202可以通过电子设备中的应用市场模块实现。
具体的,如图7所示,应用市场模块接收并响应于用户的安装请求,并可通过应用程序服务器下载应用程序的安装包文件。在一种示例中,应用程序服务器中存储有指定应用程序的安装包文件,并可向应用市场模块提供下载服务,在又一种示例中,应用程序服务器中集成有多个应用程序的安装包文件,应用市场模块可通过向应用程序服务器发送包括应用程序标识信息的下载请求,以从应用程序服务器中下载得到应用程序标识信息对应应用程序的安装包文件。
其中,安装包文件可以为Android应用程序包(Android application package,APK)文件。开发人员在完成Android应用程序开发后,会把程序代码和资源文件一起编译打包成一种能被Android***安装和使用的文件包,即APK文件。一个APK文件内通常包含被编译的代码文件(.dex文件)、文件资源(resources)、原生资源文件(assets)、证书(certificates)和配置清单文件(manifest file)等。电子设备通过解析APK文件中的文件可以实现安装其对应的应用程序。
在本申请实施例中,应用市场模块将下载得到的安装包文件存储在共享文件夹中。其中,共享文件夹由应用市场模块创建。例如,应用市场模块可以在电子设备本地的文件***中创建共享文件夹。在一些实施例中,应用市场模块还可以配置该共享文件夹的读写权限。例如,应用市场模块将具有对共享文件夹读写权限的对象配置为包括但不限于:应用市场模块和PMS服务,这样以便于PMS服务通过共享文件夹获取安装包文件。可以理解的是,与PMS服务具有相同功能的服务或模块等,同样具有对共享文件夹读写的权限。
S203、电子设备调用PIS服务创建PackageInstallerSession。
其中,该PackageInstallerSession(或简称为会话)与待安装的应用程序(即S202中下载的应用程序)对应,该PackageInstallerSession用于PIS服务与PMS服务之间传递/传输该PackageInstallerSession对应的会话参数(SessionParams)。可以理解的是,本申请所述的“创建PackageInstallerSession”可以指配置PackageInstallerSession的相关参数,比如配置PackageInstallerSession对应的应用程序、SessionParams、会话标识(session ID)等等,将配置的相关参数打包在一个文件(该文件可以称为配置文件)中与该PackageInstallerSession对应存储起来。
在一种实现方式中,电子设备可以通过应用市场模块,调用PIS服务的创建会话(CreateSession)接口创建PackageInstallerSession。
具体的,应用市场模块下载应用程序并将应用程序存储到共享文件夹后,应用程序模块可以根据用户的安装请求、安装包文件的信息等构造/配置该应用程序对应的会话参数(SessionParams)对象(以下简称SessionParams),以配置应用程序安装的各项参数。进一步的,构造/配置完成后,应用市场模块调用PIS服务的CreateSession接口,比如通过CreateSession接口向PIS服务发送携带SessionParams的创建会话请求,该创建会话请求用于请求创建该应用程序对应的PackageInstallerSession。PIS服务接收到该创建会话请求后,根据创建会话请求确定为应用程序创建会话,从创建会话请求中获取SessionParams,根据SessionParams创建该应用程序对应的PackageInstallerSession。
进一步的,PIS服务创建PackageInstallerSession完成后,PIS服务可以向应用市场模块返回创建会话响应,该创建会话响应可以携带待安装的应用程序的标识信息,该创建会话响应用于指示待安装的应用程序的PackageInstallerSession创建完成。
本申请中,安装包文件的信息可以包括但不限于:安装包文件的名称、安装包文件的下载来源、安装包文件的安装方式(覆盖安装或者新安装)。SessionParams中可以包括但不限于:安装请求方信息、安装包文件的名称、安装包文件的下载来源、安装包文件的安装方式等。其中,安装请求方信息用于表征电子设备的信息,例如包括电子设备的名称、电子设备的***。安装包文件的名称即为安装程序的名称。安装包文件的下载来源为应用市场模块下载安装包文件的来源,例如下载来源可以为应用市场服务器。安装包文件的安装方式用于描述安装包文件的安装方式,安装方式例如包括覆盖安装或者新安装。
在本申请实施例中,为了传递共享文件夹中的安装包文件。应用市场模块构造的SessionParams中包括共享文件夹地址,共享文件夹地址用于指示共享文件夹。示例性的,共享文件夹地址可为:/data/misc/installer/XXXXXXX/0/com.xxxxxx.appmarket。因此,根据SessionParams创建的PackageInstallerSession中包括有共享文件夹地址,这样通过PackageInstallerSession可以向传递共享文件夹地址,根据共享文件夹地址可以确定共享文件夹,进一步的,可以得到共享文件夹中的安装包文件。
可以理解的是,在多个应用程序下载安装的场景中,PIS服务可以创建多个应用程序对应的多个PackageInstallerSession,一个应用程序对应一个PackageInstallerSession。
S204、电子设备向PIS服务提交安装请求。
其中,安装请求可以用于请求安装应用程序(即S202中下载的应用程序)。
在一种实现方式中,电子设备可以通过应用市场模块实现向PIS服务提交安装请求。
具体的,应用市场模块接收到PIS服务返回的创建会话响应之后,根据创建会话响应确定应用程序的PackageInstallerSession创建完成,进而应用市场模块向PIS服务提交安装请求。比如,应用市场模块调用应用安装器(PackageInstaller)的提交(commit)接口向PIS服务提交安装请求。其中,PackageInstaller为PIS服务的代理对象,PackageInstaller封装有PIS服务的服务能力。commit接口为PackageInstaller提供的提交接口,可以用于接收应用市场模块发送的安装请求。
S205、PIS服务接收安装请求,根据安装请求,确定待安装的应用程序对应的PackageInstallerSession以及PackageInstallerSession对应的SessionParams。
在本申请实施例中,PackageInstaller的commit接口接收到安装请求后,也即PIS服务接收到应用市场模块的安装请求后,可以基于安装请求确定需要对应用程序进行安装,创建的PackageInstallerSession中找到与该应用程序对应的PackageInstallerSession,解析该PackageInstallerSession的配置文件,从PackageInstallerSession的配置文件中得到SessionParams,根据SessionParams对应用程序的安装过程进行初始化,即根据SessionParams中的参数对应用程序的安装过程进行配置和编排。例如,SessionParams中的参数包括:安装包文件的安装方式为覆盖安装,则PIS服务将应用程序的安装过程配置为覆盖安装的过程。
至此,电子设备对于应用程序安装过程中的相关配置(比如SessionParams、PackageInstallerSession等)完成,应用程序安装过程的初始化阶段结束。
S206、电子设备调用PIS服务,通过PackageInstallerSession向PMS服务发送启动安装指令。其中,启动安装指令用于指示PMS服务安装应用程序,启动安装指令中携带有SessionParams,SessionParams中包括共享文件夹地址。
在本申请实施例中,电子设备可通过PIS服务调用PMS服务的安装(install)接口,以使PMS服务启动安装应用程序的过程。示例性的,PIS服务可直接向PMS服务的install接口发送启动安装指令,启动安装指令可以用于指示PMS服务安装应用程序,启动安装指令可以携带SessionParams,还可以携带应用程序的标识信息,比如应用程序的名称等。PMS服务通过install接口接收到启动安装指令后,启动安装应用程序,进入正式安装阶段(InstallStage)。
可以理解的是,SessionParams可以携带在启动安装指令中,也可以不携带在启动安装指令中,而是和启动安装指令一起携带的同一数据包中传输给PMS服务,不予限制。本申请以SessionParams携带在启动安装指令中为例进行说明。
S207、PMS服务接收启动安装指令,根据启动安装指令获取共享文件夹地址。
在本申请实施例中,PMS服务接收启动安装指令,并响应于启动安装指令启动安装应用程序。PMS服务首先从启动安装指令中获取SessionParams,从SessionParams提取共享文件夹地址。由于应用市场模块在构造SessionParams时,写入了共享文件夹地址。因此,SessionParams中包括共享文件夹地址,PMS服务可以从SessionParams中提取共享文件夹地址,以进一步基于共享文件夹中的安装包文件安装应用程序。
S208、PMS服务根据共享文件夹地址将共享文件夹重命名为应用程序的安装文件夹。
在本申请实施例中,根据PMS服务的服务协议,PMS服务在安装应用程序的过程中,需要从应用程序的安装文件夹中解析安装包文件。因此,PMS需要根据共享文件夹地址找到对应的共享文件夹,并将共享文件夹重命名为应用程序的安装文件夹,以便于PMS服务顺利的完成应用程序的安装过程。示例性的,应用程序的安装文件夹的地址可以为:data/app/com.xxx.xxx。其中,com.xxx.xxx用于表示应用程序的安装包文件名称(简称包名)。
在一些实施例中,步骤S208中PMS服务可通过调用Installd进程,以将共享文件夹重命名为应用程序的安装文件夹。具体的,由于PMS服务无法直接对共享文件夹进行重命名,Installd进程具有对文件进行重命名的权限(root_UID),Installd进程可以通过安装(Installer)对象向PMS服务提供重命名操作的接口。因此,PMS服务可以调用Installd进程以实现对共享文件夹进行重命名的操作。示例性的,PMS服务可以通过Installer对象调用Installd进程的重命名接口,实现将共享文件夹重命名为应用程序的安装文件夹。
S209、PMS服务基于应用程序的安装文件夹中的安装包文件,安装应用程序。
在本申请实施例中,由于PMS服务对共享文件夹具有读写权限,因此对共享文件夹重命名后的安装文件夹同样具有读写权限。PMS服务可以直接访问安装文件夹,进行数据读写操作,以解析安装文件夹中的安装包文件,实现应用程序的安装。
下面,以PMS服务通过解析包接口(parsePackage)、创建应用信息接口(scanPackageLI)、更新设置接口(updateSettingsLI)、创建数据文件夹接口(prepareAppDataLIF)、编译优化接口(performDexOpt)以及广播接口(processPendingInstall)实现应用程序的安装为例,示例性的说明PMS服务安装应用程序的方法,如图9所示,具体包括如下步骤S301-S306:
S301、parsePackage解析安装包文件。
具体的,以安装包文件为APK文件为例。APK文件是一个压缩包文件,parsePackage通过解压APK文件,可以提取其中的配置清单文件(manifest file)。例如,parsePackage解压APK文件,提取得到Androidmanifest.xml文件,并对其进行解析。Androidmanifest.xml文件中包括应用程序的配置清单,例如:应用程序的名称、图标、应用界面的信息、服务的信息等。进一步的,parsePackage还可以对Androidmanifest.xml文件中的校验签名进行验证,以确定其安装的合法性。如果合法即进入后续安装流程。
S302、scanPackageLI创建应用程序的信息。
具体的,scanPackageLI可以根据步骤S301中解析提取的Androidmanifest.xml文件,创建应用程序的初始信息(简化信息),例如包括:应用程序的包名、安装目录等。其中,应用程序的初始信息保存在电子设备的内存中,以待进一步的将其写入***文件中。
S303、updateSettingsLI更新应用程序的设置。
具体的,updateSettingsLI将步骤S302中,scanPackageLI创建的应用程序的初始信息写入Android***的***文件中,以更新应用程序的设置信息等。
S304、prepareAppDataLIF创建应用程序的数据文件夹。
具体的,prepareAppDataLIF在电子设备的内存中创建应用程序的数据文件夹(也可称为沙盒文件),以用于保存应用程序使用过程中产生的数据。其中,仅安装的应用程序对该数据文件夹具有读写权限。示例性的,prepareAppDataLIF可调用Installd进程的创建接口创建应用程序的数据文件夹。
S305、performDexOpt编译优化应用程序的dex文件。
具体的,由于应用程序运行在***的虚拟机中,performDexOpt利用虚拟机技术对应用程序的常用接口(热点接口)进行编译优化,这样,可以实现应用程序的快速启动。
S306、processPendingInstall发送安装成功广播。
具体的,应用程序安装完成之后,processPendingInstall发送安装成功广播,以通知已成功安装该应用程序。例如,电子设备的桌面会监听该广播,当桌面接收到processPendingInstall发送的安装成功广播后,就会将该应用程序的图标显示在桌面的显示界面中。
可以理解的是,上述步骤S301-S306仅为对PMS服务安装应用程序过程的示例性说明,根据电子设备、电子设备的***、应用程序安装方式等不同,PMS服务安装应用程序具体的过程也不相同,本申请对此不做具体限定。
在一些实施例中,使用电子设备分别采用本申请实施例中如上述步骤S201-S209所示的应用程序安装方法,和上述步骤S101-S104所示的应用程序安装方法,对8个不同的应用程序进行安装。表1为本申请实施例提供的安装应用程序的性能收益,如表1所示,共得到8组数据,每一组数据包括应用程序的包名、安装包文件数据量以及安装性能收益。其中,安装性能收益即为相对于如上述步骤S101-S104所示的应用程序安装方法,采用本申请实施例中步骤S201-S209所示的应用程序安装方法,安装应用程序所降低的安装时间。
表1
应用程序包名 | 安装包文件数据量(M) | 安装性能收益(ms) |
cn.xxx.xxx1 | 83 | 288.5 |
com.xxx.xxx2 | 60.7 | 608 |
com.xxx.xxx3 | 103.2 | 1019 |
com.xxx.xxx4 | 183.4 | 1700 |
com.xxx.xxx5 | 410.6 | 3566 |
com.xxx.xxx6 | 1065.5 | 9026 |
com.xxx.xxx7 | 1542.7 | 13349 |
com.xxx.xxx8 | 1948.7 | 19023.5 |
由表1中的数据可见,本申请实施例提供的应用程序安装方法,应用程序安装过程耗时较短,可以提高电子设备安装应用程序的速度。其中,安装包文件数据量越大的应用程序安装性能收益越高,即所降低的安装时间越多。
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个节点,例如电子设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备等进行功能模块的分组,例如,可以对应各个功能分组各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的分组是示意性的,仅仅为一种逻辑功能分组,实际实现时可以有另外的分组方式。
图10示出了一种电子设备的结构示意图,该电子设备200可以用于执行上述实施例中涉及的电子设备的功能。
本申请实施例还提供了一种电子设备,包括:接收模块210和处理模块220。其中,接收模块210用于接收用户的安装请求,其中,安装请求用于请求安装应用程序,应用程序的安装包文件下载并存储在共享文件夹中,共享文件夹支持被具备读写权限的安装装置访问。处理模块220用于响应于安装请求,获取应用程序对应的共享文件夹地址,共享文件夹地址用于指示应用程序的安装包文件所在的共享文件夹。处理模块220还用于基于共享文件夹地址获取共享文件夹,基于共享文件夹中的安装包文件安装应用程序。这样,电子设备200可以通过共享文件夹地址,可以得到存储在共享文件夹中的安装包文件。电子设备在安装应用程序的过程中,无需多次拷贝安装包文件,可以提高安装应用程序的速度,降低安装应用程序的时间,从而提高用户的使用体验。
可以理解的是,上述电子设备200还可以包括如图4所示部件,此时,上述电子设备200中接收模块210的接收动作可以由图4中天线1,天线2,移动通信模块150,无线通信模块160等部件执行,处理模块220具体处理动作可以由图4中的处理器110执行。
在一些实施例中,该电子设备还包括:包管理服务PMS服务230。处理模块220还可用于调用PMS服务230获取应用程序对应的共享文件地址。
在一些实施例中,该电子设备还包括:包安装服务PIS服务240。处理模块220还可用于调用PIS服务240创建包安装会话PackageInstallerSession,PackageInstallerSession中包括共享文件夹地址。
在一些实施例中,处理模块220还用于调用PIS服务240解析PackageInstallerSession,得到会话参数SessionParams,SessionParams中包括共享文件夹地址;通过PIS服务240调用PMS服务230从SessionParams中提取得到共享文件夹地址。
在一些实施例中,处理模块220还用于调用Installd进程250,将共享文件重命名为应用程序的安装文件夹,进一步的,调用PMS服务230通过安装文件夹中的安装包文件,安装应用程序。
本申请实施例还提供一种电子设备,该电子设备可以包括一个或者多个处理器、存储器和通信接口。其中,存储器、通信接口与处理器耦合。例如,存储器、通信接口与处理器可以通过总线耦合在一起。
其中,通信接口用于与其他设备进行数据传输。存储器中存储有计算机程序代码。计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行上述方法实施例中应用程序安装方法的相关步骤。
可以理解的是,上述电子设备还可以包括如图4所示部件。例如,处理器可以为图4中的处理器110,存储器可以为图4中的内部存储器121或者通过外部存储器接口120连接的外部存储器,通信接口可以为图4中的USB接口。
本申请实施例还提供了一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述方法实施例中应用程序安装方法的相关步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机上述方法实施例中应用程序安装方法的相关步骤。
其中,本申请提供的电子设备、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种应用程序安装方法,其特征在于,所述方法包括:
接收用户的安装请求,所述安装请求用于请求安装应用程序;
响应于所述安装请求,下载所述应用程序的安装包文件,并将所述应用程序的安装包文件存储在共享文件夹中,所述共享文件夹支持被具有读写权限的包管理服务PMS服务访问;
调用所述PMS服务获取所述应用程序对应的共享文件夹地址,基于所述共享文件夹地址获取所述共享文件夹,基于所述共享文件夹中的安装包文件安装所述应用程序,所述共享文件夹地址用于指示所述应用程序的安装包文件所在的所述共享文件夹。
2.根据权利要求1所述的方法,其特征在于,所述调用PMS服务获取所述应用程序对应的共享文件夹地址包括:
调用所述PMS服务,通过所述应用程序对应的包安装会话PackageInstallerSession,从包安装服务PIS服务获取会话参数SessionParams;其中,所述SessionParams包括所述共享文件夹地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
调用所述PIS服务创建所述PackageInstallerSession,所述PackageInstallerSession用于传输所述应用程序对应的会话参数SessionParams。
4.根据权利要求3所述的方法,其特征在于,所述调用包安装服务PIS服务创建所述PackageInstallerSession,包括:
调用所述PIS服务获取所述应用程序对应的会话参数SessionParams;
基于所述会话参数SessionParams创建所述PackageInstallerSession。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述基于所述共享文件夹中的安装包文件安装所述应用程序的方法包括:
调用安装守护进程Installd,将所述共享文件重命名为所述应用程序的安装文件夹;
调用PMS服务通过所述安装文件夹中的所述安装包文件,安装所述应用程序。
6.一种电子设备,其特征在于,包括:
接收模块,用于接收用户的安装请求,所述安装请求用于请求安装应用程序;
处理模块,用于响应于所述安装请求,下载所述应用程序的安装包文件,并将所述应用程序的安装包文件存储在共享文件夹中,所述共享文件夹支持被具有读写权限的包管理服务PMS服务访问;
所述处理模块,还用于调用所述PMS服务获取所述应用程序对应的共享文件夹地址,基于所述共享文件夹地址获取所述共享文件夹,基于所述共享文件夹中的安装包文件安装所述应用程序,所述共享文件夹地址用于指示所述应用程序的安装包文件所在的所述共享文件夹。
7.根据权利要求6所述的电子设备,其特征在于,
所述处理模块,具体用于调用所述PMS服务,通过所述应用程序对应的包安装会话PackageInstallerSession,从包安装服务PIS服务获取会话参数SessionParams;其中,所述SessionParams包括所述共享文件夹地址。
8.根据权利要求7所述的电子设备,其特征在于,
所述处理模块,还用于调用所述PIS服务创建所述PackageInstallerSession,所述PackageInstallerSession用于传输所述应用程序对应的会话参数SessionParams。
9.根据权利要求8所述的电子设备,其特征在于,
所述处理模块,具体用于调用所述PIS服务获取所述应用程序对应的会话参数SessionParams;基于所述会话参数SessionParams创建所述PackageInstallerSession。
10.根据权利要求6-9任一项所述的电子设备,其特征在于,
所述处理模块,还用于调用Installd进程,将所述共享文件重命名为所述应用程序的安装文件夹;
所述处理模块,还用于调用所述PMS服务通过所述安装文件夹中的所述安装包文件,安装所述应用程序。
11.一种电子设备,其特征在于,包括:存储器、一个或多个处理器;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-5任一项所述的方法。
13.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述电子设备执行如权利要求1-5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194032.0A CN117785221A (zh) | 2022-09-28 | 2022-09-28 | 一种应用程序安装方法及电子设备 |
PCT/CN2023/118089 WO2024067053A1 (zh) | 2022-09-28 | 2023-09-11 | 一种应用程序安装方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211194032.0A CN117785221A (zh) | 2022-09-28 | 2022-09-28 | 一种应用程序安装方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785221A true CN117785221A (zh) | 2024-03-29 |
Family
ID=90378554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211194032.0A Pending CN117785221A (zh) | 2022-09-28 | 2022-09-28 | 一种应用程序安装方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117785221A (zh) |
WO (1) | WO2024067053A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220082B (zh) * | 2017-05-18 | 2021-02-26 | 北京小米移动软件有限公司 | 应用程序的安装方法、装置和设备 |
CN107509187B (zh) * | 2017-08-31 | 2020-09-22 | 维沃移动通信有限公司 | 一种应用程序的安装方法、移动终端及服务器 |
CN113971034A (zh) * | 2020-07-23 | 2022-01-25 | 华为技术有限公司 | 安装应用的方法和电子设备 |
CN114546969A (zh) * | 2020-11-24 | 2022-05-27 | 华为技术有限公司 | 一种文件共享方法、装置及电子设备 |
CN114594965A (zh) * | 2022-03-17 | 2022-06-07 | 深圳创维-Rgb电子有限公司 | 应用软件的安装方法、装置、终端设备以及存储介质 |
-
2022
- 2022-09-28 CN CN202211194032.0A patent/CN117785221A/zh active Pending
-
2023
- 2023-09-11 WO PCT/CN2023/118089 patent/WO2024067053A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024067053A1 (zh) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11366654B2 (en) | Application management within deployable object hierarchy | |
KR101807897B1 (ko) | 크로스―플랫폼 어플리케이션 프레임워크 | |
CN101650660B (zh) | 从中央存储装置引导计算机*** | |
US20120023496A1 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN103493011A (zh) | 与库操作***的应用兼容性 | |
US20190272180A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
JP5346405B2 (ja) | ネットワークシステム | |
WO2021169379A1 (zh) | 权限复用方法、基于权限复用的资源访问方法及相关设备 | |
WO2019015491A1 (zh) | 应用程序的分身方法、装置、设备和介质 | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
CN105677481A (zh) | 一种数据处理方法、***及电子设备 | |
US10839037B2 (en) | Connected application experience | |
CN117785221A (zh) | 一种应用程序安装方法及电子设备 | |
EP4216052A1 (en) | Method for developing mvvm architecture-based application, and terminal | |
CN116991447B (zh) | 一种操作***更新方法及相关设备 | |
CN113495869B (zh) | 文件***空间的调整方法、装置和电子设备 | |
WO2021223544A1 (zh) | 一种启动应用的方法和相关装置 | |
KR20110015455A (ko) | 접속된 호스트 장비의 플랫폼에 의존하여 자체-적응 서비스들을 제공하기 위한 전자 디바이스 | |
CN116302047A (zh) | 配置文件的构建处理方法、电子设备及存储介质 | |
CN117667115A (zh) | 应用程序的安装方法及电子设备 | |
CN116881072A (zh) | 一种基板管理控制器的网卡监控方法、装置、***及设备 | |
CN117707566A (zh) | 一种操作***升级方法及电子设备 | |
CN116700740A (zh) | 软件修复方法和相关装置 | |
CN118113289A (zh) | 代码编译方法、代码运行方法及相关设备 | |
CN118260753A (zh) | 应用程序的管控方法及电子设备 |
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 |