CN106909353B - 应用程序的运行方法和装置 - Google Patents

应用程序的运行方法和装置 Download PDF

Info

Publication number
CN106909353B
CN106909353B CN201510971750.8A CN201510971750A CN106909353B CN 106909353 B CN106909353 B CN 106909353B CN 201510971750 A CN201510971750 A CN 201510971750A CN 106909353 B CN106909353 B CN 106909353B
Authority
CN
China
Prior art keywords
class
file
description file
installation package
class description
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.)
Active
Application number
CN201510971750.8A
Other languages
English (en)
Other versions
CN106909353A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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
Priority to CN201510971750.8A priority Critical patent/CN106909353B/zh
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to PCT/CN2016/109917 priority patent/WO2017107824A1/zh
Priority to KR1020187020535A priority patent/KR102141749B1/ko
Priority to SG11201805248TA priority patent/SG11201805248TA/en
Priority to AU2016378425A priority patent/AU2016378425B2/en
Priority to EP16877635.9A priority patent/EP3396536A4/en
Priority to JP2018533199A priority patent/JP6703114B2/ja
Priority to MYPI2018001027A priority patent/MY187394A/en
Publication of CN106909353A publication Critical patent/CN106909353A/zh
Priority to US16/015,036 priority patent/US10671366B2/en
Priority to PH12018501343A priority patent/PH12018501343A1/en
Application granted granted Critical
Publication of CN106909353B publication Critical patent/CN106909353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • 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
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

本申请提出一种应用程序的运行方法和装置,该方法包括:根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小;在用户需要运行所述应用程序之前,下载所述安装包;在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。该方法能够减小应用程序安装包的大小,从而降低资源开销。

Description

应用程序的运行方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种应用程序的运行方法和装置。
背景技术
在智能化时代,用户使用的应用程序(APP)越来越多,在应用程序运行之前需要先下载安装应用程序。目前应用程序的安装包通常会比较大,例如,100M左右。用户从应用商店下载安装包时,就会占用终端较大的磁盘空间,另外,还会耗费较大的下载流量和下载时间,这些都会增加资源开销。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种应用程序的运行方法,该方法可以减小应用程序安装包的大小,从而降低资源开销。
本申请的另一个目的在于提出一种应用程序的运行装置。
为达到上述目的,本申请第一方面实施例提出的应用程序的运行方法,包括:根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小;在用户需要运行所述应用程序之前,下载所述安装包;在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
本申请第一方面实施例提出的应用程序的运行方法,通过在安装包内包含类描述文件,类描述文件的大小是小于类的,因此,相对于现有直接在安装包中包含类的方式,通过在安装包内包含类描述文件,可以减少应用程序安装包的大小,从而降低资源开销。
为达到上述目的,本申请第二方面实施例提出的应用程序的运行装置,包括:生成模块,用于根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小;下载模块,用于在用户需要运行所述应用程序之前,下载所述安装包;运行模块,用于在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
本申请第二方面实施例提出的应用程序的运行装置,通过在安装包内包含类描述文件,类描述文件的大小是小于类的,因此,相对于现有直接在安装包中包含类的方式,通过在安装包内包含类描述文件,可以减少应用程序安装包的大小,从而降低资源开销。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的应用程序的运行方法的流程示意图;
图2是现有技术中应用程序的运行方法的示意图;
图3是本申请另一实施例提出的应用程序的运行方法的流程示意图;
图4是本申请实施例中根据类描述文件生成类的流程示意图;
图5是本申请另一实施例提出的应用程序的运行装置的结构示意图;
图6是本申请另一实施例提出的应用程序的运行装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一实施例提出的应用程序的运行方法的流程示意图,该方法包括:
S11:根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小。
其中,原始文件例如包括:头文件(.h文件)和源文件(.m文件)。
类描述文件是一种文本文件,用于描述类的相关信息,类是计算机编程中的一种基本信息。类描述文件的大小是小于对应的类的大小的。
例如,一种类名(className)叫收银员(MERCHANTAPPOperator),收银员有类描述信息(classDescription),类描述信息例如包含属性描述信息,属性描述信息例如包括:收银员id(operatorId),收银员名字(operatorName),收银员所在店铺名(shopName)等。
以ios系统为例,可以采用预先编写的脚本,从原始文件转换为类描述文件(.plist文件)。其中,类描述文件中所需的内容可以在原始文件中找到,只是原始文件和类描述文件具有不同的格式,因此,可以预先编写脚本以实现原始文件与类描述文件之间的转换。
另外,在生成类描述文件后,可以将其保存在预设目录下,预设目录例如是resource bundle。
在生成类描述文件后,可以将其放入安装包内,以供用户下载安装。
一些实施例中,参见图2,所述根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,包括:
S111:根据头文件和源文件生成类描述文件。
生成流程可以参见上述相关描述,在此不再赘述。
S112:删除源文件。
S113:在删除源文件后,将头文件和类描述文件放入安装包内,以供用户下载所述安装包。
由于类描述文件和头文件都比较小,上述得到的安装包也比较小,用户可以直接在应用商店下载上述的安装包。
可选的,为了进一步降低安装包的大小,在得到上述的安装包后,还可以对该安装包进行压缩,例如,在将头文件和类描述文件放入安装包后,该方法还可以包括:
S114:对安装包进行压缩,以供用户下载压缩后的安装包。
例如,在应用商店内呈现的是压缩后的安装包,用户可以下载压缩后的安装包。
S12:在用户需要运行应用程序之前,下载所述安装包。
例如,用户可以从应用商店下载应用程序的安装包,该安装包内包含类描述文件。
为了更好的区分本申请与现有技术,如图3所示,给出了现有技术中运行应用程序的流程示意图,参见图3,现有技术中,在生成安装包时,需要先根据源文件编译生成中间文件(.o文件)(S31),再根据中间文件链接打包生成安装包(S32),以ios系统为例,安装包可以称为ipa包。其中,经过编译和链接打包后,ipa包中会包含应用程序对应的类。之后,可以将ipa放在应用商店中供用户下载,用户下载后,会先将ipa包下载保存到终端的磁盘上(S33),当需要运行应用程序时,将ipa包从磁盘中读取到终端的内存中并运行(S34),从而实现应用程序的正常运行。通常ipa是比较大的,因此不论是在下载还是在保存时都需要消耗较大的资源。
与现有技术不同的是,本实施例中不需要对原始文件进行编译和链接打包,而是采用类描述文件,类描述文件是一种文本文件,相对于现有的ipa包,类描述文件的大小是很小的,从而可以降低下载以及保存时所需的资源。
S13:在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
在下载的安装包是压缩后的安装包时,在使用安装包时,可以先对安装包进行解压缩,以获取类描述文件等信息。在下载的安装包是未压缩的,则可以直接从安装包中获取类描述文件等信息。
为了保证应用程序的正常运行,需要生成应用程序所包含的类。现有技术中,通过对源文件编译和打包可以生成类,从而使得保存在磁盘中的ipa包中包含类,在运行应用程序时,可以直接从磁盘中获取类以实现应用程序的正常运行。
本实施例中,由于为了减小安装包的大小,在安装包中包含的是类描述文件,而不是类,为了保证应用程序的正常运行,需要先根据类描述文件生成类。
例如,用户在下载安装包后,可以将安装包保存在终端的磁盘上,在运行应用程序时,可以从磁盘上获取安装包内的类描述文件,将类描述文件读取到内存中,在内存中根据类描述文件生成类。
一些实施例中,参见图4,根据类描述文件生成类的流程可以包括:
S41:根据类描述文件获取类名、父类名和属性。
例如,类描述文件中包含待生成的类的类名和属性描述信息,如,类名(className)是收银员(MERCHANTAPPOperator),属性描述信息包括:收银员id(operatorId),收银员名字(operatorName),收银员所在店铺名(shopName)等。因此,可以从类描述文件中获取类名和属性描述信息。
在获取属性描述信息后,可以根据属性描述信息创建属性,例如,可以直接根据属性描述信息创建属性变量(ivar)、访问器(property)和指针(IMP)。
如果类描述文件中包含类名对应的父类名,则可以直接从类描述文件中获取父类名,如果类描述文件中不包含类名对应的父类名,则可以根据父类名的创建规则,根据类名创建并返回父类名,从而得到父类名。
S42:根据所述类名、父类名和属性,采用ios runtime技术提供的方法,生成类。
ios runtime(运行时)提供了多种方法可以创建类,例如,一种方法是:
objc_allocateClassPair(Class superclass,const char*name,size_textraBytes)
说明:第一个参数superclass是父类的类对象,第二个name是类名,第三个是额外分配字节,通常为0。
该方法的上述参数中用到了父类名和类名,另外,该方法在运行时会用到属性,从而可以根据父类名、类名和属性采用上述方法创建类。
本实施例中,通过在安装包内包含类描述文件,类描述文件的大小是小于类的,因此,相对于现有直接在安装包中包含类的方式,通过在安装包内包含类描述文件,可以减少应用程序安装包的大小,从而降低资源开销。
图5是本申请另一实施例提出的应用程序的运行装置的结构示意图,该装置50包括:生成模块51,下载模块52和运行模块53。
生成模块51,用于根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小;
其中,原始文件例如包括:头文件(.h文件)和源文件(.m文件)。
类描述文件是一种文本文件,用于描述类的相关信息,类是计算机编程中的一种基本信息。类描述文件的大小是小于对应的类的大小的。
例如,一种类名(className)叫收银员(MERCHANTAPPOperator),收银员有类描述信息(classDescription),类描述信息例如包含属性描述信息,属性描述信息例如包括:收银员id(operatorId),收银员名字(operatorName),收银员所在店铺名(shopName)等。
可选的,所述生成模块用于根据应用程序的原始文件,生成类描述文件,包括:
根据预设的脚本进行格式转换,将应用程序的原始文件转换为类描述文件。
以ios系统为例,可以采用预先编写的脚本,从原始文件转换为类描述文件(.plist文件)。其中,类描述文件中所需的内容可以在原始文件中找到,只是原始文件和类描述文件具有不同的格式,因此,可以预先编写脚本以实现原始文件与类描述文件之间的转换。
另外,在生成类描述文件后,可以将其保存在预设目录下,预设目录例如是resource bundle。
在生成类描述文件后,可以将其放入安装包内,以供用户下载安装。
一些实施例中,参见图6,生成模块51包括:
第一单元511,用于根据所述头文件和所述源文件生成类描述文件;
生成流程可以参见上述相关描述,在此不再赘述。
第二单元512,用于删除源文件;
第三单元513,用于在删除源文件后,将所述头文件和所述类描述文件放入安装包内,以供用户下载所述安装包。
由于类描述文件和头文件都比较小,上述得到的安装包也比较小,用户可以直接在应用商店下载上述的安装包。
可选的,所述生成模块51还包括:
第四单元514,用于对安装包进行压缩,以供用户下载压缩后的安装包。
为了进一步降低安装包的大小,在得到上述的安装包后,还可以对该安装包进行压缩。
例如,在应用商店内呈现的是压缩后的安装包,用户可以下载压缩后的安装包。
下载模块52,用于在用户需要运行所述应用程序之前,下载所述安装包;
例如,用户可以从应用商店下载应用程序的安装包,该安装包内包含类描述文件。
与现有技术不同的是,本实施例中不需要对原始文件进行编译和链接打包,而是采用类描述文件,类描述文件是一种文本文件,相对于现有的ipa包,类描述文件的大小是很小的,从而可以降低下载以及保存时所需的资源。
运行模块53,用于在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
在下载的安装包是压缩后的安装包时,在使用安装包时,可以先对安装包进行解压缩,以获取类描述文件等信息。在下载的安装包是未压缩的,则可以直接从安装包中获取类描述文件等信息。
为了保证应用程序的正常运行,需要生成应用程序所包含的类。现有技术中,通过对源文件编译和打包可以生成类,从而使得保存在磁盘中的ipa包中包含类,在运行应用程序时,可以直接从磁盘中获取类以实现应用程序的正常运行。
本实施例中,由于为了减小安装包的大小,在安装包中包含的是类描述文件,而不是类,为了保证应用程序的正常运行,需要先根据类描述文件生成类。
例如,用户在下载安装包后,可以将安装包保存在终端的磁盘上,在运行应用程序时,可以从磁盘上获取安装包内的类描述文件,将类描述文件读取到内存中,在内存中根据类描述文件生成类。
一些实施例中,所述运行模块53用于根据所述类描述文件生成类,包括:
根据类描述文件获取类名、父类名和属性;
根据所述类名、父类名和属性,采用ios运行时runtime技术提供的方法,生成类。
例如,类描述文件中包含待生成的类的类名和属性描述信息,如,类名(className)是收银员(MERCHANTAPPOperator),属性描述信息包括:收银员id(operatorId),收银员名字(operatorName),收银员所在店铺名(shopName)等。因此,可以从类描述文件中获取类名和属性描述信息。
在获取属性描述信息后,可以根据属性描述信息创建属性,例如,可以直接根据属性描述信息创建属性变量(ivar)、访问器(property)和指针(IMP)。
如果类描述文件中包含类名对应的父类名,则可以直接从类描述文件中获取父类名,如果类描述文件中不包含类名对应的父类名,则可以根据父类名的创建规则,根据类名创建并返回父类名,从而得到父类名。
ios runtime(运行时)提供了多种方法可以创建类,例如,一种方法是:
objc_allocateClassPair(Class superclass,const char*name,size_textraBytes)
说明:第一个参数superclass是父类的类对象,第二个name是类名,第三个是额外分配字节,通常为0。
该方法的上述参数中用到了父类名和类名,另外,该方法在运行时会用到属性,从而可以根据父类名、类名和属性采用上述方法创建类。
本实施例中,通过在安装包内包含类描述文件,类描述文件的大小是小于类的,因此,相对于现有直接在安装包中包含类的方式,通过在安装包内包含类描述文件,可以减少应用程序安装包的大小,从而降低资源开销。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种应用程序的运行方法,其特征在于,包括:
根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小,所述原始文件包括头文件和源文件;
在用户需要运行所述应用程序之前,下载所述安装包;
在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
2.根据权利要求1所述的方法,其特征在于,所述根据应用程序的原始文件,生成类描述文件,包括:
根据预设的脚本进行格式转换,将应用程序的原始文件转换为类描述文件。
3.根据权利要求1所述的方法,其特征在于,所述根据所述类描述文件生成类,包括:
根据类描述文件获取类名、父类名和属性;
根据所述类名、父类名和属性,采用ios运行时runtime技术提供的方法,生成类。
4.根据权利要求1所述的方法,其特征在于,所述根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,包括:
根据所述头文件和所述源文件生成类描述文件;
删除源文件;
在删除源文件后,将所述头文件和所述类描述文件放入安装包内,以供用户下载所述安装包。
5.根据权利要求4所述的方法,其特征在于,在将头文件和类描述文件放入安装包内之后,所述方法还包括:
对安装包进行压缩,以供用户下载压缩后的安装包。
6.一种应用程序的运行装置,其特征在于,包括:
生成模块,用于根据应用程序的原始文件,生成类描述文件,并将所述类描述文件放入安装包内,所述类描述文件是用于描述类的文本文件,所述类描述文件的大小小于对应的类的大小,所述原始文件包括头文件和源文件;
下载模块,用于在用户需要运行所述应用程序之前,下载所述安装包;
运行模块,用于在运行所述应用程序时,从所述安装包内获取所述类描述文件,并根据所述类描述文件生成类。
7.根据权利要求6所述的装置,其特征在于,所述生成模块用于根据应用程序的原始文件,生成类描述文件,包括:
根据预设的脚本进行格式转换,将应用程序的原始文件转换为类描述文件。
8.根据权利要求6所述的装置,其特征在于,所述运行模块用于根据所述类描述文件生成类,包括:
根据类描述文件获取类名、父类名和属性;
根据所述类名、父类名和属性,采用ios运行时runtime技术提供的方法,生成类。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述生成模块包括:
第一单元,用于根据所述头文件和所述源文件生成类描述文件;
第二单元,用于删除源文件;
第三单元,用于在删除源文件后,将所述头文件和所述类描述文件放入安装包内,以供用户下载所述安装包。
10.根据权利要求9所述的装置,其特征在于,所述生成模块还包括:
第四单元,用于对安装包进行压缩,以供用户下载压缩后的安装包。
CN201510971750.8A 2015-12-22 2015-12-22 应用程序的运行方法和装置 Active CN106909353B (zh)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201510971750.8A CN106909353B (zh) 2015-12-22 2015-12-22 应用程序的运行方法和装置
MYPI2018001027A MY187394A (en) 2015-12-22 2016-12-14 Application program executing method and device
SG11201805248TA SG11201805248TA (en) 2015-12-22 2016-12-14 App program running method and apparatus
AU2016378425A AU2016378425B2 (en) 2015-12-22 2016-12-14 Application program running method and apparatus
EP16877635.9A EP3396536A4 (en) 2015-12-22 2016-12-14 Application program running method and apparatus
JP2018533199A JP6703114B2 (ja) 2015-12-22 2016-12-14 アプリケーションプログラム実行方法及び装置
PCT/CN2016/109917 WO2017107824A1 (zh) 2015-12-22 2016-12-14 应用程序的运行方法和装置
KR1020187020535A KR102141749B1 (ko) 2015-12-22 2016-12-14 App 프로그램 실행 방법 및 장치
US16/015,036 US10671366B2 (en) 2015-12-22 2018-06-21 App program running method and apparatus
PH12018501343A PH12018501343A1 (en) 2015-12-22 2018-06-22 App program running method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510971750.8A CN106909353B (zh) 2015-12-22 2015-12-22 应用程序的运行方法和装置

