CN114911541B - 配置信息的处理方法、装置、电子设备及存储介质 - Google Patents
配置信息的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114911541B CN114911541B CN202210631660.4A CN202210631660A CN114911541B CN 114911541 B CN114911541 B CN 114911541B CN 202210631660 A CN202210631660 A CN 202210631660A CN 114911541 B CN114911541 B CN 114911541B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- loaded
- mobile application
- data segment
- target data
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 29
- 238000009877 rendering Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 14
- 238000005457 optimization Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种配置信息的处理方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及数据处理技术领域。具体实现方案为:将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;在移动应用的启动过程中,从目标数据段获取待加载的配置信息;基于待加载的配置信息执行业务逻辑操作。
Description
技术领域
本公开涉及计算机技术领域,进一步涉及数据处理技术领域,尤其涉及一种配置信息的处理方法、装置、电子设备及存储介质。
背景技术
随着移动应用的发展,用户对于手机应用的启动速度、流畅度、用户体验、网络等待时间等问题越来越重视,手机应用的用户体验会影响相关企业的品牌形象。
相关方案中,为实现项目不同的业务功能需求,例如,接入第三方的插件,崩溃信息收集,主题模式切换等,通常在移动应用加载的过程中使用相关技术实现部分业务功能需求。但是,这种做法拖慢了移动应用启动的速度,导致用户体验差,并且对手机性能也存在较大的影响。
发明内容
本公开提供了一种配置信息的处理方法、装置、电子设备及存储介质,以至少解决相关技术中移动应用的启动速度低下的技术问题。
根据本公开的一方面,提供了一种配置信息的处理方法,包括:将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;在移动应用的启动过程中,从目标数据段获取待加载的配置信息;基于待加载的配置信息执行业务逻辑操作。
根据本公开的又一方面,提供了一种配置信息的处理装置,包括:写入模块,用于将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;获取模块,用于在移动应用的启动过程中,从目标数据段获取待加载的配置信息;处理模块,用于基于待加载的配置信息执行业务逻辑操作。
根据本公开的又一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提出的配置信息的处理方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提出的配置信息的处理方法。
根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行本公开提出的配置信息的处理方法。
在本公开中,通过将待加载的配置信息写入目标文件的目标数据段,进而在移动应用的启动过程中,从目标数据段获取待加载的配置信息,最后基于待加载的配置信息执行业务逻辑操作,达到了按需获取待加载的配置信息,以快速执行业务逻辑操作的目的,实现了优化移动应用启动速度的效果,从而解决了相关技术中移动应用的启动速度低下的技术问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是相关技术中提供的一种移动应用启动过程的示意图;
图2是根据本公开实施例的一种用于实现配置信息的处理方法的计算机终端(或移动设备)的硬件结构框图;
图3是根据本公开实施例的一种配置信息的处理方法流程图;
图4是根据本公开实施例的一种移动应用启动过程的示意图;
图5是根据本公开实施例的一种配置信息的处理方法的示意图;
图6是根据本公开实施例的又一种配置信息的处理方法的示意图;
图7是根据本公开实施例的又一种配置信息的处理方法的示意图;
图8是根据本公开实施例的一种配置信息的处理装置的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本公开实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
全局变量:是由某一对象函数创建的变量,也可以是在程序的任意地方创建的变量,全局变量可以被程序中的所有对象或函数引用。
__attribute__used section技术:是指定义全局变量或函数,声明编译时不被优化并且能够将全局变量或函数存储到可执行文件(mach-o)的字段(section)信息中的技术。
相关方案中,为实现项目不同的业务功能需求,例如,接入第三方的插件,崩溃信息收集,主题模式切换等,通常在移动应用加载的过程中使用相关技术实现部分业务功能需求。
为提升移动应用的启动速度,传统方案一般是围绕移动应用的总启动时间来进行优化,其中,总启动时间包括程序入口main()之前的加载时间和main()之后的加载时间。main()之前的加载时间包括系统动态链接库(The Dynamic Link Editor,dylib)和移动应用可执行文件的加载时间;main()之后的加载时间包括main方法执行之后到应用代理(AppDelegate)类中的代理回调方法执行结束前的时间,这段时间主要用于构建第一个界面,并完成渲染展示。
图1是相关技术中提供的一种移动应用启动过程的示意图,如图1所示,在触发程序之后,将mach-o文件加载进内存并创建进程,内核将控制权交给dylib,进而进行加载动态库,复位基底(rebase)或者绑定(bind)图像,随后注册对象类,并插入分类方法,进行初始化(initializers)后,执行main()函数,从而使用选项完成启动(didFinishLaunchingWithOptions),加载主窗口(keyWindow)/选项卡栏(TabbarVC),渲染界面,最终完成移动应用的启动。
相关技术中对于移动应用启动速度的优化主要体现在对于main()之前和main()之后的加载时间进行优化。
在main()之前可以采用如下策略优化加载时间:(1)减少非系统库的依赖;(2)合并非系统库;(3)使用静态资源,如把代码加入主程序;(4)合并或者删减一些无用类;(5)删减一些无用的静态变量或者没被调用的方法。
在main()之后可以采用如下策略优化加载时间:(1)删减启动时各业务方的日志(log);(2)属性列表(NSUserDefaults)耗时很长时进行拆分;(3)不使用可扩展标记语言接口生成器(XML Interface Builder,xib),直接使用代码加载首页视图;(4)启动时发送的部分网络请求进行异步线程处理。
上述优化移动应用启动速度的方案都是针对可执行文件载入内存后采取的优化措施,在设计源代码时具有一定的局限性。
根据本公开实施例,提供了一种配置信息的处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本公开实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的电子设备中执行。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。图2示出了一种用于实现配置信息的处理方法的计算机终端(或移动设备)的硬件结构框图。
如图2所示,计算机终端200包括计算单元201,其可以根据存储在只读存储器(ROM)202中的计算机程序或者从存储单元208加载到随机访问存储器(RAM)203中的计算机程序,来执行各种适当的动作和处理。在RAM 203中,还可存储计算机终端200操作所需的各种程序和数据。计算单元201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
计算机终端200中的多个部件连接至I/O接口205,包括:输入单元206,例如键盘、鼠标等;输出单元207,例如各种类型的显示器、扬声器等;存储单元208,例如磁盘、光盘等;以及通信单元209,例如网卡、调制解调器、无线通信收发机等。通信单元209允许计算机终端200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元201执行本文所描述的配置信息的处理方法。例如,在一些实施例中,配置信息的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 202和/或通信单元209而被载入和/或安装到计算机终端200上。当计算机程序加载到RAM 203并由计算单元201执行时,可以执行本文描述的配置信息的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行配置信息的处理方法。
本文中描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
此处需要说明的是,在一些可选实施例中,上述图2所示的电子设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图2仅为特定具体实例的一个实例,并且旨在示出可存在于上述电子设备中的部件的类型。
在上述运行环境下,本公开提供了如图3所示的配置信息的处理方法,该方法可以由图2所示的计算机终端或者类似的电子设备执行。图3是根据本公开实施例提供的一种配置信息的处理方法流程图。如图3所示,该方法可以包括如下步骤:
步骤S32,将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;
可选地,待加载的启动程序包括:在移动应用中目标函数之前待加载的启动程序;在移动应用中目标函数之后待执行的启动程序。上述目标函数为mian()函数,在mian()函数之前待加载的启动程序可以包括固定加载操作(+load),在mian()函数之后待执行的启动程序包括对于固定的模版业务的配置。
具体的,上述待加载的配置信息为字符串(kJsonString)数据,kJsonString数据的具体内容由用户进行自定义,kJsonString数据可用于划分启动项的优先级。利用__attribute__used section技术将kJsonString数据放入指定数据段section中,其中,used关键字的作用是保留kJsonString数据,编译器不进行空间优化。根据配置的自定义kJsonString数据以及对应协议或代码映射关系,能够减少项目业务之间的耦合。
可选地,上述待加载的配置信息还可以为H5交互使用的数据、特定业务的网络通用参数数据及项目模块之间解耦的函数数据等。
具体的,将待加载的配置信息写入目标文件的目标数据段的实现过程可以参照对于本公开实施例的进一步介绍,不予赘述。
步骤S34,在移动应用的启动过程中,从目标数据段获取待加载的配置信息;
具体的,在移动应用的启动过程中,从目标数据段获取待加载的配置信息的实现过程可以参照对于本公开实施例的进一步介绍,不予赘述。
步骤S36,基于待加载的配置信息执行业务逻辑操作。
例如,提前将跳转的内部链接对应的类存入目标数据段中,在移动应用的启动过程中区分首页跳转程序内部H5链接还是外部链接,若目标数据段中存在内部链接对应的类,则进行内部跳转;反之则跳转至移动应用之外。
根据本公开上述步骤S32至步骤S36,通过将待加载的配置信息写入目标文件的目标数据段,进而在移动应用的启动过程中,从目标数据段获取待加载的配置信息,最后基于待加载的配置信息执行业务逻辑操作,达到了按需获取待加载的配置信息,以快速执行业务逻辑操作的目的,实现了优化移动应用启动速度的效果,从而解决了相关技术中移动应用的启动速度低下的技术问题。
下面对上述实施例的配置信息的处理方法进行进一步介绍。
作为一种可选的实施方式,本公开实施例的配置信息的处理方法还包括:
步骤S30,基于移动应用的业务需求确定待加载的配置信息的配置方式,其中,配置方式用于定制待加载的配置信息的配置策略和/或展示模式;
步骤S31,按照配置方式生成待加载的配置信息。
例如,当移动应用的业务需求展示广告页面时,基于该业务需求确定用于定制广告的配置策略和/或展示模式,进而按照定制的配置策略和/或展示模式生成待加载的广告配置信息。
基于上述步骤S30至步骤S31,基于移动应用的业务需求确定待加载的配置信息的配置方式,进而按照配置方式生成待加载的配置信息,能够根据项目不同的业务需求定制不同的配置策略或者页面的展示模式。
作为一种可选的实施方式,在步骤S32,将待加载的配置信息写入目标文件的目标数据段包括:
步骤S321,获取移动应用的源代码文件;
上述源代码文件包括存入section段的kJsonString数据的具体实现完整源代码。源代码文件还包括kJsonString数据所需要配置的头文件信息及兼容系统架构信息。
步骤S322,在源代码文件中,将待加载的配置信息声明为全局变量;
步骤S323,响应对源代码文件执行的编译操作,将全局变量写入目标数据段。
具体的,在项目工程源代码文件位置定义声明全局变量kJsonString数据,在项目编译的时候会将定义的全局变量kJsonString数据写入mach-o文件的特定段中。
图4是根据本公开实施例的一种移动应用启动过程的示意图,如图4所示,在触发程序之前,获取移动应用的源代码文件,进而在项目工程源代码文件位置定义声明全局变量kJsonString数据,在项目编译的时候会将定义的全局变量kJsonString数据写入mach-o文件的特定段中。在触发程序之后,将mach-o文件加载进内存并创建进程,内核将控制权交给dylib,进而进行加载动态库,复位基底(rebase)或者绑定(bind)图像,随后注册对象类,并插入分类方法,进行初始化(initializers)后,执行main()函数,从而使用选项完成启动(didFinishLaunchingWithOptions),加载主窗口(keyWindow)/选项卡栏(TabbarVC),渲染界面,最终完成移动应用的启动。本公开实施例使用编译器提供的__attribute__特性,将一些比较固定且变动较小的项目业务需求前置到了编译阶段,相较于相关方案中从应用运行时开始启动优化,本公开实施例的方法能够减少在main()之前进行业务处理加载的时间,实现对于对于移动应用的启动速度的优化。
基于上述步骤S321至步骤S323,通过获取移动应用的源代码文件,进而在源代码文件中,将待加载的配置信息声明为全局变量,最后响应对源代码文件执行的编译操作,将全局变量写入目标数据段,能够将待加载的配置信息作为全局变量写入目标数据段,从而能够在移动应用启动过程,分步骤或者分时间获取待加载的配置信息,以达到优化启动时间的目的。
作为一种可选的实施方式,在步骤S34,在移动应用的启动过程中,从目标数据段获取待加载的配置信息包括:
在第一启动时机,响应于目标数据段中存在第一标识,获取第一标识对应的第一配置信息,其中,第一启动时机发生在移动应用的页面渲染完成之前,第一配置信息用于配置移动应用的页面展示之前待加载的启动程序。
上述待加载的启动程序包括接入第三方的插件程序、崩溃信息收集程序、加载其他页面的网络数据程序中的一项或多项。
图5是根据本公开实施例的一种配置信息的处理方法的示意图,如图5所示,在进行工程编译生成中间代码时,将待加载的配置信息写入mach-o文件的目标数据段,进而触发程序执行移动应用的启动过程。在移动应用的页面渲染完成之前,从mach-o文件的目标数据段获取待加载的配置信息,判断待加载的配置信息是否存在第一标识。若目标数据段存在第一标识时,则按照当前的业务需求获取第一标识对应的第一配置信息,从而加载主视图展示之前的配置信息,进而加载主窗口(keyWindow)/选项卡栏(TabbarVC),进行界面渲染;若目标数据段不存在第一标识时,则直接加载主窗口(keyWindow)/选项卡栏(TabbarVC),进行界面渲染。
基于上述可选实施例,通过在第一启动时机,响应于目标数据段中存在第一标识,获取第一标识对应的第一配置信息,能够在移动应用的页面渲染完成之前根据业务需求获取待加载的配置信息,快速配置移动应用的页面展示之前待加载的启动程序,进而减少移动应用的启动时间。
作为一种可选的实施方式,在步骤S34,在移动应用的启动过程中,从目标数据段获取待加载的配置信息包括:
在第二启动时机,响应于目标数据段中存在第二标识,获取第二标识对应的第二配置信息,其中,第二启动时机发生在移动应用的页面渲染完成之后,第二配置信息用于配置移动应用的页面展示之后待加载的启动程序。
图6是根据本公开实施例的又一种配置信息的处理方法的示意图,如图6所示,在移动应用的页面渲染完成之后,从mach-o文件的目标数据段获取待加载的配置信息,判断待加载的配置信息是否存在第二标识。若目标数据段中存在第二标识,则按照当前的业务需求获取第二标识对应的第二配置信息,加载主视图展示之后的配置信息,并展示移动应用的页面;若目标数据段中不存在第二标识,则直接展示移动应用的页面。
基于上述可选实施例,通过在第二启动时机,响应于目标数据段中存在第二标识,获取第二标识对应的第二配置信息,能够在移动应用的页面渲染完成之后根据业务需求获取待加载的配置信息,快速配置配置移动应用的页面展示之后待加载的启动程序,进而减少移动应用的启动时间,提高启动速度。
图7是根据本公开实施例的又一种配置信息的处理方法的示意图,如图7所示,在移动应用启动之前的编译阶段,需要依次进行工程编译和预处理,其中,预处理过程主要进行头文件的编译,处理预处理指令,例如,定义符号(#define)的替换,删除注释等操作。在预处理完毕后,经过语意和语法分析和静态分析,生成底层虚拟机(Low Level VirtualMachine,LLVM)代码。静态分析主要用于对代码进行错误检查,例如,通过静态分析发现方法被调用但是未定义的变量,或者已定义但是未使用的变量等,从而提高代码质量。待代码进行编译优化,例如,针对全局变量优化,循环优化,尾递归优化等。基于汇编器将优化后的代码转换为机器代码,进而输出目标文件,基于目标文件生成可执行文件,即mach-o文件。
在编译阶段存入在main()函数之前需要钩取(hook)的方法名称,在类第一次初始化的时候获取存入的方法名称以便于启动过程中进行调用,而无需进行运行拦截操作。将函数的调用时机延后,能够达到启动速度优化的目的。
在编译阶段完成后,进行移动应用的启动,具体的启动过程可以参照上文实施例对于图4的描述,不予赘述。通过将载入内存后采取的优化操作前置到编译阶段,随后在移动应用的启动过程中按需加载配置信息,能够使用较小的内存空间来换取对于启动时间的优化。
需要说明的是,本申请实施例提供的配置信息的处理方法可以用于iOS应用的启动优化,也可以用于其他操作系统应用的启动优化,具体不予限制。
在本公开实施例中,通过将待加载的配置信息写入目标文件的目标数据段,进而在移动应用的启动过程中,从目标数据段获取待加载的配置信息,最后基于待加载的配置信息执行业务逻辑操作,达到了按需获取待加载的配置信息,以快速执行业务逻辑操作的目的,实现了优化移动应用启动速度的效果,从而解决了相关技术中移动应用的启动速度低下的技术问题。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
在本公开中还提供了一种配置信息的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本公开其中一实施例的一种配置信息的处理装置的结构框图,如图8所示,一种配置信息的处理装置800包括:
写入模块801,用于将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;
获取模块802,用于在移动应用的启动过程中,从目标数据段获取待加载的配置信息;
处理模块803,用于基于待加载的配置信息执行业务逻辑操作。
可选地,配置信息的处理装置800还包括:确定模块804,用于基于移动应用的业务需求确定待加载的配置信息的配置方式,其中,配置方式用于定制待加载的配置信息的配置策略和/或展示模式;生成模块805,用于按照配置方式生成待加载的配置信息。
可选地,写入模块801还用于:获取移动应用的源代码文件;在源代码文件中,将待加载的配置信息声明为全局变量;响应对源代码文件执行的编译操作,将全局变量写入目标数据段。
可选地,获取模块802还用于:在第一启动时机,响应于目标数据段中存在第一标识,获取第一标识对应的第一配置信息,其中,第一启动时机发生在移动应用的页面渲染完成之前,第一配置信息用于配置移动应用的页面展示之前待加载的启动程序。
可选地,获取模块802还用于:在第二启动时机,响应于目标数据段中存在第二标识,获取第二标识对应的第二配置信息,其中,第二启动时机发生在移动应用的页面渲染完成之后,第二配置信息用于配置移动应用的页面展示之后待加载的启动程序。
可选地,待加载的启动程序包括:在移动应用中目标函数之前待加载的启动程序;在移动应用中目标函数之后待执行的启动程序。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本公开的实施例,本公开还提供了一种电子设备,包括存储器和至少一个处理器,该存储器中存储有计算机指令,该处理器被设置为运行计算机指令以执行上述方法实施例中的步骤。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本公开中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;
S2,在移动应用的启动过程中,从目标数据段获取待加载的配置信息;
S3,基于待加载的配置信息执行业务逻辑操作。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该非瞬时计算机可读存储介质中存储有计算机指令,其中,该计算机指令被设置为运行时执行上述方法实施例中的步骤。
可选地,在本实施例中,上述非瞬时计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,将待加载的配置信息写入目标文件的目标数据段,其中,待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,目标文件为可执行文件,目标数据段为目标文件中的指定数据段;
S2,在移动应用的启动过程中,从目标数据段获取待加载的配置信息;
S3,基于待加载的配置信息执行业务逻辑操作。
可选地,在本实施例中,上述非瞬时计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的实施例,本公开还提供了一种计算机程序产品。用于实施本公开方法实施例的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
Claims (12)
1.一种配置信息的处理方法,包括:
将待加载的配置信息写入目标文件的目标数据段,其中,所述待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,所述目标文件为可执行文件,所述目标数据段为所述目标文件中的指定数据段;
在所述移动应用的启动过程中,从所述目标数据段获取所述待加载的配置信息;
基于所述待加载的配置信息执行业务逻辑操作;
其中,将所述待加载的配置信息写入所述目标文件的所述目标数据段包括:
获取所述移动应用的源代码文件;
在所述源代码文件中,将所述待加载的配置信息声明为全局变量;
响应对所述源代码文件执行的编译操作,将所述全局变量写入所述目标数据段。
2.根据权利要求1所述的方法,其中,所述方法还包括:
基于所述移动应用的业务需求确定所述待加载的配置信息的配置方式,其中,所述配置方式用于定制所述待加载的配置信息的配置策略和/或展示模式;
按照所述配置方式生成所述待加载的配置信息。
3.根据权利要求1所述的方法,其中,在所述移动应用的启动过程中,从所述目标数据段获取所述待加载的配置信息包括:
在第一启动时机,响应于所述目标数据段中存在第一标识,获取所述第一标识对应的第一配置信息,其中,所述第一启动时机发生在所述移动应用的页面渲染完成之前,所述第一配置信息用于配置所述移动应用的页面展示之前待加载的启动程序。
4.根据权利要求1所述的方法,其中,在所述移动应用的启动过程中,从所述目标数据段获取所述待加载的配置信息包括:
在第二启动时机,响应于所述目标数据段中存在第二标识,获取所述第二标识对应的第二配置信息,其中,所述第二启动时机发生在所述移动应用的页面渲染完成之后,所述第二配置信息用于配置所述移动应用的页面展示之后待加载的启动程序。
5.根据权利要求1所述的方法,其中,所述待加载的启动程序包括:
在所述移动应用中目标函数之前待加载的启动程序;
在所述移动应用中目标函数之后待执行的启动程序。
6.一种配置信息的处理装置,包括:
写入模块,用于将待加载的配置信息写入目标文件的目标数据段,其中,所述待加载的配置信息用于配置在移动应用的启动过程中待加载的启动程序,所述目标文件为可执行文件,所述目标数据段为所述目标文件中的指定数据段;
获取模块,用于在所述移动应用的启动过程中,从所述目标数据段获取所述待加载的配置信息;
处理模块,用于基于所述待加载的配置信息执行业务逻辑操作;
其中,所述写入模块还用于:
获取所述移动应用的源代码文件;
在所述源代码文件中,将所述待加载的配置信息声明为全局变量;
响应对所述源代码文件执行的编译操作,将所述全局变量写入所述目标数据段。
7.根据权利要求6所述的装置,其中,所述装置还包括:
确定模块,用于基于所述移动应用的业务需求确定所述待加载的配置信息的配置方式,其中,所述配置方式用于定制所述待加载的配置信息的配置策略和/或展示模式;
生成模块,用于按照所述配置方式生成所述待加载的配置信息。
8.根据权利要求6所述的装置,其中,所述获取模块还用于:
在第一启动时机,响应于所述目标数据段中存在第一标识,获取所述第一标识对应的第一配置信息,其中,所述第一启动时机发生在所述移动应用的页面渲染完成之前,所述第一配置信息用于配置所述移动应用的页面展示之前待加载的启动程序。
9.根据权利要求6所述的装置,其中,所述获取模块还用于:
在第二启动时机,响应于所述目标数据段中存在第二标识,获取所述第二标识对应的第二配置信息,其中,所述第二启动时机发生在所述移动应用的页面渲染完成之后,所述第二配置信息用于配置所述移动应用的页面展示之后待加载的启动程序。
10.根据权利要求6所述的装置,其中,所述待加载的启动程序包括:
在所述移动应用中目标函数之前待加载的启动程序;
在所述移动应用中目标函数之后待执行的启动程序。
11. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631660.4A CN114911541B (zh) | 2022-06-06 | 2022-06-06 | 配置信息的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631660.4A CN114911541B (zh) | 2022-06-06 | 2022-06-06 | 配置信息的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114911541A CN114911541A (zh) | 2022-08-16 |
CN114911541B true CN114911541B (zh) | 2023-09-01 |
Family
ID=82770197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210631660.4A Active CN114911541B (zh) | 2022-06-06 | 2022-06-06 | 配置信息的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911541B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680005B (zh) * | 2023-05-26 | 2024-10-22 | 广州市玄武无线科技股份有限公司 | 一种增值功能的管控方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377614A (zh) * | 2021-06-08 | 2021-09-10 | 北京百度网讯科技有限公司 | 调用链信息的生成方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353679B2 (en) * | 2014-10-31 | 2019-07-16 | Microsoft Technology Licensing, Llc. | Collecting profile data for modified global variables |
CN114528269A (zh) * | 2020-10-30 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
-
2022
- 2022-06-06 CN CN202210631660.4A patent/CN114911541B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377614A (zh) * | 2021-06-08 | 2021-09-10 | 北京百度网讯科技有限公司 | 调用链信息的生成方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Configuration and Evaluation of a Global Unstructured Mesh Model based on the Variable-Resolution Approach;Y Zhou;ResearchGate;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114911541A (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN112861057B (zh) | 基于小程序的页面渲染方法、装置、设备及存储介质 | |
US8201143B2 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
CN111045655A (zh) | 一种页面渲染的方法、装置、渲染服务器和存储介质 | |
US10437574B2 (en) | System and method for providing code completion features for code modules | |
CN111625289B (zh) | 应用程序快速启动方法、装置和电子设备 | |
CN106850650B (zh) | 用于游戏客户端访问数据的方法及客户端游戏系统 | |
CN111625290B (zh) | 一种Android平台下布局文件预加载方法、装置及电子设备 | |
CN114911541B (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN111427630B (zh) | 冷启动优化方法和装置、电子设备和存储介质 | |
CN109408057B (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
CN114968200A (zh) | 软件开发工具包组装方法、相关装置及计算机程序产品 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN113885996A (zh) | 用户界面的生成方法及装置 | |
CN111782196A (zh) | 基于mvp架构的开发方法及装置 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
CN113590226B (zh) | 引擎编辑器的启动方法、装置、电子设备及存储介质 | |
CN113986388B (zh) | 程序集加载方法、系统、电子设备及存储介质 | |
US20240311097A1 (en) | Cloud Technology-Based Graphics Program Online Development Method and System, and Related Device | |
TWI730384B (zh) | 影像測試方法、裝置、電腦裝置及可讀存儲介質 | |
WO2022127263A1 (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 |