一种手机代码转码方法、存储介质、电子设备及系统与流程

专利2022-06-29  137


本发明涉及互联网移动端应用开发领域,具体涉及一种手机代码转码方法、存储介质、电子设备及系统。



背景技术:

计算机运行时,是不懂得人类的语言的,它只能根据既定的程序运行,而它在底层运行时,也不会识别字母、字符等等,它是通过两个状态之间的转化进行计算和运行的,比如对应数字0,1使用电路的通断,电压的高低进行表示。即计算机底层实际是以二进制运行的。

因此程序员编写完代码后,要在在计算机中执行时,通常都是通过既定的软件将代码转化为计算机能够理解的二进制代码,然后提交给计算机,计算机读取二进制代码然后运行。

随着手机移动端的快速发展,移动开发中也出现了很多需要转换的代码,但是在手机上一般使用字典类型等等结构体类型的的数据,其系统将这些字典类型转化为二进制时,一般采用对应进制表一一配对转化等等方式,但是这种转化效率不高。而随着用户对手机性能的要求越来越高,亟需一种手机转码方法能够将手机上结构类型的数据快速转码。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种手机代码转码方法、存储介质、电子设备及系统,能够快速的将手机中代码转化为二进制代码。

为达到以上目的,第一方面,本发明实施例提供一种手机代码转码方法,用于将ios系统中代码转化为二进制,其包括:

创建存储于手机内存中的结构体类型的变量;

遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index,所述标识key各不相同;

将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

作为一个优选的实施方案,

在将手机上待转码的字典类型代码存储进入所述变量中之前还包括以下步骤:

校验手机上待转码的字典类型代码是否合法。

作为一个优选的实施方案,

将手机上待转码的字典类型代码存储进入所述变量时,校验手机上待转码的字典类型代码的数据量大小是否大于所述变量:

若是,将手机上待转码的字典类型代码存储进入所述变量中通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的代码;

若否,将手机上待转码的字典类型代码按照所述变量的数据量的大小拆分为n份子代码,每次存储一份所述子代码至所述变量中,并通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的子代码,将所有所述转码后的子代码按原拆分顺序拼接得到转码后的代码,所述n为大于1的整数。

作为一个优选的实施方案,

所述以数据流的形式将所述手机上待转码的字典类型代码存储进入变量并取出得到转码后的代码。

作为一个优选的实施方案,

所述结构体类型为字典类型。

作为一个优选的实施方案,

使用ios系统中的enumerate标识keyandobjectsusingblock函数对所述字典类型的变量遍历。

作为一个优选的实施方案,

所述通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据,具体为:

创建指针变量,通过指针变量提取存储地址所对应的数据。

第二方面,本发明实施例提供一种手机代码转码系统,其包括:

创建模块,用于创建存储于手机内存中的结构体类型的变量;

索引模块,用于遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index;

转化模块,用于将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

第三方面,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。

第四方面,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。

与现有技术相比,本发明的优点在于:

本发明一种手机代码转码方法、存储介质、电子设备及系统首先建立手机内存中的存储地址映射,然后获取手机中的代码并将该代码利用手机自身存在的存储系统,直接以二进制的形式存储于手机内存中,然后通过存储地址的映射将该二进制形式的代码直接取出即可,在建立存储地址映射后,其后续对代码转化仅仅需要存储以及提取两步,十分快捷和效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面对实施例对应的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种手机代码转码方法步骤流程图;

图2为本发明一种手机代码转码系统结构示意图。

图中:1-创建模块,2-索引模块,3-转化模块。

具体实施方式

以下结合附图对本发明的实施例作进一步详细说明。

参见图1所示,本发明实施例提供一种手机代码转码方法、存储介质、电子设备及系统,其通过建立在内存中的映射关系,能够将手机上的代码通过存储转化为内存中的二进制代码,然后直接提取该二进制得到二进制转化的结构,更加快捷效率。

为达到上述技术效果,本申请的总体思路如下:

创建存储于手机内存中的结构体类型的变量;

遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index;

将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

综上所述,手机上存储系统在最底层实际上是以二进制的形式进行存储的,即各个运算过程中的存储提取是经过转化的,本发明通过手机存储系统中自带的转化系统,存储在内存中即为转化为二进制的代码,但是由于其处于手机系统的最底层,在代码层面上记过手机系统来提取是会再次被手机系统转化为存储前的代码形式。因此,在建立存储空间时,本发明首先找到该存储地址,并建立映射,在代码存储到该存储空间后,不在通过手机系统转化,而是直接通过映射关系从存储空间内抽取已经转化好的二进制代码,其实际使用的步骤为建立映射关系,后续不断将代码放进存储空间内,然后提取即可完成二进制的转化。

