CN106559484A - 实例系统免安装运行应用的方法 - Google Patents
实例系统免安装运行应用的方法 Download PDFInfo
- Publication number
- CN106559484A CN106559484A CN201611001811.9A CN201611001811A CN106559484A CN 106559484 A CN106559484 A CN 106559484A CN 201611001811 A CN201611001811 A CN 201611001811A CN 106559484 A CN106559484 A CN 106559484A
- Authority
- CN
- China
- Prior art keywords
- catalogue
- mastery routine
- instance
- routine bag
- storage server
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
为了非常简单的实现实例系统的安卓系统免安装运行应用,本发明提供一种实例系统免安装运行应用的方法。该方法以只读形式将存储服务器上包括应用主程序包的目录挂载到实例系统的指定目录,并修改安卓系统的设置使得挂载的包括应用主程序包的目录中的主程序包中的可执行程序能够运行。该方法实现方式简单,有效缩短了云系统运营商的开发周期,降低了开发成本。同时云系统的用户可以在非常短的时间内任意启动云系统的海量应用,用户体验佳。
Description
技术领域
本发明涉及实例系统免安装运行应用的方法。
背景技术
某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例系统,实例系统中可以运行各种应用(应用指能够在实例系统的操作系统中运行的软件或程序)。将若干个实例系统按照一定的架构方式(例如分布式)集中管理,可以形成云系统。通常云系统由运营商负责日常运营,为用户提供服务。如果实例系统位于云系统内,实例系统的操作系统中常会设置一个具有操作系统根(root)权限的软件或程序,对用户访问实例系统的行为进行管理,该软件或程序可以称为代理(此处的代理是英文词agent的翻译)。
开源的安卓(Android)系统具有很多优点,常被选取为实例系统的操作系统。与安卓系统配套的实例系统硬件一般配置较低,例如存储器的存储空间较小,无法安装所有用户可能需要的应用。常见的解决办法是在云系统中设置专用的存储服务器,在存储服务器上存储大量的应用安装程序及相关文件。运营商设计预安装算法,在实例系统上预安装一些应用,如果用户需要运行该应用,先寻找一个已经安装了该应用的实例系统,如果找不到,则需要在实例系统上现安装应用。如果某一时间云系统的用户非常多,现安装应用是无法避免的。但现安装应用需要花费几分钟甚至更长时间,等待时间过长可能严重影响用户体验。
实例系统上免安装运行应用,是解决上述问题的有效手段,近年来也确实出现了一些实例系统上免安装运行应用的方法。但这些方法往往非常复杂,具体实施时开发周期长、成本高,较为简单易行的方法尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供实例系统免安装运行应用的方法。
实例系统免安装运行应用的方法,所述的实例系统的操作系统为安卓系统,所述的方法包括:
以只读形式将存储服务器上包括应用主程序包的目录挂载到实例系统的指定目录;
修改安卓系统的设置,使得挂载的包括应用主程序包的目录中的主程序包中的可执行程序能够运行。
进一步的,所述的应用主程序包为apk文件。
更进一步的,包括应用主程序包的目录还包括lib子目录,所述的lib子目录包括so库。
进一步的,所述的修改安卓系统的设置,包括在安卓系统中增加扫描挂载的包括应用主程序包的目录的接口和扫描命令,使得安卓系统的Package Manager Service能够扫描挂载的包括应用主程序包的目录。
更进一步的,所述的方法还包括:
提取apk文件的证书和摘要存储到存储服务器,将apk文件的证书和摘要作为参数在Package Manager Service启动扫描时发送给Package Manager Service。
更进一步的,所述的方法还包括:
提取apk文件对应的odex文件存储到存储服务器,Package Manager Service启动扫描前将odex文件下载到实例系统的对应目录。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的实例系统免安装运行应用的方法,能够非常简单的实现实例系统的安卓系统免安装运行应用,有效缩短了云系统运营商的开发周期,降低了开发成本。同时云系统的用户可以在非常短的时间内任意启动云系统的海量应用,用户体验佳。
附图说明
图1为具体实施方式中云系统架构的简化示意图。
图2为具体实施方式中实例系统免安装运行应用的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以构成一个实例系统。将若干个实例系统按照一定的架构方式集中管理,可以形成云系统。实例系统的操作系统选取为安卓(Android)系统。通常,云系统中设置有控制节点、实例系统和存储服务器三个部件,图1为云系统架构的简化示意图。实例系统和存储服务器彼此独立,都由控制节点控制和管理,图1中的实线双向箭头表示控制和管理关系,虚线双向箭头表示通信关系。控制节点可以选用具有X86架构的控制服务器,而存储服务器为独立的高性能存储服务器,具有较高的配置(例如8核处理器、64G大内存等)。运营商对存储服务器采取严格的物理隔离和技术保护措施,确保存储服务器上存储的数据是安全的。实际的云系统中控制节点、实例系统和存储服务器的数量远不止一个,为了简单显示,图1中控制节点、实例系统和存储服务器各只画了一个。实例系统的操作系统中设置一个具有操作系统根(root)权限的软件或程序,对用户访问实例系统的行为进行管理,该软件或程序可以称为代理。
在以上所述的云系统技术方案的基础上,可以实现实例系统免安装运行应用的方法。所述实例系统免安装运行应用的方法的流程如图2所示,包括:
S101:以只读形式将存储服务器上包括应用主程序包的目录挂载到实例系统的指定目录。
基于安卓系统本身的设定,安卓系统的应用对应的所有文件目录中会有一个包括应用主程序包的目录,所述的应用主程序包是一个apk文件(该文件的名称往往是base.apk)。从字面上看apk文件是安装包,但apk文件作为一个压缩包,里面包括了可执行程序,运行这些可执行程序就可以运行该应用。包括应用主程序包的目录中还可以包括一个名称为lib的子目录,该子目录可以包括一个或多个so库(即安卓系统中后缀为.so的文件,是可以被调用的C++函数库)。
在云系统中,由于存储服务器的存储空间极大,其上可以存储所有云系统的用户可能用到的应用对应的所有文件(保留这些文件的目录结构)。安卓系统的代理可以将存储服务器上的目录挂载到实例系统本地的指定目录下(对于安卓系统,该指定目录一般是/data/app)。为了保证存储服务器上数据的安全,挂载采用只读形式,代理对于挂载的目录中的数据不能进行写操作。对于用户需要运行的应用,代理以只读形式将存储服务器上包括该应用主程序包的目录挂载到实例系统本地的/data/app目录。
作为一个示例,上述操作可以使用如下命令实现:mount-t nfs4-oro172.16.2.224:/var/nfs/apk/data/app。
S102:修改安卓系统的设置,使得挂载的包括应用主程序包的目录中的主程序包中的可执行程序能够运行。
步骤S101完成后,挂载的目录中的apk文件中的可执行程序并不能直接在实例系统的安卓系统上运行,运行这些可执行程序需要修改安卓系统的设置。作为一个示例,以5.1版本的安卓系统为例说明相应的修改方法。
1)在frameworks/base/core/java/android/content/pm/IPackageManager.aidl文件中增加一个扫描/data/app目录下挂载的包括应用主程序包的目录的接口。
2)在frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java中增加一个扫描(scan)的命令。
3)以应用的包名(安卓应用都有对应的包名,可以从该应用的apk文件中解析出来)为参数,在frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java中增加处理函数。
完成上述修改后,安卓系统的Package Manager Service(安卓系统中最常用的服务之一,负责应用的安装、卸载、信息查询等)能够扫描/data/app目录下挂载的包括应用主程序包的目录,主程序包通过扫描后其中的可执行程序可以运行。这样,用户或者安卓系统中的其他应用就可以通过代理触发实际上位于远程的存储服务器上的应用的启动或退出。
显然,挂载目录和修改安卓系统设置的操作可以在非常短、感官上忽略不计的时间内完成。但常规的Package Manager Service对base.apk的扫描会有两个操作耗时较多,一是扫描base.apk文件时搜集该文件的证书和摘要,二是生成odex文件(odex文件是apk文件中的classes.dex文件通过odex优化生成的)并存储到实例系统的对应目录(对于安卓系统,一般是/data/dalvik-cache/arm目录)。对于这两个耗时较多的操作,可以进行相应的优化。
首先,可以编写相应程序在存储服务器上提取apk文件的证书和摘要,将证书和摘要存储到存储服务器的指定位置,代理在Package Manager Service启动扫描时下载apk文件的证书和摘要,作为参数发送给Package Manager Service。
其次,可以利用安卓系统源代码中的SCAN_NO_DEX参数设置Package ManagerService扫描时不使用odex优化;或者编写相应程序在存储服务器上提取apk文件对应的odex文件,将odex文件存储到存储服务器的指定位置,Package Manager Service启动扫描前代理将odex文件下载到实例系统的对应目录。
通常odex文件的大小在几MB到十几MB之间,下载odex文件利用云系统内部万兆级别的网络不到1秒就可以完成,这样实例系统免安装运行应用的方法的所有步骤在不到1秒的时间内都可以完成。从用户的角度看,用户运行实例系统本地已经安装好的应用和实际上位于远程存储服务器的应用,在启动速度等方面并没有明显的差异。
如果实例系统要卸载挂载的应用,使用安卓系统的常规命令“pm uninstall应用的包名”即可。由于存储服务器上包括应用主程序包的目录是以只读形式挂载的,pmuninstall命令并不会删除存储服务器上的文件,只是将应用的相关信息从实例系统的内存中删除。
在实例系统的代理中增加相应的代码,并辅以存储服务器上的相应程序,即可实现完整的实例系统免安装运行应用的方法。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。
Claims (6)
1.实例系统免安装运行应用的方法,其特征在于,所述的实例系统的操作系统为安卓系统,所述的方法包括:
以只读形式将存储服务器上包括应用主程序包的目录挂载到实例系统的指定目录;
修改安卓系统的设置,使得挂载的包括应用主程序包的目录中的主程序包中的可执行程序能够运行。
2.根据权利要求1所述的方法,其特征在于,所述的应用主程序包为apk文件。
3.根据权利要求2所述的方法,其特征在于,所述的包括应用主程序包的目录还包括lib子目录,所述的lib子目录包括so库。
4.根据权利要求1所述的方法,其特征在于,所述的修改安卓系统的设置,包括在安卓系统中增加扫描挂载的包括应用主程序包的目录的接口和扫描命令,使得安卓系统的PackageManager Service能够扫描挂载的包括应用主程序包的目录。
5.根据权利要求2所述的方法,其特征在于,所述的方法还包括:提取apk文件的证书和摘要存储到存储服务器,将apk文件的证书和摘要作为参数在Package Manager Service启动扫描时发送给Package Manager Service。
6.根据权利要求2所述的方法,其特征在于,所述的方法还包括:提取apk文件对应的odex文件存储到存储服务器,Package Manager Service启动扫描前将odex文件下载到实例系统的对应目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001811.9A CN106559484A (zh) | 2016-11-14 | 2016-11-14 | 实例系统免安装运行应用的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001811.9A CN106559484A (zh) | 2016-11-14 | 2016-11-14 | 实例系统免安装运行应用的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106559484A true CN106559484A (zh) | 2017-04-05 |
Family
ID=58444703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611001811.9A Pending CN106559484A (zh) | 2016-11-14 | 2016-11-14 | 实例系统免安装运行应用的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106559484A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107508829A (zh) * | 2017-09-20 | 2017-12-22 | 杭州安恒信息技术有限公司 | 一种非侵入式的webshell检测方法 |
CN108733426A (zh) * | 2017-04-21 | 2018-11-02 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的方法、装置及电子设备 |
CN108762821A (zh) * | 2017-04-18 | 2018-11-06 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的装置及方法、电子设备 |
CN110147240A (zh) * | 2019-04-30 | 2019-08-20 | 广州微算互联信息技术有限公司 | 基于云存储的应用程序安装方法、系统及存储介质 |
WO2019184156A1 (zh) * | 2018-03-28 | 2019-10-03 | 华为技术有限公司 | 一种免安装应用程序下载方法及装置 |
CN111782226A (zh) * | 2020-06-24 | 2020-10-16 | 长沙摩智云计算机科技有限公司 | 一种直捷安装安卓应用的方法、系统、设备及介质 |
CN112437192A (zh) * | 2019-08-23 | 2021-03-02 | 西安中兴新软件有限责任公司 | 应用软件的安装方法、运行方法、电子设备、计算机可读介质 |
CN113296923A (zh) * | 2020-04-17 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 内存合并方法、设备以及计算机可读介质 |
CN114185851A (zh) * | 2022-02-14 | 2022-03-15 | 麒麟软件有限公司 | 安卓访问Linux本地目录和文件的方法与系统 |
CN114625443A (zh) * | 2022-03-23 | 2022-06-14 | 珠海雷酷互动科技有限公司 | 一种安卓系统虚拟环境运行方法、装置、设备及存储介质 |
CN116204200A (zh) * | 2023-02-03 | 2023-06-02 | 启朔(深圳)科技有限公司 | 一种应用安装方法、装置、存储介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914637A (zh) * | 2013-01-07 | 2014-07-09 | 北京洋浦伟业科技发展有限公司 | 一种安卓平台的可执行程序加密方法 |
CN104375872A (zh) * | 2014-12-08 | 2015-02-25 | 福州瑞芯微电子有限公司 | 一种安卓系统实现快速开机的方法及装置 |
CN104598254A (zh) * | 2015-02-17 | 2015-05-06 | 福州瑞芯微电子有限公司 | 一种安卓系统快速开机的方法及装置 |
CN104731602A (zh) * | 2015-03-31 | 2015-06-24 | 上海盈方微电子有限公司 | 一种分离安卓镜像烧录流程的方法 |
-
2016
- 2016-11-14 CN CN201611001811.9A patent/CN106559484A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914637A (zh) * | 2013-01-07 | 2014-07-09 | 北京洋浦伟业科技发展有限公司 | 一种安卓平台的可执行程序加密方法 |
CN104375872A (zh) * | 2014-12-08 | 2015-02-25 | 福州瑞芯微电子有限公司 | 一种安卓系统实现快速开机的方法及装置 |
CN104598254A (zh) * | 2015-02-17 | 2015-05-06 | 福州瑞芯微电子有限公司 | 一种安卓系统快速开机的方法及装置 |
CN104731602A (zh) * | 2015-03-31 | 2015-06-24 | 上海盈方微电子有限公司 | 一种分离安卓镜像烧录流程的方法 |
Non-Patent Citations (1)
Title |
---|
郑文选: "基于Android快速启动技术的系统一致性的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762821A (zh) * | 2017-04-18 | 2018-11-06 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的装置及方法、电子设备 |
CN108733426A (zh) * | 2017-04-21 | 2018-11-02 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的方法、装置及电子设备 |
CN107508829B (zh) * | 2017-09-20 | 2019-11-29 | 杭州安恒信息技术股份有限公司 | 一种非侵入式的webshell检测方法 |
CN107508829A (zh) * | 2017-09-20 | 2017-12-22 | 杭州安恒信息技术有限公司 | 一种非侵入式的webshell检测方法 |
WO2019184156A1 (zh) * | 2018-03-28 | 2019-10-03 | 华为技术有限公司 | 一种免安装应用程序下载方法及装置 |
US11262995B2 (en) | 2018-03-28 | 2022-03-01 | Huawei Technologies Co., Ltd. | Method and apparatus for downloading installation-free application |
CN110147240B (zh) * | 2019-04-30 | 2023-09-05 | 广州微算互联信息技术有限公司 | 基于云存储的应用程序安装方法、系统及存储介质 |
CN110147240A (zh) * | 2019-04-30 | 2019-08-20 | 广州微算互联信息技术有限公司 | 基于云存储的应用程序安装方法、系统及存储介质 |
CN112437192B (zh) * | 2019-08-23 | 2023-12-22 | 西安中兴新软件有限责任公司 | 应用软件的运行方法、装置、电子设备、计算机可读介质 |
CN112437192A (zh) * | 2019-08-23 | 2021-03-02 | 西安中兴新软件有限责任公司 | 应用软件的安装方法、运行方法、电子设备、计算机可读介质 |
CN113296923A (zh) * | 2020-04-17 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 内存合并方法、设备以及计算机可读介质 |
CN113296923B (zh) * | 2020-04-17 | 2023-12-19 | 阿里巴巴集团控股有限公司 | 内存合并方法、设备以及计算机可读介质 |
CN111782226A (zh) * | 2020-06-24 | 2020-10-16 | 长沙摩智云计算机科技有限公司 | 一种直捷安装安卓应用的方法、系统、设备及介质 |
CN114185851B (zh) * | 2022-02-14 | 2022-07-05 | 麒麟软件有限公司 | 安卓访问Linux本地目录和文件的方法与系统 |
CN114185851A (zh) * | 2022-02-14 | 2022-03-15 | 麒麟软件有限公司 | 安卓访问Linux本地目录和文件的方法与系统 |
CN114625443A (zh) * | 2022-03-23 | 2022-06-14 | 珠海雷酷互动科技有限公司 | 一种安卓系统虚拟环境运行方法、装置、设备及存储介质 |
CN116204200A (zh) * | 2023-02-03 | 2023-06-02 | 启朔(深圳)科技有限公司 | 一种应用安装方法、装置、存储介质及设备 |
CN116204200B (zh) * | 2023-02-03 | 2024-02-09 | 启朔(深圳)科技有限公司 | 一种应用安装方法、装置、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106559484A (zh) | 实例系统免安装运行应用的方法 | |
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
US10635406B2 (en) | Determining the identity of software in software containers | |
US8037471B2 (en) | Systems and methods for constructing relationship specifications from component interactions | |
US8782604B2 (en) | Sandbox support for metadata in running applications | |
CN103795759B (zh) | 一种虚拟机镜像文件的调度方法和系统 | |
US10411961B2 (en) | Image management in cloud environments | |
CN109522029A (zh) | 一种部署云平台技术组件的方法及装置 | |
US9274783B2 (en) | Dynamic delivery and integration of static content into cloud | |
US8856740B2 (en) | Implementing multiple versions of a plug-in concurrently | |
CN104220987A (zh) | 应用安装 | |
CN107797767A (zh) | 一种基于容器技术部署分布式存储系统及其存储方法 | |
JP2010205267A (ja) | 仮想化サブレイヤを統合する方法およびシステム | |
EP4055477A1 (en) | Just-in-time containers | |
US11550801B2 (en) | Deprecating configuration profiles for cloud-based in-memory database | |
JP2022076475A (ja) | コンピュータ実装方法、コンピュータプログラム製品、およびシステム(コンテナイメージの作成および展開) | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
CN117099079A (zh) | 经由配置在云平台中的数据中心上的持续交付部署的服务的系统配置冻结和变更管理 | |
US20150100961A1 (en) | Operating Programs on a Computer Cluster | |
US20160127177A1 (en) | Installation of an arbitrary server as an extenstion of a computing platform | |
US8290984B2 (en) | Configuration deployment management | |
Civolani et al. | FogDocker: Start container now, fetch image later | |
EP4231602A1 (en) | Method and apparatus for acquiring private cloud container cluster gene information | |
US20120096453A1 (en) | Software Package Management Mechanism | |
US11526501B2 (en) | Materialized views assistant |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170405 |
|
RJ01 | Rejection of invention patent application after publication |