CN114860340A - 配置逻辑代码的启动控制方法、装置、设备及存储介质 - Google Patents

配置逻辑代码的启动控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114860340A
CN114860340A CN202210540185.XA CN202210540185A CN114860340A CN 114860340 A CN114860340 A CN 114860340A CN 202210540185 A CN202210540185 A CN 202210540185A CN 114860340 A CN114860340 A CN 114860340A
Authority
CN
China
Prior art keywords
configuration logic
logic code
array
code
target
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
Application number
CN202210540185.XA
Other languages
English (en)
Other versions
CN114860340B (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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202210540185.XA priority Critical patent/CN114860340B/zh
Publication of CN114860340A publication Critical patent/CN114860340A/zh
Application granted granted Critical
Publication of CN114860340B publication Critical patent/CN114860340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及应用开发领域,揭示了一种配置逻辑代码的启动控制方法、装置、计算机设备及存储介质,其中方法包括:获取IOS应用程序启动阶段的配置逻辑代码;将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。本申请能够提高IOS应用程序中的配置逻辑代码的启动的效率及成功率。

Description

配置逻辑代码的启动控制方法、装置、设备及存储介质
技术领域
本申请涉及到应用开发领域,特别是涉及到一种配置逻辑代码的启动控制方法、装置、计算机设备及存储介质。
背景技术
在IOS应用程序中,对于一些代码逻辑需要在程序开始执行业务逻辑之前就执行好,而常用的手段就是将代码逻辑写在C++全局构造函数或者load函数中,iOS***在程序初始化的时候会收集类的load函数自动执行,同时也会遍历执行C++全局构造函数,这样就能保证在执行业务代码逻辑之前将这些代码逻辑执行,随着这类代码逻辑越来越多,对程序启动的启动速度影响越来越大,程序启动时间越来越长,导致程序启动效率低。
发明内容
本申请的主要目的为提供一种配置逻辑代码的启动控制方法、装置、计算机设备及存储介质,旨在解决配置逻辑代码的启动效率及成功率较低的问题。
为了实现上述发明目的,本申请提出一种配置逻辑代码的启动控制方法,包括:
获取IOS应用程序启动阶段的配置逻辑代码;
将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;
获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;
将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
进一步地,所述获取IOS应用程序启动阶段的配置逻辑代码,包括:
通过预设的编译器对所述IOS应用程序的工程代码进行编译;
读取编译后的工程代码;
将所述编译后的工程代码中包含预设关键字的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码。
进一步地,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,包括:
获取数组结构的类型;
若所述类型为Function类型,将所述配置逻辑代码以Function形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的指针函数;
若所述类型为block类型,将所述配置逻辑代码以block形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的匿名函数。
进一步地,所述将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,还包括:
将所述目标数组转化为对象数组,并调用所述对象数组中的指针函数以执行所述配置逻辑代码;或,
将所述目标数组转化为对象数组,并调用所述对象数组中的匿名函数以执行所述配置逻辑代码。
进一步地,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,还包括:
获取每一个所述配置逻辑代码的优先级;
在所述目标数据段中添加执行顺序字段,并根据所述优先级配置所述执行顺序字段的字段值,以配置所述配置逻辑代码的执行顺序。
进一步地,所述调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
获取配置逻辑代码的执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码。
进一步地,所述获取所述配置逻辑代码的执行时间之前,还包括:
获取所述配置逻辑代码关联的功能信息;
获取所述功能信息的启动时间与启动频率;
根据所述启动时间与启动频率生成所述配置逻辑代码的执行时间。
本申请还提供一种配置逻辑代码的启动控制装置,包括:
信息获取模块,用于获取IOS应用程序启动阶段的配置逻辑代码;
数据存储模块,用于将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;
执行响应模块,用于获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;
控制执行模块,用于将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述配置逻辑代码的启动控制方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述配置逻辑代码的启动控制方法的步骤。
本申请例提供了一种自定义执行IOS应用程序中的配置逻辑代码的方法,通过将程序启动阶段的代码逻辑写入到应用程序可执行文件的目标数据段,在需要执行的时机再取出来执行,首先获取IOS应用程序启动阶段的配置逻辑代码,将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名,所述目标数据段为可执行文件的__DATA段,通过所述数组名可以定位到对应的配置逻辑代码,获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组,通过所述数组名进行筛选,可以定位到对应的配置逻辑代码,将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,配置逻辑代码的执行时机自行决定,避免了在应用程序初始化阶段自动执行,从而可以降低程序启动阶段的时间,同时通过数组的方式来将需要执行的配置逻辑代码段存储起来,在到达执行的时间解析出来后执行,解决配置逻辑代码被覆盖的问题,从而提高配置逻辑代码的启动的效率及成功率。
附图说明
图1为本申请配置逻辑代码的启动控制方法的一实施例流程示意图;
图2为本申请配置逻辑代码的启动控制装置的一实施例结构示意图;
图3为本申请计算机设备的一实施例结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种配置逻辑代码的启动控制方法,包括步骤S10-S40,对于所述配置逻辑代码的启动控制方法的各个步骤的详细阐述如下。
S10、获取IOS应用程序启动阶段的配置逻辑代码。
本实施例应用于IOS应用程序中业务逻辑代码执行前的配置逻辑代码的执行控制场景,在应用程序中,部分的逻辑代码需要在业务逻辑代码之前就先执行,将该部分的逻辑代码定义为配置逻辑代码,所述为配置逻辑代码包括方法交换、路由配置初始化等对应的逻辑代码。为了对IOS应用程序中的配置逻辑代码进行合理地控制,包括分配不同的配置逻辑代码的启动时机,首先,获取IOS应用程序启动阶段的配置逻辑代码,在一种实施方式中,可以通过在配置逻辑代码中进行预先打点,通过识别所述打点,获取配置逻辑代码;在另一种实施方式中,当IOS应用程序的配置逻辑代码没有进行修改时,获取IOS应用程序的启动阶段所参与的方法函数作为配置逻辑代码。
S20、将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名。
本实施例中,在获取IOS应用程序启动阶段的配置逻辑代码之后,需要对所述配置逻辑代码的启动进行自主控制,即自行控制不同的配置逻辑代码的执行时间,具体的,将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,即将所述配置逻辑代码以数组的形式存储至可执行文件中,具体的将所述配置逻辑代码以数组的形式存储至可执行文件的目标数据段,所述目标数据段为可执行文件的__DATA段,并生成所述配置逻辑代码对应的数组名,通过所述数组名可以定位到对应的配置逻辑代码,在一种实施方式中,每一项配置逻辑代码均转化为相应的子数组进行存储,再将不同的所述子数组进行整合,并配置相应的数组名,生成所述配置逻辑代码对应的数组名。
S30、获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组。
本实施例中,在将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,获取所述配置逻辑代码的执行时间,所述执行时间可以是预先设定好的不同配置逻辑代码的执行时间,或者是基于所述配置逻辑代码的功能而确定的执行时间,在一种实施方式中,所述配置逻辑代码的执行时间与所述配置逻辑代码关联存储在数组中,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组。具体的,在应用程序的使用过程中,如果达到需要执行所述配置逻辑代码时,确定到达所述执行时间,然后根据所述数组名读取所述目标数据段中的目标数组,由于目标数据段中存储了不同的配置逻辑代码,通过所述数组名进行筛选,可以定位到对应的配置逻辑代码,即目标数组。
S40、将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
本实施例中,在获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组后,将所述目标数组转化为对象数组,即取出所述目标数组中的数据,然后将所述数据转化为对象,然后遍历所述对象数组,从所述对象数组中确定调用所述配置逻辑代码的目标函数,从而用所述对象数组中的目标函数以执行所述配置逻辑代码,配置逻辑代码的执行时机自行决定,避免了在应用程序初始化阶段自动执行,从而可以降低程序启动阶段的时间,同时通过数组的方式来将需要执行的配置逻辑代码段存储起来,在到达执行的时间解析出来后执行,解决配置逻辑代码被覆盖的问题,从而提高配置逻辑代码的启动的效率及成功率。
本实施例提供了一种自定义执行IOS应用程序中的配置逻辑代码的方法,通过将程序启动阶段的代码逻辑写入到应用程序可执行文件的目标数据段,在需要执行的时机再取出来执行,首先获取IOS应用程序启动阶段的配置逻辑代码,将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名,所述目标数据段为可执行文件的__DATA段,通过所述数组名可以定位到对应的配置逻辑代码,获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组,通过所述数组名进行筛选,可以定位到对应的配置逻辑代码,将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,配置逻辑代码的执行时机自行决定,避免了在应用程序初始化阶段自动执行,从而可以降低程序启动阶段的时间,同时通过数组的方式来将需要执行的配置逻辑代码段存储起来,在到达执行的时间解析出来后执行,解决配置逻辑代码被覆盖的问题,从而提高配置逻辑代码的启动的效率及成功率。
在一个实施例中,所述获取IOS应用程序启动阶段的配置逻辑代码,包括:
通过预设的编译器对所述IOS应用程序的工程代码进行编译;
读取编译后的工程代码;
将所述编译后的工程代码中包含预设关键字的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码。
本实施例中,在获取IOS应用程序启动阶段的配置逻辑代码的过程中,为了提高配置逻辑代码的自动化搜寻及配置效率,通过预设的编译器对所述IOS应用程序的工程代码进行编译,得到编译后的IOS应用程序的工程代码,然后读取编译后的工程代码,再从所述编译后的工程代码中进行查找,将所述编译后的工程代码中包含预设关键字的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码,所述预设关键字为attribute关键字,将包含attribute的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码,具体的,编译器在编译的时候读取到这个attribute关键字,将编译后的工程代码中包括该关键字的代码为配置逻辑代码,例如识别到编译后的工程代码中包含attribute关键字的代码为,__attribute__((used,section("__DATA,__pacx_func"))),__attribute__((used,section("__DATA,__pacx_block"))),将该逻辑代码确定为配置逻辑代码再写入至目标数据段的形式,从而提高在不同应用程序中的适用性,以及提高获取配置逻辑代码的效率。
在一个实施例中,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,包括:
获取数组结构的类型;
若所述类型为Function类型,将所述配置逻辑代码以Function形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的指针函数;
若所述类型为block类型,将所述配置逻辑代码以block形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的匿名函数。
本实施例中,在将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中的过程中,由于数据结构包括多种不同的类型,不同企业开发的应用程序使用的数据结构类型不同,为了适应不同的实际开发场景,首先获取数组结构的类型,本实施例中定义两种IOS应用程序中常用调用的数组结构类型,包括Function类型和block类型,若所述类型为Function类型,将所述配置逻辑代码以Function形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的指针函数,即将执行代码逻辑的地址配置至funcPtr指针中,并生成执行所述配置逻辑代码的指针函数;若所述类型为block类型,将所述配置逻辑代码以block形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的匿名函数,即设置执行的闭包代码赋值给block,从而配置不同的数组结构存储配置逻辑代码,提高实际开发场景的适用性。
在一个实施例中,所述将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
将所述目标数组转化为对象数组,并调用所述对象数组中的指针函数以执行所述配置逻辑代码;或,
将所述目标数组转化为对象数组,并调用所述对象数组中的匿名函数以执行所述配置逻辑代码。
本实施例中,在将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码的过程,由于不同的数据结构配置了不同的逻辑配置代码的调用方法,当数组结构为Function类型时,将所述目标数组转化为对象数组,并调用所述对象数组中的指针函数以执行所述配置逻辑代码,和/或,当所述数组结构为block类型类型时,将所述目标数组转化为对象数组,并调用所述对象数组中的匿名函数以执行所述配置逻辑代码。在一种实施方式中,通过“getsectiondata”函数传入对应的数组名,获取原始的配置逻辑代码的数据和数据的大小,然后将其通过数据类型转换,转换成Funtion对象数组或者Block对象数组,若转化为Funtion对象数组,则调用所述对象数组中的指针函数以执行所述配置逻辑代码,若转化为Block对象数组,则调用所述对象数组中的匿名函数以执行所述配置逻辑代码,从而配置不同方式执行存储在不同的数组结构存储配置逻辑代码,提高实际开发场景的适用性。
在一个实施例中,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,还包括:
获取每一个所述配置逻辑代码的优先级;
在所述目标数据段中添加执行顺序字段,并根据所述优先级配置所述执行顺序字段的字段值,以配置所述配置逻辑代码的执行顺序。
本实施例中,在将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,获取每一个所述配置逻辑代码的优先级,所述优先级可以通过所述配置逻辑代码的功能等级而确定,然后在所述目标数据段中添加执行顺序字段,所述执行顺序字段可以是priority字段,并根据所述优先级配置所述priority字段的字段值,以配置所述配置逻辑代码的执行顺序,可以自定义不同逻辑配置代码的执行顺序,合理地分配资源,从而提高逻辑配置代码执行的效率与成功率。
在一个实施例中,所述调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
获取配置逻辑代码的执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码。
本实施例中,在调用所述对象数组中的目标函数以执行所述配置逻辑代码的过程中,获取配置逻辑代码的执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码,即在调用所述对象数组中的目标函数以执行所述配置逻辑代码时,获取所述执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码,可以自定义不同逻辑配置代码的执行顺序,合理地分配资源,从而提高逻辑配置代码执行的效率与成功率。
在一个实施例中,所述获取所述配置逻辑代码的执行时间之前,还包括:
获取所述配置逻辑代码关联的功能信息;
获取所述功能信息的启动时间与启动频率;
根据所述启动时间与启动频率生成所述配置逻辑代码的执行时间。
本实施例中,在获取所述配置逻辑代码的执行时间之前,需要确定不同配置逻辑代码的执行时间,具体的,获取所述配置逻辑代码关联的功能信息,即该配置逻辑代码是关联了哪个业务功能,需要在该业务功能执行前启动,然后获取所述功能信息的启动时间与启动频率,再根据大数据进行统计,基于所述功能信息的启动时间与启动频率生成所述配置逻辑代码的执行时间,从而基于大数据动态地配置不同配置逻辑代码的执行时间,从而提高逻辑配置代码执行的时机的合理性。
参照图2,本申请还提供一种配置逻辑代码的启动控制装置,包括:
信息获取模块10,用于获取IOS应用程序启动阶段的配置逻辑代码;
数据存储模块20,用于将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;
执行响应模块30,用于获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;
控制执行模块40,用于将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
如上所述,可以理解地,本申请中提出的所述配置逻辑代码的启动控制装置的各组成部分可以实现如上所述配置逻辑代码的启动控制方法任一项的功能。
在一个实施例中,所述获取IOS应用程序启动阶段的配置逻辑代码,包括:
通过预设的编译器对所述IOS应用程序的工程代码进行编译;
读取编译后的工程代码;
将所述编译后的工程代码中包含预设关键字的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码。
在一个实施例中,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,包括:
获取数组结构的类型;
若所述类型为Function类型,将所述配置逻辑代码以Function形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的指针函数;
若所述类型为block类型,将所述配置逻辑代码以block形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的匿名函数。
在一个实施例中,所述将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
将所述目标数组转化为对象数组,并调用所述对象数组中的指针函数以执行所述配置逻辑代码;或,
将所述目标数组转化为对象数组,并调用所述对象数组中的匿名函数以执行所述配置逻辑代码。
在一个实施例中,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,还包括:
获取每一个所述配置逻辑代码的优先级;
在所述目标数据段中添加执行顺序字段,并根据所述优先级配置所述执行顺序字段的字段值,以配置所述配置逻辑代码的执行顺序。
在一个实施例中,所述调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
获取配置逻辑代码的执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码。
在一个实施例中,所述获取所述配置逻辑代码的执行时间之前,还包括:
获取所述配置逻辑代码关联的功能信息;
获取所述功能信息的启动时间与启动频率;
根据所述启动时间与启动频率生成所述配置逻辑代码的执行时间。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是移动终端,其内部结构可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和显示装置及输入装置。其中,该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的输入装置用于接收用户的输入。该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质。该存储介质存储有操作***、计算机程序和数据库。该计算机设备的数据库用于存放数据。该计算机程序被处理器执行时以实现一种配置逻辑代码的启动控制方法。
上述处理器执行上述的配置逻辑代码的启动控制方法,包括:获取IOS应用程序启动阶段的配置逻辑代码;将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
所述计算机设备提供了一种自定义执行IOS应用程序中的配置逻辑代码的方法,通过将程序启动阶段的代码逻辑写入到应用程序可执行文件的目标数据段,在需要执行的时机再取出来执行,首先获取IOS应用程序启动阶段的配置逻辑代码,将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名,所述目标数据段为可执行文件的__DATA段,通过所述数组名可以定位到对应的配置逻辑代码,获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组,通过所述数组名进行筛选,可以定位到对应的配置逻辑代码,将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,配置逻辑代码的执行时机自行决定,避免了在应用程序初始化阶段自动执行,从而可以降低程序启动阶段的时间,同时通过数组的方式来将需要执行的配置逻辑代码段存储起来,在到达执行的时间解析出来后执行,解决配置逻辑代码被覆盖的问题,从而提高配置逻辑代码的启动的效率及成功率。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现一种配置逻辑代码的启动控制方法,包括步骤:获取IOS应用程序启动阶段的配置逻辑代码;将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
所述计算机可读存储介质提供了一种自定义执行IOS应用程序中的配置逻辑代码的方法,通过将程序启动阶段的代码逻辑写入到应用程序可执行文件的目标数据段,在需要执行的时机再取出来执行,首先获取IOS应用程序启动阶段的配置逻辑代码,将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名,所述目标数据段为可执行文件的__DATA段,通过所述数组名可以定位到对应的配置逻辑代码,获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组,通过所述数组名进行筛选,可以定位到对应的配置逻辑代码,将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,配置逻辑代码的执行时机自行决定,避免了在应用程序初始化阶段自动执行,从而可以降低程序启动阶段的时间,同时通过数组的方式来将需要执行的配置逻辑代码段存储起来,在到达执行的时间解析出来后执行,解决配置逻辑代码被覆盖的问题,从而提高配置逻辑代码的启动的效率及成功率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。
非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围。
凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种配置逻辑代码的启动控制方法,其特征在于,包括:
获取IOS应用程序启动阶段的配置逻辑代码;
将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;
获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;
将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
2.根据权利要求1所述的配置逻辑代码的启动控制方法,其特征在于,所述获取IOS应用程序启动阶段的配置逻辑代码,包括:
通过预设的编译器对所述IOS应用程序的工程代码进行编译;
读取编译后的工程代码;
将所述编译后的工程代码中包含预设关键字的代码片段确定为所述IOS应用程序启动阶段的配置逻辑代码。
3.根据权利要求1所述的配置逻辑代码的启动控制方法,其特征在于,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,包括:
获取数组结构的类型;
若所述类型为Function类型,将所述配置逻辑代码以Function形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的指针函数;
若所述类型为block类型,将所述配置逻辑代码以block形式写入至IOS应用程序的可执行文件的目标数据段,并生成执行所述配置逻辑代码的匿名函数。
4.根据权利要求3所述的配置逻辑代码的启动控制方法,其特征在于,所述将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
将所述目标数组转化为对象数组,并调用所述对象数组中的指针函数以执行所述配置逻辑代码;或,
将所述目标数组转化为对象数组,并调用所述对象数组中的匿名函数以执行所述配置逻辑代码。
5.根据权利要1所述的配置逻辑代码的启动控制方法,其特征在于,所述将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名之后,还包括:
获取每一个所述配置逻辑代码的优先级;
在所述目标数据段中添加执行顺序字段,并根据所述优先级配置所述执行顺序字段的字段值,以配置所述配置逻辑代码的执行顺序。
6.根据权利要求5所述的配置逻辑代码的启动控制方法,其特征在于,所述调用所述对象数组中的目标函数以执行所述配置逻辑代码,包括:
获取配置逻辑代码的执行顺序,根据所述执行顺序调用所述对象数组中的目标函数以执行所述配置逻辑代码。
7.根据权利要求1所述的配置逻辑代码的启动控制方法,其特征在于,所述获取所述配置逻辑代码的执行时间之前,还包括:
获取所述配置逻辑代码关联的功能信息;
获取所述功能信息的启动时间与启动频率;
根据所述启动时间与启动频率生成所述配置逻辑代码的执行时间。
8.一种配置逻辑代码的启动控制装置,其特征在于,包括:
信息获取模块,用于获取IOS应用程序启动阶段的配置逻辑代码;
数据存储模块,用于将所述配置逻辑代码以预设的数组结构写入至所述IOS应用程序的可执行文件的目标数据段中,并生成所述配置逻辑代码对应的数组名;
执行响应模块,用于获取所述配置逻辑代码的执行时间,并在到达所述执行时间后,根据所述数组名读取所述目标数据段中的目标数组;
控制执行模块,用于将所述目标数组转化为对象数组,并调用所述对象数组中的目标函数以执行所述配置逻辑代码。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述配置逻辑代码的启动控制方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述配置逻辑代码的启动控制方法的步骤。
CN202210540185.XA 2022-05-17 2022-05-17 配置逻辑代码的启动控制方法、装置、设备及存储介质 Active CN114860340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210540185.XA CN114860340B (zh) 2022-05-17 2022-05-17 配置逻辑代码的启动控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210540185.XA CN114860340B (zh) 2022-05-17 2022-05-17 配置逻辑代码的启动控制方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114860340A true CN114860340A (zh) 2022-08-05
CN114860340B CN114860340B (zh) 2024-07-16

Family

ID=82638773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210540185.XA Active CN114860340B (zh) 2022-05-17 2022-05-17 配置逻辑代码的启动控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114860340B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309740A (zh) * 2013-06-05 2013-09-18 腾讯科技(深圳)有限公司 程序启动方法、装置和设备
KR20130142311A (ko) * 2012-06-19 2013-12-30 삼성전자주식회사 응용프로그램의 처리 지연을 줄이기 위한 방법 및 그 전자 장치
CN108984223A (zh) * 2018-05-31 2018-12-11 北京三快在线科技有限公司 一种程序调用解耦方法、装置、电子设备及存储介质
CN110737462A (zh) * 2019-10-15 2020-01-31 腾讯科技(深圳)有限公司 应用程序内的功能组件的控制方法、设备及存储介质
CN112817657A (zh) * 2021-01-29 2021-05-18 北京奇艺世纪科技有限公司 一种应用程序启动项加载方法、装置、***及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130142311A (ko) * 2012-06-19 2013-12-30 삼성전자주식회사 응용프로그램의 처리 지연을 줄이기 위한 방법 및 그 전자 장치
CN103309740A (zh) * 2013-06-05 2013-09-18 腾讯科技(深圳)有限公司 程序启动方法、装置和设备
CN108984223A (zh) * 2018-05-31 2018-12-11 北京三快在线科技有限公司 一种程序调用解耦方法、装置、电子设备及存储介质
CN110737462A (zh) * 2019-10-15 2020-01-31 腾讯科技(深圳)有限公司 应用程序内的功能组件的控制方法、设备及存储介质
CN112817657A (zh) * 2021-01-29 2021-05-18 北京奇艺世纪科技有限公司 一种应用程序启动项加载方法、装置、***及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
互联网: "如何更全面管理win7启动项", pages 1 - 4, Retrieved from the Internet <URL:https://m.somode.com/Windows7/32548.html> *

Also Published As

Publication number Publication date
CN114860340B (zh) 2024-07-16

Similar Documents

Publication Publication Date Title
CN111752830B (zh) 汽车诊断***、汽车诊断***的更新方法、装置和设备
CN109726134B (zh) 接口测试方法和***
CN112527415A (zh) 小程序跨平台迁移方法、装置、设备和介质
CN112380130A (zh) 基于调用依赖关系的应用测试方法和装置
CN112527286A (zh) 业务代码的生成方法、装置、计算机设备及存储介质
CN112187713A (zh) 报文转换的方法、装置、计算机设备和存储介质
JPH1115689A (ja) ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
CN112148351B (zh) 一种应用软件跨版本兼容的方法和***
CN113590491A (zh) 一种测试平台和产品测试方法
CN114860340B (zh) 配置逻辑代码的启动控制方法、装置、设备及存储介质
CN112527315A (zh) 编程语言函数自动转化方法、装置、计算机设备及介质
CN111966744B (zh) 工作流部署方法、装置、计算机设备和存储介质
CN112732742B (zh) 查询页面创建方法、装置、计算机设备和存储介质
CN113918461A (zh) 接口测试方法、装置、设备及存储介质
CN113051004B (zh) 一种依赖函数的处理方法、装置、设备及存储介质
CN113885897A (zh) 客户端安装包的打包方法、装置、设备及存储介质
CN114860204A (zh) 程序处理、运行方法、装置、终端、智能卡及存储介质
CN111143790B (zh) 代码混淆方法、装置、设备及存储介质
CN113867776A (zh) 中台应用的发布方法、装置、电子设备和存储介质
CN112214213A (zh) Linux内核的开发和管理方法、装置、计算机设备和存储介质
CN112463164A (zh) SoC程序执行的显示定位方法、装置、计算机设备及存储介质
CN110597549A (zh) 代码工程中的搜索方法、装置、设备及可读存储介质
CN117251234B (zh) 基于补丁的函数调用方法及装置
CN115794260B (zh) 一种简单的dsp软件库动态加载方法
CN111158701B (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