CN112379940A - 一种可执行文件处理方法、装置、电子设备及存储介质 - Google Patents

一种可执行文件处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112379940A
CN112379940A CN202011254156.4A CN202011254156A CN112379940A CN 112379940 A CN112379940 A CN 112379940A CN 202011254156 A CN202011254156 A CN 202011254156A CN 112379940 A CN112379940 A CN 112379940A
Authority
CN
China
Prior art keywords
dynamic library
executable file
directory
storing
library
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
CN202011254156.4A
Other languages
English (en)
Other versions
CN112379940B (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.)
Goertek Techology Co Ltd
Original Assignee
Goertek Techology 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 Goertek Techology Co Ltd filed Critical Goertek Techology Co Ltd
Priority to CN202011254156.4A priority Critical patent/CN112379940B/zh
Publication of CN112379940A publication Critical patent/CN112379940A/zh
Application granted granted Critical
Publication of CN112379940B publication Critical patent/CN112379940B/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/44568Immediately runnable code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种可执行文件处理方法、装置、电子设备及计算机可读存储介质,该方法包括:获取第一动态库,并将第一动态库存入第一目录;获取利用第一动态库编译得到的可执行文件,并将可执行文件存入第一目录对应的第二目录;将可执行文件对应的动态库路径设置为第一目录,并基于动态库路径执行可执行文件;该方法通过将可执行文件对应的动态库路径设置为第一目录,可以使可执行文件在执行时不再获取安卓系统对应的原有动态库,而是自动从第一目录中获取执行所需的第一动态库,实现在安卓系统内构建Linux环境,基于Linux动态库得到的可执行文件在安卓系统中运行的目的。

Description

