CN108614696A - 一种应用制作的方法、静态库生成的方法及装置 - Google Patents

一种应用制作的方法、静态库生成的方法及装置 Download PDF

Info

Publication number
CN108614696A
CN108614696A CN201611124064.8A CN201611124064A CN108614696A CN 108614696 A CN108614696 A CN 108614696A CN 201611124064 A CN201611124064 A CN 201611124064A CN 108614696 A CN108614696 A CN 108614696A
Authority
CN
China
Prior art keywords
library
static
class
target
precompile
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
CN201611124064.8A
Other languages
English (en)
Other versions
CN108614696B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201611124064.8A priority Critical patent/CN108614696B/zh
Publication of CN108614696A publication Critical patent/CN108614696A/zh
Application granted granted Critical
Publication of CN108614696B publication Critical patent/CN108614696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

本发明公开了一种应用制作的方法,包括:接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;根据所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;将所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。本发明实施例提供的应用制作的方法,通过使用包含不同类名前缀的同类程序代码的静态库,避免了静态库冲突的问题,从而提高了应用制作的效率。

Description

一种应用制作的方法、静态库生成的方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种应用制作的方法、静态库生成的方法及装置。
背景技术
静态链接库即静态库。静态链接库实际上就是编译好的程序代码,很多应用中的相似功能的静态库所包含的程序代码也基本相同,有的情况下一个应用调用多个相似功能的静态库,这时内存中就会有多个相同的程序代码,导致静态库冲突,当发生静态库冲突时,就需要修改类名前缀,以避免静态库冲突。
当前修改类名前缀的方法是遍历读取应用运行所调用的所有文件,然后逐个搜索字符串,搜索到需要修改的类名前缀后,即进行替换。但是如果所调用的文件有几十个甚至上千个类时,需要逐个修改,工作量极大且容易出错,而且速度很慢,影响了页面响应的效率。
发明内容
为解决现有技术中类名前缀替换效率低下的问题,本发明实施例提供一种静态库生成的方法、以及应用制作的方法,可以针对应用中不同的服务功能生成包含不同类名前缀的同类程序代码的静态库,从而避免了静态库冲突的问题,使用该方案生成的静态库进行应用制作,因为不会发生静态库冲突,从而提高了应用制作的效率。本发明实施例还提供了相应的装置。
本发明第一方面提供一种应用制作的方法,包括:
接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
根据所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
将所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
本发明第二方面提供一种静态库生成的方法,包括:
获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
本发明第三方面提供一种应用制作的装置,包括:
接收单元,用于接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
调用单元,用于根据所述接收单元接收的所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
添加单元,用于将所述调用单元调用的所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
本发明第四方面提供一种静态库生成的装置,包括:
获取单元,用于获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
预编译单元,用于在预编译时,在所述获取单元获取的目标类的类名前添加与所述目标类对应的类名前缀;
生成单元,用于在所述预编译单元针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
与现有技术中类名前缀替换效率低下相比,本发明实施例提供的静态库生成的方法、以及应用制作的方法,可以在预编译时针对应用中不同的服务功能生成包含不同类名前缀的同类程序代码的静态库,避免了静态库冲突的问题,使用该方案生成的静态库进行应用制作,因为不会发生静态库冲突,从而提高了应用制作的效率。
附图说明
图1是本发明实施例中静态库生成的方法的一实施例示意图;
图2是本发明实施例中一场景示例示意图;
图3是本发明实施例中另一场景示例示意图;
图4是本发明实施例中应用制作的方法的一实施例示意图;
图5是本发明实施例中应用制作的一示例示意图;
图6是本发明实施例中应用制作的另一示例示意图;
图7是本发明实施例中静态库生成的装置的一实施例示意图;
图8是本发明实施例中应用制作的装置的一实施例示意图;
图9是本发明实施例中应用制作的装置的另一实施例示意图;
图10是本发明实施例中静态库生成的装置的另一实施例示意图;
图11是本发明实施例中应用制作的装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种静态库生成的方法、以及应用制作的方法,可以在预编译时针对应用中不同的服务功能生成包含不同类名前缀的同类程序代码的静态库,避免了静态库冲突的问题,使用该方案生成的静态库进行应用制作,因为不会发生静态库冲突,从而提高了应用制作的效率。本发明实施例还提供了相应的装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面对本发明实施例所涉及到的技术术语做简单介绍:
静态库:一些应用中,有一些公共代码是需要反复使用的,就把这些代码编译为"库"文件,也就是静态库;在链接步骤中,连接器将从静态库中调取所需的代码,复制到生成的可执行文件中。
类名:程序代码分类的名称。
类名前缀:加在类名前的前缀。
预编译又称为预处理,是做一些代码文本的替换工作。是整个编译过程的最先做的工作。
软件开发工具包(Software Development Kit,SDK):一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
在iOS操作系统中,静态库包括SDK形式的,也包括MTA形式的,而且大型的SDK会包含MTASDK,这些MTASDK的静态库的类名前缀都相同,如果一个App运行时引用了多个都包含了MTASDK的大型SDK,则会在编译时会有静态库冲突的问题。
为了解决静态库冲突的问题,又不要通过逐个查找替换的方式修改类名前缀,本发明实施例提供一种静态库生成的方法,可以在预编译时针对不同的目标应用生成包含不同类名前缀的同类程序代码的静态库,从而避免了静态库冲突的问题。
参阅图1,本发明实施例提供的静态库生成的方法的一实施例包括:
101、获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应。
应用通常都有多项服务功能,例如:如图2所示,应用可以包括支付功能和视频播放功能,这两项功能中可能都需要具备统计能力,例如:支付功能需要统计支付次数,视频播放功能需要统计视频播放次数,针对统计能力,支付功能和视频播放功能都可以调用具有统计功能的静态库,如果该具有统计功能的静态库只有一套程序代码,则被应用调用后就会导致静态库冲突。本发明实施例中,如图3所示,具有统计功能的静态库包括两个子静态库,这两个子静态库都具有统计功能,但类名前缀不同,一个类名前缀与支付功能对应,一个类名前缀与视频播放功能对应,这样,这两个子静态库被应用分别调用后,因类名前缀不同,就不会产生静态库冲突,从而可以提高应用制作的效率。
当然,上述图2和图3部分只是示例性的描述,实际上应用中的服务功能可以有很多个,多项服务功能都可能会调用该具有统计功能的静态库,或者具有其他功能的静态库,考虑到很多应用中的服务功能都有重叠,所以可以针对这些服务功能生成对应的子静态库,子静态库中的类名前缀只要与服务功能对应即可,这样就可以保证在具有相同功能的子静态库被不同的服务功能使用时不会产生静态库冲突,从而提高应用制作的效率。
另外,需要说明的是,本发明实施例中的子静态库实际上就是静态库,只是在本申请中为了便于表达是具有统一功能下的静态库,才用子静态库做描述。
例如图3所示的场景示例中,调用了两个具有统计能力的子静态库,这两个子静态库,在生成子静态库前就针对各子静态库所对应的服务功能设置了不同的类名前缀,例如:对于MAT类,与支付功能对应的子静态库的类名前缀可以为支付MTA,与视频播放功能对应的子静态库的类名前缀可以为视频播放MTA,与聊天功能对应的子静态库的类名前缀可以为聊天MTA。
当然,上述类名前缀的表现方式只是举例说明,实际上可以为各种类名前缀设置对应标识,例如:如表1所示:
表1:类名前缀的类型与标识的对应关系表
类名前缀的类型 对应标识
支付 1
视频播放 2
聊天 3
表1只是结合示例所列举的几种可能的类名前缀,以及可能适用的类名前缀的表现方式,类名前缀的表现方式还可以参阅表2进行理解,如表2所示:
表2:类名前缀的类型与标识的对应关系表
当然,表2也只是类名前缀的另一种表现方式,无论类名前缀用什么方式表达,只支持同一功能的各静态库中的类名前缀不同,与各自的服务功能对应即可。
预编译配置文件可以是开发人员预先存储在数据库中,在使用时从数据库中调用的,也可以是直接输入到用于生成静态库的计算机中的。
另外,因为静态库中可以包括多个类,针对每个类可以有不同的类名前缀。
生成静态库前,开发人员会预先配置目标应用中针对目标类的类名前缀,例如:
首先定义基本函数ARK(symbol),作用是给指定的类名加上前缀PREFIX。
102、在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀。
如下示例所示,在每个基本函数前都添加了类名前缀PREFIX。
//We need two extra layers of indirection to make CPP substitute;
#define ARK_impl2(prefix,symbol)prefix##symbol;
#define ARK_impl(prefix,symbol)ARK_impl2(prefix,symbol);
#define ARK(symbol)ARK_impl(ARK_PREFIX,symbol);
开发人员可以在预编译文件Prefix.pch中做如下定义:例如:以生成用于支付的静态库为例。则类名前缀可以定义为#define ARK_PREFIX pay,所对应的宏函数为#defineMTA ARK(MTA),则在预编译时,就可以调用该宏函数,将MTA类的类名前缀都预编译为payMTA。
103、针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
与现有技术中类名前缀替换效率低下相比,本发明实施例提供的静态库生成的方法、可以在预编译时针对不同目标应用的静态库生成不同类名前缀的代码,避免了静态库冲突的问题。
本发明实施例中,在通过预编译方式生成的静态库,可以避免静态库冲突,从而也就不需要去逐个替换类名前缀,也就可以规避掉在类名前缀替换过程中所产生的效率低下以及类名前缀替换错误等一系列问题。
在针对各个目标应用的静态库生成后,就可以在各个需要使用静态库的场景调用已生成的静态库,供用户使用。下面结合图5介绍使用本发明实施例所生成的静态库进行应用制作的方法。
参阅图4,本发明实施例提供的应用制作的方法的一实施例包括:
201、接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能。
目标静态库可以是图3示例中用于统计功能的静态库。在图3所示的实例中该具有统计功能的静态库至少应用于支付和视频播放两种服务功能。
202、根据所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的。
该步骤可以参阅图2和图3部分的相关描述和示例进行理解,本处不再重复赘述。
203、将所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
与现有技术中类名前缀替换效率低下相比,本发明实施例提供的应用制作的方法,所使用的不同静态库中目标类的类名前缀不同,因而不会发生静态库冲突,从而提高了应用制作的效率。
可选地,所述根据所述调用指令,调用所述目标静态库,可以包括:
根据所述调用指令,直接调用所述目标静态库;或者,
根据所述调用指令,调用包含所述目标静态库的集合静态库,从所述集合静态库中调用所述目标静态库。
本发明实施例中,以图3的示例为例,当应用需要调用具有统计功能的子静态库时,可以直接调用该具有统计功能的子静态库。因为一些静态库中可能会包含多种具有不同能力的小静态库,可以成这种包含不同能力的小静态库为集合静态库,所以也可以是调用包含目标静态库的集合静态库,所述集合静态库中调用所述目标静态库。
如图5所示,静态库的数据库中包含A大型SDK静态库、B大型SDK静态库和C大型SDK静态库,并且A大型SDK静态库、B大型SDK静态库和C大型SDK静态库中都包含MTA SDK静态库,当待制作应用需要调用MTA SDK静态库时,可以直接调用MTA SDK静态库,也可以通过A大型SDK静态库、B大型SDK静态库或C大型SDK静态库调用MTA SDK静态库。
如果MTA SDK分别支持A、B和C三种服务功能,则如图6所示,该MTASDK静态库中可以包含类名前缀分别为A MTA、B MTA和C MTA的三个子静态库。
因为各子静态库的类名前缀不同,所以不会出现静态库冲突,从而提高了应用制作的效率。
本发明实施例中的静态库可以是预先生成的,制作应用时可以直接从数据库中调取,也可以是制作应用的设备获取到预编译配置文件动态生成的,所以所述接收对目标静态库的调用指令之前,所述方法还包括:
获取预编译配置文件,所述预编译配置文件中配置有待生成的子静态库中目标类的类名前缀,所述类名前缀与所述服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的子静态库的编译结束后,生成与所述服务功能对应的子静态库。
所述在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀,可以包括:
在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
无论哪种生成方式,本发明实施例所生成的静态库的类名前缀都是与目标应用对应的,从而避免了静态库的冲突,在应用制作时也提高了应用制作的效率。
以上是对静态库生成的方法以及应用制作的方法的描述,下面结合附图介绍本发明实施例中的静态库生成的装置以及应用制作的装置。
参阅图7,本发明实施例提供的静态库生成的装置30的一实施例包括:
获取单元301,用于获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
预编译单元302,用于在预编译时,在所述获取单元301获取的目标类的类名前添加与所述目标类对应的类名前缀;
生成单元303,用于在所述预编译单元302针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
本发明实施例提供的静态库生成的装置30,获取单元301获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;预编译单元302在预编译时,在所述获取单元301获取的目标类的类名前添加与所述目标类对应的类名前缀;生成单元303在所述预编译单元302针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。与现有技术中类名前缀替换效率低下相比,本发明实施例提供的静态库生成的装置,可以针对应用中不同的服务功能生成包含不同类名前缀的同类程序代码的静态库,从而避免了静态库冲突的问题。
可选地,所述预编译单元302,用于在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
关于静态库生成的装置的描述可以参阅静态库生成的方法部分的相应描述进行理解,本处不再重复赘述。
参阅图8,本发明实施例提供的应用制作的装置40的一实施例包括:
接收单元401,用于接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
调用单元402,用于根据所述接收单元401接收的所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
添加单元403,用于将所述调用单元402调用的所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
本发明实施例所提供的应用制作的装置40,接收单元401接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;调用单元402根据所述接收单元401接收的所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;添加单元403将所述调用单元402调用的所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。与现有技术中类名前缀替换效率低下相比,本发明实施例提供的应用制作的装置,所使用的不同静态库中目标类的类名前缀不同,因而不会发生静态库冲突,从而提高了应用制作的效率。
可选地,所述调用单元402,用于根据所述调用指令,直接调用所述目标静态库;或者,根据所述调用指令,调用包含所述目标静态库的集合静态库,从所述集合静态库中调用所述目标静态库。
可选地,在上述图8对应的实施例的基础上,参阅图9,本发明实施例提供的应用制作的装置40的另一实施例还包括:
获取单元404,用于获取预编译配置文件,所述预编译配置文件中配置有待生成的子静态库中目标类的类名前缀,所述类名前缀与所述服务功能对应;
预编译单元405,用于在预编译时,在所述获取单元405获取的所述目标类的类名前添加与所述目标类对应的类名前缀;
生成单元406,用于针对所述预编译单元405对待生成的子静态库的编译结束后,生成与所述服务功能对应的子静态库。
可选地,所述预编译单元405,用于在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
关于应用制作的装置的描述可以参阅应用制作的方法部分的相应描述进行理解,本处不再重复赘述。
本发明实施例中,静态库生成的装置可以由计算机等计算设备来完成,下面结合计算设备的形态,介绍计算设备用于生成静态库的过程。
图10是本发明实施例提供的静态库生成的装置50的结构示意图。所述静态库生成的装置50包括处理器510、存储器550和收发器530,存储器550可以包括只读存储器和随机存取存储器,并向处理器510提供操作指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器550存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器550存储的操作指令(该操作指令可存储在操作系统中),
获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
与现有技术中类名前缀替换效率低下相比,本发明实施例提供的静态库生成的装置,可以针对应用中不同的服务功能生成包含不同类名前缀的同类程序代码的静态库,从而避免了静态库冲突的问题。
处理器510控制静态库生成的装置50的操作,处理器510还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器550可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中静态库生成的装置50的各个组件通过总线系统520耦合在一起,其中总线系统520除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统520。
上述本发明实施例揭示的方法可以应用于处理器510中,或者由处理器510实现。处理器510可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器510可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器550,处理器510读取存储器550中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器510用于:在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
本发明实施例提供的应用制作的装置也可以由静态库生成的装置来实现。
本发明实施例提供的静态库生成的装置可以参阅图1至图6部分的相关描述进行理解,本处不再重复赘述。
图11是本发明实施例提供的应用制作的装置60的结构示意图。所述应用制作的装置60包括处理器610、存储器650和收发器630,存储器650可以包括只读存储器和随机存取存储器,并向处理器610提供操作指令和数据。存储器650的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器650存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,通过调用存储器650存储的操作指令(该操作指令可存储在操作系统中),
接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
根据所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
将所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
与现有技术中类名前缀替换效率低下相比,本发明实施例提供的应用制作的装置,所使用的不同静态库中目标类的类名前缀不同,因而不会发生静态库冲突,从而提高了应用制作的效率。
处理器610控制应用制作的装置60的操作,处理器610还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器650可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器650的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中应用制作的装置60的各个组件通过总线系统620耦合在一起,其中总线系统620除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统620。
上述本发明实施例揭示的方法可以应用于处理器610中,或者由处理器610实现。处理器610可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器610可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器650,处理器610读取存储器650中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器610用于:根据所述调用指令,直接调用所述目标静态库;或者,根据所述调用指令,调用包含所述目标静态库的集合静态库,从所述集合静态库中调用所述目标静态库。
可选地,处理器610还用于:
获取预编译配置文件,所述预编译配置文件中配置有待生成的子静态库中目标类的类名前缀,所述类名前缀与所述服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的子静态库的编译结束后,生成与所述服务功能对应的子静态库。
本发明实施例提供的应用制作的装置可以参阅图1至图6部分的相关描述进行理解,本处不再重复赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的应用制作的方法、静态库生成的方法以及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种应用制作的方法,其特征在于,包括:
接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
根据所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
将所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述调用指令,调用所述目标静态库,包括:
根据所述调用指令,直接调用所述目标静态库;或者,
根据所述调用指令,调用包含所述目标静态库的集合静态库,从所述集合静态库中调用所述目标静态库。
3.根据权利要求1或2所述的方法,其特征在于,所述接收对目标静态库的调用指令之前,所述方法还包括:
获取预编译配置文件,所述预编译配置文件中配置有待生成的子静态库中目标类的类名前缀,所述类名前缀与所述服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的子静态库的编译结束后,生成与所述服务功能对应的子静态库。
4.一种静态库生成的方法,其特征在于,包括:
获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀;
针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
5.根据权利要求4所述的方法,其特征在于,所述在预编译时,在所述目标类的类名前添加与所述目标类对应的类名前缀,包括:
在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
6.一种应用制作的装置,其特征在于,包括:
接收单元,用于接收对目标静态库的调用指令,所述目标静态库应用于待制作应用的至少两种服务功能;
调用单元,用于根据所述接收单元接收的所述调用指令,调用所述目标静态库,所述目标静态库中包括与所述至少两种服务功能对应的至少两个子静态库,所述至少两个子静态库中分别包含不同类名前缀的同类程序代码,每个子静态库中的类名前缀是在预编译时按照所述每个子静态库所对应的服务功能配置的;
添加单元,用于将所述调用单元调用的所述至少两个子静态库的程序代码添加到各自对应的服务功能的程序中,以实现所述待制作应用的制作。
7.根据权利要求6所述的装置,其特征在于,
所述调用单元,用于根据所述调用指令,直接调用所述目标静态库;或者,根据所述调用指令,调用包含所述目标静态库的集合静态库,从所述集合静态库中调用所述目标静态库。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
获取单元,用于获取预编译配置文件,所述预编译配置文件中配置有待生成的子静态库中目标类的类名前缀,所述类名前缀与所述服务功能对应;
预编译单元,用于在预编译时,在所述获取单元获取的所述目标类的类名前添加与所述目标类对应的类名前缀;
生成单元,用于针对所述预编译单元对待生成的子静态库的编译结束后,生成与所述服务功能对应的子静态库。
9.一种静态库生成的装置,其特征在于,包括:
获取单元,用于获取预编译配置文件,所述预编译配置文件中配置有待生成的静态库中目标类的类名前缀,所述类名前缀与待制作应用中的服务功能对应;
预编译单元,用于在预编译时,在所述获取单元获取的目标类的类名前添加与所述目标类对应的类名前缀;
生成单元,用于在所述预编译单元针对所述待生成的静态库的编译结束后,生成与所述服务功能对应的静态库。
10.根据权利要求9所述的装置,其特征在于,
所述预编译单元,用于在预编译时,调用预先定义的宏函数,在所述目标类的类名前添加与所述目标类对应的类名前缀。
CN201611124064.8A 2016-12-08 2016-12-08 一种应用制作的方法、静态库生成的方法及装置 Active CN108614696B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611124064.8A CN108614696B (zh) 2016-12-08 2016-12-08 一种应用制作的方法、静态库生成的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611124064.8A CN108614696B (zh) 2016-12-08 2016-12-08 一种应用制作的方法、静态库生成的方法及装置

Publications (2)

Publication Number Publication Date
CN108614696A true CN108614696A (zh) 2018-10-02
CN108614696B CN108614696B (zh) 2021-10-29

Family

ID=63643390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611124064.8A Active CN108614696B (zh) 2016-12-08 2016-12-08 一种应用制作的方法、静态库生成的方法及装置

Country Status (1)

Country Link
CN (1) CN108614696B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918895A (zh) * 2019-03-07 2019-06-21 上海掌门科技有限公司 用于输出数据的方法、电子设备和计算机可读介质
CN110609788A (zh) * 2019-08-27 2019-12-24 绿漫科技有限公司 一种检测静态库冲突的自动化方法
CN111339736A (zh) * 2020-02-18 2020-06-26 江苏满运软件科技有限公司 一种添加前缀名的方法、配置获取方法、装置及电子设备
CN112860309A (zh) * 2021-01-29 2021-05-28 深圳市趣推科技有限公司 基于iOS的静态库调用方法、装置、设备及存储介质
WO2022116437A1 (zh) * 2020-12-03 2022-06-09 平安科技(深圳)有限公司 多架构静态库冲突处理方法、装置、设备及存储介质
CN114840195A (zh) * 2022-06-29 2022-08-02 广州易方信息科技股份有限公司 一种针对iOS SDK静态库的私有化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101078992A (zh) * 2007-07-06 2007-11-28 大唐微电子技术有限公司 一种智能卡平台的再开发方法及系统
CN101236631A (zh) * 2007-12-14 2008-08-06 福建联迪商用设备有限公司 电子支付统一平台的实现方法
CN104199642A (zh) * 2014-08-05 2014-12-10 青岛海信移动通信技术股份有限公司 一种在目标平台运行原平台代码的实现方法及装置
CN106021246A (zh) * 2015-03-26 2016-10-12 北京畅游天下网络技术有限公司 一种文档管理方法和装置
CN106201481A (zh) * 2016-06-30 2016-12-07 传线网络科技(上海)有限公司 应用程序开发系统中的组件管理方法和装置
JP6488739B2 (ja) * 2015-02-05 2019-03-27 株式会社デンソー 並列化コンパイル方法、及び、並列化コンパイラ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101078992A (zh) * 2007-07-06 2007-11-28 大唐微电子技术有限公司 一种智能卡平台的再开发方法及系统
CN101236631A (zh) * 2007-12-14 2008-08-06 福建联迪商用设备有限公司 电子支付统一平台的实现方法
CN104199642A (zh) * 2014-08-05 2014-12-10 青岛海信移动通信技术股份有限公司 一种在目标平台运行原平台代码的实现方法及装置
JP6488739B2 (ja) * 2015-02-05 2019-03-27 株式会社デンソー 並列化コンパイル方法、及び、並列化コンパイラ
CN106021246A (zh) * 2015-03-26 2016-10-12 北京畅游天下网络技术有限公司 一种文档管理方法和装置
CN106201481A (zh) * 2016-06-30 2016-12-07 传线网络科技(上海)有限公司 应用程序开发系统中的组件管理方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HP_TRUTH: "如何解决C程序中不同静态库之间的符号冲突问题", 《WWW.VOIDCN.COM/ARTICLE/P-KOYOXHQH-BCD.HTML》 *
LIANG SHEN等: "Study on the policy conflict detection in the security management model", 《2015 IEEE INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING, COMMUNICATIONS AND COMPUTING (ICSPCC)》 *
刘立月等: "基于LabWindows/CVI动态链接库的VC接口实现", 《微计算机信息》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918895A (zh) * 2019-03-07 2019-06-21 上海掌门科技有限公司 用于输出数据的方法、电子设备和计算机可读介质
CN109918895B (zh) * 2019-03-07 2023-07-14 上海掌门科技有限公司 用于输出数据的方法、电子设备和计算机可读介质
CN110609788A (zh) * 2019-08-27 2019-12-24 绿漫科技有限公司 一种检测静态库冲突的自动化方法
CN111339736A (zh) * 2020-02-18 2020-06-26 江苏满运软件科技有限公司 一种添加前缀名的方法、配置获取方法、装置及电子设备
CN111339736B (zh) * 2020-02-18 2023-09-01 江苏满运软件科技有限公司 一种添加前缀名的方法、配置获取方法、装置及电子设备
WO2022116437A1 (zh) * 2020-12-03 2022-06-09 平安科技(深圳)有限公司 多架构静态库冲突处理方法、装置、设备及存储介质
CN112860309A (zh) * 2021-01-29 2021-05-28 深圳市趣推科技有限公司 基于iOS的静态库调用方法、装置、设备及存储介质
CN112860309B (zh) * 2021-01-29 2024-04-16 深圳市趣推科技有限公司 基于iOS的静态库调用方法、装置、设备及存储介质
CN114840195A (zh) * 2022-06-29 2022-08-02 广州易方信息科技股份有限公司 一种针对iOS SDK静态库的私有化方法
CN114840195B (zh) * 2022-06-29 2022-10-04 广州易方信息科技股份有限公司 一种针对iOS SDK静态库的私有化方法

