CN112799691A - 一种应用安装包的处理方法、装置、设备及介质 - Google Patents
一种应用安装包的处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112799691A CN112799691A CN202110145168.1A CN202110145168A CN112799691A CN 112799691 A CN112799691 A CN 112799691A CN 202110145168 A CN202110145168 A CN 202110145168A CN 112799691 A CN112799691 A CN 112799691A
- Authority
- CN
- China
- Prior art keywords
- dynamic link
- link library
- installation package
- library
- application installation
- 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
Images
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
-
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Abstract
本发明实施例公开了一种应用安装包的处理方法、装置、设备及介质,涉及互联网技术领域,该应用安装包的处理方法包括:获取动态链接文件信息;去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;基于所述动态链接库压缩壳生成应用安装包。本发明实施例效地减少应用安装包体积大小,同时保证生产环境的稳定性和兼容性。
Description
技术领域
本发明涉及移动互联网技术领域,尤其涉及一种应用安装包的处理方法、装置、设备及介质。
背景技术
随着应用业务的快速迭代增长,应用安装包体积也越来越膨胀,带来了一定的负面影响,如用户安装等待时间变长,导致下载转化率下降等。因此,在开发过程中需要持续去做应用安装包体积大小的监控和对应用安装包进行瘦身,保持包体积正在一个可控范围内。
例如,在音视频应用中,占用应用安装包体积的很大一部分是so动态库,因此可以通过处理so库来减少包体积。其中,so库作为一种动态链接库,是使用计算机程序语言C或C++编译出来的二进制文件。目前,通过处理so库来减少包体积的方式主要是以下两种:
第一种,减少内置的so库应用程序二进制接口(Application Binary Interface,ABI)支持,具体的,安卓(Android)系统一共支持多种不同类型的CPU架构,比如armeabi、armeabi-v7a、arm64,X86等,为了减少包体积,可以只保留armeabi目录以兼容所有的平台,但这样就失去了针对特定平台的优化;另外,有些应用商店上发布的应用必须要支持64位架构,如谷歌的应用商店Google Play上发布的应用必须要支持64位架构了,因此应用安装包中so库不仅要保留armeabi,也要保留arm64。
第二种,动态下发so库,即把so库从安卓安装包(AndroidPackage,APK)中抽离出来,放到云端,应用运行时根据某种时机策略下载对应的so库到本地,虽然这种方式可以大大减少APK体积,但是缺点也很明显,如so库动态下发在无网络时不可用,正式投产需要解决比较多的安全性以及兼容性问题。
发明内容
有鉴于此,本发明实施例提供一种应用安装包的处理方法、装置、设备及介质,以有效地减少应用安装包体积大小,同时保证生产环境的稳定性和兼容性。
第一方面,本发明实施例提供了一种应用安装包的处理方法,包括:获取动态链接文件信息;去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;基于所述动态链接库压缩壳生成应用安装包。
第二方面,本发明实施例还提供了一种应用安装包的处理方法,包括:在应用程序启动后,检测所述应用程序的动态链接库是否已经解压;若所述动态链接库没有解压,则启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压;对解压后得到的动态链接库进行加载。
第三方面,本发明实施例还提供了一种应用安装包的处理装置,包括:
获取模块,用于获取动态链接文件信息;
去除模块,用于去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;
压缩模块,用于依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;
安装包生成模块,用于基于所述动态链接库压缩壳生成应用安装包。
第四方面,本发明实施例还提供了一种应用安装包的处理装置,包括:
解压检测模块,用于在应用程序启动后,检测所述应用程序的动态链接库是否已经解压;
压缩壳解压模块,用于在所述动态链接库没有解压时,启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压;
动态链接库加载模块,用于对解压后得到的动态链接库进行加载。
第五方面,本发明实施例还提供了一种应用安装包的处理设备,包括:处理器和存储器;所述存储器中存储有至少一条指令,所述指令由所述处理器执行,使得所述处理设备执行如第一方面或第二方面所述的应用安装包的处理方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,所述可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如第一方面或第二方面所述的应用安装包的处理方法。
本发明实施例通过去除动态链接文件信息中的调试符号信息,得到目标动态链接文件信息,并依据目标动态链接文件信息进行压缩,得到动态链接库压缩壳,以基于动态链接库压缩壳生成应用安装包,从而有效地减少应用安装包体积大小,减少动态链接库加载时的性能和安全性影响,保证生产环境的稳定性和兼容性。
附图说明
图1是本发明实施例提供的一种应用安装包的处理方法的步骤流程示意图;
图2是本发明一个可选实施例中的一种应用安装包的处理方法的步骤流程示意图;
图3是本发明一个示例中在应用编译时通过压缩so库输出带so压缩壳的APK的流程示意图;
图4是本发明实施例提供的另一种应用安装包的处理方法的步骤流程示意图;
图5是本发明一个示例中在应用运行时解压so压缩壳并加载so库的流程示意图;
图6是本发明一个可选实施例中的另一种应用安装包的处理方法的步骤流程示意图;
图7是本发明一个示例中通过加载同步接口加载so库的流程示意图;
图8是本发明实施例提供的一种应用安装包的处理装置的结构框示意图
图9,示出了本发明实施例提供的另一种应用安装包的处理装置的结构框示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构或组成。
在应用程序(Application,App)中,由于性能和逻辑等需求,核心代码通常会用计算机程序语言C/C++实现,并编译成本地原生(Native)库,如一般Android平台上要求高性能或者核心逻辑,通常都会用计算机程序语言C或C++编译成so文件,并作为Native库打包进APK,运行的时候可以动态链接以调用逻辑,因此so库占用包体积的比重比较客观。目前,业界常用做法只保留arm和arm64 so,并通过代码精简so库大小来减少包体积。但是,应用安装包只保留arm和arm64 so库,失去了针对特定平台的优化,影响应用运行的稳定性,且精简so代码文件,无法支持不同类型的CPU架构,影响so库加载时的性能和安全性。
基于上述技术问题,本发明实施例提出了一种新的应用安装包的处理方法,通过去除动态链接文件信息中的调试符号信息并进行压缩,从而可以基于压缩后得到的动态链接库压缩壳生成应用安装包,有效地减少应用安装包的大小,达到对动态链接库进行极致瘦身的目的,同时保证了生产环境的稳定性和兼容性。
实施例一
图1为本发明实施例提供的一种应用安装包的处理方法的步骤流程示意图。本实施例可适用于应用安装包的处理情况,如适用于应用安装包构建生成情况,该应用安装包的处理方法具体可以包括如下步骤:
步骤110,获取动态链接文件信息。
本实施例中,动态链接文件信息可以用于表示动态链接文件,具体可以包括应用编译时所需要获取各种动态链接文件信息,如可以是应用编译时所需要获取的so库信息。
例如,在构建应用安装包时,可以获取应用编译时所需要使用的so库文件信息,以便后续可以依据该so库文件信息生成应用安装包。其中,应用安装包可以是指App的安装包,如可以是APK。
步骤120,去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息。
其中,目标动态链接文件信息可以是指去除调试符号信息后得到的动态链接文件,如可以是去除调试符号信息的so库。具体而言,本发明实施例在获取动态链接文件信息后,可以通过剥离(Strip)任务去除动态链接文件信息中的调试符号信息,得到目标动态链接文件信息,在减少动态链接库大小的同时提高动态链接库在逆向工程中的安全性。
进一步的,本发明实施例去除所述动态链接文件中的调试符号信息,得到目标动态链接文件信息,具体可以包括如下子步骤:
子步骤1201,针对所述动态链接文件信息,调用剥离任务;
子步骤1202,通过所述剥离任务去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息。
具体的,本发明实施例在使用构建工具构建应用压缩包时,在获取动态链接文件信息后,可以直接调用系统平台提供的剥离任务,以通过该剥离任务去除动态链接文件信息中的调试符号信息,得到目标动态链接文件信息。其中,目标动态链接文件信息可以包括剥离任务执行后输出的信息,如可以包括剥离任务执行后的输出目录,该输出目录可以包含去除调试符号信息后的动态链接库名称目录等,本实施例对此不作具体限制。
例如,在使用构建工具Gradle构建APK过程中,在打包so库时可以基于获取到的动态链接文件信息,直接调用Android平台自带的剥离调试符号任务tripDebugSymbolsTask,作为本发明实施例中的剥离任务,以通过执行剥离调试符号任务tripDebugSymbolsTask,去除动态链接文件信息中的调试符号信息,即去掉获取到的so库中的调试符号信息,得到去掉调试符号信息的目标动态链接文件信息。需要说明的是,剥离调试符号任务tripDebugSymbolsTask是一个构建工具Gradle任务,可以负责去掉so文件的调试符号信息;这些调试符号信息对于开发和调试比较方便,但是生产版本可以不需要这些调试符号信息,且调试符号信息也占用了比较大的空间,因此本示例通过去除so库中的调试符号信息,减少so库在APK中的大小,达到对APK进行瘦身的目的。
步骤130,依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳。
具体而言,本发明实施例在得到目标动态链接文件信息后,可以使用预设压缩算法对该目标动态链接文件信息进行压缩处理,得到动态链接库压缩壳,以便后续可以采用该动态链接库压缩壳生成应用压缩包,进一步减少应用压缩包体积。其中,预设压缩算法可以根据压缩需求进行设置,如在对比不同的压缩算法,对解压时间和压缩比进行平衡择优后,可以将xz算法设置为预设压缩算法,以使用xz算法进行动态链接库压缩。当然,本发明实施例除了可以使用xz算法进行压缩处理之外,还可以使用其他压缩算法进行压缩处理,本发明实施例对此不作具体限制。
步骤140,基于所述动态链接库压缩壳生成应用安装包。
具体的,本发明实施例在得到动态链接库压缩壳后,可以将该动态链接库压缩壳添加到的应用安装包中,以采用该动态链接库压缩壳生成应用安装包,即生成了携带有动态链接库压缩壳的应用安装包,从而减少应用安装包体积,解决了在正式投产环境中动态链接库加载的稳定性、兼容性问题,大大减少动态链接库加载时的性能和安全性影响。
在实际处理中,本发明实施例可以在剥离任务后面注册一个压缩任务,以通过注册的压缩任务对去除调试符号信息的目标动态文件信息进行压缩,得到相应的动态链接库压缩壳,以便后续可以采用该动态链接库压缩壳替换原始的动态链接库生成应用安装包,从而可以输出带动态链接库压缩壳的应用安装包,有效地减少应用安装包体积,同时保证生产环境的稳定性和兼容性。可选的,在上述实施例的基础上,本发明实施例提供的应用安装包的处理方法还可以包括:基于所述剥离任务注册压缩任务。其中,上述依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳,可以包括:通过所述压缩任务对所述目标动态链接文件信息进行压缩处理,得到动态链接库压缩壳。
参照图2,示出了本发明一个可选实施例中的一种应用安装包的处理方法的步骤流程示意图。在实际处理中,本发明实施例提供的应用安装包的处理方法可以应用于应用编译构建安装包的场景中,如可以应用在应用程序编译构建时压缩so库的场景,方便生产环境的自动化打包应用安装包,并且在调试(Debug)环境可以关闭so压缩,本发明实施例对此不作具体限制。如图2所示,本发明实施例提供的应用安装包的处理方法可以包括如下步骤:
步骤210,获取动态链接文件信息。
步骤220,针对所述动态链接文件信息,调用剥离任务。
步骤230,通过所述剥离任务去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;
步骤240,基于所述剥离任务注册压缩任务。
具体而言,在应用安装包构建过程中,构建工具任务可以按照任务的依赖关系依次执行任务。本发明实施例可以注册一个自定义的压缩任务在剥离任务之后,即在剥离任务后面注册一个压缩任务,以便后续乐意通过压缩任务对剥离任务输出目标动态链接文件信息进行压缩处理,即执行步骤250。
步骤250,通过所述压缩任务对所述目标动态链接文件信息进行压缩处理,得到动态链接库压缩壳。
具体的,本发明实施例在得到目标动态链接文件信息后,可以通过注册的压缩任务,按照预设压缩算法对目标动态链接文件信息进行压缩,如使用xz算法对目标动态链接文件信息进行压缩,得到相应的动态链接库压缩壳。
可选的,本发明实施例通过所述压缩任务对所述目标动态链接文件信息进行压缩处理,得到动态链接库压缩壳,具体可以包括:读取压缩配置名单信息;基于所述压缩配置名单信息和所述目标动态链接文件信息,使用预设压缩算法进行动态链接库压缩,得到动态链接库压缩壳。其中,压缩配置名单信息可以是指应用编译时所配置的压缩名单,具体可以包括应用编译时所需要压缩的动态链接库名称,如可以包含待压缩动态链接库so名称。本发明实施例在得到剥离任务执行后输出的目标动态链接文件信息后,可以查找配置名单信息中的动态链接库名称,以根动态链接库名称匹配动态链接库,并对匹配到的动态链接库进行压缩,即对匹配到的动态链接库对应的目标动态链接文件信息,使用预设压缩算法进行压缩,得到相应的动态链接库压缩壳。
例如,如图3所示,在构建工具Gradle构建APK时,可以通过执行Android平台自带的剥离调试符号任务tripDebugSymbolsTask,去除原始so库的调试符号信息,并可在这个剥离调试符号任务tripDebugSymbolsTask后面注册一个自定义so压缩壳任务,作为本发明实施例中的压缩任务,以通过自定义的so压缩壳任务读取压缩配置名单信息,并根据该压缩配置名单信息中so名称,查找剥离调试符号任务tripDebugSymbolsTask的输出目录,以根据压缩配置名单信息中的so名称与输出目录中的so库进行匹配。当输出目录中的so库与配置名单信息中的so名称匹配,如在输出目录中某一so库的名称与配置名单信息中的so名称相同时,可以确定该so库与so名称相匹配,随后可使用预设的xz算法压缩so库,得到so压缩壳,以作为本发明实施例中的动态连接库压缩壳,以便后续可以基于该动态连接库压缩壳生成应用安装包。
步骤260,基于所述动态链接库压缩壳生成应用安装包。
具体的,本发明实施例在得到动态链接库压缩壳后,可以将该动态链接库压缩壳添加到应用安装包中,并可删除应用安装包中该动态链接库压缩库对应的原始动态链接库,以采用该动态链接库压缩壳替换原始动态链接库生成应用安装包,使得应用安装包带有动态链接库压缩壳,即通过动态链接库压缩壳的方式减少应用安装包体积。进一步而言,本发明实施例基于所述动态链接库压缩壳生成应用安装包,具体可以包括:采用所述动态链接库压缩壳替换所述压缩配置名单信息中的源动态链接库,以基于替换后的动态链接库压缩壳生成所述应用安装包,并删除所述原始动态链接库。
例如,如图3所示,在使用xz算法压缩so库后,可以将压缩后得到的so压缩壳添加到APK中,即在构建APK过程中添加so压缩壳,并可删除源so库,即把压缩配置名单中的原始so库使用XZ压缩算法压缩后进行替换,最终输出带so压缩壳的APK,从而可以有效的减少APK包体积大小,解决了在正式投产环境中动态链接库加载的稳定性、兼容性以及异常流程等问题,尽量减少了动态链接库加载时的性能和安全影响,保证生产环境的稳定性和兼容性。
可见,本示例在应用编译打包时,可以在某一个流程上添加一个构建工具Gradle任务,并可根据配置把源so库替换为压缩so库,实现项目以及第三方库的so压缩壳的添加;并且通过对比不同的压缩算法,对解压时间及压缩比进行平衡择优后,使用xz算法进行压缩so库,从而可以大大减少应用安装包体积。
当然,在APP编译时也可以内置源so库为备份,以作为so压缩壳解压加载失败的兜底方案,验证线上兼容性问题,并可等应用功能稳定后,再移除源so库,本实施例对此不作具体限制。
实施例二
在上述实施例的基础上,本发明实施例还提供另一应用安装包的处理方法,以在应用启动时解压应用安装包中的动态链接库压缩壳并加载解压后的动态链接库。
参见图4,示出了本发明实施例提供的另一种应用安装包的处理方法的步骤流程示意图。本实施例可适用于应用运行场景,具体可以应用于应用运行时解压动态链接库场景,如可以应用于应用运行时解压so库压缩壳的场景,如图4所示,该应用安装包的处理方法具体可以包括如下步骤:
步骤410,在应用程序启动后,检测所述应用程序的动态链接库是否已经解压。
具体而言,在应用启动时,可以在指定时间之后开始解压应用安装包中的动态链接库压缩壳。因此,本发明实施例在应用程序启动之后,可以先检查应用程序的动态链接库是否已经解压,如可以检测本地是否存在该应用程序的动态链接库,以确定该应用程序的安装包中的动态链接库压缩壳是否已经被解压;若本地存在应用程序的动态链接库,即在应用程序的安装包中的动态链接库压缩壳已经被解压的情况下,则可以确定动态链接库已经解压,可以直接加载该动态链接库,即执行步骤430,以加载对应功能的Native逻辑;若本地不存在应用程序的动态链接库,即在应用程序的安装包中的动态链接库压缩壳没有被解压的情况下,则可以确定动态链接库没有解压,随后执行步骤420,以对应用安装包中的动态链接库压缩壳进行解压。
步骤420,若所述动态链接库没有解压,则启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压。
具体而言,本发明实施例在检测到应用程序的动态链接库没有解压的情况下,可以启动后台服务线程,以通过后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压,即在后台异步解压应用安装包中的动态链接库压缩壳,避免解压耗时对主线程的影响,使得主线线程可以快速显示用户界面(User Interface,UI),达到不卡住主线程UI的目的。
步骤430,对解压后得到的动态链接库进行加载。
具体的,本方面实施例在解决后得到动态链接库后,可以加载该动态链接库,以实现相应功能的本地逻辑加载。
在具体实现中,本发明实施例在应用运行时可以选择合适的时机在后台异步解压应用安装包中的动态链接库压缩壳,以在解压后加载对应功能的Native逻辑。例如,如图5所示,在应用启动后,可以检测应用的so库是否已经解压,即检测该应用的so库是否存在本地目录中。若本地目录中不存在该应用的so库,则可以确定该so库没有被解压,随后可启动后台解压so库,即启动后台服务线程对应用安装包中携带的动态链接库压缩壳进行异步解压,随后可对解压缩后得到so库进行加载,即开始加载so库,可选的,还可以将解压后得到的so库保存在APP本地目录中,以便下次应用运行时可以直接加载so库。
在实际处理中,由于解压需要一定的耗时,如一般大小的so库解压需要2秒以内的耗时,为了让应用的一级页面如应用程序的首页功能等可以快速地显示,本发明实施例可以在压缩配置名单中过滤掉首页功能相关的动态链接库,如在压缩配置名单中过滤掉首页功能相关的so库,使得用户可以快速进入到应用一级页面,并且可以在用户进入二级页面时再检测该二级页面对应的动态链接库是否已经解压,从而可以在二级页面对应的动态链接库没有被解压时通过后台服务线程解压,使得用户可以速进入到二级页面。可选的,本发明实施例通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压,具体可以包括:通过所述后台服务线程,按照预设压缩算法对应的解压算法对所述安装包中的动态链接库压缩壳进行异步解压。从而能够避免同步解压时需要等待解压完成才能进行下一步所导致的卡顿问题,可以在每次使用功能前提前判断是否已经异步解压完成,进而可以在异步解压完成后通过加载动态链接库实现相应功能的Native逻辑。
进一步而言,本发明实施例检测所述应用程序的动态链接库是否已经解压,具体可以包括:在进入所述应用程序的功能页面时,检测所述功能页面的动态链接库是否完成解压;若所述功能页面的动态链接库没有完成解压,则弹出加载框,并执行所述启动后台服务线程的步骤。例如,如图5所示,在应用启动后,可以在应用进入对应功能页面时,检测此功能页面的so库是否解压,如检测应用的本地目录是否存在该功能页面的so库;若本地目录存在该功能页面的so库,则可以确定功能页面的so库已完成解压,然后可以开始加载so库,即在功能页面的so库已经解压的情况下可以开始加载so库,以加载对应功能的Native逻辑;若本地目录不存在该功能页面的so库,则可以确定功能页面的so库没有完成解压,随后可在应用交互上弹出一个加载(Loading)框,即弹出加载框,以通过Loading框提示用户正在加载,并且可以启动后台服务做异步解压,即启动后台解压so库,从而可以在解压得到so库后,开始加载so库,以加载对应功能的Native逻辑。
可见,本示例可以等待应用安装包中so库压缩壳解压后再加载解压后得到的so库,即等待解压后再加载源so库,解决了在正式投产环境中so压缩壳加载的稳定性、兼容性以及异常流程等问题,尽量减少so加载时的性能和安全性影响。
进一步的,在上述实施例的基础上,本实施例提供的另一种应用压缩包的处理方法还可以包括:检测所述动态链接库压缩壳是否解压成功;若所述动态链接库压缩壳解压成功,则向用户界面线程发送所述动态链接库压缩壳对应的解压成功信息,以通知所述用户界面线程,并可将解压后得到的动态链接库保存在所述应用程序的本地目录中;若所述动态链接库压缩壳解压失败,则发送所述动态链接库压缩壳对应的解压失败信息。该解压失败信息可以用于提示动态链接库压缩壳解压失败的原因,如可能是存储空间不够或IO异常等,本实施例对此不作具体限制。可见,本发明实施例可以在动态链接库压缩壳解压失败时发送该动态链接库压缩壳对应的解压失败信息,如上报解压失败信息应用服务器,使得应用服务器可以收集解压失败信息,即能够收集错误信息,从而可以保证线上动态链接库压缩壳加载的成功率,如保证线上so压缩壳加载的成功率,确保动态链接库记载的稳定性和健壮性。
可选的,本发明实施例提供的另一种应用安装包的处理方法,还可以包括:在所述动态链接库压缩壳解压失败或加载失败时,调用所述加载同步接口直接加载所述应用安装包中的源动态链接库。
参照图6,示出了本发明一个可选实施例中的另一种应用安装包的处理方法的步骤流程示意图,该应用安装包的处理方法具体可以包括如下步骤:
步骤610,在应用程序启动后,检测所述应用程序的动态链接库是否已经解压。
具体而言,在应用程序启动后,应用程序进入运行状态。本发明实施例在应用程序运行过程中,可以检测该应用程序的动态链接库是否已经解压,以确定该应用程序的动态链接库是否存在本地目录,从而可以在应用程序的动态链接库存在本地目录的情况下直接加载动态链接库,不需要重新对应用安装包中的动态链接库压缩壳进行解压;而在应用程序的动态链接库是否没有被解压的情况下,即在应用程序的动态链接库不存在本地目录具体时,可以执行步骤620,以通过启动后台服务做异步解压,等待解压完成后再加载解压后得到的动态链接库。进一步的,本发明实施例检测所述应用程序的动态链接库是否已经解压具体可以包括:在进入所述应用程序的功能页面时,检测所述功能页面的动态链接库是否完成解压;若所述功能页面的动态链接库没有完成解压,则弹出加载框,并执行所述启动后台服务线程的步骤,即执行步骤620。
在实际处理中,在应用程序启动后,可以通过调用同步接口,来加载应用程序的动态链接库。因此,在本发明的一个可选实施方式中,检测所述功能页面的动态链接库是否完成解压,具体可以包括:判断加载同步接口是否加载所述功能页面的动态链接库成功;若所述加载同步接口加载所述功能页面的动态链接库失败,则确定所述功能页面的动态链接库没有完成解压。若所述加载同步接口加载所述功能页面的动态链接库成功,则可以确定所述功能页面的动态链接库解压完成。例如,如图7所示,在调用加载同步接口System.load加载so库时,可以判断该加载同步接口System.load是否加载so库成功,以确定so库是否完成解压;若加载同步接口System.load加载so库成功,则可以确定so库解压完成,并可通知UI线程,随后可结束so库加载流程;若加载同步接口System.load加载so库失败,则可以确定so库没有完成解压,随后可执行步骤620,以启动后台服务线程进行异步解压,即启动异步线程来解压,不卡住主线程UI,等解压成功后再回调到主线程设置标志位,从而避免卡住主线程UI的问题。需要说明的是,加载同步接口System.load是Java层加载动态链接库so的调用接口。
步骤620,在所述动态链接库没有解压时,启动后台服务线程。
步骤630,通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压。
具体的,本发明实施例在启动后台服务线程后,可以通过后台服务线程,按照预设压缩算法对应的解压算法对所述安装包中的动态链接库压缩壳进行异步解压,如可以使用xz算法进行解压,并可提前把xz算法的解压逻辑预置到apk中,以在加载so库时提前实现so库解压。
步骤640,检测所述动态链接库压缩壳是否解压成功。
步骤650,若所述动态链接库压缩壳解压成功,则向用户界面线程发送所述动态链接库压缩壳对应的解压成功信息,以通知所述用户界面线程,并将解压后得到的动态链接库保存在所述应用程序的本地目录中。
具体而言,本实施例在启动后台服务线程对应用程序的安装包中的动态链接库压缩壳进行解压后,可以检测动态链接库压缩壳是否解压成功,从而可以在检测到动态链接库压缩壳解压成功时向用户界面线程发送动态链接库压缩壳对应的解压成功信息,以通知用户界面线程动态链接库解压成功,使得用户界面线程调用同步接口加载解压后得到的动态链接库,并可将解压后得到的动态链接库保存在所述应用程序的本地目录中,以便下次可以直接加载动态链接库,无需重新解压动态链接库。
步骤660,若所述动态链接库压缩壳解压失败,则发送所述动态链接库压缩壳对应的解压失败信息。
具体的,本发明实施例在检测到动态链接库压缩壳解压失败时,可以发送该动态链接库压缩壳对应的解压失败信息,以上报动态链接库的解压失败信息,以便后续可以依据该动态链接库的解压失败信息进行调试、修复,确保线上so压缩壳加载的成功率。
例如,结合上述例子,在判断出加载同步接口System.load加载so库失败后,可以通过启动后台服务线程,解压APK中的so压缩壳,随后可判断APK中的so压缩壳是否解压成功,从而可以在APK中的so压缩壳解压失败时发送解压失败信息,即上报解压失败信息,达到收集错误信息进行上报的目的,保证线上so压缩壳加载的成功率;而在APK中的so压缩壳解压成功时,可以重新调用加载同步接口System.load,以通过该加载同步接口System.load加载解压后得到的so库,进而可以在so库加载成功后结束so库加载流程,即结束。
步骤670,在所述动态链接库压缩壳解压失败或加载失败时,调用所述加载同步接口直接加载所述应用安装包中的源动态链接库。
进一步而言,在应用安装包包含动态链接库压缩壳和源动态链接库的情况下,本发明实施例在动态链接库压缩壳解压失败或加载失败时,可以调用同步接口直接包直接加载应用安装包中的源动态链接库。其中,应用安装包中的源动态链接库可以是指应用安装包中没有被压缩的动态链接库,如可以是获取到的原始的动态链接库或去除调试符号信息后的动态链接库等,本实施例对此不作具体限制。例如,在APP编译时在APK中内置源so库为备份的情况下,在so压缩壳解压失败时,或者,在加载so压缩壳解压后得到的so库失败时,可以加载APK中的源so库,实现so库的加载。
综上,本发明实施例在应用编译时可以根据压缩配置名单压缩对应的动态链接文件,从而可以压缩除项目以外的第三方动态链接文件,如可根据配置名单压缩对应的so,从而可以压缩除项目以外的第三方so库,并且不影响开发环境的编译速度,有效低减少了应用安装包的体积。
进一步的,本发明实施例在应用运行时,可以选择合适的时机在后台异步解压动态链接库压缩壳,并可将解压后得到的动态链接库保存到应用程序本地目标中,以便下次运行时可以直接记载动态链接库,无需重新解压。以应用运行时解压so为例,在应用运行时,可以选择合适的时机在后台异步解压so压缩壳,解决了在正式投产环境中so压缩壳加载的稳定性、兼容性以及异常流程等问题,并可保存解压后的源so库到app本地目录,下次可以直接加载源so库,从而减少so加载时的性能和安全性影响。
此外,本发明实施例在应用程序博编译时可以内置源动态链接库为备份,作为动态链接库压缩壳解压加载失败的兜底方案,从而验证了线上兼容性问题,保证生产环境的稳定性和兼容性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。
实施例三
参照图8,示出了本发明实施例提供的一种应用安装包的处理装置的结构框示意图,该应用安装包的处理装置具体可以包括如下模块:
获取模块810,用于获取动态链接文件信息;
去除模块820,用于去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;
压缩模块830,用于依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;
安装包生成模块840,用于基于所述动态链接库压缩壳生成应用安装包。
在上述实施例的基础上,可选地,去除模块820可以包括如下子模块:
剥离任务调用子模块,用于针对所述动态链接文件信息,调用剥离任务;
调试符号去除子模块,用于通过所述剥离任务去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息。
可选的,上述应用安装包的处理装置还可以包括压缩任务注册模块。该压缩任务注册模块用于基于所述剥离任务注册压缩任务。其中,上述压缩模块830具体可以用于通过所述压缩任务对所述目标动态链接文件信息进行压缩处理,得到动态链接库压缩壳。
在本发明的一个可选实施例中,上述压缩模块830可以包括如下子模块:
读取子模块,用于读取压缩配置名单信息;
压缩子模块,用于基于所述压缩配置名单信息和所述目标动态链接文件信息,使用预设压缩算法进行动态链接库压缩,得到动态链接库压缩壳。
可选的,本实施例中的安装包生成模块840可以包括如下子模块:
替换子模块模块,用于采用所述动态链接库压缩壳替换所述压缩配置名单信息中的源动态链接库,以基于替换后的动态链接库压缩壳生成所述应用安装包;
删除子模块,用于删除所述原始动态链接库。
需要说明的是,上述提供的应用安装包的处理装置可执行本发明任意实施例一所提供的应用安装包的处理方法,具备执行方法相应的功能和有益效果。
实施例四
参照图9,示出了本发明实施例提供的另一种应用安装包的处理装置的结构框示意图,该应用安装包的处理装置具体可以包括如下模块:
解压检测模块910,用于在应用程序启动后,检测所述应用程序的动态链接库是否已经解压;
压缩壳解压模块920,用于在所述动态链接库没有解压时,启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压;
动态链接库加载模块930,用于对解压后得到的动态链接库进行加载。
在一个可选实施方式中,本发明实施例提供的另一种应用安装包的处理装置还可以包括加载框模块。该加载框模块可以用于弹出加载框,以提示用户正在加载动态链接库。
其中,解压检测模块910可以包括如下子模块:
检测子模块,用于在进入所述应用程序的功能页面时,检测所述功能页面的动态链接库是否完成解压;
触发子模块,用于在所述功能页面的动态链接库没有完成解压时,触发加载框模块弹出加载框,并触发压缩壳解压模块920执行启动后台服务线程的步骤。
可选的,检测子模块可以包括如下单元:
判断单元,用于判断加载同步接口是否加载所述功能页面的动态链接库成功;
加载失败确定单元,用于在所述加载同步接口加载所述功能页面的动态链接库失败时,确定所述功能页面的动态链接库没有完成解压;
加载成功确定单元,用于在加载同步接口加载所述功能页面的动态链接库成功时,确定所述功能页面的动态链接库解压完成。
可选的,压缩壳解压模块920可以包括:异步解压子模块。该异步解压子模块,用于通过所述后台服务线程,按照预设压缩算法对应的解压算法对所述安装包中的动态链接库压缩壳进行异步解压。
可选的,上述压缩壳解压模块920还可以包括如下子模块:
解压检测子模块,用于检测所述动态链接库压缩壳是否解压成功;
解压成功子模块,用于在所述动态链接库压缩壳解压成功时,向用户界面线程发送所述动态链接库压缩壳对应的解压成功信息,以通知所述用户界面线程,并将解压后得到的动态链接库保存在所述应用程序的本地目录中;
解压失败子模块,用于在所述动态链接库压缩壳解压失败时,发送所述动态链接库压缩壳对应的解压失败信息。
可选的,本发明实施例中的应用安装包的处理装置还包括:直接加载模块。该直接加载模块,用于在所述动态链接库压缩壳解压失败或加载失败时,调用所述加载同步接口直接加载所述应用安装包中的源动态链接库。
需要说明的是,上述提供的应用安装包的处理装置可执行本发明任意实施例一所提供的应用安装包的处理方法,具备执行方法相应的功能和有益效果。
实施例五
在具体实现中,上述应用安装包的处理装置可以集成在应用安装包的处理设备中。该应用安装包的处理设备可以是两个或多个物理实体构成,也可以是一个物理实体构成,如电子设备可以是个人计算机(Personal Computer,PC)、电脑、服务器、游戏控制台等,本发明实施例对此不作具体限制。
进一步的,本发明实施例还提供一种应用安装包的处理设备,包括:处理器和存储器。存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述应用安装包的处理设备执行如上述方法实施例中任一所述的应用安装包的处理方法。例如,在应用编译时,存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述应用安装包的处理设备执行如方法实施例一所述的应用安装包的处理方法。又如,在应用运行时,存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述应用安装包的处理设备执行如方法实施例二所述的应用安装包的处理方法。
实施例六
进一步的,本发明实施例还提供一种计算机可读存储介质,所述可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如上述方法实施例任一所述的应用安装包的处理方法。例如,在应用编译场景中,计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如如方法实施例一所述的应用安装包的处理方法。又如,在应用运行过程中,计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如如方法实施例二所述的应用安装包的处理方法。
需要说明的是,对于装置、设备、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器等)执行本发明任意实施例所述的应用安装包的处理方法。
值得注意的是,上述应用安装包的处理装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。
上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (15)
1.一种应用安装包的处理方法,其特征在于,包括:
获取动态链接文件信息;
去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;
依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;
基于所述动态链接库压缩壳生成应用安装包。
2.根据权利要求1所述的应用安装包的处理方法,其特征在于,所述去除所述动态链接文件中的调试符号信息,得到目标动态链接文件信息,包括:
针对所述动态链接文件信息,调用剥离任务;
通过所述剥离任务去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息。
3.根据权利要求2所述的应用安装包的处理方法,其特征在于,还包括:
基于所述剥离任务注册压缩任务;
其中,所述依据所述目标动态链接文件信息进行压缩,包括:通过所述压缩任务对所述目标动态链接文件信息进行压缩处理。
4.根据权利要求3所述的应用安装包的处理方法,其特征在于,所述通过所述压缩任务对所述目标动态链接文件信息进行压缩处理,包括:
读取压缩配置名单信息;
基于所述压缩配置名单信息和所述目标动态链接文件信息,使用预设压缩算法进行动态链接库压缩。
5.根据权利要求4所述的应用安装包的处理方法,其特征在于,所述基于所述动态链接库压缩壳生成应用安装包,包括:
采用所述动态链接库压缩壳替换所述压缩配置名单信息中的源动态链接库,以基于替换后的动态链接库压缩壳生成所述应用安装包,并删除所述原始动态链接库。
6.一种应用安装包的处理方法,其特征在于,包括:
在应用程序启动后,检测所述应用程序的动态链接库是否已经解压;
若所述动态链接库没有解压,则启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压;
对解压后得到的动态链接库进行加载。
7.根据权利要求6所述的应用安装包的处理方法,其特征在于,所述检测所述应用程序的动态链接库是否已经解压,包括:
在进入所述应用程序的功能页面时,检测所述功能页面的动态链接库是否完成解压;
若所述功能页面的动态链接库没有完成解压,则弹出加载框,并执行所述启动后台服务线程的步骤。
8.根据权利要求7所述的应用安装包的处理方法,其特征在于,所述检测所述功能页面的动态链接库是否完成解压,包括:
判断加载同步接口是否加载所述功能页面的动态链接库成功;
若所述加载同步接口加载所述功能页面的动态链接库失败,则确定所述功能页面的动态链接库没有完成解压。
9.根据权利要求6或7所述的应用安装包的处理方法,其特征在于,所述通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压,包括:
通过所述后台服务线程,按照预设压缩算法对应的解压算法对所述安装包中的动态链接库压缩壳进行异步解压。
10.根据权利要求9所述的应用安装包的处理方法,其特征在于,还包括:
检测所述动态链接库压缩壳是否解压成功;
若所述动态链接库压缩壳解压成功,则向用户界面线程发送所述动态链接库压缩壳对应的解压成功信息,以通知所述用户界面线程,并将解压后得到的动态链接库保存在所述应用程序的本地目录中;
若所述动态链接库压缩壳解压失败,则发送所述动态链接库压缩壳对应的解压失败信息。
11.根据权利要求9所述的应用安装包的处理方法,其特征在于,还包括:
在所述动态链接库压缩壳解压失败或加载失败时,调用所述加载同步接口直接加载所述应用安装包中的源动态链接库。
12.一种应用安装包的处理装置,其特征在于,包括:
获取模块,用于获取动态链接文件信息;
去除模块,用于去除所述动态链接文件信息中的调试符号信息,得到目标动态链接文件信息;
压缩模块,用于依据所述目标动态链接文件信息进行压缩,得到动态链接库压缩壳;
安装包生成模块,用于基于所述动态链接库压缩壳生成应用安装包。
13.一种应用安装包的处理装置,其特征在于,包括:
解压检测模块,用于在应用程序启动后,检测所述应用程序的动态链接库是否已经解压;
压缩壳解压模块,用于在所述动态链接库没有解压时,启动后台服务线程,以通过所述后台服务线程对所述应用程序的安装包中的动态链接库压缩壳进行解压;
动态链接库加载模块,用于对解压后得到的动态链接库进行加载。
14.一种应用安装包的处理设备,其特征在于,包括:处理器和存储器;
所述存储器中存储有至少一条指令,所述指令由所述处理器执行,使得所述处理设备执行如权利要求1至11任一所述的应用安装包的处理方法。
15.一种计算机可读存储介质,其特征在于,所述可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如权利要求1至11任一所述的应用安装包的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110145168.1A CN112799691A (zh) | 2021-02-02 | 2021-02-02 | 一种应用安装包的处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110145168.1A CN112799691A (zh) | 2021-02-02 | 2021-02-02 | 一种应用安装包的处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112799691A true CN112799691A (zh) | 2021-05-14 |
Family
ID=75813798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110145168.1A Pending CN112799691A (zh) | 2021-02-02 | 2021-02-02 | 一种应用安装包的处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799691A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342401A (zh) * | 2021-07-13 | 2021-09-03 | 中国工商银行股份有限公司 | 应用程序安装包的生成方法、装置、设备及介质 |
CN114691242A (zh) * | 2022-04-20 | 2022-07-01 | 深圳市元征软件开发有限公司 | 软件功能实现方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942131A (zh) * | 2013-01-23 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 监控底层接口是否变化的方法及装置 |
CN103955375A (zh) * | 2014-05-21 | 2014-07-30 | 北京安兔兔科技有限公司 | 一种应用安装文件的生成方法、应用的启动方法及装置 |
CN106372465A (zh) * | 2016-08-30 | 2017-02-01 | 北京深思数盾科技股份有限公司 | 一种动态链接库安全管理方法、系统和电子设备 |
WO2017148171A1 (zh) * | 2016-02-29 | 2017-09-08 | 华为技术有限公司 | 一种嵌入式装置的启动方法和装置 |
CN108874443A (zh) * | 2018-06-26 | 2018-11-23 | 深圳市乐唯科技开发有限公司 | 一种综合多种方式来减少apk大小的方法 |
CN109408073A (zh) * | 2018-09-21 | 2019-03-01 | 北京大学 | 一种Android非侵入式应用重打包方法 |
CN111552517A (zh) * | 2019-01-23 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 应用程序启动方法、装置、电子设备及计算机存储介质 |
CN112052146A (zh) * | 2020-07-24 | 2020-12-08 | 北京奇艺世纪科技有限公司 | 页面帧率测试方法、应用的安装文件生成方法及装置 |
-
2021
- 2021-02-02 CN CN202110145168.1A patent/CN112799691A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942131A (zh) * | 2013-01-23 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 监控底层接口是否变化的方法及装置 |
CN103955375A (zh) * | 2014-05-21 | 2014-07-30 | 北京安兔兔科技有限公司 | 一种应用安装文件的生成方法、应用的启动方法及装置 |
WO2017148171A1 (zh) * | 2016-02-29 | 2017-09-08 | 华为技术有限公司 | 一种嵌入式装置的启动方法和装置 |
CN106372465A (zh) * | 2016-08-30 | 2017-02-01 | 北京深思数盾科技股份有限公司 | 一种动态链接库安全管理方法、系统和电子设备 |
CN108874443A (zh) * | 2018-06-26 | 2018-11-23 | 深圳市乐唯科技开发有限公司 | 一种综合多种方式来减少apk大小的方法 |
CN109408073A (zh) * | 2018-09-21 | 2019-03-01 | 北京大学 | 一种Android非侵入式应用重打包方法 |
CN111552517A (zh) * | 2019-01-23 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 应用程序启动方法、装置、电子设备及计算机存储介质 |
CN112052146A (zh) * | 2020-07-24 | 2020-12-08 | 北京奇艺世纪科技有限公司 | 页面帧率测试方法、应用的安装文件生成方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342401A (zh) * | 2021-07-13 | 2021-09-03 | 中国工商银行股份有限公司 | 应用程序安装包的生成方法、装置、设备及介质 |
CN114691242A (zh) * | 2022-04-20 | 2022-07-01 | 深圳市元征软件开发有限公司 | 软件功能实现方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491695B (zh) | 一种集成安卓应用的增量更新方法 | |
KR101003888B1 (ko) | 전자 장치에서의 3-단계 부팅 프로세스 | |
CN105975311B (zh) | 一种应用启动方法及装置 | |
CN110941528B (zh) | 一种基于故障的日志埋点设置方法、装置及系统 | |
CN109408393B (zh) | 应用测试方法、装置及设备和计算机可读存储介质 | |
CN112799691A (zh) | 一种应用安装包的处理方法、装置、设备及介质 | |
CN109933350B (zh) | 在应用中嵌入代码的方法、装置及电子设备 | |
JP2008502968A (ja) | 中間オブジェクト指向言語を備えるソフトウェアをポータブル・デバイスにロードするための方法 | |
CN110209520B (zh) | 一种提高ssd测试效率的方法、装置、计算机设备及存储介质 | |
CN110990001A (zh) | Ivr流程执行方法及装置 | |
CN113590327A (zh) | 项目资源检测方法、装置、电子设备及存储介质 | |
CN110851168A (zh) | 数据处理方法及其装置、计算机可读存储介质 | |
CN107967192B (zh) | 一种智能终端的系统崩溃处理方法和装置 | |
CN113396391B (zh) | 应用程序启动的方法、装置、电子设备及存储介质 | |
CN111338864A (zh) | 内存问题检测方法、装置、计算机设备及存储介质 | |
CN116339908A (zh) | 虚拟机启动方法、装置、计算机设备和存储介质 | |
CN110688320A (zh) | 全局变量的检测方法、装置及终端设备 | |
CN113485712B (zh) | 一种内核裁剪方法及计算设备 | |
CN114816816A (zh) | 崩溃堆栈信息处理方法、装置、设备及存储介质 | |
CN111475220B (zh) | 冷启动方法、装置、电子设备及计算机存储介质 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN112241141A (zh) | Plc控制系统的硬件配置方法、系统、设备及介质 | |
CN111399846B (zh) | 一种安卓手机应用程序容量监控方法及装置 | |
CN116450535B (zh) | 子应用调试方法、装置、计算机设备及存储介质 | |
CN112015436A (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 |