一种可执行文件处理方法、装置、电子设备及存储介质
技术领域
本申请涉及系统兼容技术领域,特别涉及一种可执行文件处理方法、可执行文件处理装置、电子设备及计算机可读存储介质。
背景技术
Android(即安卓)是由Google公司和开放手机联盟领导并开发的一种基于Linux的自由且开放源代码的操作系统,主要使用于移动设备。android虽然是基于Linux系统开发,但其与Linux系统也有着本质不同,出于效率等方面的考虑,Android没有采用glibc作为C库(即C标准函数库),而是采用了Google开发了一套Bionic的C库作为Android的内核库。Bionic最大的特点就是轻量,相比与glibc,其裁剪了大量库函数,但是同时也导致了linux系统的动态库无法运行在android系统中,而基于Linux动态库得到的可执行文件,例如音频处理算法等具有很强的应用价值,因此现有技术中安卓系统对可执行文件的应用受到较大限制。
因此,相关技术存在的可执行文件的应用受到较大限制的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种可执行文件处理方法、可执行文件处理装置、电子设备及计算机可读存储介质,解除了可执行文件在应用方面受到的限制。
为解决上述技术问题,本申请提供了一种可执行文件处理方法,包括:
获取第一动态库,并将所述第一动态库存入第一目录;
获取利用所述第一动态库编译得到的可执行文件,并将所述可执行文件存入所述第一目录对应的第二目录;
将所述可执行文件对应的动态库路径设置为所述第一目录,并基于所述动态库路径执行所述可执行文件。
可选地,在基于所述动态库路径执行所述可执行文件之后,还包括:
监控所述可执行文件的执行过程,判断是否出现动态库缺失错误;
若出现所述动态库缺失错误,则确定出缺失的第二动态库,并基于所述第二动态库对所述可执行文件进行更新。
可选地,所述基于所述第二动态库对所述可执行文件进行更新,包括:
获取所述第二动态库,并将所述第二动态库存入所述第一目录;
获取利用所述第一动态库和所述第二动态库编译得到的目标可执行文件,并利用所述目标可执行文件替换所述第二目录内的所述可执行文件。
可选地,所述获取第一动态库,包括:
获取初始动态库,判断所述初始动态库对应的动态库位数与处理器位数是否对应;
若所述动态库位数与所述处理器位数对应,则确定所述初始动态库为所述第一动态库。
可选地,所述将所述第一动态库存入第一目录,包括:
确定初始目录,判断所述初始目录中是否存在原始动态库;
若不存在所述原始动态库,则将所述初始目录确定为所述第一目录;
可选地,还包括:
若存在所述原始动态库,则判断是否存在与任一所述第一动态库名称相同的目标原始动态库;
若存在所述目标原始动态库,则确定所述初始目录不为所述第一目录;
若不存在所述目标原始动态库,则确定所述初始目录为所述第一目录。
可选地,将所述可执行文件存入所述第一目录对应的第二目录,包括:
在所述第一目录的上级目录下生成所述第二目录;
将所述可执行文件存入所述第二目录。
本申请还提供了一种可执行文件处理装置,包括:
动态库获取模块,用于获取第一动态库,并将所述第一动态库存入第一目录;
可执行文件获取模块,用于获取利用所述第一动态库编译得到的可执行文件,并将所述可执行文件存入所述第一目录对应的第二目录;
执行模块,用于将所述可执行文件对应的动态库路径设置为所述第一目录,并基于所述动态库路径执行所述可执行文件。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的可执行文件处理方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的可执行文件处理方法。
本申请提供的可执行文件处理方法,获取第一动态库,并将第一动态库存入第一目录;获取利用第一动态库编译得到的可执行文件,并将可执行文件存入第一目录对应的第二目录;将可执行文件对应的动态库路径设置为第一目录,并基于动态库路径执行可执行文件。
可见,该方法获取的第一动态库为与安卓系统不兼容的动态库,即Linux动态库,在获取后将其存储于第一目录。可执行文件基于第一动态库编译得到,为了使其能够正常执行,将其存入与第一目录对应的第二目录。通过将可执行文件对应的动态库路径设置为第一目录,可以使可执行文件在执行时不再获取安卓系统对应的原有动态库,而是自动从第一目录中获取执行所需的第一动态库,实现在安卓系统内构建Linux环境的效果。由于在安卓系统中,各个应用执行时分别创建独立的数据空间,各个应用之间相互没有影响。因此在可执行文件执行时既构建了Linux环境以便正常运行,同时还不会影响其他的应用基于原有动态库执行,实现了基于Linux动态库得到的可执行文件在安卓系统中运行的目的,使得安卓系统对可执行文件的应用不再受到限制,解决了相关技术存在的可执行文件的应用受到较大限制的问题。
此外,本申请还提供了一种可执行文件处理装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种可执行文件处理方法流程图;
图2为本申请实施例提供的一种具体的可执行文件处理过程时序图;
图3为本申请实施例提供的一种可执行文件处理装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种可执行文件处理方法流程图。该方法包括:
S101:获取第一动态库,并将第一动态库存入第一目录。
本实施例中,可以由指定的电子设备执行可执行文件处理的步骤,需要说明的是,该指定的电子设备具有安卓系统。电子设备的具体形式不做限定,例如可以为智能手机或智能穿戴设备。由于电子设备不具有Linux系统,因此其无法运行基于Linux系统对应的动态库编译得到的可执行文件,导致可执行文件在电子设备上的应用受到限制。
动态库是包含可由多个程序同时使用的代码和数据的库,其可以在程序运行时加载,为程序的运行提供底层支持。第一动态库为Linux系统对应的动态库,由于动态库在Linux系统下的后缀为.so,因此动态库还可以被称为so库。在Linux系统中,第一动态库一般被存储于Linux系统/libs目录下。不同的第一动态库可以具有不同的位数,例如为arm32位或arm64位,分别与32位的处理器和64位的处理器兼容。第一动态库的具体数量和内容不做限定,通过获取第一动态库并将其在电子设备中保存,可以在后续执行可执行文件时使其基于第一动态库正常工作。第一目录为第一动态库的存储目录,其可以为已有目录,或者可以新建一个目录作为第一目录。本实施例并不限定第一目录的确定方式,例如可以根据预先设置确定第一目录,或者可以在获取第一动态库时同时获取第一目录信息,并根据第一目录信息确定第一目录。
S102:获取利用第一动态库编译得到的可执行文件,并将可执行文件存入第一目录对应的第二目录。
可执行文件为基于第一动态库编译得到,且与安卓系统兼容的文件,其具体内容和编译方式不做限定,例如在一种可行的实施方式中,可以利用交叉编译器在非安卓系统内进行编译,得到可以在安卓系统内执行的可执行文件。需要说明的是,由于安卓系统的编译路经和执行路径相对位置,因此在编译得到可执行文件时,例如在利用计算机编译得到可执行文件时,需要将第一动态库在计算机中与第一目录相对应的位置进行保存,例如当第一目录为/system/libs/linuxLIB时,编译可执行文件所指定的编译路径必须包含相同路径,即/XXXX/XXXX/system/libs/linuxLIB。其中,路径中的XXXX为具体的本地路径,其具体内容可以根据需要设置。基于该编译路径得到的可执行文件才能够正常执行。在获取到可执行文件后,需要将其存入第一目录对应的第二目录,第二目录与第一目录处于同级目录下,以便可执行文件能够正常运行。
需要说明的是,第一目录和第二目录具有对应关系,但是二者之间没有确定的先后顺序,本实施例并不限定S101步骤和S102步骤之间的执行顺序。在第一目录和第二目录没有被预先确定的情况下,可以先执行S101步骤,确定第一目录,并根据第一目录确定第二目录,然后执行S102步骤。或者可以先执行S102步骤,确定第二目录,并根据第二目录确定第一目录,然后执行S101步骤。或者可以同时执行S101步骤和S102步骤,在某一步骤先执行完确定对应的目录后,基于其确定另一个目录。在第一目录和第二目录被预先确定的情况下,则上述三种执行顺序同样可以正常实施。
S103:将可执行文件对应的动态库路径设置为第一目录,并基于动态库路径执行可执行文件。
在安卓系统中,各个进程的运行是相互独立,即各个进行对应的数据空间相互独立,可执行文件同样可以独立于安卓系统进行运行。在可执行文件运行时,会自动创建一个新的进程,通过在该进程对应的系统空间内调用第一动态库搭建Linux环境,使得可执行文件能够正常运行。动态库路径用于指示程序运行时所需动态库的位置,由于安卓系统中可执行文件运行时会自动调用安卓系统对应的动态库,而可执行文件无法基于安卓系统对应的动态库运行。因此在执行可执行文件时,需要将其对应的动态库路径设置为第一目录,进而允许可执行文件根据动态库路径调用第一动态库运行
应用本申请实施例提供的可执行文件处理方法,获取的第一动态库为与安卓系统不兼容的动态库,即Linux动态库,在获取后将其存储于第一目录。可执行文件基于第一动态库编译得到,为了使其能够正常执行,将其存入与第一目录对应的第二目录。通过将可执行文件对应的动态库路径设置为第一目录,可以使可执行文件在执行时不再获取安卓系统对应的原有动态库,而是自动从第一目录中获取执行所需的第一动态库,实现在安卓系统内构建Linux环境的效果。由于在安卓系统中,各个应用执行时分别创建独立的数据空间,各个应用之间相互没有影响。因此在可执行文件执行时既构建了Linux环境以便正常运行,同时还不会影响其他的应用基于原有动态库执行,实现了基于Linux动态库得到的可执行文件在安卓系统中运行的目的,使得安卓系统对可执行文件的应用不再受到限制,解决了相关技术存在的可执行文件的应用受到较大限制的问题。
基于上述实施例,本实施例将对上述实施例中的若干步骤进行具体的阐述。请参考图2,图2为本申请实施例提供的一种具体的可执行文件处理过程时序图。其中,PC端可以为Linux系统的计算机,其用于提供第一动态库和基于第一动态库编译得到的可执行文件。具体的,在Linux系统/libs目录下存储有Linux系统对应的全部动态库,可以选择其中的全部或部分作为第一动态库。PC端也可以为非Linux系统的计算机,其可以从Linux系统/libs目录下拷贝所有或部分文件打包备用。在得到第一动态库后,其可以对动态库进行编译,得到对应的可执行文件。具体的,可以利用交叉编译器进行编译,例如可以采用arm-linux-gcc交叉编译器,交叉编译器允许编译环境和时机运行环境不同,例如可以安卓应用一般需要在电脑上编译,在手机等非电脑环境上运行。需要说明的是,在编译时需要指定第一动态库的编译路径,即第一动态库在PC端上的存储目录,同时,该目录需要与后续的执行路径(即第一目录)一致。
在得到可执行文件后,可以将第一动态库与可执行文件发送给电子设备,例如安卓手机。具体的,由于第一动态库的位数需要与处理器位数相对应才能够正常运行,因此获取第一动态库的步骤可以包括:
步骤11:获取初始动态库,判断初始动态库对应的动态库位数与处理器位数是否对应。
步骤12:若动态库位数与处理器位数对应,则确定初始动态库为第一动态库。
初始动态库即为直接获取到的动态库,动态库位数即为初始动态库的具体位数,例如可以为32位或64位。处理器位数即为电子设备中处理器的位数,同样可以为32位或64位。本实施例并不限定动态库位数和处理器位数的具体获取方式,可以参考相关技术,在此不做赘述。在获取动态库位数和处理器位数后,判断二者是否对应,即是否均为32位或是否均为64位。若二者对应,则说明初始动态库与处理器兼容,因此可以将初始动态库确定为第一动态库,确定获取到了第一动态库。本实施例并不限定第一动态库位数和处理器位数不对应的情况下具体执行的步骤,例如可以输出错误信息,以便PC端重新发送。
进一步的,为了保证第一动态库与原始动态库相隔离,避免调用错误,防止动态库运行异常导致可执行文件运行异常,将第一动态库存入第一目录的步骤可以包括:
步骤21:确定初始目录,判断初始目录中是否存在原始动态库。
步骤22:若不存在原始动态库,则将初始目录确定为第一目录。
初始目录的具体内容可以被提前设置好,在需要存储第一动态库时,可以先判断初始目录内是否存在原始动态库。若不存在原始动态库,则说明将第一动态库存入初始目录内并将其作为第一目录时,可执行文件通过初始目录不会调用到原始动态库,因此可以将初始目录确定为第一目录。
相应的,若存在所述原始动态库,还可以包括:
步骤31:判断是否存在与任一第一动态库名称相同的目标原始动态库。
步骤32:若存在目标原始动态库,则确定初始目录不为第一目录。
步骤33:若不存在目标原始动态库,则确定初始目录为第一目录。
需要说明的是,间第一动态库将原始动态库隔离为在被调用时不会发生错误的隔离,而调用动态库时需要根据动态库的名称进行条用,因此若初始目录下存在原始动态库,则判断是否存在任意一个第一动态库名称相同的目标原始动态库,若存在,则说明若将第一动态库存储于初始目录中,则必然会发生调用错误,因此确定初始目录不为第一目录,否则确定初始目录为第一目录。
本实施例并不限定初始目录的具体内容,可以理解的是,Linux系统的glibc库提供了程序开发所需的API(application programming interface,应用程序编程接口)。Linux系统下的动态库就是基于glibc库开发,而android系统的c库基于bionic库得到,bionic库裁剪了非常多的api接口,所以linux下的算法库是无法直接运行在android的。但是二者仍然包括很多相似的内容,因此第一动态库和原始动态库在很大概率上存在同名的情况,因此在一种优选的实施方式中,初始目录为新建目录,在这种情况下,可以确定初始目录中不存在原始动态库。
在获取到可执行文件后,可以获取可执行文件,并将可执行文件存入第二目录中。本实施例并不限定存储可执行文件的具体方式,例如可以利用adb命令将其存入第二目录。需要说明的是,第二目录与第一目录为同级目录,例如第一目录为/system/libs/linuxLIB,则第二目录即可以为/system/libs/APP。只有将可执行文件存入与第一目录对应的第二目录才能够保证其能够被正常执行。在一种可行的实施方式中,第一目录为新建目录,因此电子设备中必然不存在与其对应的第二目录,在这种情况下,将可执行文件存入第一目录对应的第二目录的步骤可以包括:
步骤41:在第一目录的上级目录下生成第二目录。
步骤42:将可执行文件存入第二目录。
由于不存在第二目录,因此需要新生成第二目录。具体的,首先确定第一目录的上级目录,在确定上级目录后在其中生成第二目录,并在第二目录被生成后将可执行文件存入第二目录。
在将第一动态库和可执行文件保存后,可以指定可执行文件对应的动态库路径,具体的,可以通过执行LD_LIBRARY_PATH=/system/libs/linuxLIB命令对动态库路径进行设置。其中LD_LIBRARY_PATH即为动态库路径,/system/libs/linuxLIB为具体的路径内容。在设置完成后,新创建的进程,即可执行文件对应的进程,的默认动态库路径就更换为了/system/libs/linuxLIB。在设置完成后执行可执行文件,新创建的进程可以从/system/libs/linuxLIB目录下遍历动态库,进而基于动态库执行。而其他安卓进程仍然可以调用原始动态库,其运行不会受到影响。
进一步的,在基于动态库路径执行可执行文件之后,还可以包括:
步骤51:监控可执行文件的执行过程,判断是否出现动态库缺失错误。
步骤52:若出现动态库缺失错误,则确定出缺失的第二动态库,并基于第二动态库对可执行文件进行更新。
由于第一动态库可能存在缺失,因此可执行文件可能无法正常运行。通过监控可执行文件的执行过程,可以确定是否出现动态库确实错误。本实施例并不限定监控执行过程的具体方式,例如可以通过adb log命令获取log格式的日志信息,利用日志信息查看可执行文件的执行流程,判断是否存在缺乏动态库的报错信息。若存在,则可以确定出现动态库缺失错误,并确定出缺失的第二动态库。在确定第二动态库后,可以利用其对可执行文件进行更新,以便其能够调用第二动态库。具体的,基于第二动态库对可执行文件进行更新的步骤可以包括:
步骤61:获取第二动态库,并将第二动态库存入第一目录。
步骤62:获取利用第一动态库和第二动态库编译得到的目标可执行文件,并利用目标可执行文件替换第二目录内的可执行文件。
获取第二动态库并将其存入第一目录,完成对第一动态库的补充,同时获取利用第一动态库和第二动态库共同编译得到的目标可执行文件,并利用其对可执行文件进行替换,完成对可执行文件的更新。
下面对本申请实施例提供的可执行文件处理装置进行介绍,下文描述的可执行文件处理装置与上文描述的可执行文件处理方法可相互对应参照。
请参考图3,图3为本申请实施例提供的一种可执行文件处理装置的结构示意图,包括:
动态库获取模块110,用于获取第一动态库,并将第一动态库存入第一目录;
可执行文件获取模块120,用于获取利用第一动态库编译得到的可执行文件,并将可执行文件存入第一目录对应的第二目录;
执行模块130,用于将可执行文件对应的动态库路径设置为第一目录,并基于动态库路径执行可执行文件。
可选地,还包括:
监控模块,用于监控可执行文件的执行过程,判断是否出现动态库缺失错误;
可执行文件更新模块,用于若出现动态库缺失错误,则确定出缺失的第二动态库,并基于第二动态库对可执行文件进行更新。
可选地,可执行文件更新模块,包括:
第二动态库获取单元,用于获取第二动态库,并将第二动态库存入第一目录;
可执行文件替换单元,用于获取利用第一动态库和第二动态库编译得到的目标可执行文件,并利用目标可执行文件替换第二目录内的可执行文件。
可选地,动态库获取模块110,包括:
位数判断单元,用于获取初始动态库,判断初始动态库对应的动态库位数与处理器位数是否对应;
动态库确定单元,用于若动态库位数与处理器位数对应,则确定初始动态库为第一动态库。
可选地,动态库获取模块110,包括:
原始动态库判断单元,用于确定初始目录,判断初始目录中是否存在原始动态库;
第一确定单元,用于若不存在原始动态库,则将初始目录确定为第一目录。
可选地,动态库获取模块110,还包括:
名称判断单元,用于若存在原始动态库,则判断是否存在与任一第一动态库名称相同的目标原始动态库;
第二确定单元,用于若存在目标原始动态库,则确定初始目录不为第一目录;
第三确定单元,用于若不存在目标原始动态库,则确定初始目录为第一目录。
可选地,可执行文件获取模块120,包括:
生成单元,用于在第一目录的上级目录下生成第二目录;
存入单元,用于将可执行文件存入第二目录。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的可执行文件处理方法可相互对应参照。
请参考图4,图4为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的可执行文件处理方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的可执行文件处理方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的可执行文件处理方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的可执行文件处理方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种可执行文件处理方法,其特征在于,包括:
获取第一动态库,并将所述第一动态库存入第一目录;
获取利用所述第一动态库编译得到的可执行文件,并将所述可执行文件存入所述第一目录对应的第二目录;
将所述可执行文件对应的动态库路径设置为所述第一目录,并基于所述动态库路径执行所述可执行文件。
2.根据权利要求1所述的可执行文件处理方法,其特征在于,在基于所述动态库路径执行所述可执行文件之后,还包括:
监控所述可执行文件的执行过程,判断是否出现动态库缺失错误;
若出现所述动态库缺失错误,则确定出缺失的第二动态库,并基于所述第二动态库对所述可执行文件进行更新。
3.根据权利要求2所述的可执行文件处理方法,其特征在于,所述基于所述第二动态库对所述可执行文件进行更新,包括:
获取所述第二动态库,并将所述第二动态库存入所述第一目录;
获取利用所述第一动态库和所述第二动态库编译得到的目标可执行文件,并利用所述目标可执行文件替换所述第二目录内的所述可执行文件。
4.根据权利要求1所述的可执行文件处理方法,其特征在于,所述获取第一动态库,包括:
获取初始动态库,判断所述初始动态库对应的动态库位数与处理器位数是否对应;
若所述动态库位数与所述处理器位数对应,则确定所述初始动态库为所述第一动态库。
5.根据权利要求1所述的可执行文件处理方法,其特征在于,所述将所述第一动态库存入第一目录,包括:
确定初始目录,判断所述初始目录中是否存在原始动态库;
若不存在所述原始动态库,则将所述初始目录确定为所述第一目录。
6.根据权利要求5所述的可执行文件处理方法,其特征在于,还包括:
若存在所述原始动态库,则判断是否存在与任一所述第一动态库名称相同的目标原始动态库;
若存在所述目标原始动态库,则确定所述初始目录不为所述第一目录;
若不存在所述目标原始动态库,则确定所述初始目录为所述第一目录。
7.根据权利要求1所述的可执行文件处理方法,其特征在于,所述将所述可执行文件存入所述第一目录对应的第二目录,包括:
在所述第一目录的上级目录下生成所述第二目录;
将所述可执行文件存入所述第二目录。
8.一种可执行文件处理装置,其特征在于,包括:
动态库获取模块,用于获取第一动态库,并将所述第一动态库存入第一目录;
可执行文件获取模块,用于获取利用所述第一动态库编译得到的可执行文件,并将所述可执行文件存入所述第一目录对应的第二目录;
执行模块,用于将所述可执行文件对应的动态库路径设置为所述第一目录,并基于所述动态库路径执行所述可执行文件。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的可执行文件处理方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的可执行文件处理方法。
CN202011254156.4A 2020-11-11 2020-11-11 一种可执行文件处理方法、装置、电子设备及存储介质 Active CN112379940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011254156.4A CN112379940B (zh) 2020-11-11 2020-11-11 一种可执行文件处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011254156.4A CN112379940B (zh) 2020-11-11 2020-11-11 一种可执行文件处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112379940A true CN112379940A (zh) 2021-02-19
CN112379940B CN112379940B (zh) 2023-04-25

