一种代码操作方法及装置制造方法及图纸

技术编号:19424591 阅读:18 留言:0更新日期:2018-11-14 10:25
本申请公开了一种代码操作方法、装置及电子设备,方法包括:判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。本申请通过在编译应用安装包的过程中匹配目标代码文件和预先设置的操作规则,从而利用预设的操作转换接口对匹配的目标代码文件执行相应的操作,本申请中整个过程对开发透明,并且无需手动进行代码操作,而是自动进行代码文件匹配及操作,从而节省代码操作的时间,由此提高代码操作效率。

【技术实现步骤摘要】
一种代码操作方法及装置
本申请涉及软件开发
,特别涉及一种代码操作方法及装置。
技术介绍
随着社会的发展,用户对各种功能应用的需求日益增长,应用的代码开发也随之千变万化。例如,在基于Java实现的应用代码中,包含多个Java类文件,用以实现该应用代码的功能服务。在应用代码开发完成之后,如果有需求需要在每一个Java类中添加一行代码,比如用于打印日志,或者需要加密某一个类中的某些字段等等。现有技术中通常需要开发人员手动开发完成的应用代码中的合适位置进行代码操作,如在每个Java类中添加一行代码,或者加密某个类中的某些字段等等。由此,在源代码数量较大时,开发人员手动进行代码操作就容易造成代码操作效率较低的情况。
技术实现思路
有鉴于此,本申请的目的在于提供一种代码操作方法及装置,用以解决现有技术中代码操作效率较低的技术问题。本申请提供了一种代码操作方法,包括:判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。上述方法,优选地,基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作,包括:如果所述判断结果表明所述目标代码文件满足所述操作规则,利用预设的操作转换接口对所述目标代码文件执行第一操作;如果所述判断结果表明所述目标代码文件不满足所述操作规则,执行第二操作。上述方法,优选地,所述操作规则包括:代码匹配规则和代码操作规则,其中:所述代码匹配规则,用于判断所述目标代码文件是否需要执行相应的操作;所述代码操作规则,用于表明对所述目标代码文件执行的操作内容。上述方法,优选地,所述代码匹配规则包括:文件名称与预设的目标名称至少近似一致、文件中有成员变量名与预设的目标成员变量名至少近似一致、文件中有构造方法名与预设的目标构造方法名至少近似一致以及文件中有成员方法名与预设的目标成员方法名至少近似一致中的一种或多种子规则。上述方法,优选地,所述代码操作规则至少包括:删除操作和增加操作中的一种或多种。上述方法,优选地,判断所述目标代码文件是否需要执行相应的操作;依次判断所述目标代码文件是否满足所述代码匹配规则中的每个子规则。上述方法,优选地,利用预设的操作转换接口对所述目标代码文件执行相应的操作,包括:确定所述目标代码文件中与所述代码匹配规则相对应的代码段;利用预设的操作转换接口,对确定的代码段执行与所述代码操作规则相对应的操作。上述方法,优选地,判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果,包括:遍历得到待处理的应用安装包中的至少一个目标代码文件;分别针对每个所述目标代码文件,判断其是否满足预设的操作规则,得到每个所述目标代码文件的判断结果。本申请还提供了一种代码操作装置,包括:文件判断单元,用于判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;操作执行单元,用于基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。上述装置,优选地,所述操作规则包括:代码匹配规则和代码操作规则,其中:所述操作执行单元具体用于:确定所述目标代码文件中与所述代码匹配规则相对应的代码段,利用预设的操作转换接口,对确定的代码段执行与所述代码操作规则相对应的操作。上述装置,优选地,所述文件判断单元具体用于:遍历得到待处理的应用安装包中的至少一个目标代码文件;分别针对每个所述目标代码文件,判断其是否满足预设的操作规则,得到每个所述目标代码文件的判断结果。本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述任意一项所述的代码操作方法。本申请还提供了一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的代码操作方法。本申请还提供了一种电子设备,包括:存储器,用于存储应用程序及应用程序运行所产生的数据;处理器,用于执行所述应用程序,以实现功能:判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。由以上方案可知,本申请提供的一种代码操作方法及装置,通过在应用安装包中匹配目标代码文件和预先设置的操作规则,从而利用预设的操作转换接口对匹配的目标代码文件执行相应的操作。本申请中整个过程对开发透明,并且无需手动进行代码操作,而是自动进行代码文件匹配及操作,从而节省代码操作的时间,由此提高代码操作效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例一提供的一种代码操作方法的实现流程图;图2为本申请实施例一的部分流程图;图3为本申请实施例一的另一部分流程图;图4为本申请实施例二提供的一种代码操作装置的结构示意图;图5为本申请实施例三提供的一种电子设备的结构示意图;图6为本申请实施例三的应用示例图;图7示出了本申请实施例提供的一种存储介质的结构示意图;图8示出了本申请实施例提供的一种处理器的结构示意图。具体实施方式在目前的应用开发中,应用代码开发完成之后,可能需要进行代码操作,如在一个应用的每个Java类中的构造方法中添加一行日志。而从Java源码的角度操作,就需要手动在每个Java类中的构造方法中添加这行代码。当应用的源码量比较大时,会有大量重复性工作,这无疑是一种成本高、效率低的做法。而且当需求变更想要移除这行日志时,那么需要重新手动移除每个Java类中的这一行代码。为解决以上效率低的技术问题,本申请提出以下方案:编译AndroidAPK的过程,包括把.java(Android应用的源代码文件)文件编译成.class文件再编译成.dex文件的步骤,而其中在这个过程中开放有transformapi,该api允许插入一些逻辑来操作.class文件,因此,在本申请中可以在这个过程即.class文件编译成.dex文件的过程中,使用可以操作Java字节码的第三方库插入一些自定义的逻辑来修改.class文件。具体的,这些操作Java字节码的第三方库可以操作的目标有类字段、类构造方法、类方法,本申请中通过提供规则给开发人员根据需求进行预先配置,从而在遍历所有.class文件的过程中,一旦有匹配上的目标类字段、类方法、类构造方法等,就根据配置的规则对.class文件进行相应的操作。其中,操作Java字节码的第三方库可以使用其他同样能够操作Java字节码的第三方库代替。而当需要实现其他的需求时,只需配置指定规则即可。该过程完全自动化,而且对代码无侵入性。除了能够操作Java类的构造方法外,还可以操作Java类的字段、方法,对其进行增、删、改、替换的操作。比如说操作字段,就可以加密静态字符串字段,以保证代码安全。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技本文档来自技高网...

【技术保护点】
1.一种代码操作方法,其特征在于,包括:判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。

【技术特征摘要】
1.一种代码操作方法,其特征在于,包括:判断待处理的应用安装包中的目标代码文件是否满足预设的操作规则,得到判断结果;基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作。2.根据权利要求1所述的方法,其特征在于,基于所述判断结果,利用预设的操作转换接口对所述目标代码文件执行相应的操作,包括:如果所述判断结果表明所述目标代码文件满足所述操作规则,利用预设的操作转换接口对所述目标代码文件执行第一操作;如果所述判断结果表明所述目标代码文件不满足所述操作规则,执行第二操作。3.根据权利要求1或2所述的方法,其特征在于,所述操作规则包括:代码匹配规则和代码操作规则,其中:所述代码匹配规则,用于判断所述目标代码文件是否需要执行相应的操作;所述代码操作规则,用于表明对所述目标代码文件执行的操作内容。4.根据权利要求3所述的方法,其特征在于,所述代码匹配规则包括:文件名称与预设的目标名称至少近似一致、文件中有成员变量名与预设的目标成员变量名至少近似一致、文件中有构造方法名与预设的目标构造方法名至少近似一致以及文件中有成员方法名与预设的目标成员方法名至少近似一致中的一种或多种子规则。5.根据权利要求3所述的方法,其特征在于,所述代码操作规则至少包括:删除操作和增加操作中的一种或多种。6.根据权利要求3所述的方法,其...

【专利技术属性】
技术研发人员:李俊练陈第
申请(专利权)人:有米科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1