Also Published As

Publication number Publication date
CN108614696B (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
CN108614696A (zh) 一种应用制作的方法、静态库生成的方法及装置
US6678885B2 (en) System and method for common code generation
CN110249307A (zh) 用于在区块链上执行原生合约的系统和方法
US6996833B1 (en) Protocol agnostic request response pattern
US10127023B2 (en) Computer-aided development of native mobile application code
CN106201481A (zh) 应用程序开发系统中的组件管理方法和装置
US20090276479A1 (en) Distributed execution model for cross-organizational declarative web applications
CN111104635A (zh) 一种表格网页的生成方法和装置
CN110297999A (zh) 一种网页模板生成方法及装置、网页加载方法及前端服务器和网站服务器
CN104298591A (zh) 一种WebApp远程调试方法及系统
CN111399840B (zh) 一种模块开发方法及装置
CN111736922B (zh) 插件调用方法、装置、电子设备及存储介质
CN105068813A (zh) 一种提供安卓包apk修改服务的方法和装置
CN110471663A (zh) 一种代码编译方法、装置及电子设备
CN114938401A (zh) 可配置的网络协议数据解析方法及电子设备
CN106648569A (zh) 目标序列化实现方法和装置
CN114117985B (zh) 集成运放的智能验证方法、系统、介质及终端设备
CN109547259A (zh) 应用配置方法、装置、存储介质和电子设备
CN109324838B (zh) 单片机程序的执行方法、执行装置及终端
CN107291637A (zh) 在安卓系统中兼容多型号移动通信模块的方法和装置
CN110162309A (zh) 参数校验方法及装置
CN109976751A (zh) 模型操作方法、相关装置及计算机可读介质
CN115951868A (zh) 执行脚本命令的方法、设备及存储介质
CN115857961A (zh) 多平台的项目统一部署方法及装置
CN108427664A (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