Family

ID=74582677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011254156.4A Active CN112379940B (zh) 2020-11-11 2020-11-11 一种可执行文件处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112379940B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448655A (zh) * 2021-07-09 2021-09-28 赞同科技股份有限公司 C标准动态库的调用方法与装置
CN113721928A (zh) * 2021-11-02 2021-11-30 成都无糖信息技术有限公司 一种基于二进制分析的动态库裁剪方法
CN113741922A (zh) * 2021-11-02 2021-12-03 苏州浪潮智能科技有限公司 安装文件生成和程序安装方法、装置、计算机设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336707A (zh) * 2013-07-10 2013-10-02 深圳市开立科技有限公司 在安卓系统下运行标准c程序的方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336707A (zh) * 2013-07-10 2013-10-02 深圳市开立科技有限公司 在安卓系统下运行标准c程序的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448655A (zh) * 2021-07-09 2021-09-28 赞同科技股份有限公司 C标准动态库的调用方法与装置
CN113721928A (zh) * 2021-11-02 2021-11-30 成都无糖信息技术有限公司 一种基于二进制分析的动态库裁剪方法
CN113741922A (zh) * 2021-11-02 2021-12-03 苏州浪潮智能科技有限公司 安装文件生成和程序安装方法、装置、计算机设备及介质
CN113721928B (zh) * 2021-11-02 2022-01-18 成都无糖信息技术有限公司 一种基于二进制分析的动态库裁剪方法

Also Published As

Publication number Publication date
CN112379940B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN106775723B (zh) 基于Android平台的系统固件定制的方法和Android设备
CN112379940A (zh) 一种可执行文件处理方法、装置、电子设备及存储介质
US10496417B2 (en) Modular co-versioning in a dynamically linked runtime environment
US8555280B2 (en) Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform
US9262237B2 (en) Automating software availability management based on API versioning
CN107506221B (zh) 应用程序升级方法、装置及设备
CN107168749B (zh) 一种编译方法、装置、设备和计算机可读存储介质
CN107992308B (zh) 一种安卓终端应用程序的插件化管理方法
CN106325847B (zh) 基于iOS平台获取应用程序功能的方法和装置
US20150040112A1 (en) Enabling Interoperability Between Software Applications By Utilizing Partial Binaries
CN103677922A (zh) 对应用软件进行启动的方法和装置
CN111223036B (zh) 一种gpu虚拟化共享方法、装置及电子设备和存储介质
CN107832059B (zh) 一种基于Makefile的代码静态分析方法和装置
CN111399840A (zh) 一种模块开发方法及装置
CA3167549A1 (en) Method and apparatus for authority control, computer device and storage medium
CN112732300A (zh) 一种数据包更新方法、装置、电子设备及可读存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN114721688A (zh) 一种sdk升级方法、装置以及计算机设备
US8769498B2 (en) Warning of register and storage area assignment errors
CN113094085A (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
CN108460254B (zh) 固件保护方法及装置
CN113641389B (zh) 基于OpenCPU的软件升级方法、装置及设备
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
CN106775608B (zh) 独立系统进程的实现方法和装置
CN114816475A (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