CN105975311A - 一种应用启动方法及装置 - Google Patents
一种应用启动方法及装置 Download PDFInfo
- Publication number
- CN105975311A CN105975311A CN201610300439.5A CN201610300439A CN105975311A CN 105975311 A CN105975311 A CN 105975311A CN 201610300439 A CN201610300439 A CN 201610300439A CN 105975311 A CN105975311 A CN 105975311A
- Authority
- CN
- China
- Prior art keywords
- dex
- compressed
- file
- compressed file
- intended application
- 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
Links
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/50—Conversion to or from non-linear codes, e.g. companding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
- H03M7/702—Software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种应用启动方法及装置,其中的应用启动方法可包括:获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;从所述第一压缩文件中提取所述dex压缩内容;将所述dex压缩内容生成第二压缩文件;加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。采用本发明实施例可节省解压和再压缩时间,减少目标应用启动时间,提高用户体验。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种应用启动方法及装置。
背景技术
Android***限制每个dex(代码包)只能包含最多65535个方法数,在开发期间,编译工具就按照这一限制,将程序代码编译为若干个方法数不超过65535的dex包。在安装应用后首次启动该应用时,将顺序加载所有dex。
现有技术在首次启动该应用时,具体加载dex的方法按照图1所示流程:用户点击图标,应用进行dex装载,从安卓***安装包(Android Package,APK)文件中找到dex压缩内容,然后将该dex压缩内容解压到临时目录,再重新压缩为zip文件,以zip形式加载所有dex方法,进入应用主界面。
从上述可知,在首次启动安装的应用时,需要占用较多时间来执行解压以及重新压缩的操作,dex数量越多,耗时越长,设备越低端,耗时越长。此操作发生在启动界面和主界面显示之前,用户可明显感知到点击应用图标到看到界面变化之间有长时间等待,用户体验差。
发明内容
本发明实施例提供一种应用启动方法及装置,可节省解压和再压缩时间,减少目标应用启动时间,提高用户体验。
本发明第一方面提供一种应用启动方法,包括:
获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
从所述第一压缩文件中提取所述dex压缩内容;
将所述dex压缩内容生成第二压缩文件;
加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
本发明第二方面提供一种应用启动装置,包括:
获取模块,用于获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
提取模块,用于从所述第一压缩文件中提取所述dex压缩内容;
生成模块,用于将所述dex压缩内容生成第二压缩文件;
启动模块,用于加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
实施本发明实施例,具有如下有益效果:
本发明实施例,获取第一压缩文件,该第一压缩文件包含目标应用的启动信息以及目标应用的dex压缩内容,从该第一压缩文件中提取该dex压缩内容,将该dex压缩内容生成第二压缩文件,加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用。这种方式可节省解压和再压缩dex包的时间,减少目标应用启动时间,提高用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的现有技术中应用启动流程图;
图2为本发明实施例提供的一种应用启动方法的流程图;
图3为本发明实施例提供的另一种应用启动方法的流程图;
图4为本发明实施例提供的一种优化dex解压速度的流程图;
图5为本发明实施例提供的一种后台加载的流程图;
图6为本发明实施例提供的一种产品界面示意图;
图7为本发明实施例提供的一种优化比较示意图;
图8为本发明实施例提供的一种应用启动框图;
图9为本发明实施例提供的一种应用启动装置的结构示意图;
图10为本发明实施例提供的一种生成模块的结构示意图;
图11为本发明实施例提供的一种启动模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,所述目标应用为安装在终端上的任何应用,包括但不限于浏览器、电子邮件、即时消息服务、文字处理、键盘虚拟、窗口小部件(Widget)、加密、数字版权管理、语音识别、语音复制、定位导航(例如由全球定位***提供的功能)、音乐播放、视频播放等等。
下面将结合附图2-附图8,对本发明实施例提供的应用启动方法进行详细介绍。
请参照图2,为本发明实施例提供的一种应用启动方法的流程图;该方法可包括以下步骤S200-步骤S203。
S200,获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
本发明实施例中,当把目标应用安装完成后,首次启动该目标应用时,要对dex进行dexopt操作,将dex从APK文件中提取出来进行加载。具体可选的,获取第一压缩文件,该第一压缩文件可以为APK文件,APK文件中包含目标应用的代码包dex压缩内容,启动该目标应用时,均需要加载dex,通常加载dex是以zip形式进行加载。
进一步可选的,该第一压缩文件中还包含目标应用的启动信息,目标应用的启动信息包括但不限于启动该目标应用的数据以及启动该目标应用的入口程序代码。
S201,从所述第一压缩文件中提取所述dex压缩内容;
本发明实施例中,从第一压缩文件中提取出dex压缩内容,具体的提取过程可以是根据dex压缩内容的文件名进行查找,可选的,dex压缩内容在APK文件中文件名为classes2.dex的entry中,通过遍历所有entry找到该dex压缩内容,如下所示:
(1)先在APK文件中查找目录结束标示结构(标识符是:0x06054b50),然后从该位置往下偏移16个字节处,找到核心目录第一个entry的偏移处(标识符是:0x02014b50)。
(2)然后用for循环开始记录各个entry的信息(可以记录下每个entry在APK文件中的偏移,这样便于在写信息(即是生成第二压缩文件)的时候定位到该entry的开始处),从entry头往下偏移42字节处,去找该entry的文件头信息,文件头信息包括文件头+文件源数据(压缩后的数据)+(hasDD,不一定有)。在APK文件中,dex压缩内容在文件名为classes2.dex中的entry中。找到dex压缩内容之后,即可以开始手动zip压缩文件的写入过程。
S202,将所述dex压缩内容生成第二压缩文件;
本发明实施例中,根据所提取的dex压缩内容,生成第二压缩文件,第二压缩文件的压缩格式可以是zip格式,在这里就不需要将dex压缩内容先进行解压到临时目录,再重新压缩,节省了目标应用启动的时间。
可选的,将dex压缩内容生成第二压缩文件可以包括以下两个步骤:
步骤一、根据所述第一压缩文件中所述dex压缩内容的文件头信息,生成第二压缩文件的头信息,所述第二压缩文件的头信息包含所述dex压缩内容;
步骤二、根据所述第一压缩文件中所述dex压缩内容的核心目录信息,生成所述第二压缩文件的核心目录信息。
本发明实施例中,第二压缩文件包括头信息、核心目录信息以及目录结束标示结构信息等,在生成第二压缩文件时,根据第一压缩文件中该dex压缩内容对应的文件头信息,生成第二压缩文件的头信息,该第二压缩文件的头信息也包括文件头+文件源数据(压缩后的dex数据)+(hasDD,不一定有)。
进一步,生成第二压缩文件中核心目录信息时,也是根据第一压缩文件中该dex压缩内容的核心目录信息生成,具体的第二压缩文件生成过程如下,这里继续以步骤S201中(1)和(2)进行说明:
(3)先写第二压缩文件的文件头信息,需要改文件名字为classes.dex,重算文件名长度,其他信息可以把APK文件classes2.dex的entry中的文件头信息拷贝过来。
(4)再写第二压缩文件的entry核心目录信息
因为只有一个entry,将里面的文件名,文件名长度,文件头位移做相应修改,其他信息从原来APK文件classes2.dex的entry中的信息拷贝过来即可。在上述(2)中,读APK文件的时候记录了entry在APK文件中的偏移位置,在找寻classes2.dex的过程中,可以用buffer流,因为entry中每个字段的信息字节数都是确定的,所以可以用一个变量来定位和记录各个位置的偏移情况。
(5)写第二压缩文件的目录结束标示结构信息。
S203,加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
本发明实施例中,当根据dex压缩内容生成第二压缩文件之后,即可加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用,需要说明的是,第一压缩文件中的启动信息可以是处于解压状态,例如可以是在目标应用安装过程中,进行编译时即进行了解压。
上述步骤S200-S203主要阐述了优化dex解压速度,可以等效于图4的流程图,首次安装目标应用启动时要对dex进行dexopt操作,需要将dex从APK文件中提取出来,本方案直接读取APK文件,从APK文件中找到压缩状态的dex压缩内容,复制对应内容,加上zip文件头,直接输出为新zip文件,并以zip形式加载dex的所有方法,最后进入应用程序(Application,APP)主界面。相比现有方案节省了一次解压和一次压缩操作,若使用双核1GHz的手机对目标应用进行启动,则可以将这部分文件操作时间从秒级降到毫秒级。
可选的,所述dex压缩内容为所述第一压缩文件中的分dex程序包,所述分dex程序包包含非启动入口程序,所述启动信息包括所述第一压缩文件中的主dex程序包,所述主dex程序包包含至少一个解压状态的启动入口程序;
所述加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用,包括以下步骤S20~S22:
S20,启动所述主dex程序包,并显示启动界面;
S21,加载所述第二压缩文件中的所述dex压缩内容;
S22,当检测到加载完所述dex压缩内容,执行所述主dex程序包中的所述至少一个启动入口程序,并显示所述目标应用的主界面。
本发明实施例中,当首次安装启动目标应用时,用户点击应用图标启动目标应用,旧版本会先加载dex,再调用该目标应用的启动入口程序启动目标应用从而出现闪屏,这样启动目标应用,在加载dex过程中用户看不到闪屏,呈卡死状态,体验较差。
本发明实施例对上述启动过程进行改进,实现先出现闪屏,再加载dex。而要实现上述启动过程就需要保证所有可能的启动入口程序的所有直接依赖集和间接依赖集在安装编译时都分在主dex程序包里,这样启动主dex程序包时可以调动显示启动界面,即出现闪屏,如图6所示,当用户点击应用图标时,即出现第二个启动界面,在启动界面显示过程中异步加载dex。
需要说明的是,主dex程序包中的依赖集很大,***的自动分包方案不能保证所有启动入口程序的依赖集都在主dex程序包中。因此开发人员分析出启动入口程序的所有直接依赖集和间接依赖集,然后确保依赖集都在主dex程序包里面,这样启动入口就能够保证启动成功。开发人员首先对分dex程序包的脚本做修改,加入预设分类规则,当在目标应用安装编译过程中,即根据该预设分类规则将所有程序分在主dex程序包和分dex程序包。
在主dex程序包中需要确保keep最小依赖集,保证主dex程序包能够有我们所有的依赖类集合,主要包含如下几个部分:service、content provider、broadcast、MusicApplication、LifeCycleManager、BaseActivity、OuterShellBaseActivity、DexActivity。
优选的,给主dex程序包增加外壳activity(OuterShellBaseActivity,DexActivity),OuterShellBaseActivity是个基类,和Activity类似,首次启动目标应用时,分dex程序包中的dex压缩内容没载入的情况下要经过这个外壳,从而调用显示启动界面。流程如图8所示:
A、正常入口去启动对应的activity,会先到基本组件Acitivity或者外壳组件OuterShellBaseActivity里面判断是否已经加载过dex;
若是->正常启动,执行步骤B;
若否->保留当前intent信息,并存入下一个intent中,然后去启动DexActiivty,在DexAcitivty中载入dex之后,根据得到的intent启动原来activity,在dex异步加载过程中一直处于闪屏状态,当dex加载完毕,调用应用启动组件启动应用,出现应用主界面,该启动方式为首次启动逻辑;
B、在onattachbasecontext里面加载dex,然后调用应用启动组件启动应用,出现闪屏,该启动方式为非首次启动逻辑;
进一步如图8所示,启动方式还可以是覆盖安装启动方式,具体请参照图3的实施例所述,在此不再赘述。
如图7表格所示,采用不同方案目标应用的启动耗时完全不同,比如,使用双核1GHz的android 4.4.2的P1手机对目标应用进行启动,采用现有方案(即背景技术所述方案)启动时,耗时3100ms,采用本发明优化后,耗时170ms,使用双核1GHz的android 4.4.4的P2手机对目标应用进行启动,采用现有方案(即背景技术所述方案)启动时,耗时1400ms,采用本发明优化后,耗时170ms,从上述比较可知,采用本发明实施例的应用启动方法可以大大减小目标应用的首次启动时长。
本发明实施例,获取第一压缩文件,该第一压缩文件包含目标应用的启动信息以及目标应用的dex压缩内容,从该第一压缩文件中提取该dex压缩内容,将该dex压缩内容生成第二压缩文件,加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用。这种方式可节省解压和再压缩dex包的时间,减少目标应用启动时间,提高用户体验。
请参照图3,为本发明实施例提供的另一种应用启动方法的流程图,该方法可包括以下步骤S300-S304;
S300,当检测到***广播的用于通知目标应用安装完成的广播包时,获取第一压缩文件;
本发明实施例中,覆盖安装目标应用后,***会广播用于通知目标应用安装完成的广播包PACKAGE_REPLACED,目标应用接收PACKAGE_REPLACED广播,并启动独立进程进行dex预解压,即是自动获取第一压缩文件,并提取该第一压缩文件中的dex压缩内容,将该dex压缩内容重新生成第二压缩文件,并加载第二压缩文件中的dex。
如图5所示,APP被安装到设备,***发出PACKAGE_REPLACED广播,APP启动lite线程,lite线程调用本发明实施例一中的应用启动方法进行dex加载,加载完毕后,lite线程退出,之后用户使用APP直接按照非首次启动流程,缩短首次启动时间。
S301,从所述第一压缩文件中提取所述dex压缩内容;
S302,将所述dex压缩内容生成第二压缩文件;
S303,加载所述第二压缩文件中的所述dex压缩内容;
本发明实施例步骤S301-S303请参照图2的实施例步骤S201~S203,在此不再赘述。
S304,当检测到启动所述目标应用的启动指令时,根据所述第一压缩文件中的所述启动信息启动所述目标应用。
本发明实施例中,当检测到启动目标应用的启动指令(比如用户点击应用图标)时,根据第一压缩文件中的启动信息启动目标应用,而不需要再去加载dex,因为dex已经在目标应用安装后即进行了加载。
本发明实施例,获取第一压缩文件,该第一压缩文件包含目标应用的启动信息以及目标应用的dex压缩内容,从该第一压缩文件中提取该dex压缩内容,将该dex压缩内容生成第二压缩文件,加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用。这种方式可节省解压和再压缩dex包的时间,减少目标应用启动时间,提高用户体验。
下面将结合附图9-附图11,对本发明实施例提供的一种应用启动装置进行详细介绍。
请参照图9,为本发明实施例提供的一种应用启动装置的结构示意图,如图所示,该应用启动装置包括获取模块100、提取模块101、生成模块102以及启动模块103;
获取模块100,用于获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
本发明实施例中,当把目标应用安装完成后,首次启动该目标应用时,要对dex进行dexopt操作,将dex从APK文件中提取出来进行加载。具体可选的,获取模块100获取第一压缩文件,该第一压缩文件可以为APK文件,APK文件中包含目标应用的代码包dex压缩内容,启动该目标应用时,均需要加载dex,通常加载dex是以zip形式进行加载。
进一步可选的,该第一压缩文件中还包含目标应用的启动信息,目标应用的启动信息包括但不限于启动该目标应用的数据以及启动该目标应用的入口程序代码。
提取模块101,用于从所述第一压缩文件中提取所述dex压缩内容;
本发明实施例中,提取模块101从第一压缩文件中提取出dex压缩内容,具体的提取过程可以是根据dex压缩内容的文件名进行查找,可选的,dex压缩内容在APK文件中文件名为classes2.dex的entry中,通过遍历所有entry找到该dex压缩内容,如下所示:
(1)先在APK文件中查找目录结束标示结构(标识符是:0x06054b50),然后从该位置往下偏移16个字节处,找到核心目录第一个entry的偏移处(标识符是:0x02014b50)。
(2)然后用for循环开始记录各个entry的信息(可以记录下每个entry在APK文件中的偏移,这样便于在写信息(即是生成第二压缩文件)的时候定位到该entry的开始处),从entry头往下偏移42字节处,去找该entry的文件头信息,文件头信息包括文件头+文件源数据(压缩后的数据)+(hasDD,不一定有)。在APK文件中,dex压缩内容在文件名为classes2.dex中的entry中。找到dex压缩内容之后,即可以开始手动zip压缩文件的写入过程。
生成模块102,用于将所述dex压缩内容生成第二压缩文件;
本发明实施例中,生成模块102根据所提取的dex压缩内容,生成第二压缩文件,第二压缩文件的压缩格式可以是zip格式,在这里就不需要将dex压缩内容先进行解压到临时目录,再重新压缩,节省了目标应用启动的时间。
可选的,如图10所示,生成模块102可以包括第一生成单元1020和第二生成单元1021;
第一生成单元1020,用于根据所述第一压缩文件中所述dex压缩内容的文件头信息,生成第二压缩文件的头信息,所述第二压缩文件的头信息包含所述dex压缩内容;
第二生成单元1021,用于根据所述第一压缩文件中所述dex压缩内容的核心目录信息,生成所述第二压缩文件的核心目录信息。
本发明实施例中,第二压缩文件包括头信息、核心目录信息以及目录结束标示结构信息等,在生成第二压缩文件时,根据第一压缩文件中该dex压缩内容对应的文件头信息,生成第二压缩文件的头信息,该第二压缩文件的头信息也包括文件头+文件源数据(压缩后的dex数据)+(hasDD,不一定有)。
进一步,生成第二压缩文件中核心目录信息时,也是根据第一压缩文件中该dex压缩内容的核心目录信息生成,具体的第二压缩文件生成过程如下,这里继续基于上述(1)和(2)进行说明:
(3)先写第二压缩文件的文件头信息,需要改文件名字为classes.dex,重算文件名长度,其他信息可以把APK文件classes2.dex的entry中的文件头信息拷贝过来。
(4)再写第二压缩文件的entry核心目录信息
因为只有一个entry,将里面的文件名,文件名长度,文件头位移做相应修改,其他信息从原来APK文件classes2.dex的entry中的信息拷贝过来即可。在上述(2)中,读APK文件的时候记录了entry在APK文件中的偏移位置,在找寻classes2.dex的过程中,可以用buffer流,因为entry中每个字段的信息字节数都是确定的,所以可以用一个变量来定位和记录各个位置的偏移情况。
(5)写第二压缩文件的目录结束标示结构信息。
启动模块103,用于加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
本发明实施例中,当根据dex压缩内容生成第二压缩文件之后,启动模块103即可加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用,需要说明的是,第一压缩文件中的启动信息可以是处于解压状态,例如可以是在目标应用安装过程中,进行编译时即进行了解压。
上述主要阐述了优化dex解压速度,可以等效于图4的流程图,首次安装目标应用启动时要对dex进行dexopt操作,需要将dex从APK文件中提取出来,本方案直接读取APK文件,从APK文件中找到压缩状态的dex压缩内容,复制对应内容,加上zip文件头,直接输出为新zip文件,并以zip形式加载dex的所有方法,最后进入应用程序(Application,APP)主界面。相比现有方案节省了一次解压和一次压缩操作,若使用双核1GHz的手机对目标应用进行启动,则可以将这部分文件操作时间从秒级降到毫秒级。
可选的,所述dex压缩内容为所述第一压缩文件中的分dex程序包,所述分dex程序包包含非启动入口程序,所述启动信息包括所述第一压缩文件中的主dex程序包,所述主dex程序包包含至少一个解压状态的启动入口程序;
如图11所示,启动模块103可以包括第一显示单元1030、加载单元1031以及第二显示单元1032;
第一显示单元1030,用于启动所述主dex程序包,并显示启动界面;
加载单元1031,用于加载所述第二压缩文件中的所述dex压缩内容;
第二显示单元1032,用于当检测到加载完所述dex压缩内容,执行所述主dex程序包中的所述至少一个启动入口程序,并显示所述目标应用的主界面。
本发明实施例中,当首次安装启动目标应用时,用户点击应用图标启动目标应用,旧版本会先加载dex,再调用该目标应用的启动入口程序启动目标应用从而出现闪屏,这样启动目标应用,在加载dex过程中用户看不到闪屏,呈卡死状态,体验较差。
本发明实施例对上述启动过程进行改进,实现先出现闪屏,再加载dex。而要实现上述启动过程就需要保证所有可能的启动入口程序的所有直接依赖集和间接依赖集在安装编译时都分在主dex程序包里,这样启动主dex程序包时可以调动显示启动界面,即出现闪屏,如图6所示,当用户点击应用图标时,即出现第二个启动界面,在启动界面显示过程中异步加载dex。
需要说明的是,主dex程序包中的依赖集很大,***的自动分包方案不能保证所有启动入口程序的依赖集都在主dex程序包中。因此开发人员分析出启动入口程序的所有直接依赖集和间接依赖集,然后确保依赖集都在主dex程序包里面,这样启动入口就能够保证启动成功。开发人员首先对分dex程序包的脚本做修改,加入预设分类规则,当在目标应用安装编译过程中,即根据该预设分类规则将所有程序分在主dex程序包和分dex程序包。
在主dex程序包中需要确保keep最小依赖集,保证主dex程序包能够有我们所有的依赖类集合,主要包含如下几个部分:service、content provider、broadcast、MusicApplication、LifeCycleManager、BaseActivity、OuterShellBaseActivity、DexActivity。
优选的,给主dex程序包增加外壳activity(OuterShellBaseActivity,DexActivity),OuterShellBaseActivity是个基类,和Activity类似,首次启动目标应用时,分dex程序包中的dex压缩内容没载入的情况下要经过这个外壳,从而调用显示启动界面。流程如图8所示:
A、正常入口去启动对应的activity,会先到基本组件Acitivity或者外壳组件OuterShellBaseActivity里面判断是否已经加载过dex;
若是->正常启动,执行步骤B;
若否->保留当前intent信息,并存入下一个intent中,然后去启动DexActiivty,在DexAcitivty中载入dex之后,根据得到的intent启动原来activity,在dex异步加载过程中一直处于闪屏状态,当dex加载完毕,调用应用启动组件启动应用,出现应用主界面,该启动方式为首次启动逻辑;
B、在onattachbasecontext里面加载dex,然后调用应用启动组件启动应用,出现闪屏,该启动方式为非首次启动逻辑;
进一步如图8所示,启动方式还可以是覆盖安装启动方式,具体请参照图3的实施例所述,在此不再赘述。
如图7表格所示,采用不同方案目标应用的启动耗时完全不同,比如,使用双核1GHz的android 4.4.2的P1手机对目标应用进行启动,采用现有方案(即背景技术所述方案)启动时,耗时3100ms,采用本发明优化后,耗时170ms,使用双核1GHz的android 4.4.4的P2手机对目标应用进行启动,采用现有方案(即背景技术所述方案)启动时,耗时1400ms,采用本发明优化后,耗时170ms,从上述比较可知,采用本发明实施例的应用启动方法可以大大减小目标应用的首次启动时长。
优选的,所述获取模块100具体用于当检测到***广播的用于通知目标应用安装完成的广播包时,获取第一压缩文件;
本发明实施例中,覆盖安装目标应用后,***会广播用于通知目标应用安装完成的广播包PACKAGE_REPLACED,目标应用获取模块100接收PACKAGE_REPLACED广播,并启动独立进程进行dex预解压,即是自动获取第一压缩文件,并提取该第一压缩文件中的dex压缩内容,将该dex压缩内容重新生成第二压缩文件,并加载第二压缩文件中的dex。
如图5所示,APP被安装到设备,***发出PACKAGE_REPLACED广播,APP启动lite线程,lite线程调用本发明实施例一中的应用启动方法进行dex加载,加载完毕后,lite线程退出,之后用户使用APP直接按照非首次启动流程,缩短首次启动时间。
所述启动模块103根据所述第一压缩文件中的所述启动信息启动所述目标应用具体包括:
当检测到启动所述目标应用的启动指令时,根据所述第一压缩文件中的所述启动信息启动所述目标应用。
本发明实施例中,当检测到启动目标应用的启动指令(比如用户点击应用图标)时,启动模块103根据第一压缩文件中的启动信息启动目标应用,而不需要再去加载dex,因为dex已经在目标应用安装后即进行了加载。
本发明实施例,获取第一压缩文件,该第一压缩文件包含目标应用的启动信息以及目标应用的dex压缩内容,从该第一压缩文件中提取该dex压缩内容,将该dex压缩内容生成第二压缩文件,加载第二压缩文件中的dex压缩内容,并根据第一压缩文件中的启动信息启动目标应用。这种方式可节省解压和再压缩dex包的时间,减少目标应用启动时间,提高用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,附图9-附图11所示应用启动装置对应的程序可存储在应用启动装置的可读存储介质内,并被该应用启动装置中的至少一个处理器执行,以实现上述应用启动方法,该方法包括图2-附图3中方法实施例所述的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (12)
1.一种应用启动方法,其特征在于,包括:
获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
从所述第一压缩文件中提取所述dex压缩内容;
将所述dex压缩内容生成第二压缩文件;
加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
2.如权利要求1所述的方法,其特征在于,所述第一压缩文件为安卓***安装包APK文件,所述第二压缩文件为zip压缩文件。
3.如权利要求1所述的方法,其特征在于,所述将所述dex压缩内容生成第二压缩文件,包括:
根据所述第一压缩文件中所述dex压缩内容的文件头信息,生成第二压缩文件的头信息,所述第二压缩文件的头信息包含所述dex压缩内容;
根据所述第一压缩文件中所述dex压缩内容的核心目录信息,生成所述第二压缩文件的核心目录信息。
4.如权利要求如权利要求1-3任意一项所述的方法,其特征在于,所述dex压缩内容为所述第一压缩文件中的分dex程序包,所述分dex程序包包含非启动入口程序,所述启动信息包括所述第一压缩文件中的主dex程序包,所述主dex程序包包含至少一个解压状态的启动入口程序;
所述加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用,包括:
启动所述主dex程序包,并显示启动界面;
加载所述第二压缩文件中的所述dex压缩内容;
当检测到加载完所述dex压缩内容,执行所述主dex程序包中的所述至少一个启动入口程序,并显示所述目标应用的主界面。
5.如权利要求4所述的方法,其特征在于,所述第一压缩文件中的分dex程序包中的非启动入口程序以及所述第一压缩文件中的主dex程序包中的启动入口程序为安装所述目标应用时根据预设分类规则编译获得。
6.如权利要求如权利要求1-3任意一项所述的方法,其特征在于,所述获取第一压缩文件,包括:
当检测到***广播的用于通知目标应用安装完成的广播包时,获取第一压缩文件;
所述根据所述第一压缩文件中的所述启动信息启动所述目标应用,包括:
当检测到启动所述目标应用的启动指令时,根据所述第一压缩文件中的所述启动信息启动所述目标应用。
7.一种应用启动装置,其特征在于,包括:
获取模块,用于获取第一压缩文件,所述第一压缩文件包含目标应用的启动信息以及所述目标应用的代码包dex压缩内容;
提取模块,用于从所述第一压缩文件中提取所述dex压缩内容;
生成模块,用于将所述dex压缩内容生成第二压缩文件;
启动模块,用于加载所述第二压缩文件中的所述dex压缩内容,并根据所述第一压缩文件中的所述启动信息启动所述目标应用。
8.如权利要求7所述的装置,其特征在于,所述第一压缩文件为安卓***安装包APK文件,所述第二压缩文件为zip压缩文件。
9.如权利要求7所述的装置,其特征在于,所述生成模块包括:
第一生成单元,用于根据所述第一压缩文件中所述dex压缩内容的文件头信息,生成第二压缩文件的头信息,所述第二压缩文件的头信息包含所述dex压缩内容;
第二生成单元,用于根据所述第一压缩文件中所述dex压缩内容的核心目录信息,生成所述第二压缩文件的核心目录信息。
10.如权利要求7-9任意一项所述的装置,其特征在于,所述dex压缩内容为所述第一压缩文件中的分dex程序包,所述分dex程序包包含非启动入口程序,所述启动信息包括所述第一压缩文件中的主dex程序包,所述主dex程序包包含至少一个解压状态的启动入口程序;所述启动模块包括:
第一显示单元,用于启动所述主dex程序包,并显示启动界面;
加载单元,用于加载所述第二压缩文件中的所述dex压缩内容;
第二显示单元,用于当检测到加载完所述dex压缩内容,执行所述主dex程序包中的所述至少一个启动入口程序,并显示所述目标应用的主界面。
11.如权利要求10所述的装置,其特征在于,所述第一压缩文件中的分dex程序包中的非启动入口程序以及所述第一压缩文件中的主dex程序包中的启动入口程序为安装所述目标应用时根据预设分类规则编译获得。
12.如权利要求7-9任意一项所述的装置,其特征在于,所述获取模块具体用于当检测到***广播的用于通知目标应用安装完成的广播包时,获取第一压缩文件;
所述启动模块根据所述第一压缩文件中的所述启动信息启动所述目标应用具体包括:
当检测到启动所述目标应用的启动指令时,根据所述第一压缩文件中的所述启动信息启动所述目标应用。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610300439.5A CN105975311B (zh) | 2016-05-09 | 2016-05-09 | 一种应用启动方法及装置 |
PCT/CN2017/083446 WO2017193885A1 (zh) | 2016-05-09 | 2017-05-08 | 一种应用启动方法及装置 |
US16/046,540 US10871973B2 (en) | 2016-05-09 | 2018-07-26 | Application activation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610300439.5A CN105975311B (zh) | 2016-05-09 | 2016-05-09 | 一种应用启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105975311A true CN105975311A (zh) | 2016-09-28 |
CN105975311B CN105975311B (zh) | 2021-01-29 |
Family
ID=56991760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610300439.5A Active CN105975311B (zh) | 2016-05-09 | 2016-05-09 | 一种应用启动方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10871973B2 (zh) |
CN (1) | CN105975311B (zh) |
WO (1) | WO2017193885A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569868A (zh) * | 2016-11-09 | 2017-04-19 | 腾讯音乐娱乐(深圳)有限公司 | 一种基于Gradle的编译优化方法及装置 |
CN106648740A (zh) * | 2016-10-18 | 2017-05-10 | 努比亚技术有限公司 | 一种可执行文件的加载方法及终端 |
CN107193544A (zh) * | 2017-04-01 | 2017-09-22 | 北京五八信息技术有限公司 | 一种应用程序组件化开发方法及装置 |
WO2017193885A1 (zh) * | 2016-05-09 | 2017-11-16 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
CN109033247A (zh) * | 2018-07-05 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种应用程序的管理方法、装置、存储介质及终端 |
CN111240766A (zh) * | 2020-01-22 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
WO2020210955A1 (zh) * | 2019-04-15 | 2020-10-22 | 深圳市欢太科技有限公司 | 应用程序启动的方法、装置、电子设备及存储介质 |
CN112256324A (zh) * | 2020-12-08 | 2021-01-22 | 智道网联科技(北京)有限公司 | 安卓应用程序构建过程中对文件的处理方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220059B (zh) * | 2017-06-14 | 2021-03-23 | 北京小米移动软件有限公司 | 应用界面的显示方法及装置 |
US11379110B1 (en) * | 2021-04-12 | 2022-07-05 | International Business Machines Corporation | Artificial intelligence-based operating system for drag and drop operations |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314365A (zh) * | 2011-09-08 | 2012-01-11 | 北京新媒传信科技有限公司 | 一种安装包制作方法和工具 |
CN102830996A (zh) * | 2012-08-08 | 2012-12-19 | 广东欧珀移动通信有限公司 | 一种手持设备的快速开机方法 |
US20130061222A1 (en) * | 2011-09-07 | 2013-03-07 | Pantech Co., Ltd. | Apparatus and method for managing optimized virtualization module |
CN102981824A (zh) * | 2012-10-31 | 2013-03-20 | 广州市久邦数码科技有限公司 | 一种获取安卓应用程序的入口及图标的方法 |
US20130111564A1 (en) * | 2011-10-31 | 2013-05-02 | Samsung Electronics Co., Ltd. | Image forming apparatus, license server, terminal apparatus, method for installing application, and method for providing application file |
CN103366386A (zh) * | 2013-07-14 | 2013-10-23 | 西安电子科技大学 | 基于多进程和多线程的并行图像解压缩*** |
CN103577212A (zh) * | 2012-08-08 | 2014-02-12 | 腾讯科技(深圳)有限公司 | ***启动预加载方法及装置 |
US20140366015A1 (en) * | 2013-05-31 | 2014-12-11 | Openpeak Inc. | Method and system for combining multiple applications into a single binary file while maintaining per process sandboxing |
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
CN104375869A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 自启动应用控制方法及装置 |
CN104536787A (zh) * | 2014-12-26 | 2015-04-22 | 小米科技有限责任公司 | 资源预加载方法及装置 |
CN104572966A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 一种压缩文件的解压方法和装置 |
US20150154407A1 (en) * | 2013-09-27 | 2015-06-04 | Soongsil University Research Consortium Techno-Park | Apparatus for tamper protection of application code based on self modification and method thereof |
EP2889813A1 (en) * | 2013-12-27 | 2015-07-01 | Buongiorno S.P.A. | Method and system for implementing in-app software development kits |
CN105224367A (zh) * | 2015-09-30 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种软件的安装方法及装置 |
CN105278989A (zh) * | 2015-10-12 | 2016-01-27 | 邱寅峰 | Apk文件的快速加载方法 |
CN105335184A (zh) * | 2014-08-07 | 2016-02-17 | 北京奇虎科技有限公司 | 应用安装的方法和装置 |
CN105528257A (zh) * | 2016-01-08 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 一种单进程数据处理方法及装置 |
US20160124757A1 (en) * | 2014-10-31 | 2016-05-05 | AppDynamics, Inc. | Monitoring a mobile device application |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4833568B2 (ja) * | 2005-03-15 | 2011-12-07 | 株式会社リコー | 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体 |
CN102231117B (zh) * | 2011-07-08 | 2013-08-14 | 盛乐信息技术(上海)有限公司 | 一种在嵌入式平台安装软件的方法和*** |
CN103257868B (zh) * | 2012-02-20 | 2016-12-28 | 联想(北京)有限公司 | 安装程序的方法和装置 |
CN104636665B (zh) * | 2015-02-03 | 2018-01-05 | 南京理工大学 | 一种Android应用程序的描述和匹配方法 |
CN105975311B (zh) * | 2016-05-09 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
-
2016
- 2016-05-09 CN CN201610300439.5A patent/CN105975311B/zh active Active
-
2017
- 2017-05-08 WO PCT/CN2017/083446 patent/WO2017193885A1/zh active Application Filing
-
2018
- 2018-07-26 US US16/046,540 patent/US10871973B2/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061222A1 (en) * | 2011-09-07 | 2013-03-07 | Pantech Co., Ltd. | Apparatus and method for managing optimized virtualization module |
CN102314365A (zh) * | 2011-09-08 | 2012-01-11 | 北京新媒传信科技有限公司 | 一种安装包制作方法和工具 |
US20130111564A1 (en) * | 2011-10-31 | 2013-05-02 | Samsung Electronics Co., Ltd. | Image forming apparatus, license server, terminal apparatus, method for installing application, and method for providing application file |
CN102830996A (zh) * | 2012-08-08 | 2012-12-19 | 广东欧珀移动通信有限公司 | 一种手持设备的快速开机方法 |
CN103577212A (zh) * | 2012-08-08 | 2014-02-12 | 腾讯科技(深圳)有限公司 | ***启动预加载方法及装置 |
CN102981824A (zh) * | 2012-10-31 | 2013-03-20 | 广州市久邦数码科技有限公司 | 一种获取安卓应用程序的入口及图标的方法 |
US20140366015A1 (en) * | 2013-05-31 | 2014-12-11 | Openpeak Inc. | Method and system for combining multiple applications into a single binary file while maintaining per process sandboxing |
CN103366386A (zh) * | 2013-07-14 | 2013-10-23 | 西安电子科技大学 | 基于多进程和多线程的并行图像解压缩*** |
US20150154407A1 (en) * | 2013-09-27 | 2015-06-04 | Soongsil University Research Consortium Techno-Park | Apparatus for tamper protection of application code based on self modification and method thereof |
EP2889813A1 (en) * | 2013-12-27 | 2015-07-01 | Buongiorno S.P.A. | Method and system for implementing in-app software development kits |
CN105335184A (zh) * | 2014-08-07 | 2016-02-17 | 北京奇虎科技有限公司 | 应用安装的方法和装置 |
US20160124757A1 (en) * | 2014-10-31 | 2016-05-05 | AppDynamics, Inc. | Monitoring a mobile device application |
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
CN104375869A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 自启动应用控制方法及装置 |
CN104536787A (zh) * | 2014-12-26 | 2015-04-22 | 小米科技有限责任公司 | 资源预加载方法及装置 |
CN104572966A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 一种压缩文件的解压方法和装置 |
CN105224367A (zh) * | 2015-09-30 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种软件的安装方法及装置 |
CN105278989A (zh) * | 2015-10-12 | 2016-01-27 | 邱寅峰 | Apk文件的快速加载方法 |
CN105528257A (zh) * | 2016-01-08 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 一种单进程数据处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
BLOODYANGEL: "性能优化总结(四):预加载的设计", 《HTTPS://WWW.CNBLOGS.COM/ZGYNHQF/ARCHIVE/2010/06/30/1768604.HTML》 * |
DENG_1957: "Android利用***广播---监听应用程序安装和卸载", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_9935B66001012DDG.HTML》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193885A1 (zh) * | 2016-05-09 | 2017-11-16 | 腾讯科技(深圳)有限公司 | 一种应用启动方法及装置 |
US10871973B2 (en) | 2016-05-09 | 2020-12-22 | Tencent Technology (Shenzhen) Company Limited | Application activation method and apparatus |
CN106648740A (zh) * | 2016-10-18 | 2017-05-10 | 努比亚技术有限公司 | 一种可执行文件的加载方法及终端 |
CN106569868B (zh) * | 2016-11-09 | 2019-12-31 | 腾讯音乐娱乐(深圳)有限公司 | 一种基于Gradle的编译优化方法及装置 |
CN106569868A (zh) * | 2016-11-09 | 2017-04-19 | 腾讯音乐娱乐(深圳)有限公司 | 一种基于Gradle的编译优化方法及装置 |
CN107193544B (zh) * | 2017-04-01 | 2021-01-15 | 北京五八信息技术有限公司 | 一种应用程序组件化开发方法及装置 |
CN107193544A (zh) * | 2017-04-01 | 2017-09-22 | 北京五八信息技术有限公司 | 一种应用程序组件化开发方法及装置 |
CN109033247A (zh) * | 2018-07-05 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种应用程序的管理方法、装置、存储介质及终端 |
WO2020210955A1 (zh) * | 2019-04-15 | 2020-10-22 | 深圳市欢太科技有限公司 | 应用程序启动的方法、装置、电子设备及存储介质 |
CN113396391A (zh) * | 2019-04-15 | 2021-09-14 | 深圳市欢太科技有限公司 | 应用程序启动的方法、装置、电子设备及存储介质 |
CN113396391B (zh) * | 2019-04-15 | 2023-12-01 | 深圳市欢太科技有限公司 | 应用程序启动的方法、装置、电子设备及存储介质 |
CN111240766A (zh) * | 2020-01-22 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
CN111240766B (zh) * | 2020-01-22 | 2023-12-29 | 抖音视界有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
CN112256324A (zh) * | 2020-12-08 | 2021-01-22 | 智道网联科技(北京)有限公司 | 安卓应用程序构建过程中对文件的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10871973B2 (en) | 2020-12-22 |
WO2017193885A1 (zh) | 2017-11-16 |
US20180373544A1 (en) | 2018-12-27 |
CN105975311B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105975311A (zh) | 一种应用启动方法及装置 | |
CN104375849B (zh) | 加载内核的方法及装置 | |
EP3021218B1 (en) | Upgrade packet generation method, server, software upgrade method, and mobile terminal | |
CN111045714B (zh) | 一种固件更新方法、装置、耳机及计算机可读存储介质 | |
JP4376181B2 (ja) | プログラム実行処理端末装置 | |
CN104991793A (zh) | 一种用于应用程序分包的方法、装置以及*** | |
US10579592B2 (en) | Method and apparatus for compressing an application | |
KR101427561B1 (ko) | 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체 | |
WO2016202000A1 (zh) | 差分回退升级方法及装置 | |
US20120271802A1 (en) | Forward compatibility guaranteed data compression and decompression method and apparatus thereof | |
KR101614070B1 (ko) | 무선 휴대 장치 부팅 방법 및 무선 휴대 장치 | |
CN112948026A (zh) | 热点代码处理方法、装置、服务器、电子设备及存储介质 | |
CN114706564B (zh) | 软件包制作方法、装置、电子设备及存储介质 | |
CN109947450A (zh) | ***文件升级方法、装置、移动终端及可读存储介质 | |
CN106406923A (zh) | 动态库文件的处理方法及装置 | |
CN111562929A (zh) | 补丁文件的生成方法、装置、设备及存储介质 | |
CN113741954A (zh) | ***软件生成方法、装置、电子设备及存储介质 | |
CN102298534B (zh) | 软件写入机顶盒的方法 | |
CN109509467B (zh) | 代码生成方法及装置 | |
JP6001199B2 (ja) | アンドロイドアプリケーションのタイゼン導入可能パッケージ自動変換方法及びこのためのコンピュータ読み取り可能な記録媒体 | |
CN111767417A (zh) | 应用图片的管理方法、装置、设备及存储介质 | |
CN101111029A (zh) | 获取运行数据的方法和装置 | |
CN116069366A (zh) | 客户端应用程序更新方法及装置、存储介质及电子设备 | |
US8959088B2 (en) | Log management method, log management system, and information processing apparatus | |
CN113127860B (zh) | 可执行文件的检测方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |