CN117707543A - 一种应用安装包制作和安装方法、计算设备及存储介质 - Google Patents
一种应用安装包制作和安装方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN117707543A CN117707543A CN202311716517.6A CN202311716517A CN117707543A CN 117707543 A CN117707543 A CN 117707543A CN 202311716517 A CN202311716517 A CN 202311716517A CN 117707543 A CN117707543 A CN 117707543A
- Authority
- CN
- China
- Prior art keywords
- application
- file
- installation package
- runtime environment
- computing device
- 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
- 238000009434 installation Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 12
- 230000008569 process Effects 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及应用开发领域,特别涉及一种应用安装包制作和安装方法、计算设备及存储介质,方法包括:生成工程文件,并根据工程文件编译生成应用数据文件;根据工程文件获取运行时环境文件,并根据应用数据文件和运行时环境文件生成压缩文件,压缩文件还包括应用自启动脚本和应用信息描述文件;根据压缩文件和加载器生成应用安装包;响应于对应用安装包的操作指令,根据加载器执行所述应用自启动脚本:根据应用信息描述文件确定应用所需运行时环境文件的版本信息;创建容器,并根据运行时环境文件的版本信息在容器中挂载运行时环境文件,构建应用的运行环境;基于应用的运行环境和应用数据文件运行应用。本发明保证应用能够在多种操作***运行。
Description
技术领域
本发明涉及应用开发领域,特别涉及一种应用安装包制作和安装方法、计算设备及存储介质。
背景技术
随着计算机中各种应用被开发出来,应用的安装方式也变得多元化。在对应用进行安装时,可采用应用安装包的方式进行安装。现有技术中,常用的应用安装包包括deb包,但deb存在这样的问题:deb包的***兼容性较差,因其特殊的包格式,其只能运行在debian***及其发行版中,并且运行稳定性较差,因deb包之间存在复杂的依赖关系,当其中一个依赖被破坏,可能导致多个应用无法运行,甚至***崩溃的风险。
为此,需要一种新的应用安装包制作和安装方法。
发明内容
为此,本发明提供一种应用安装包制作和安装方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一方面,提供一种应用安装包制作和安装方法,适于在计算设备中运行,方法包括:生成工程文件,并根据所述工程文件编译生成应用数据文件;根据所述工程文件获取运行时环境文件,并根据所述应用数据文件和运行时环境文件生成压缩文件,所述压缩文件还包括应用自启动脚本和应用信息描述文件;根据所述压缩文件和加载器生成应用安装包;响应于对应用安装包的操作指令,根据所述加载器执行所述应用自启动脚本:根据应用信息描述文件确定所述应用所需运行时环境文件的版本信息;创建容器,并根据所述运行时环境文件的版本信息在所述容器中挂载运行时环境文件,构建应用的运行环境;基于所述应用的运行环境和所述应用数据文件运行应用。
可选地,在根据本发明的方法中,计算设备中运行有操作***,压缩文件还包括入口文件包,入口文件包包括一个或多个入口文件,方法还包括:运行应用时,响应于操作***的调用请求;根据调用请求确定相应的入口文件;根据相应的入口文件处理相应的调用请求。
可选地,在根据本发明的方法中,根据运行时环境文件的版本信息在容器中挂载运行时环境文件包括:确定操作***所安装的自带运行时环境文件,并判断是否符合运行应用所需的运行时环境文件的所需版本;若不符合,则在容器中挂载应用安装包所包括的运行时环境文件。
可选地,在根据本发明的方法中,还包括:若符合,则在容器中挂载操作***安装的自带运行时环境文件。
可选地,在根据本发明的方法中,对应用安装包的操作指令包括对所述应用安装包进行双击操作。
可选地,在根据本发明的方法中,还包括:确定应用安装包的所安装应用的第一版本;判断计算设备中是否安装有第二版本的应用;若判断安装有第二版本的应用,则将应用安装包的应用数据文件存储到第一文件夹下,第二版本的应用的应用数据文件在第二文件夹下存储。
可选地,在根据本发明的方法中,压缩文件还包括权限控制文件,方法还包括:根据应用安装包的权限控制文件设置应用的权限控制模块,权限控制模块适于对操作***与应用的消息交互请求和调用请求进行权限控制。
可选地,在根据本发明的方法中,应用数据文件在计算设备中以代码仓库的形式进行存储,方法包括:响应于对应用的更新请求,根据代码仓库中存储的应用数据文件对所述应用进行增量更新。
根据本发明的另一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的应用安装包制作和安装方法的指令。
根据本发明的再一方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的应用安装包制作和安装方法。
本发明中的应用安装包制作和安装方法,适于在计算设备中执行,本发明通过根据运行时环境文件和应用数据文件生成压缩文件,保证应用能够根据应用安装包中的运行时环境文件在多种操作***上运行,不因操作***发生变更而导致无法运行;并且安装的每个应用均在容器中构建有相对独立的运行环境,即使其他应用发生卸载和变更,本应用依然可以正常运行,实现相应的功能。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本发明公开的上述以及其他目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的应用安装包制作和安装方法100的示意图;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
图3示出了根据本发明一个示范性实施例的应用安装包的目录结构示意图;
图4示出了根据本发明一个示范性实施例的应用安装后的目录示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的应用安装包制作和安装方法100的示意图。本发明的应用安装包制作和安装方法100适于在计算设备中执行。
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。在基本配置中,计算设备200包括至少一个处理单元220和***存储器210。根据一个方面,取决于计算设备的配置和类型,***存储器210包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,***存储器210包括操作***211。
根据一个方面,操作***211,例如,适合于控制计算设备200的操作。此外,示例结合图形库、其他操作***、或任何其他应用程序而被实践,并且不限于任何特定的应用或***。在图2中通过在虚线215内的那些组件示出了该基本配置。根据一个方面,计算设备200具有额外的特征或功能。例如,根据一个方面,计算设备200包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。
如在上文中所陈述的,根据一个方面,在***存储器210中存储程序模块212。根据一个方面,程序模块212可包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用还包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以将图2中所示出的组件集成在单个集成电路上的片上***(SOC)来实践示例。根据一个方面,这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备200的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术来实践本发明的实施例,其他技术包括但不限于机械、光学、流体和量子技术。另外,可以在通用计算机内或在任何其他电路或***中实践本发明的实施例。
根据一个方面,计算设备200还可以具有一个或多个输入设备231,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备232,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备200可以包括允许与其他计算设备240进行通信的一个或多个通信连接233。合适的通信连接233的示例包括但不限于:RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。计算设备200可通过通信连接233与其他计算设备240通信连接。
本发明实施方式还提供一种非暂态可读存储介质,存储有指令,指令用于使计算设备执行根据本发明实施方式的方法。本实施例的可读介质包括永久性和非永久性、可移动和非可移动介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储,磁盒式磁带、磁带磁盘存储器或其他磁性存储设备、或者任何其他非暂态可读存储介质。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(RF)、红外线的、以及其他无线介质之类的无线介质。
需要说明的是,尽管上述计算设备仅示出了处理单元220、***存储器210、输入设备231、输出设备232、以及通信连接233,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
回到图1,如图1所示,本发明的应用安装包制作和安装方法首先执行步骤110:生成工程文件,并根据工程文件编译生成应用数据文件。
根据本发明的一个实施例,应用安装包的具体文件格式可实现为uap包,即Uniontech App Package,一种软件应用程序包格式,使用uap包安装的程序之间不存在依赖关系,内部包含二进制完整数据及运行时配置等文件。
根据本发明的一个实施例,应用安装包的制作步骤包括:首先生成工程文件。
本发明中工程文件具体可实现为yaml格式,本发明对工程文件的具体文件格式不做限制。根据本发明的一个实施例,本发明中工程文件具体可实现为linglong工程文件,或称为玲珑工程文件。linglong工程文件文件名可写作linglong.yaml,其中.yaml为玲珑工程文件的文件标识。linglong工程文件使用yaml语法描述软件包的元数据。软件包即编译生成应用的软件包,也即编译应用文件。玲珑(linglong或简写为ll)为一种软件独立设计的包管理工具。
根据本发明的一个实施例,工程文件具有构建规范,包括:产物信息、基础环境信息、依赖信息、构建***信息、变量信息和源码信息。
根据本发明的一个实施例,产物信息(Package)用于描述构建产物的基础信息;基础环境信息(Base或Runtime)用于描述构建所使用的基础环境;依赖信息(Depends)用于描述编译时所需的依赖项,编译可以有多个依赖项;构建***信息(Build)用于描述构建使用的构建***类型;变量信息(Variable)用于描述构建过程中使用的变量;源码信息(Source)用于描述构建源码的来源。
根据本发明的一个实施例,生成工程文件时,可通过编译模块进行生成。本发明对工程文件的具体生成方式不作限制。编译模块具体可实现为linglong-builder,或称为ll-builder。编译模块为源码构建工具,为实施编译的核心程序,提供组织应用安装包构建、测试、推送等逻辑。
随后,根据工程文件编译生成应用数据文件(files)。应用数据文件具体包括应用安装包所安装的应用运行所需的二进制文件与数据。根据本发明的一个实施例,应用数据文件具体可实现为二进制的可执行文件。
随后,执行步骤120,根据工程文件获取运行时环境文件(runtime文件),获取运行时环境文件时,根据基础环境信息的运行时环境信息(runtime信息)进行获取。运行时环境文件为linglong对应用运行环境的描述,代表一种构建产物类型,主要由qt与dtk相关的库组成;lib在linglong工程文件语义里代表一种构建产物类型,提供静态或动态的库文件。
随后,对生成的应用数据文件和运行时环境文件进行压缩生成压缩文件。生成压缩文件时可通过squashfs工具进行压缩,本发明对压缩文件的具体生成方式不作限制。squashfs工具是一套基于Linux内核使用的压缩只读文件***。该文件***能够压缩***内的文档,inode以及目录,文件最大支持2^64字节。
根据本发明的一个实施例,压缩文件中还包括工程文件、并添加入口文件包、应用信息描述文件、权限控制文件和应用自启动脚本。
根据本发明的一个实施例,入口文件包具体可在压缩文件中实现为entries目录,用于存放程序的各种入口文件,在entries目录下包括autostart、applications、systemd、icons、mime、dbus-1等目录。应用安装包开发人员在设置entries目录按规范将对应的文件放到指定的目录进行打包,在应用安装包安装完成应用后,需要运行应用时操作***会自动链接到对应目录读取入口文件以便运行应用。
根据本发明的一个实施例,应用信息描述文件具体可实现为info.json文件,由编译模块生成,info.json文件为linglong软件包的描述文件,记录软件包的元信息,如软件包名,软件包版本,所使用的linglong-runtime等。linglong-runtime(也即runtime)为linglong对应用运行环境的描述,在linglong工程文件中代表一种构建产物类型,主要由qt与dtk相关的库组成。
根据本发明的一个实施例,权限控制文件(linglong-bin)用于生成应用运行所需的容器ll-box以及设置权限控制模块对ll-dbus-proxy/ll-fuse-proxy的权限进行控制。ll-box为按照OCI标准设计的应用容器运行环境。加载器在创建容器时可根据权限控制文件进行创建。
根据本发明的一个实施例,应用自启动脚本(loader)用于自启动应用环境以及安装和运行应用。
随后,执行步骤130,在生成压缩文件后,根据压缩文件和加载器生成应用安装包。加载器具体可实现为linglong-loader,为uap包的自启动加载器,用于uap包自启动以及加载应用数据。根据压缩文件和加载器生成应用安装包时,将压缩文件与二进制形式文件的加载器进行拼接生成应用安装包。
根据本发明的一个实施例,图3示出了根据本发明一个示范性实施例的应用安装包的目录结构示意图,如图3所示,应用安装包(uap包)包括:entries目录,files目录,info.json文件、linglong-bin目录、linglong.yaml文件、loader文件和runtime文件。
根据本发明的一个实施例,生成应用安装包后根据应用唯一标识名、版本号和架构生成的应用安装包的名称。
根据本发明的一个实施例,应用安装包的名称的结构为:appid_version_arch.uap,其中,appid为应用唯一标识名,version为版本号,arch为架构;一个具体的应用安装包名称的示例如下:
org.deepin.calculator_5.7.16_x86_64.uap
随后,执行步骤140,响应于对应用安装包的操作指令,根据加载器执行应用自启动脚本,执行如下步骤:
根据应用信息描述文件确定应用信息,应用信息包括应用所需运行时环境文件的版本信息。
根据本发明的一个实施例,应用信息还包括应用的版本等其他信息。
根据本发明的一个实施例,对应用安装包的操作指令可以是用户触发的,也可以是计算设备自动触发。本发明对应用安装包的操作指令具体触发方式不做限制。操作指令具体可实现为对应用安装包双击或单击等指令,或是输入的命令行。本发明对操作指令的具体类型不做限制。
现有技术中,deb包不提供自启动功能,用户无法在未安装的前提下启动应用。而本发明中采用特殊的应用安装包格式设计,能实现自启动功能,不需要另外的安装操作,在其在接收到用户操作后即能够在未安装的情况下启动。
根据本发明的一个实施例,加载器根据权限控制文件设置权限控制模块。权限控制模块适于对操作***与应用的消息交互请求和调用请求进行权限控制。加载在容器中还根据应用数据文件设置dbus代理模块和用户态文件***代理模块。dbus代理模块为一种dbus消息拦截与转发工具,具体可实现为ll-dbus-proxy;用户态文件***代理模块为一种文件接口控制工具,具体可实现为ll-fuse-proxy。本发明对dbus代理模块和用户态文件***代理模块的具体实现方式不做限制。权限控制模块对dbus代理模块所接收到的消息交互请求以及用户态文件***代理模块所接收到的调用请求进行权限控制。
随后,执行步骤150,创建容器,并根据运行时环境文件的版本信息在容器中挂载运行时环境文件,构建应用的运行环境。
现有技术中,deb包安全隔离性较差,deb包是直接运行在宿主机器环境中,在应用不可信运行时存在破坏***风险。而本发明中应用安装包是在容器内运行,能适用不可信应用隔离、故障隔离等场景,使***更加安全可靠。
根据本发明的一个实施例,加载器还确定操作***所安装的自带运行时环境文件,并判断是否符合运行应用所需的运行时环境文件的所需版本,若不符合,则在容器中挂载应用安装包所包括的运行时环境文件,以便构建应用的运行环境。应用安装包中的运行时环境文件是轻量的,保证应用正常运行的最小运行环境文件。
若符合,则直接挂载操作***所安装的自带运行时环境文件构建应用的运行环境。
本发明中应用安装包内包含自运行所需所有的依赖库文件,即运行时环境文件,可以实现在不同操作***中运行。并且应用安装包采用弱依赖关系,解决软件离线安装包之间的相互依赖过于复杂问题,降低破坏***风险。每个应用安装包默认会依赖一个对应版本运行时环境文件,如果***未安装就使用自身携带的简化版运行时环境文件保证运行。
随后,执行步骤160,基于应用的运行环境和应用数据文件运行应用。根据本发明的一个实施例,计算设备中运行有操作***,压缩文件还包括入口文件包,入口文件包包括一个或多个入口文件,方法还包括:运行应用时,响应于操作***的调用请求;根据调用请求确定相应的入口文件;根据相应的入口文件处理相应的调用请求。
现有技术中使用的deb包存在破坏***的风险,因deb包存在hook机制,post脚本拥有root权限,开发者可以随意修改***配置文件,从而破坏***运行。而本发明中应用安装包没有hook机制,各种入口文件,需按应用安装包的存储规范目录进行存放,安装时根据入口文件的存放目录调用和处理相关文件,避免出现存在破坏***的操作。
根据本发明的一个实施例,应用数据文件在计算设备中以代码仓库的形式进行存储,本发明方法包括:响应于对应用的更新请求,根据代码仓库中存储的应用数据文件对应用进行增量更新。
根据本发明的一个实施例,代码仓库具体可实现为ostree,ostree为用于传输和管理文件存储的工具,代码仓库可通过ostree差异存储应用数据和运行时环境文件(runtime文件),以作为本地cache存储工具,能够实现在每次更新时基于ostree实现应用数据文件的增量更新。
图4示出了根据本发明一个示范性实施例的应用安装后的目录示意图。如图4所示,应用安装后的目录中包括entries目录,files目录,info.json文件、linglong.yaml文件和loader文件。entries目录为入口文件包,用于存放应用的各种入口文件,在entries目录下包括applications和icons等目录。files目录为根据工程文件编译生成的应用数据文件,具体包括应用运行所需的二进制文件与数据,如bin、include、lib、share等目录。info.json文件为linglong软件包的描述文件,记录应用的元信息。linglong工程文件描述软件包的元数据。loader文件为应用自启动脚本,用于自启动应用环境以及安装和运行应用。
现有技术中deb包更新不支持增量更新,deb包更新时,需要完整下载高版本软件包进行解压安装,存在浪费***资源的问题。本发明应用在进行更新时,采用ostree作为存储应用数据文件和运行时应用文件的代码仓库,能实现增量更新功能,从而达到节省***资源的效果。
根据本发明的一个实施例,本发明方法还包括:确定应用安装包的所安装应用的第一版本;判断计算设备中是否安装有第二版本的应用;若判断安装有第二版本的应用,则将应用安装包的应用数据文件存储到第一文件夹下,第二版本的应用的应用数据文件在第二文件夹下存储。本发明中可根据需要选择运行的应用的版本,实现安装应用的多个版本,以及对应用进行回退。
现有技术中deb包无法在同一个目标***中多版本共存,其资源配置文件都在同一个目录,多版本安装时会覆盖旧版本。并且deb包因其多版本无法共存的缺点不能实现版本回退功能。而本发明中不同版本的应用会安装到不同目录中,可以实现多版本安装与版本回退。
本发明中应用安装包会自行计算应用运行所需二进制空间大小,解压缩对应的应用压缩文件,启动对应的启动脚本,实现应用在容器内自启动。
本发明中的应用安装包制作和安装方法,适于在计算设备中执行,本发明通过根据运行时环境文件和应用数据文件生成压缩文件,保证应用能够根据应用安装包中的运行时环境文件在多种操作***上运行,不因操作***发生变更而导致无法运行;并且安装的每个应用均在容器中构建有相对独立的运行环境,即使其他应用发生卸载和变更,本应用依然可以正常运行,实现相应的功能。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其他实施例中所包括的某些特征而不是其他特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其他方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其他实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的。
Claims (10)
1.一种应用安装包制作和安装方法,其特征在于,适于在计算设备中运行,所述方法包括:
生成工程文件,并根据所述工程文件编译生成应用数据文件;
根据所述工程文件获取运行时环境文件,并根据所述应用数据文件和运行时环境文件生成压缩文件,所述压缩文件还包括应用自启动脚本和应用信息描述文件;
根据所述压缩文件和加载器生成应用安装包;
响应于对应用安装包的操作指令,根据所述加载器执行所述应用自启动脚本:
根据应用信息描述文件确定所述应用所需运行时环境文件的版本信息;
创建容器,并根据所述运行时环境文件的版本信息在所述容器中挂载运行时环境文件,构建应用的运行环境;
基于所述应用的运行环境和所述应用数据文件运行应用。
2.如权利要求1所述的方法,其特征在于,所述计算设备中运行有操作***,所述压缩文件还包括入口文件包,所述入口文件包包括一个或多个入口文件,所述方法还包括:
运行所述应用时,响应于所述操作***的调用请求;
根据所述调用请求确定相应的入口文件;
根据相应的入口文件处理相应的调用请求。
3.如权利要求2所述的方法,其特征在于,根据所述运行时环境文件的版本信息在所述容器中挂载运行时环境文件包括:
确定操作***所安装的自带运行时环境文件,并判断是否符合运行应用所需的运行时环境文件的所需版本;
若不符合,则在容器中挂载所述应用安装包所包括的运行时环境文件。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若符合,则在容器中挂载所述操作***安装的自带运行时环境文件。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述对应用安装包的操作指令包括对所述应用安装包进行双击操作。
6.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
确定所述应用安装包的所安装应用的第一版本;
判断所述计算设备中是否安装有第二版本的应用;
若判断安装有第二版本的应用,则将所述应用安装包的应用数据文件存储到第一文件夹下,所述第二版本的应用的应用数据文件在第二文件夹下存储。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述压缩文件还包括权限控制文件,所述方法还包括:
根据所述应用安装包的权限控制文件设置所述应用的权限控制模块,所述权限控制模块适于对操作***与所述应用的消息交互请求和调用请求进行权限控制。
8.如权利要求1-6中任一项所述的方法,其特征在于,所述应用数据文件在所述计算设备中以代码仓库的形式进行存储,所述方法包括:
响应于对应用的更新请求,根据所述代码仓库中存储的应用数据文件对所述应用进行增量更新。
9.一种计算设备,其特征在于,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据权利要求1-8中任一项所述的方法的指令。
10.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311716517.6A CN117707543A (zh) | 2023-12-13 | 2023-12-13 | 一种应用安装包制作和安装方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311716517.6A CN117707543A (zh) | 2023-12-13 | 2023-12-13 | 一种应用安装包制作和安装方法、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117707543A true CN117707543A (zh) | 2024-03-15 |
Family
ID=90152809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311716517.6A Pending CN117707543A (zh) | 2023-12-13 | 2023-12-13 | 一种应用安装包制作和安装方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707543A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117908908A (zh) * | 2024-03-18 | 2024-04-19 | 麒麟软件有限公司 | 基于OSTree的嵌入式***安装方法 |
-
2023
- 2023-12-13 CN CN202311716517.6A patent/CN117707543A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117908908A (zh) * | 2024-03-18 | 2024-04-19 | 麒麟软件有限公司 | 基于OSTree的嵌入式***安装方法 |
CN117908908B (zh) * | 2024-03-18 | 2024-05-24 | 麒麟软件有限公司 | 基于OSTree的嵌入式***安装方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853774B2 (en) | Dynamically loaded plugin architecture | |
US8612930B2 (en) | Methods and apparatus for dynamic class reloading and versioning | |
US8745601B1 (en) | Methods and systems for using data structures for operating systems | |
US10684846B2 (en) | Using semantic annotations to control compatibility behaviors | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
US20230259358A1 (en) | Documentation enforcement during compilation | |
US20210141632A1 (en) | Automated software patching for versioned code | |
CN116991381B (zh) | 一种应用交叉编译方法、装置、计算设备及存储介质 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
US10552135B1 (en) | Reducing a size of an application package | |
CN110334031B (zh) | 内存分配代码检测方法、装置、计算机设备及存储介质 | |
CN114490103A (zh) | 一种操作***接口调用方法、装置以及电子设备 | |
CN117170802A (zh) | 基于信创平台的快速制作操作***镜像的方法、***、设备及介质 | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
WO2011157105A2 (zh) | 组件扩展方法和装置 | |
CN113641389B (zh) | 基于OpenCPU的软件升级方法、装置及设备 | |
CN114995871A (zh) | 一种软件版本适配方法、装置、电子设备和存储介质 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN113867776A (zh) | 中台应用的发布方法、装置、电子设备和存储介质 | |
WO2019157891A1 (zh) | 应用安装方法、应用安装包的生成方法 | |
CN116991427B (zh) | 一种应用编译方法、装置、计算设备及存储介质 | |
CN112035192A (zh) | 支持组件热部署的Java类文件加载方法及装置 | |
CN112947956A (zh) | 一种应用软件升级方法 | |
CN117908908B (zh) | 基于OSTree的嵌入式***安装方法 | |
CN116661905B (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 |