Publications (2)

Publication Number Publication Date
CN106909353A CN106909353A (zh) 2017-06-30
CN106909353B true CN106909353B (zh) 2019-12-13

Family

ID=59089110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510971750.8A Active CN106909353B (zh) 2015-12-22 2015-12-22 应用程序的运行方法和装置

Country Status (10)

Country Link
US (1) US10671366B2 (zh)
EP (1) EP3396536A4 (zh)
JP (1) JP6703114B2 (zh)
KR (1) KR102141749B1 (zh)
CN (1) CN106909353B (zh)
AU (1) AU2016378425B2 (zh)
MY (1) MY187394A (zh)
PH (1) PH12018501343A1 (zh)
SG (1) SG11201805248TA (zh)
WO (1) WO2017107824A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225360B1 (en) * 2018-01-24 2019-03-05 Veeva Systems Inc. System and method for distributing AR content
CN109799995A (zh) * 2018-12-14 2019-05-24 平安普惠企业管理有限公司 部署ipa包的方法、装置、计算机设备和存储介质
CN110262831A (zh) * 2019-05-28 2019-09-20 深圳供电局有限公司 一种减小apk体积的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1514361A (zh) * 2002-12-31 2004-07-21 北京科泰世纪科技有限公司 构件自描述封装方法及运行的方法
CN102135892A (zh) * 2010-01-22 2011-07-27 北京金山数字娱乐科技有限公司 应用程序运行方法、装置及系统
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN102955689A (zh) * 2011-08-23 2013-03-06 腾讯科技(深圳)有限公司 软件安装包的制作方法和软件安装包装置
CN103365672A (zh) * 2012-03-29 2013-10-23 宇龙计算机通信科技(深圳)有限公司 一种处理应用程序的描述信息的方法和系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5560009A (en) * 1990-09-21 1996-09-24 Hewlett-Packard Company Generating symbolic debug information by merging translation and compiler debug information
US5854932A (en) * 1995-08-17 1998-12-29 Microsoft Corporation Compiler and method for avoiding unnecessary recompilation
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation
US7506175B2 (en) * 2000-11-06 2009-03-17 International Business Machines Corporation File language verification
US20060075070A1 (en) * 2002-04-02 2006-04-06 Patrick Merissert-Coffinieres Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
US7353502B2 (en) * 2002-07-03 2008-04-01 The Mathworks, Inc. System and method for creation of software components
US7184917B2 (en) * 2003-02-14 2007-02-27 Advantest America R&D Center, Inc. Method and system for controlling interchangeable components in a modular test system
US9164750B2 (en) * 2003-02-28 2015-10-20 Hewlett-Packard Development Company, L.P. Managing target computer using encapsulated file
US7305666B2 (en) * 2003-07-23 2007-12-04 Microsoft Corporation Description language for an extensible compiler and tools infrastructure
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
US7509584B2 (en) * 2004-05-28 2009-03-24 Sap Ag Dynamic ECMAScript class loading
US8631386B2 (en) * 2004-08-25 2014-01-14 Mohit Doshi System and method for automating the development of web services
GB2419436A (en) * 2004-10-25 2006-04-26 Digitalml Ltd Extensible object-modelling mechanism
US8364638B2 (en) * 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8464214B2 (en) * 2005-09-15 2013-06-11 Ca, Inc. Apparatus, method and system for building software by composition
US8032872B2 (en) * 2006-01-09 2011-10-04 Oracle America, Inc. Supporting applets on a high end platform
US7813870B2 (en) 2006-03-03 2010-10-12 Inrix, Inc. Dynamic time series prediction of future traffic conditions
WO2007113539A1 (en) * 2006-03-31 2007-10-11 British Telecommunications Public Limited Company Interactive development tool and debugger for web services
CN101202739A (zh) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 一种asn.1报文面向对象的处理装置
US7949848B2 (en) * 2007-03-08 2011-05-24 Arm Limited Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
CN101697133A (zh) * 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级系统以及客户端
CN101783075B (zh) 2010-02-05 2012-05-23 北京科技大学 一种城市环形道路交通流预测系统
KR101427561B1 (ko) * 2013-05-16 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
CN104252364B (zh) * 2013-06-25 2017-09-12 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
TWI559249B (zh) 2016-02-24 2016-11-21 車慧中 通過電腦實現的專利大數據預測選股方法及電腦系統
TWM553462U (zh) 2017-09-25 2017-12-21 First Commercial Bank 行銷客群預測系統
TWM560648U (zh) 2017-12-26 2018-05-21 Systex Corp 透過金融商品漲跌歷史軌跡為深度學習之轉折點預測系統

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1514361A (zh) * 2002-12-31 2004-07-21 北京科泰世纪科技有限公司 构件自描述封装方法及运行的方法
CN102135892A (zh) * 2010-01-22 2011-07-27 北京金山数字娱乐科技有限公司 应用程序运行方法、装置及系统
CN102955689A (zh) * 2011-08-23 2013-03-06 腾讯科技(深圳)有限公司 软件安装包的制作方法和软件安装包装置
CN102662703A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种应用程序插件加载方法及装置
CN103365672A (zh) * 2012-03-29 2013-10-23 宇龙计算机通信科技(深圳)有限公司 一种处理应用程序的描述信息的方法和系统

