CN113010364B - 一种业务数据获取方法、装置及电子设备 - Google Patents
一种业务数据获取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113010364B CN113010364B CN201911323809.7A CN201911323809A CN113010364B CN 113010364 B CN113010364 B CN 113010364B CN 201911323809 A CN201911323809 A CN 201911323809A CN 113010364 B CN113010364 B CN 113010364B
- Authority
- CN
- China
- Prior art keywords
- service
- field
- confusion
- data acquisition
- service 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种业务数据获取方法、装置及电子设备。该方法包括:接收对第一交互控件的控制指令,确定第一交互控件对应的第一业务数据获取路径;确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,第一业务字段组中的每一业务字段均位于第一映射表中,第一映射表中记录有业务字段与混淆字段之间的映射关系;获取第一混淆字段组;其中,第一混淆字段组中包括第一业务字段组中的每一业务字段所映射的混淆字段;将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;基于第二业务数据获取路径,以反射方式获取相应的业务数据。与现有技术相比,本发明实施例能够提高成功获取业务数据的可能性。
Description
技术领域
本发明涉及数据统计技术领域,尤其涉及一种业务数据获取方法、装置及电子设备。
背景技术
业务数据的统计越来越重要,目前常用的是无埋点的数据统计方案,在采用无埋点的数据统计方案时,一般以反射方式获取业务数据。由于安卓等操作系统中常采用代码混淆技术,例如将字段feedid混淆为字段a,而反射过程中利用的一般是混淆前的字段,这会导致业务数据获取失败。
发明内容
本发明实施例提供一种业务数据获取方法、装置及电子设备,以解决现有技术中由于存在代码混淆,反射方式的使用导致业务数据获取失败的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供一种业务数据获取方法,所述方法执行于电子设备,包括:
接收对第一交互控件的控制指令,确定所述第一交互控件对应的第一业务数据获取路径;
确定组成所述第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,所述第一业务字段组中的每一业务字段均位于第一映射表中,所述第一映射表中记录有业务字段与混淆字段之间的映射关系;
获取第一混淆字段组;其中,所述第一混淆字段组中包括所述第一业务字段组中的每一业务字段所映射的混淆字段;
将组成所述第一业务数据获取路径的多个业务字段中,所述第一业务字段组中的每一业务字段更新为所述第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
基于所述第二业务数据获取路径,以反射方式获取相应的业务数据。
第二方面,本发明实施例提供一种业务数据获取装置,所述装置运行于电子设备,包括:
第一确定模块,用于接收对第一交互控件的控制指令,确定所述第一交互控件对应的第一业务数据获取路径;
第二确定模块,用于确定组成所述第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,所述第一业务字段组中的每一业务字段均位于第一映射表中,所述第一映射表中记录有业务字段与混淆字段之间的映射关系;
第一获取模块,用于获取第一混淆字段组;其中,所述第一混淆字段组中包括所述第一业务字段组中的每一业务字段所映射的混淆字段;
第二获取模块,用于将组成所述第一业务数据获取路径的多个业务字段中,所述第一业务字段组中的每一业务字段更新为所述第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
第三获取模块,用于基于所述第二业务数据获取路径,以反射方式获取相应的业务数据。
第三方面,本发明实施例提供一种电子设备,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述业务数据获取方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述业务数据获取方法的步骤。
本发明实施例中,在接收到对第一交互控件的控制指令的情况下,可以确定第一交互控件对应的第一业务数据获取路径,确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组。接下来,可以获取包括第一业务字段组中的每一业务字段所映射的混淆字段的第一混淆字段组,将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径。最后,可以基于第二业务数据获取路径,以反射方式获取相应的业务数据。可见,本发明实施例中,在获取业务数据时,并不是直接基于第一业务数据获取路径进行反射,而是基于第二业务数据获取路径进行反射,那么,对于发生了混淆的字段,电子设备通过反射获取业务数据时,利用的是混淆后的字段,而不是混淆前的字段,因此,与现有技术相比,本发明实施例能够提高成功获取业务数据的可能性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1为本发明实施例提供的业务数据获取方法的流程图;
图2为本发明实施例中业务数据获取原理框图;
图3为本发明实施例提供的业务数据获取装置的结构框图;
图4为本发明实施例提供的业务数据获取装置的另一结构框图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例提供的业务数据获取方法进行说明。
需要说明的是,本发明实施例提供的业务数据获取方法执行于电子设备。这里,电子设备可以为手机或者平板电脑(Tablet Personal Computer)等终端设备,电子设备使用的操作系统可以为安卓系统,当然,电子设备的类型,以及电子设备使用的操作系统的类型并不局限于此,具体可以根据实际情况来确定,本发明实施例对此不做任何限定。
参见图1,图中示出了本发明实施例提供的业务数据获取方法的流程图。如图1所示,该方法包括如下步骤:
步骤101,接收对第一交互控件的控制指令,确定第一交互控件对应的第一业务数据获取路径。
这里,第一交互控件包括但不限于交互按钮、访问链接等;对第一交互控件的控制指令的输入方式包括但不限于语音输入方式、触控输入方式等,触控输入方式可以为通过点击操作、按压操作等实现输入的方式。
需要说明的是,第一交互控件可以属于电子设备上安装的某个软件,除了第一交互控件之外,该软件还可以具有其他交互控件,该软件中的每一交互控件与相应业务数据获取路径之间的对应关系均可以被预先存储在配置表(例如下文中的第一配置表)中;其中,任一交互控件对应的业务数据获取路径为用于获取与该交互控件关联的业务数据的路径,任一交互控件对应的业务数据获取路径的条数可以为一条、两条或者两条以上。
在接收到对第一交互控件的控制指令的情况下,可以根据预先存储的配置表,确定第一交互控件所对应的第一业务数据获取路径。具体地,第一业务数据获取路径可以由多个业务字段组成;其中,业务字段可以利用包名、类名和成员名进行表征;或者,业务字段可以利用类名和成员名进行表征。
举例而言,com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray可以作为一业务字段,com.pp.cloud.dynamicuicontroller.iqiyi为包名,MainActivity为类名,mArray为成员名;再例如,com.pp.cloud.iqiyi.iqiyi.MainActivity.integer可以作为一业务字段,com.pp.cloud.iqiyi.iqiyi.MainActivity为类名,integer为成员名。
步骤102,确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,第一业务字段组中的每一业务字段均位于第一映射表中,第一映射表中记录有业务字段与混淆字段之间的映射关系。
这里,在确定出第一业务数据获取路径之后,可以根据第一映射表,确定第一业务字段组。具体地,针对组成第一业务数据获取路径的多个业务字段中的每一业务字段,可以判断其是否位于第一映射表中,若判断结果为是,则可以将该业务字段作为第一业务字段组中的业务字段,否则,不将该业务字段作为第一业务字段组中的业务字段。
步骤103,获取第一混淆字段组;其中,第一混淆字段组中包括第一业务字段组中的每一业务字段所映射的混淆字段。
这里,第一混淆字段组中的混淆字段与第一业务字段组中的业务字段之间为一一映射的关系。
需要说明的是,获取第一混淆字段组的具体实现形式多样,为了布局清楚,后续进行举例介绍。
步骤104,将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径。
由于第一混淆字段组中的混淆字段与第一业务字段组中的业务字段之间为一一映射的关系,在步骤104中,针对组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的任一业务字段,可以根据该一一映射的关系,将该业务字段替换为其所映射的混淆字段,以得到第二业务数据获取路径。
假设第一交互控件对应的第一业务数据获取路径具体为:$this-$context-com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray,第一业务字段组中仅包括一个业务字段,该业务字段具体为com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray,第一混淆字段组中仅包括一个混淆字段(即该业务字段所映射的混淆字段),该混淆字段具体为com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.a,那么,可以将组成第一业务数据获取路径的多个业务字段中的com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray替换为com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.a,以实现第一业务数据获取路径的更新,从而得到第二业务数据获取路径,第二业务数据获取路径具体为$this-$context-com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.a。
步骤105,基于第二业务数据获取路径,以反射方式获取相应的业务数据。
这里,以第二业务数据获取路径为$this-$context-com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.a的情况为例,以反射方式获取业务数据的流程为:先拿到this,通过this反射拿到context,再通过context反射拿到a,之后基于a获取业务数据。
需要说明的是,现有技术中,由于不考虑代码混淆且第一业务数据获取路径为$this-$context-com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray,以反射方式获取业务数据的流程为:先拿到this,通过this反射拿到context,再通过context反射拿到mArray,之后基于mArray获取业务数据。由于mArray发生了混淆,现有技术中无法获取到业务数据。
本发明实施例中,在接收到对第一交互控件的控制指令的情况下,可以确定第一交互控件对应的第一业务数据获取路径,确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组。接下来,可以获取包括第一业务字段组中的每一业务字段所映射的混淆字段的第一混淆字段组,将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径。最后,可以基于第二业务数据获取路径,以反射方式获取相应的业务数据。可见,本发明实施例中,在获取业务数据时,并不是直接基于第一业务数据获取路径进行反射,而是基于第二业务数据获取路径进行反射,那么,对于发生了混淆的字段,电子设备通过反射获取业务数据时,利用的是混淆后的字段,而不是混淆前的字段,因此,与现有技术相比,本发明实施例能够提高成功获取业务数据的可能性。
可选地,获取第一混淆字段组,包括:
根据第一映射表,确定第一业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,第一混淆字段组中包括根据第一映射表确定出的混淆字段。
具体地,假设第一业务字段组中包括三个业务字段,分别为业务字段1、业务字段2、业务字段3,那么,可以根据第一映射表,分别确定业务字段1、业务字段2、业务字段3所映射的混淆字段。假设根据第一映射表,确定出业务字段1所映射的混淆字段为混淆字段1,业务字段2所映射的混淆字段为混淆字段2,业务字段3所映射的混淆字段为混淆字段3,则获取的第一混淆字段组中可以包括混淆字段1、混淆字段2和混淆字段3。
可见,本实施例中,利用第一映射表中记录的映射关系,能够非常便捷地获取到第一混淆字段组。
可选地,第一映射表存储于第一交互控件所属软件所对应的软件安装包中;
将第一业务字段组划分为第一子业务字段组和第二子业务字段组;其中,第一子业务字段组中的每一业务字段均位于第二映射表中,第二子业务字段组中的每一业务字段均不位于第二映射表中,第二映射表中记录有业务字段与混淆字段之间的映射关系,第二映射表中的任一映射关系均为第一服务器下发给电子设备的;
根据第二映射表,确定第一子业务字段组中的每一业务字段所映射的混淆字段;
根据第一映射表,确定第二子业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,第一混淆字段组中包括根据第二映射表确定出的混淆字段以及根据第一映射表确定出的混淆字段。
需要指出的是,为了获得第一交互控件所属软件所对应的软件安装包,应用开发人员需要先为电子设备提供用于生成该软件安装包的代码文件;其中,该软件安装包可以为安卓安装包(AndroidPackage,APK),该软件安装包能够提供聊天功能、发帖功能、文件分享功能等。
可选地,在应用开发人员提供代码文件之前,应用开发人员可以确定待提供的代码文件中,后续会采用代码混淆技术进行混淆的业务字段,并给所确定的业务字段添加混淆类型注解这种特定类型(该类型可以用DotMember进行表征)的注解,以通过这种特定类型的注解,对后续会采用代码混淆技术进行混淆的业务字段进行有效地指示。之后,应用开发人员将添加了注解的代码文件提供给电子设备。
在电子设备获得应用开发人员提供的代码文件之后,电子设备会进行代码文件的编译。可以理解的是,编译是将高级语言翻译成计算机可识别的二进制语言的过程,在采用安卓系统时,编译过程中一般会进行代码混淆。
在代码文件的编译过程中,针对代码文件中添加有特定类型的注解的每一业务字段,可以记录其与对其进行混淆后得到的混淆字段之间的映射关系于一映射关系集中。
举例而言,假设com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray这个业务字段添加有特定类型的注解,且对这个业务字段进行混淆后,得到的为com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.a这个混淆字段,那么,电子设备可以将这个业务字段与这个混淆字段之间的映射关系存储至映射关系集中。
再例如,假设com.pp.cloud.iqiyi.iqiyi.MainActivity.integer这个业务字段添加有特定类型的注解,且对这个业务字段进行混淆后,得到的为com.pp.cloud.iqiyi.iqiyi.MainActivity.I这个混淆字段,那么,电子设备可以将这个业务字段与这个混淆字段之间的映射关系存储至映射关系集中。
通过编译过程,可以得到第一交互控件所属软件所对应的软件安装包,并且,记录有映射关系集中的每一映射关系的第一映射表可以一并封装至该软件安装包中,这样,该软件安装包中能够存储有第一映射表,第一映射表中可以具有下面的表1所示的映射关系。
表1
需要说明的是,机器运行过程中可能发生差错,这样,第一映射表中可能存在错误的映射关系,如果后续依据错误的映射关系获取业务数据,则仍可能出现业务数据获取失败的情况。
有鉴于此,电子设备可以设置有用于与第一服务器通信的目标接口(其也可以称为后台配置接口),第一服务器可以针对第一映射表中错误的映射关系,对应下发正确的映射关系。具体地,第一服务器下发的映射关系可以用下面的代码进行表征:
由上述代码可知,第一服务器下发的映射关系中,业务字段本身的类名为com.pp.cloud.iqiyi.iqiyi.MainActivity,业务字段本身的成员名为integer,混淆字段的类名为com.pp.cloud.iqiyi.iqiyi.MainActivity,混淆字段的成员名为l。容易看出,第一服务器下发的映射关系中包括混淆后类名、原始类名、混淆后成员名、原始成员名,那么,第一服务器下发的每一映射关系可以为一自定义实体ClassNode,其包括class成员和member成员,member成员由MemberNode构成,MemberNode包括成员名。
电子设备可以从目标接口接收到第一服务器下发的映射关系,电子设备可以存储所接收的映射关系至本地的第二映射表。
本实施例中,在确定出第一业务字段组之后,可以遍历第一业务字段组中的业务字段,以判断第一业务字段组中是否存在位于第二映射表中的业务字段。如果判断结果为第一业务字段组中存在位于第二映射表中的业务字段,可以认为第一映射表中存在错误的映射关系,那么,电子设备可以对第一业务字段组进行划分,以得到第一子业务字段组和第二子业务字段组,第一子业务字段组中的每一业务字段均位于第二映射表中,而第二子业务字段组中的每一业务字段均不位于第二映射表中。
之后,根据第二映射表,可以便捷地确定出第一子业务字段组中的每一业务字段所映射的混淆字段,根据第一映射表,可以便捷地确定出第二子业务字段组中的每一业务字段所映射的混淆字段,再之后,可以获取包括根据第二映射表确定出的混淆字段以及根据第一映射表确定出的混淆字段的第一混淆字段组。
为了便于理解,下面以一个具体的例子进行说明。
这里,第二映射表中可以包括下面的表2中所示的映射关系,第一映射表中可以包括上面的表1中所示的映射关系。
表2
假设com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray和com.pp.cloud.iqiyi.iqiyi.MainActivity.integer这两个业务字段均位于第一业务字段组中,很明显,com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray位于第二映射表中,com.pp.cloud.iqiyi.iqiyi.MainActivity.integer不位于第二映射表中,那么,对第一业务字段组进行划分后,得到的第一子业务字段组中包括com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray,得到的第二子业务字段组中包括com.pp.cloud.iqiyi.iqiyi.MainActivity.integer。
接下来,可以根据上面的表2,确定com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.mArray所映射的混淆字段,确定出的混淆字段为com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.d;还可以根据上面的表1,确定com.pp.cloud.iqiyi.iqiyi.MainActivity.integer所映射的混淆字段,确定出的混淆字段为com.pp.cloud.iqiyi.iqiyi.MainActivity.I。之后,可以获取包括com.pp.cloud.dynamicuicontroller.iqiyi.MainActivity.d以及com.pp.cloud.iqiyi.iqiyi.MainActivity.I的第一混淆字段组。
可见,本实施例中,基于从目标接口接收的,业务字段与混淆字段之间的映射关系,能够判定第一映射表中的映射关系是否均正确,并在第一映射表中中存在错误的映射关系的情况下,结合第一映射表和第二映射表来确定第一混淆字段组,以保证确定出的第一混淆字段组的可靠性,从而能够进一步提高成功获取业务数据的可能性。
需要说明的是,在遍历第一业务字段组中的业务字段,以判断第一业务字段组中是否存在位于第二映射表中的业务字段之后,如果判断结果为第一业务字段组中不存在位于第二映射表中的业务字段,可以认为第一映射表中的映射关系均是正确的,那么,电子设备可以直接根据第一映射表,确定第一业务字段组中的每一业务字段所映射的混淆字段,并得到包括根据第一映射表确定的混淆字段的第一混淆字段组。
可选地,确定第一交互控件对应的第一业务数据获取路径,包括:
根据第一配置表,确定第一交互控件对应的第一业务数据获取路径;其中,第一配置表中记录有交互控件与业务数据获取路径之间的对应关系,第一配置表存储于第一交互控件所属软件所对应的软件安装包中;
接收对第一交互控件的控制指令之后,该方法还包括:
根据第二配置表,确定第一交互控件对应的第三业务数据获取路径;其中,第二配置表中记录有交互控件与业务数据获取路径之间的对应关系,第二配置表中的任一对应关系均为第二服务器下发给电子设备的;
基于第三业务数据获取路径,以反射方式获取相应的业务数据。
这里,第二服务器与上文中的第一服务器既可以为相同的服务器,也可以为不同的服务器,为了便于理解,本实施例中均以第一服务器和第二服务器为相同的服务器的情况为例进行说明。
需要说明的是,根据第一配置表,确定第一交互控件对应的第一业务数据获取路径的具体实施过程参照上述实施例中根据配置表,确定第一业务数据获取路径的过程即可,在此不再赘述;得到第一交互控件所属软件所对应的软件安装包的具体实施过程也参照上文中的说明即可,在此也不再赘述。
需要指出的是,根据软件安装包中存储的第一配置表,能够非常便捷地确定出第一业务数据获取路径,但是,如果仅仅依赖于第一配置表来确定业务数据获取路径,在软件安装包安装好之后,基于对第一交互控件的控制指令,能够获取到的业务数据是固定的,例如仅能固定实现第一类型的业务数据的获取。但是,在一些情况下,软件需求方存在特定的需求,例如基于对第一交互控件的控制指令,软件需求方希望能够同时实现第一类型的业务数据和第二类型的业务数据的获取。
有鉴于此,本实施例中,第二服务器可以根据软件需求方的需求,向电子设备下发第一交互控件与相应业务数据获取路径(其用于获取第二类型的业务数据)之间的对应关系。电子设备可以从目标接口接收到第二服务器下发的对应关系,电子设备可以存储所接收的对应关系至本地的第二配置表。
这样,在接收到对第一交互控件的控制指令的情况下,可以根据第一配置表,确定第一业务数据获取路径,以便于利用通过第一业务数据获取路径所得到的第二业务数据获取路径,实现第一类型的业务数据的获取。在接收到对第一交互控件的控制指令的情况下,还可以遍历第二配置表,以判断第二配置表中是否存在第一交互控件对应的业务数据获取路径,很明显,判断结果为存在,因此,可以从第二配置表中获取第一交互控件对应的业务数据获取路径,将该业务数据获取路径作为第三业务数据获取路径,并基于第三业务数据获取路径,以反射方式实现第二类型的业务数据的获取。
具体地,假设第一交互控件为J,在接收到对J的控制指令的情况下,可以根据第一配置表,确定J对应的业务数据获取路径,若该业务数据获取路径为L1,则L1相当于上文中的第一业务数据获取路径,之后,可以基于L1,得到作为第二业务数据获取路径的L2,并基于L2,以反射方式得到第一类型的业务数据。另外,还可以判断第二配置表是否存在J对应的业务数据获取路径,若判断结果为存在,且第二配置表中J对应的业务数据获取路径为L3,则L3相当于上文中的第三业务数据获取路径,之后,可以基于L3,以反射方式得到第二类型的业务数据。容易看出,通过对J的控制指令,能够同时获取到第一类型的业务数据和第二类型的业务数据,以满足软件需求方的需求。
可见,本实施例中,基于从目标接口接收的,交互控件与业务数据获取路径之间的对应关系,可以动态添加业务数据获取路径,后续可以结合第一配置表和第二配置表来进行业务数据的获取,从而满足软件需求方的需求。
综上,如图2所示,本实施例通过定义注解,可以指示代码文件中会发生混淆的业务字段,通过识别注解的成员,可以自动生成相应的映射关系,该映射关系可以以自定义实体ClassNode形式进行存储,另外,服务器也可以通过接口动态下发映射关系,该映射关系也可以以自定义实体ClassNode形式进行存储,之后,可以基于通过注解生成的映射关系,通过接口下发的映射关系,以及配置表(即第一配置表和第二配置表),再结合反射技术进行业务数据的获取,这样一方面可以通过注解进行配置,以简化应用开发人员的配置工作,另一方面通过动态下发对应关系,可以解决动态性问题,再一方面不需要在后台处理混淆即可成功获取业务数据,能够简化后台程序的复杂度。
下面对本发明实施例提供的业务数据获取装置进行说明。
参见图3,图中示出了本发明实施例提供的业务数据获取装置300的结构框图。业务数据获取装置300运行于电子设备,如图3所示,业务数据获取装置300包括:
第一确定模块301,用于接收对第一交互控件的控制指令,确定第一交互控件对应的第一业务数据获取路径;
第二确定模块302,用于确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,第一业务字段组中的每一业务字段均位于第一映射表中,第一映射表中记录有业务字段与混淆字段之间的映射关系;
第一获取模块303,用于获取第一混淆字段组;其中,第一混淆字段组中包括第一业务字段组中的每一业务字段所映射的混淆字段;
第二获取模块304,用于将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
第三获取模块305,用于基于第二业务数据获取路径,以反射方式获取相应的业务数据。
可选地,第一获取模块303,包括:
第一确定单元,用于根据第一映射表,确定第一业务字段组中的每一业务字段所映射的混淆字段;
第一获取单元,用于获取第一混淆字段组;其中,第一混淆字段组中包括根据第一映射表确定出的混淆字段。
可选地,第一映射表存储于第一交互控件所属软件所对应的软件安装包中;
第一获取模块303,包括:
划分单元,用于将第一业务字段组划分为第一子业务字段组和第二子业务字段组;其中,第一子业务字段组中的每一业务字段均位于第二映射表中,第二子业务字段组中的每一业务字段均不位于第二映射表中,第二映射表中记录有业务字段与混淆字段之间的映射关系,第二映射表中的任一映射关系均为第一服务器下发给电子设备的;
第二确定单元,用于根据第二映射表,确定第一子业务字段组中的每一业务字段所映射的混淆字段;
第三确定单元,用于根据第一映射表,确定第二子业务字段组中的每一业务字段所映射的混淆字段;
第二获取单元,用于获取第一混淆字段组;其中,第一混淆字段组中包括根据第二映射表确定出的混淆字段以及根据第一映射表确定出的混淆字段。
可选地,如图4所示,第一确定模块301,具体用于:
根据第一配置表,确定第一交互控件对应的第一业务数据获取路径;其中,第一配置表中记录有交互控件与业务数据获取路径之间的对应关系,第一配置表存储于第一交互控件所属软件所对应的软件安装包中;
业务数据获取装置300还包括:
第三确定模块311,用于在接收对第一交互控件的控制指令之后,根据第二配置表,确定第一交互控件对应的第三业务数据获取路径;其中,第二配置表中记录有交互控件与业务数据获取路径之间的对应关系,第二配置表中的任一对应关系均为第二服务器下发给电子设备的;
第四获取模块312,用于基于第三业务数据获取路径,以反射方式获取相应的业务数据。
可见,与现有技术相比,本发明实施例能够提高成功获取业务数据的可能性。
下面对本发明实施例提供的电子设备进行说明。
参见图5,图中示出了本发明实施例提供的电子设备500的结构示意图。如图5所示,电子设备500包括:处理器501、存储器503、用户接口504和总线接口。
处理器501,用于读取存储器503中的程序,执行下列过程:
接收对第一交互控件的控制指令,确定第一交互控件对应的第一业务数据获取路径;
确定组成第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,第一业务字段组中的每一业务字段均位于第一映射表中,第一映射表中记录有业务字段与混淆字段之间的映射关系;
获取第一混淆字段组;其中,第一混淆字段组中包括第一业务字段组中的每一业务字段所映射的混淆字段;
将组成第一业务数据获取路径的多个业务字段中,第一业务字段组中的每一业务字段更新为第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
基于第二业务数据获取路径,以反射方式获取相应的业务数据。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器501代表的一个或多个处理器和存储器503代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。针对不同的用户设备,用户接口504还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器501负责管理总线架构和通常的处理,存储器503可以存储处理器501在执行操作时所使用的数据。
可选地,处理器501,具体用于:
根据第一映射表,确定第一业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,第一混淆字段组中包括根据第一映射表确定出的混淆字段。
可选地,第一映射表存储于第一交互控件所属软件所对应的软件安装包中;
处理器501,具体用于:
将第一业务字段组划分为第一子业务字段组和第二子业务字段组;其中,第一子业务字段组中的每一业务字段均位于第二映射表中,第二子业务字段组中的每一业务字段均不位于第二映射表中,第二映射表中记录有业务字段与混淆字段之间的映射关系,第二映射表中的任一映射关系均为第一服务器下发给电子设备的;
根据第二映射表,确定第一子业务字段组中的每一业务字段所映射的混淆字段;
根据第一映射表,确定第二子业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,第一混淆字段组中包括根据第二映射表确定出的混淆字段以及根据第一映射表确定出的混淆字段。
可选地,处理器501,具体用于:
根据第一配置表,确定第一交互控件对应的第一业务数据获取路径;其中,第一配置表中记录有交互控件与业务数据获取路径之间的对应关系,第一配置表存储于第一交互控件所属软件所对应的软件安装包中;
处理器501,还用于:
在接收对第一交互控件的控制指令之后,根据第二配置表,确定第一交互控件对应的第三业务数据获取路径;其中,第二配置表中记录有交互控件与业务数据获取路径之间的对应关系,第二配置表中的任一对应关系均为第二服务器下发给电子设备的;
基于第三业务数据获取路径,以反射方式获取相应的业务数据。
可见,与现有技术相比,本发明实施例能够提高成功获取业务数据的可能性。
优选地,本发明实施例还提供一种电子设备,包括处理器501,存储器503,存储在存储器503上并可在所述处理器501上运行的计算机程序,该计算机程序被处理器501执行时实现上述业务数据获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述业务数据获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (8)
1.一种业务数据获取方法,其特征在于,所述方法执行于电子设备,包括:
接收对第一交互控件的控制指令,确定所述第一交互控件对应的第一业务数据获取路径;
确定组成所述第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,所述第一业务字段组中的每一业务字段均位于第一映射表中,所述第一映射表中记录有业务字段与混淆字段之间的映射关系;
获取第一混淆字段组;其中,所述第一混淆字段组中包括所述第一业务字段组中的每一业务字段所映射的混淆字段;
将组成所述第一业务数据获取路径的多个业务字段中,所述第一业务字段组中的每一业务字段更新为所述第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
基于所述第二业务数据获取路径,以反射方式获取相应的业务数据;
其中,所述第一映射表存储于所述第一交互控件所属软件所对应的软件安装包中;
所述获取第一混淆字段组,包括:
将所述第一业务字段组划分为第一子业务字段组和第二子业务字段组;其中,所述第一子业务字段组中的每一业务字段均位于第二映射表中,所述第二子业务字段组中的每一业务字段均不位于所述第二映射表中,所述第二映射表中记录有业务字段与混淆字段之间的映射关系,所述第二映射表中的任一映射关系均为第一服务器下发给所述电子设备的;
根据所述第二映射表,确定所述第一子业务字段组中的每一业务字段所映射的混淆字段;
根据所述第一映射表,确定所述第二子业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,所述第一混淆字段组中包括根据所述第二映射表确定出的混淆字段以及根据所述第一映射表确定出的混淆字段。
2.根据权利要求1所述的方法,其特征在于,所述获取第一混淆字段组,包括:
根据所述第一映射表,确定所述第一业务字段组中的每一业务字段所映射的混淆字段;
获取第一混淆字段组;其中,所述第一混淆字段组中包括根据所述第一映射表确定出的混淆字段。
3.根据权利要求1所述的方法,其特征在于,
所述确定所述第一交互控件对应的第一业务数据获取路径,包括:
根据第一配置表,确定所述第一交互控件对应的第一业务数据获取路径;其中,所述第一配置表中记录有交互控件与业务数据获取路径之间的对应关系,所述第一配置表存储于所述第一交互控件所属软件所对应的软件安装包中;
所述接收对第一交互控件的控制指令之后,所述方法还包括:
根据第二配置表,确定所述第一交互控件对应的第三业务数据获取路径;其中,所述第二配置表中记录有交互控件与业务数据获取路径之间的对应关系,所述第二配置表中的任一对应关系均为第二服务器下发给所述电子设备的;
基于所述第三业务数据获取路径,以反射方式获取相应的业务数据。
4.一种业务数据获取装置,其特征在于,所述装置运行于电子设备,包括:
第一确定模块,用于接收对第一交互控件的控制指令,确定所述第一交互控件对应的第一业务数据获取路径;
第二确定模块,用于确定组成所述第一业务数据获取路径的多个业务字段中的第一业务字段组;其中,所述第一业务字段组中的每一业务字段均位于第一映射表中,所述第一映射表中记录有业务字段与混淆字段之间的映射关系;
第一获取模块,用于获取第一混淆字段组;其中,所述第一混淆字段组中包括所述第一业务字段组中的每一业务字段所映射的混淆字段;
第二获取模块,用于将组成所述第一业务数据获取路径的多个业务字段中,所述第一业务字段组中的每一业务字段更新为所述第一混淆字段组中的相应混淆字段,以得到第二业务数据获取路径;
第三获取模块,用于基于所述第二业务数据获取路径,以反射方式获取相应的业务数据;
其中,所述第一映射表存储于所述第一交互控件所属软件所对应的软件安装包中;
所述第一获取模块,包括:
划分单元,用于将所述第一业务字段组划分为第一子业务字段组和第二子业务字段组;其中,所述第一子业务字段组中的每一业务字段均位于第二映射表中,所述第二子业务字段组中的每一业务字段均不位于所述第二映射表中,所述第二映射表中记录有业务字段与混淆字段之间的映射关系,所述第二映射表中的任一映射关系均为第一服务器下发给所述电子设备的;
第二确定单元,用于根据所述第二映射表,确定所述第一子业务字段组中的每一业务字段所映射的混淆字段;
第三确定单元,用于根据所述第一映射表,确定所述第二子业务字段组中的每一业务字段所映射的混淆字段;
第二获取单元,用于获取第一混淆字段组;其中,所述第一混淆字段组中包括根据所述第二映射表确定出的混淆字段以及根据所述第一映射表确定出的混淆字段。
5.根据权利要求4所述的装置,其特征在于,所述第一获取模块,包括:
第一确定单元,用于根据所述第一映射表,确定所述第一业务字段组中的每一业务字段所映射的混淆字段;
第一获取单元,用于获取第一混淆字段组;其中,所述第一混淆字段组中包括根据所述第一映射表确定出的混淆字段。
6.根据权利要求4所述的装置,其特征在于,
所述第一确定模块,具体用于:
根据第一配置表,确定所述第一交互控件对应的第一业务数据获取路径;其中,所述第一配置表中记录有交互控件与业务数据获取路径之间的对应关系,所述第一配置表存储于所述第一交互控件所属软件所对应的软件安装包中;
所述装置还包括:
第三确定模块,用于在接收对第一交互控件的控制指令之后,根据第二配置表,确定所述第一交互控件对应的第三业务数据获取路径;其中,所述第二配置表中记录有交互控件与业务数据获取路径之间的对应关系,所述第二配置表中的任一对应关系均为第二服务器下发给所述电子设备的;
第四获取模块,用于基于所述第三业务数据获取路径,以反射方式获取相应的业务数据。
7.一种电子设备,其特征在于,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至3中任一项所述的业务数据获取方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的业务数据获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911323809.7A CN113010364B (zh) | 2019-12-20 | 2019-12-20 | 一种业务数据获取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911323809.7A CN113010364B (zh) | 2019-12-20 | 2019-12-20 | 一种业务数据获取方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010364A CN113010364A (zh) | 2021-06-22 |
CN113010364B true CN113010364B (zh) | 2023-08-01 |
Family
ID=76382099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911323809.7A Active CN113010364B (zh) | 2019-12-20 | 2019-12-20 | 一种业务数据获取方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010364B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967415A (zh) * | 2017-12-11 | 2018-04-27 | 北京奇虎科技有限公司 | 资源混淆保护方法、系统及终端装置 |
CN108664389A (zh) * | 2017-03-31 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置及终端 |
CN108733379A (zh) * | 2018-05-28 | 2018-11-02 | 常熟理工学院 | 基于dex字节码抽离映射混淆的安卓应用加固方法 |
CN109522744A (zh) * | 2018-11-06 | 2019-03-26 | 北京指掌易科技有限公司 | 一种Android系统文件数据隔离保护方法 |
CN110084005A (zh) * | 2019-05-06 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种代码的处理方法及装置 |
CN110135129A (zh) * | 2019-04-12 | 2019-08-16 | 平安科技(深圳)有限公司 | 代码段保护方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102398B2 (en) * | 2009-06-01 | 2018-10-16 | Ab Initio Technology Llc | Generating obfuscated data |
EP2290547B1 (en) * | 2009-08-26 | 2012-12-19 | Nxp B.V. | Method of obfuscating a code |
US9047448B2 (en) * | 2013-01-14 | 2015-06-02 | Apple Inc. | Branch auditing in a computer program |
US20190171749A1 (en) * | 2017-12-04 | 2019-06-06 | Sap Se | Data integration framework for multiple data providers using service url |
-
2019
- 2019-12-20 CN CN201911323809.7A patent/CN113010364B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664389A (zh) * | 2017-03-31 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置及终端 |
CN107967415A (zh) * | 2017-12-11 | 2018-04-27 | 北京奇虎科技有限公司 | 资源混淆保护方法、系统及终端装置 |
CN108733379A (zh) * | 2018-05-28 | 2018-11-02 | 常熟理工学院 | 基于dex字节码抽离映射混淆的安卓应用加固方法 |
CN109522744A (zh) * | 2018-11-06 | 2019-03-26 | 北京指掌易科技有限公司 | 一种Android系统文件数据隔离保护方法 |
CN110135129A (zh) * | 2019-04-12 | 2019-08-16 | 平安科技(深圳)有限公司 | 代码段保护方法、装置、计算机设备和存储介质 |
CN110084005A (zh) * | 2019-05-06 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种代码的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113010364A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046023B (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
CN110009321B (zh) | 一种基于区块链智能合约的转账方法及系统 | |
CN109933404B (zh) | 一种基于区块链智能合约的编解码方法及系统 | |
CN110048846B (zh) | 一种基于区块链智能合约的签名验证方法及系统 | |
KR102024694B1 (ko) | 블록체인 기반의 다수의 서비스 노드를 사용하는 탈중앙화 서비스 플랫폼 | |
US10127218B2 (en) | Object templates for data-driven applications | |
CN108133007A (zh) | 一种数据同步方法和系统 | |
CN108345531A (zh) | 一种测试方法、装置及系统 | |
CN106462407A (zh) | 用于语言无关调度的代码服务 | |
WO2019223136A1 (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN110046991B (zh) | 一种基于区块链智能合约的数据处理方法及系统 | |
CN107797996B (zh) | 一种词条翻译方法及装置 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN109445770B (zh) | 一种错误码的处理方法、装置、介质及设备 | |
CN114640614A (zh) | Rpc接口自动化测试方法、系统、电子设备、介质及产品 | |
CN114371914A (zh) | 容器ip地址配置方法、装置、存储介质及电子设备 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN113010364B (zh) | 一种业务数据获取方法、装置及电子设备 | |
CN108509553A (zh) | 一种项目文件生成方法及平台 | |
CN111880805A (zh) | 软件项目的包文件生成方法及装置、设备、存储介质 | |
CN108632348B (zh) | 一种业务校验方法和装置 | |
CN113949632B (zh) | 一种区块链的节点动态配置方法及装置 | |
CN110096543A (zh) | 应用程序的数据操作方法、装置、服务器和介质 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
CN114358936A (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 |