为了更好的理解上述技术方案,下面结合具体实施方式进行详细的说明。

实施例一

本发明实施例提供一种手机代码转码方法,其包括:

s1:创建存储于手机内存中的结构体类型的变量。

在ios系统中,代码通过申明结构体变量,在运行该代码时候,手机即会在内存中创建用于存储该结构体变量的存储空间。在手机硬件底层中,其实际存储数据的形式为二进制的,即,此处创建手机内存中的结构体的变量,实际是建立了利用手机系统将填充进该变量的代码转化为二进制存储的一个方式。

举例来说,在ios系统从通过声明来创建一个nsmutdata类型的变量,该变量的名称为buffer。

s2:遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index,所述标识key各不相同。

虽然填充进变量的代码最终会以而二进制的形式存储与手机的内存中,但是如果仍然从手机上层的手机系统中,将该内存中二进制的代码提取出来时,手机系统会重新转为为原有的代码形式。因此,需要能够从内存中将二进制形式的代码直接提取的“通道”,故,遍历建立的结构体类型的变量,然后建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index。即将机构体变量中的条目在内存中存储地址和一个标识key进行对应。当需要一个具体条目的二进制代码的时候,只需要通过该标识key即可找到该条目所在的存储地址,再通过该存储地址可以直接从手机内存中直接将二进制形式存储的代码提取出来。

需要说明的是,表示key值可以是一串字符串,也可以是一串数字,只要能够将手机中的存储地址进行一一对应,使得后续提取能够通过该key值直接提取即可。

作为一个优选的实施方案,所述通过index遍历所有key对应的存储地址,对应手机内存地址提取手机内存中的数据,具体为:

创建指针变量,通过指针变量提取存储地址所对应的数据。

即该key值通过代码中的指针变量指向以及提取,手机内存中存储地址一般是连续进行存储的,通过指针变量,代码能够通过不断加一,一一获取存储地址,并进一步提取存储于内存中的数据。

举例来说,使用ios中通用函数enumeratekeysandobjectsusingblock,对变量进行遍历,取出该结构体变量中顺序值key和存储值value。将key值强制转化为nsstring类型,同时一个ios系统中的encodeitem类型变量index,将key和value的对应关系保存至该变量中,即完成了索引index的建立。

需要说明的是,enumeratekeysandobjectsusingblock为ios系统提供的通用函数,其用于数据块模式的变量进行遍历,并返回key值与数据object的对应索引关系。

s3:将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

硬件存储信息是以二进制形式存储的,本发明则是直接提取硬件存储地址中的代码,即二进制形式存储的代码并提供给用户。如果从系统表层提取,手机会将二进制转化回原来的代码形式并提供给用户。

在完成结构体变量的创建以及存储地址的映射后,即可将代码填充进该结构体变量中,代码通过手机系统转化为二进制存储于手机的内存中,最后通过存储地址的映射关系,已知的key值,找到存储地址,再提取地址中的代码。将二进制形式的代码从手机内存中一一提取出来,即完成了手机的转化。

举例来说,构建一个encodeitem类型的变量outputdata,并建立一个指针指向索引index中存储地址,通过,取出指针指向存储地址的数值后,指针的数值加一从而指向下一存储地址,再取出下一存储地址中的数值,指针依次不断加一,不断的从手机内存中提取存储地址中对应存储的二进制代码,并将该二进制代码存储到outputdata中,完成代码的二进制转化。其加一循环可以是for循环,其循环的次数为encodeitem中索引条目的个数。

作为一个可选的实施方案,在将手机上待转码的字典类型代码存储进入所述变量中之前还包括校验手机上待转码的字典类型代码是否合法。

在待转码的字典类型的代码存储进入手机的变量中时,还需要对代码进行校验,如代码类型是否符合创建的结构体类型的变量,如果不符合可能导致代码存储后错误。

作为一个优选的实施方案,将手机上待转码的字典类型代码存储进入所述变量时,校验手机上待转码的字典类型代码的数据量大小是否大于所述变量:

若是,将手机上待转码的字典类型代码存储进入所述变量中通过index遍历所有key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的代码;

若否,将手机上待转码的字典类型代码按照所述变量的数据量的大小拆分为n份子代码,每次存储一份所述子代码至所述变量中,并通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的子代码,将所有所述转码后的子代码按原拆分顺序拼接得到转码后的代码,所述n为大于1的整数。

即需要进行转化的代码可能是很大的一批执行文件,进而在手机上创建结构体类型的变量时,可能创建的变量在手机内存里占有的大小比需要转化的代码小,即如果强行将过多的代码存储进入该手机内存,则会导致存储溢出,代码丢失,进而产生错误甚至崩溃。

在存储前进行判断后,需要进行转化的代码比存储空间小时,能够直接进行转化,十分效率快捷。需要转化的代码比存储空间大时,能够分次数进行,保证了整个步骤不会出错,更加安全可靠。

进一步的,以数据流的形式将所述手机上待转码的字典类型代码存储进入变量并取出得到转码后的代码。

即在代码实时存储进入手机内存的时候,通过建立的内存内的映射将代码实时取出,保证代码以数据流的形式通过存储进内存实时转化为二进制,通过建立的存储地址的映射实时将转化为二进制的代码从存储中提取出来,更加迅速快捷,同时不再担心代码大小超过预设的内存存储空间的大小。

作为一个优选的实施例,存储与手机内存中变量的结构体类型为ios系统中的字典类型。

进一步的,使用iso系统中的enumeratekeyandobjectsusingblock函数对所述字典类型的变量遍历。enumeratekeyandobjectsusingblock在对大量的数组进行遍历时,相对ios系统中其他诸如for-in的遍历函数,能够更加简明同时更加快捷达成遍历功能。

基于同一发明构思,本申请提供实施例二,其具体实施方式如下。

实施例二

如图2所述,本发明实施例提供一种手机代码抓马系统,其特征在于,其包括:

创建模块1,用于创建存储于手机内存中的结构体类型的变量;

索引模块2,用于遍历所述变量,建立key和所述变量中各个条目存储地址的对应关系,得到转化索引index;

转化模块3,用于将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的系统,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中系统的实施方法,所以为了说明书的简洁,在此不再详述。

基于同一发明构思,本申请提供实施例三。

实施例三

本发明第三实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种手机代码转码方法,该方法包括:

创建存储于手机内存中的结构体类型的变量;

遍历所述变量,建立key和所述变量中各个条目存储地址的对应关系,得到转化索引index;

将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

基于同一发明构思,本申请提供实施例四。

实施例四

本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、手机内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

总体来说,本发明实施例提供的一种手机代码转码方法、存储介质、电子设备及系统,其通过建立在内存中的映射关系,能够将手机上的代码通过存储转化为内存中的二进制代码,然后直接提取该二进制得到二进制转化的结构,更加快捷效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。


技术特征:

1.一种手机代码转码方法,用于将ios系统中代码转化为二进制,其特征在于,其包括:

创建存储于手机内存中的结构体类型的变量;

遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index,所述标识key各不相同;

将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

2.如权利要求1所述的方法,其特征在于:

在将手机上待转码的字典类型代码存储进入所述变量中之前还包括以下步骤:

校验手机上待转码的字典类型代码是否合法。

3.如权利要求1所述的方法,其特征在于:

将手机上待转码的字典类型代码存储进入所述变量时,校验手机上待转码的字典类型代码的数据量大小是否大于所述变量:

若是,将手机上待转码的字典类型代码存储进入所述变量中通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的代码;

若否,将手机上待转码的字典类型代码按照所述变量的数据量的大小拆分为n份子代码,每次存储一份所述子代码至所述变量中,并通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据得到转码后的子代码,将所有所述转码后的子代码按原拆分顺序拼接得到转码后的代码,所述n为大于1的整数。

4.如权利要求3所述的方法,其特征在于:

所述以数据流的形式将所述手机上待转码的字典类型代码存储进入变量并取出得到转码后的代码。

5.如权利要求1所述的方法,其特征在于:

所述结构体类型为字典类型。

6.如权利要求5所述的方法,其特征在于:

使用ios系统中的enumerate标识keyandobjectsusingblock函数对所述字典类型的变量遍历。

7.如权利要求x所述的方法,其特征在于:

所述通过index遍历所有标识key对应的存储地址,对应手机内存地址提取手机内存中的数据,具体为:

创建指针变量,通过指针变量提取存储地址所对应的数据。

8.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。

9.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。

10.一种手机代码转码系统,其特征在于:

创建模块,用于创建存储于手机内存中的结构体类型的变量;

索引模块,用于遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index;

转化模块,用于将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。

技术总结
本发明公开了一种手机代码转码方法、存储介质、电子设备及系统,涉及互联网移动端应用开发领域。其方法包括:创建存储于手机内存中的结构体类型的变量。遍历所述变量,建立标识key和所述变量中各个条目存储地址的对应关系,得到转化索引index,所述标识key各不相同。将手机上待转码的字典类型代码存储进入所述变量中,遍历所有所述标识key,根据所述索引index,获得所述待转码的字典类型代码的存储地址,根据存储地址中提取存储于手机内存中代码。本发明能够快速的将手机中代码转化为二进制代码。

技术研发人员:汪刚
受保护的技术使用者:武汉斗鱼网络科技有限公司
技术研发日:2018.11.30
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29066.html

最新回复(0)