Also Published As

Publication number Publication date
KR102141749B1 (ko) 2020-09-15
US20180300118A1 (en) 2018-10-18
PH12018501343A1 (en) 2019-02-27
AU2016378425A1 (en) 2018-07-12
US10671366B2 (en) 2020-06-02
WO2017107824A1 (zh) 2017-06-29
EP3396536A4 (en) 2019-01-02
JP6703114B2 (ja) 2020-06-03
SG11201805248TA (en) 2018-07-30
KR20180098584A (ko) 2018-09-04
JP2019501459A (ja) 2019-01-17
MY187394A (en) 2021-09-22
CN106909353A (zh) 2017-06-30
EP3396536A1 (en) 2018-10-31
AU2016378425B2 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
US10083017B2 (en) Processing source file
US9811360B2 (en) Dynamic determination of application server runtime classloading
CN108536451B (zh) 应用程序的埋点注入方法和装置
CN111399840B (zh) 一种模块开发方法及装置
CN108279941B (zh) 一种应用程序的压缩方法和装置
CN104899025A (zh) 一种生成渠道包的方法和装置
CN105094878B (zh) 一种集成系统库文件的方法和装置
CN106909353B (zh) 应用程序的运行方法和装置
CN112631684B (zh) 可执行程序的运行方法、装置、电子设备及计算机存储介质
CN106775781B (zh) 减小应用安装包的方法、装置及电子设备
CN111209001A (zh) 批量生成安卓各渠道apk的方法、系统、设备和介质
CN113885935A (zh) 资源打包方法、装置、电子设备及计算机可读存储介质
CN106775916B (zh) 减小应用安装包的方法、装置及电子设备
CN113010180A (zh) 一种固件生成方法、系统、设备以及介质
CN108595335B (zh) 测试环境部署方法、部署装置及存储介质
JP6001199B2 (ja) アンドロイドアプリケーションのタイゼン導入可能パッケージ自動変換方法及びこのためのコンピュータ読み取り可能な記録媒体
CN111767417A (zh) 应用图片的管理方法、装置、设备及存储介质
CN112953721B (zh) 一种ipa文件的解析方法、装置、设备及存储介质
CN114090070A (zh) 应用程序安装包文件处理方法及电子设备
WO2019157891A1 (zh) 应用安装方法、应用安装包的生成方法
KR20090121949A (ko) 모바일 콘텐츠 변환 방법 및 시스템
CN112882698A (zh) 开发环境的生成方法及装置、计算机存储介质及电子设备
CN111399932A (zh) 调用dll的方法、系统、浏览器的处理方法和浏览器
CN107844309B (zh) 一种系统数据处理方法及装置
CN116450535B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right