[go: up one dir, main page]

CN106055363B - 一种识别文件的方法及移动终端 - Google Patents

一种识别文件的方法及移动终端 Download PDF

Info

Publication number
CN106055363B
CN106055363B CN201610380642.8A CN201610380642A CN106055363B CN 106055363 B CN106055363 B CN 106055363B CN 201610380642 A CN201610380642 A CN 201610380642A CN 106055363 B CN106055363 B CN 106055363B
Authority
CN
China
Prior art keywords
file
directory
header identifier
indicated
installation
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
Application number
CN201610380642.8A
Other languages
English (en)
Other versions
CN106055363A (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.)
Shanghai Jinsheng Communication Technology Co ltd
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201610380642.8A priority Critical patent/CN106055363B/zh
Publication of CN106055363A publication Critical patent/CN106055363A/zh
Priority to PCT/CN2017/086544 priority patent/WO2017206897A1/zh
Priority to EP17805842.6A priority patent/EP3401782B1/en
Application granted granted Critical
Publication of CN106055363B publication Critical patent/CN106055363B/zh
Priority to US16/119,155 priority patent/US10599413B2/en
Priority to US16/244,813 priority patent/US10452376B2/en
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/60Software deployment
    • G06F8/61Installation
    • 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/4401Bootstrapping
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephone Function (AREA)

Abstract

本发明提供了一种识别文件的方法,包括:获取安装文件,获取所述安装文件的文件目录的结束标记位置;根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置;根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。本发明实施例还公开了一种移动终端。采用本发明,可通过扫描安装文件中文件头标识识别所述文件头标识指示的文件,减少开机或安装应用程序前对安装文件的扫描时间。

Description

一种识别文件的方法及移动终端
技术领域
本发明涉及智能终端技术领域,尤其涉及一种识别文件的方法及移动终端。
背景技术
当前智能终端支持的应用越来越多,但也伴随着开机速度的降低,导致开机时间以及应用程序安装的时间越来越长。在智能终端开机或者安装应用程序时,需要扫描应用程序的安卓安装包(Android Package),即APK文件。Apk文件本身是一个zip包,在扫描Apk文件时,需要解压Apk文件中的所有文件,才能识别出Apk文件中保存的native(原生)库文件和RenderScript(渲染脚本)文件,通过遍历native库文件和RenderScript文件实现扫描的过程,在遍历native库文件和RenderScript文件的过程中就会耗费大量的扫描时间,导致开机或者安装应用程序的时间增加。
发明内容
本发明提供一种识别文件的方法及移动终端,可通过扫描安装文件中文件头标识识别所述文件头标识指示的文件,减少开机或安装应用程序前对安装文件的扫描时间。
本发明第一方面提供一种识别文件的方法,包括:
获取安装文件,获取所述安装文件的文件目录的结束标记位置;
根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置;
根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
可选的,所述根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,包括:
获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离;
根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
可选的,所述通过分析所述文件头标识识别所述文件头标识指示的文件,包括:
判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识;
若判断为是,则识别出所述文件头标识指示的文件为渲染脚本文件。
可选的,所述通过分析所述文件头标识识别所述文件头标识指示的文件之前,所述方法还包括:
从所述文件目录中获取Lib库目录;
则所述通过分析所述文件头标识识别所述文件头标识指示的文件,包括:
从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件;
识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件;
所述通过分析所述文件头标识识别所述文件头标识指示的文件之后,所述方法还包括:
确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
可选的,所述方法还包括:
获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值;
根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同;
若判断为否,则解压所述文件头标识指示的文件到所述Lib目录中。
本发明第二方面提供一种移动终端,包括:
获取模块,用于获取安装文件,获取所述安装文件的文件目录的结束标记位置;
确定模块,用于根据所述获取模块获取的文件目录的结束标记位置确定所述文件目录的起始标记位置;
识别模块,用于根据所述确定模块确定的文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
可选的,所述确定模块,包括:
获取单元,用于获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离;
确定单元,根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
可选的,所述识别模块包括:
判断单元,用于判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识;
第一识别单元,用于当所述第一判断单元的判断结果为是时,则识别出所述文件头标识指示的文件为渲染脚本文件。
可选的,所述获取模块还用于:
从所述文件目录中获取Lib库目录;
所述识别模块包括:
获取单元,用于从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件;
第二识别单元,用于识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件;
所述确定模块还用于:
确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
可选的,所述获取模块还用于:
获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值;
所述移动终端还包括:
判断模块,用于根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同;
解压模块,用于当所述判断模块的判断结果为否时,则解压所述文件头标识指示的文件到所述Lib目录中。
采用本发明,在开机或安装应用程序时,先获取安装文件,获取所述安装文件的文件目录的结束标记位置,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,最后根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件,可减少解压安装文件中所有文件的过程,减少开机或安装应用程序前对安装文件中所有文件的扫描时间,提高开机或安装应用程序的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种识别文件的方法的一实施例的流程示意图;
图2是本发明实施例的一种识别文件的方法的另一实施例的流程示意图;
图3是本发明实施例的一种识别文件的方法的另一实施例的流程示意图;
图4是本发明实施例的一种移动终端的结构示意图;
图5是本发明实施例的另一种移动终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
采用本发明实施例,可通过扫描安装文件中文件头标识识别所述文件头标识指示的文件,减少开机或安装应用程序前对安装文件的扫描时间。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例的一种识别文件的方法的一实施例的流程示意图。其中,移动终端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、可穿戴设备(例如智能手表(如iwatch等)、智能手环、计步器等)或其他终端设备。
如图1所示,本发明实施例的一种识别文件的方法的一实施例可以包括以下步骤。
S100,获取安装文件,获取所述安装文件的文件目录的结束标记位置。
具体实现中,在开机或安装应用程序时,需要获取应用程序的安装文件,并通过提取安装文件的格式中文件目录的结构实现部分扫描。文件目录中指示应用程序的各个文件,通过对文件目录中用于指示各个文件的文件头标识进行扫描识别各个文件,能够减少解压安装文件中所有文件并识别出native(原生)库文件和RenderScript(渲染脚本)文件的步骤。安装文件本身是一个zip包,因此可获取zip包的文件目录的结束标记位置。
作为一种可实施的方式,zip包的文件目录的结束标记位置可位于安装文件的二进制格式中0x06054b50处的位置。
S101,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置。
具体实现中,移动终端可根据文件目录的结束标记位置,确定文件目录的起始标记位置,以确定文件目录在安装文件的二进制格式中的位置范围以及文件目录的二进制的起始标记位置。
S102,根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
具体实现中,在确定文件目录在安装文件的二进制格式中的位置范围以及文件目录的二进制格式中的起始标记位置之后,根据文件目录的起始标记位置遍历查找所有用于指示文件的文件头标识,根据所有查找到的文件头标识生成文件列表,通过分析文件列表中的每个文件头标识来识别文件头标识指示的文件。完成分析文件头标识的过程后,在开机或安装应用程序时,即可初始化应用程序。
作为一种可实施的方式,文件头标识的位置可位于安装文件的二进制格式中0x04034b50处的位置。
采用本发明实施例,在开机或安装应用程序时,先获取安装文件,获取所述安装文件的文件目录的结束标记位置,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,最后根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件,可减少解压安装文件中所有文件的过程,减少开机或安装应用程序前对安装文件中所有文件的扫描时间,提高开机或安装应用程序的效率。
请参阅图2,图2是本发明实施例的一种识别文件的方法的另一实施例的流程示意图。其中,移动终端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、可穿戴设备(例如智能手表(如iwatch等)、智能手环、计步器等)或其他终端设备。
如图2所示,本发明实施例的一种识别文件的方法的另一实施例可以包括以下步骤。
S200,获取安装文件,获取所述安装文件的文件目录的结束标记位置。
具体实现中,在开机或安装应用程序时,需要获取应用程序的安装文件,并通过提取安装文件的格式中文件目录的结构实现部分扫描。文件目录中指示应用程序的各个文件,通过对文件目录中用于指示各个文件的文件头标识进行扫描识别各个文件,能够减少解压安装文件中所有文件并识别出native(原生)库文件和RenderScript(渲染脚本)文件的步骤。安装文件本身是一个zip包,因此可获取zip包的文件目录的结束标记位置。
作为一种可实施的方式,zip包的文件目录的结束标记位置可位于安装文件的二进制格式中0x06054b50处的位置。
S201,获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离。
具体实现中,移动终端在确定文件目录的结束标记位置后,可获取该文件目录占用安装文件的容量(例如字节数),再根据文件目录的结束标记位置以及该文件目录占用安装文件的字节数确定文件目录相对安装文件的起始位置的距离。
S202,根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
具体实现中,移动终端确定出文件目录相对安装文件的起始位置的距离之后,即可确定文件目录的起始标记位置。例如,文件目录占用安装文件的字节数为12个字节,通过确定文件目录的结束标记位置与文件目录占用安装文件的字节数为12个字节确定文件目录相对安装文件的起始位置的偏移为16个字节。由此可确定,文件目录的起始标记位置在安装文件的起始位置的偏移16个字节开始,其容量为12个字节。
S203,根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
具体实现中,在确定文件目录的二进制格式中的起始标记位置之后,根据文件目录的起始标记位置遍历查找所有用于指示文件的文件头标识,根据所有查找到的文件头标识生成文件列表,通过分析文件列表中的每个文件头标识来识别文件头标识指示的文件。完成分析文件头标识的过程后,在开机或安装应用程序时,即可初始化应用程序。
作为一种可实施的方式,文件头标识的位置可位于安装文件的二进制格式中0x04034b50处的位置。
采用本发明实施例,在开机或安装应用程序时,先获取安装文件,获取所述安装文件的文件目录的结束标记位置,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,最后根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件,可减少解压安装文件中所有文件的过程,减少开机或安装应用程序前对安装文件中所有文件的扫描时间,提高开机或安装应用程序的效率。
请参阅图3,图3是本发明实施例的一种识别文件的方法的另一实施例的流程示意图。其中,移动终端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、可穿戴设备(例如智能手表(如iwatch等)、智能手环、计步器等)或其他终端设备。
如图3所示,本发明实施例的一种识别文件的方法的另一实施例可以包括以下步骤。
S300,获取安装文件,获取所述安装文件的文件目录的结束标记位置。
具体实现中,在开机或安装应用程序时,需要获取应用程序的安装文件,并通过提取安装文件的格式中文件目录的结构实现部分扫描。文件目录中指示应用程序的各个文件,通过对文件目录中用于指示各个文件的文件头标识进行扫描识别各个文件,能够减少解压安装文件中所有文件并识别出native(原生)库文件和RenderScript(渲染脚本)文件的步骤。安装文件本身是一个zip包,因此可获取zip包的文件目录的结束标记位置。
作为一种可实施的方式,zip包的文件目录的结束标记位置可位于安装文件的二进制格式中0x06054b50处的位置。
S301,获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离。
具体实现中,移动终端在确定文件目录的结束标记位置后,可获取该文件目录占用安装文件的容量(例如字节数),再根据文件目录的结束标记位置以及该文件目录占用安装文件的字节数确定文件目录相对安装文件的起始位置的距离。
S302,根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
具体实现中,移动终端确定出文件目录相对安装文件的起始位置的距离之后,即可确定文件目录的起始标记位置。例如,文件目录占用安装文件的字节数为12个字节,通过确定文件目录的结束标记位置与文件目录占用安装文件的字节数为12个字节确定文件目录相对安装文件的起始位置的偏移为16个字节。由此可确定,文件目录的起始标记位置在安装文件的起始位置的偏移16个字节开始,其容量为12个字节。
S303,根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识。
具体实现中,在确定文件目录的二进制格式中的起始标记位置之后,根据文件目录的起始标记位置遍历查找所有用于指示文件的文件头标识,根据所有查找到的文件头标识生成文件列表,通过分析文件列表中的每个文件头标识来识别文件头标识指示的文件。其中,可判断文件头标识是否包含第一标识,第一标识可为.bc,用于指示RenderScript(渲染脚本)文件。移动终端通过判断文件头标识是否包含第一标识确定是否存在RenderScript文件。若判断为是则执行步骤S304,若判断为否则执行S313,扫描流程结束。
S304,若判断为是,则识别出所述文件头标识指示的文件为渲染脚本文件。
具体实现中,当步骤S303的判断结果为是时,则识别出该文件头标识指示的文件为RenderScript文件,则通知系统存在RenderScript文件,完成对该文件的识别。
S305,根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,从所述文件目录中获取Lib库目录。
具体实现中,移动终端通过确定文件目录中的文件头标识,生成文件列表,并判断文件目录中是否存在Lib库目录,若判断为是,则获取Lib目录。
S306,从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件。
具体实现中,Lib目录包含文件头标识,移动终端可从Lib目录中获取包含第二标识的文件头标识,第二标识可为.so(Shared Object),用于指示动态链接库文件。
S307,识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件。
具体实现中,当移动终端确定文件头标识包含第二标识时,则识别出该文件头标识指示的文件为.so文件。
S308,确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
具体实现中,当移动终端识别出.so文件时,获取该.so文件所属的Lib目录的子目录,并确定该子目录能够匹配到abi(Application Binary Interface,应用程序接口),其中子目录可匹配到abi下的arm64-v8a、armeabi-v7a、armeabi的任意一种。如果.so文件所属的Lib目录的子目录支持arm64-v8a、armeabi-v7a、armeabi的任意一种,则确定.so文件所属的Lib目录的子目录支持abi。
S309,根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
具体实现中,步骤S309-S312是对native库文件的识别、查找以及拷贝的流程。移动终端通过确定文件目录中的文件头标识,生成文件列表,并通过分析文件头标识识别文件头标识指示的文件。
S310,获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值。
具体实现中,可获取文件头标识指示的文件的容量,文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值。可选的,文件头标识指示的文件的容量可为解压后的大小。具体地,可从文件头标识的起始位置开始,在偏移文件头标识的起始位置的第22个字节的位置获取文件头标识指示的文件解压后的大小,在偏移文件头标识的起始位置的第10个字节的位置获取文件头标识指示的文件的距离当前时间最近的修改时间,在偏移文件头标识的起始位置的第14个字节的位置获取文件头标识指示的文件的校验值。
可选的,文件头标识指示的文件的校验值可为CRC(Cyclic Redundancy Check,循环冗余校验码)的校验值。
S311,根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同。
具体实现中,可通过文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,与Lib库目录包括的动态链接库文件(.so文件)的容量、.so文件的距离当前时间最近的修改时间以及.so文件的校验值进行比较,判断文件头标识指示的文件是否与Lib库目录包括的.so文件相同。也可由此判断Lib目录中对应的.so文件是否被修改或者不存在,如果确定文件头标识指示的文件与Lib目录包括的.so文件不相同,则确定Lib目录中对应的.so文件被修改或者不存在,则执行步骤S312;如果确定文件头标识指示的文件与Lib库目录包括的.so文件相同,则执行步骤S313,扫描过程结束。
可选的,.so文件不仅可包括在Lib目录中,也可包括在data(数据)的目录、app(应用程序)的目录和/或应用包名的目录中。
S312,若判断为否,则解压所述文件头标识指示的文件到所述Lib目录中。
具体实现中,当移动终端确定文件头标识指示的文件与Lib库目录包括的.so文件不相同时,则确定Lib库目录中对应的.so文件被修改或者不存在,因此可将该文件头标识指示的文件进行解压,并保存在Lib目录中。
可选的,该文件头标识指示的文件也可解压到data(数据)的目录、app(应用程序)的目录和/或应用包名的目录中。
S313,结束。
值得注意的是,步骤S303-S304和S313、步骤S305-S308、步骤S309-S313可并行执行,本实施例不作限定。
采用本发明实施例,在开机或安装应用程序时,先获取安装文件,获取所述安装文件的文件目录的结束标记位置,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,最后根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件,可减少解压安装文件中所有文件的过程,减少开机或安装应用程序前对安装文件中所有文件的扫描时间,提高开机或安装应用程序的效率。
请参阅图4,图4是本发明实施例的一种移动终端的结构示意图。实施例图4所示的移动终端执行实施例图1至图3所示的一种识别文件的方法,本实施例则不再赘述。如图4所示的移动终端包括获取模块400、确定模块401以及识别模块402。
获取模块400,用于获取安装文件,获取所述安装文件的文件目录的结束标记位置;
确定模块401,用于根据所述获取模块400获取的文件目录的结束标记位置确定所述文件目录的起始标记位置;
识别模块402,用于根据所述确定模块401确定的文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件。
具体实现中,在开机或安装应用程序时,需要获取应用程序的安装文件,并通过提取安装文件的格式中文件目录的结构实现部分扫描。文件目录中指示应用程序的各个文件,通过对文件目录中用于指示各个文件的文件头标识进行扫描识别各个文件,能够减少解压安装文件中所有文件并识别出native(原生)库文件和RenderScript(渲染脚本)文件的步骤。安装文件本身是一个zip包,因此可获取zip包的文件目录的结束标记位置。
具体实现中,移动终端可根据文件目录的结束标记位置,确定文件目录的起始标记位置,以确定文件目录在安装文件的二进制格式中的位置范围以及文件目录的二进制的起始标记位置。
具体实现中,在确定文件目录在安装文件的二进制格式中的位置范围以及文件目录的二进制格式中的起始标记位置之后,根据文件目录的起始标记位置遍历查找所有用于指示文件的文件头标识,根据所有查找到的文件头标识生成文件列表,通过分析文件列表中的每个文件头标识来识别文件头标识指示的文件。完成分析文件头标识的过程后,在开机或安装应用程序时,即可初始化应用程序。
可选的,如图5所示,所述确定模块401,包括获取单元4011、确定单元4012。
获取单元4011,用于获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离;
确定单元4012,根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
可选的,如图5所示,所述识别模块402包括判断单元4021、第一识别单元4022。
判断单元4021,用于判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识;
第一识别单元4022,用于当所述第一判断单元的判断结果为是时,则识别出所述文件头标识指示的文件为渲染脚本文件。
可选的,所述获取模块400还用于:
从所述文件目录中获取Lib库目录;
如图5所示,所述识别模块402包括获取单元4023、第二识别单元4024。
获取单元4023,用于从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件;
第二识别单元4024,用于识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件;
所述确定模块401还用于:
确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
可选的,所述获取模块400还用于:
获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值;
如图5所示,所述移动终端还包括判断模块403、解压模块404。
判断模块403,用于根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同;
解压模块404,用于当所述判断模块的判断结果为否时,则解压所述文件头标识指示的文件到所述Lib目录中。
采用本发明实施例,在开机或安装应用程序时,先获取安装文件,获取所述安装文件的文件目录的结束标记位置,根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,最后根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识,通过分析所述文件头标识识别所述文件头标识指示的文件,可减少解压安装文件中所有文件的过程,减少开机或安装应用程序前对安装文件中所有文件的扫描时间,提高开机或安装应用程序的效率。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例的模块或模块,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。

Claims (8)

1.一种识别文件的方法,其特征在于,包括:
获取安装文件,获取所述安装文件的文件目录的结束标记位置;
获取所述文件目录占用所述安装文件的容量;
根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离,从而确定所述文件目录的起始标记位置;
根据所述文件目录的起始标记位置查找所述文件目录中的文件头标识;
从所述文件目录中获取Lib库目录;
通过分析所述文件头标识识别所述文件头标识指示的文件,其中,从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件;当确定文件头标识包含第二标识时,则识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件;
确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
2.根据权利要求1所述的方法,其特征在于,所述根据所述文件目录的结束标记位置确定所述文件目录的起始标记位置,包括:
获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离;
根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
3.根据权利要求1所述的方法,其特征在于,所述通过分析所述文件头标识识别所述文件头标识指示的文件,包括:
判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识;
若判断为是,则识别出所述文件头标识指示的文件为渲染脚本文件。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值;
根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同;
若判断为否,则解压所述文件头标识指示的文件到所述Lib目录中。
5.一种移动终端,其特征在于,包括:
获取模块,用于获取安装文件,获取所述安装文件的文件目录的结束标记位置;还用于获取所述文件目录占用所述安装文件的容量;还用于从所述文件目录中获取Lib库目录;还用于从所述Lib目录中获取包含第二标识的文件头标识,所述第二标识用于指示动态链接库文件;
确定模块,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离,从而确定所述文件目录的起始标记位置;
识别模块,用于根据所述确定模块确定的文件目录的起始标记位置查找所述文件目录中的文件头标识;当确定文件头标识包含第二标识时,则识别出所述包含第二标识的文件头标识指示的文件为动态链接库文件;确定所述包含第二标识的文件头标识指示的文件所属的Lib目录的子目录支持应用程序接口。
6.根据权利要求5所述的移动终端,其特征在于,所述确定模块,包括:
获取单元,用于获取所述文件目录占用所述安装文件的容量,根据所述文件目录的结束标记位置以及所述文件目录占用所述安装文件的容量确定所述文件目录相对所述安装文件的起始位置的距离;
确定单元,根据所述文件目录相对所述安装文件的起始位置的距离确定所述文件目录的起始标记位置。
7.根据权利要求5所述的移动终端,其特征在于,所述识别模块包括:
判断单元,用于判断所述文件头标识是否包含用于指示渲染脚本文件的第一标识;
第一识别单元,用于当所述判断单元的判断结果为是时,则识别出所述文件头标识指示的文件为渲染脚本文件。
8.根据权利要求5所述的移动终端,其特征在于,所述获取模块还用于:
获取所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值;
所述移动终端还包括:
判断模块,用于根据所述文件头标识指示的文件的容量、所述文件头标识指示的文件的距离当前时间最近的修改时间以及所述文件头标识指示的文件的校验值,判断所述文件头标识指示的文件是否与Lib库目录包括的动态链接库文件相同;
解压模块,用于当所述判断模块的判断结果为否时,则解压所述文件头标识指示的文件到所述Lib目录中。
CN201610380642.8A 2016-05-31 2016-05-31 一种识别文件的方法及移动终端 Active CN106055363B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201610380642.8A CN106055363B (zh) 2016-05-31 2016-05-31 一种识别文件的方法及移动终端
PCT/CN2017/086544 WO2017206897A1 (zh) 2016-05-31 2017-05-31 识别文件的方法及相关设备
EP17805842.6A EP3401782B1 (en) 2016-05-31 2017-05-31 File identification method and related device
US16/119,155 US10599413B2 (en) 2016-05-31 2018-08-31 Method and device for identifying file
US16/244,813 US10452376B2 (en) 2016-05-31 2019-01-10 Method for identifying file and mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610380642.8A CN106055363B (zh) 2016-05-31 2016-05-31 一种识别文件的方法及移动终端

Publications (2)

Publication Number Publication Date
CN106055363A CN106055363A (zh) 2016-10-26
CN106055363B true CN106055363B (zh) 2017-11-14

Family

ID=57172604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610380642.8A Active CN106055363B (zh) 2016-05-31 2016-05-31 一种识别文件的方法及移动终端

Country Status (4)

Country Link
US (2) US10599413B2 (zh)
EP (1) EP3401782B1 (zh)
CN (1) CN106055363B (zh)
WO (1) WO2017206897A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885104B2 (en) 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
CN106055363B (zh) * 2016-05-31 2017-11-14 广东欧珀移动通信有限公司 一种识别文件的方法及移动终端
CN106874776B (zh) * 2016-12-30 2020-06-09 厦门天锐科技股份有限公司 一种加密文件的解密方法
CN110413321A (zh) * 2018-04-28 2019-11-05 珠海全志科技股份有限公司 一种Android系统快速启动方法及装置
CN109408465B (zh) * 2018-10-29 2021-07-13 Oppo广东移动通信有限公司 文件归属信息记录方法、装置、存储介质及终端
US10983677B2 (en) * 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
CN113342636B (zh) * 2020-03-02 2024-12-31 中国电信股份有限公司 校验安卓安装包的方法、装置及计算机可读存储介质
CN113626040B (zh) * 2020-05-06 2023-12-22 伊姆西Ip控股有限责任公司 用于安装应用的方法、电子设备和计算机程序产品
CN111694576B (zh) * 2020-05-22 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种综合化航电系统软件部署控制方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289512B1 (en) * 1998-12-03 2001-09-11 International Business Machines Corporation Automatic program installation
US6769115B1 (en) * 2000-05-01 2004-07-27 Emc Corporation Adaptive interface for a software development environment
US7089552B2 (en) * 2002-08-29 2006-08-08 Sun Microsystems, Inc. System and method for verifying installed software
US8805799B2 (en) * 2007-08-07 2014-08-12 International Business Machines Corporation Dynamic partial uncompression of a database table
US8024382B2 (en) * 2009-01-20 2011-09-20 Autodesk, Inc. Dynamic manipulation of archive files
US20100242037A1 (en) * 2009-03-17 2010-09-23 Microsoft Corporation Software Deployment over a Network
US8949737B2 (en) * 2009-10-28 2015-02-03 Red Hat, Inc. Centralized application package distribution
CN102902687B (zh) * 2011-07-27 2015-09-09 华为软件技术有限公司 资源文件的访问方法及装置
US8930940B2 (en) * 2011-08-19 2015-01-06 Yongyong Xu Online software execution platform
CN104252364B (zh) * 2013-06-25 2017-09-12 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN104573514B (zh) * 2013-10-29 2018-09-04 腾讯科技(深圳)有限公司 压缩文件的检测方法及装置
CN103646047A (zh) * 2013-11-25 2014-03-19 大连海联自动控制有限公司 Vb快速访问sql数据库的方法
CN104679534B (zh) * 2013-11-28 2019-11-19 南京中兴软件有限责任公司 系统应用安装包加载处理方法、装置及终端
CN104866504B (zh) * 2014-02-25 2018-07-06 北京娜迦信息科技发展有限公司 一种对Android软件进行功能扩展的方法及装置
CN104199673B (zh) * 2014-09-22 2018-01-26 联想(北京)有限公司 一种信息处理方法及装置
CN104572966A (zh) * 2014-12-30 2015-04-29 北京奇虎科技有限公司 一种压缩文件的解压方法和装置
CN105278989B (zh) * 2015-10-12 2018-04-06 北京顶象技术有限公司 Apk文件的快速加载方法
CN106055363B (zh) * 2016-05-31 2017-11-14 广东欧珀移动通信有限公司 一种识别文件的方法及移动终端

Also Published As

Publication number Publication date
EP3401782B1 (en) 2020-09-02
US20180364999A1 (en) 2018-12-20
WO2017206897A1 (zh) 2017-12-07
US10599413B2 (en) 2020-03-24
CN106055363A (zh) 2016-10-26
US10452376B2 (en) 2019-10-22
US20190146770A1 (en) 2019-05-16
EP3401782A1 (en) 2018-11-14
EP3401782A4 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
CN106055363B (zh) 一种识别文件的方法及移动终端
US9268939B2 (en) Method and apparatus for determining virus-infected files
CN105357204B (zh) 生成终端识别信息的方法及装置
CN110231947A (zh) 一种应用程序的插件更新方法、设备、服务器及存储介质
CN107609047A (zh) 应用推荐方法、装置、移动设备及存储介质
US20220075940A1 (en) Efficient storage and retrieval of resource data
CN105426761A (zh) 一种非法应用的识别方法及移动终端
CN105760183A (zh) 文件处理方法、装置及通信系统
CN115562992A (zh) 一种文件检测方法、装置、电子设备及存储介质
CN115396248A (zh) 远程设备控制方法、装置、系统、电子装置和存储介质
CN105740298A (zh) 文件处理方法、装置及服务端设备
CN105975302A (zh) 一种应用安装方法及终端
WO2018006884A1 (zh) 一种软件安装方法及装置、用户终端
CN107357864B (zh) 一种文件处理方法及终端
CN112286706B (zh) 安卓应用的应用信息远程快速获取方法及相关设备
CN111556127B (zh) 一种可穿戴设备升级方法及相关设备
CN111131861B (zh) 恢复分区的升级方法、终端和存储介质
CN105610596B (zh) 一种资源目录管理方法和网络终端
EP3514697A1 (en) Electronic device and search keyword processing method thereof
CN108121545B (zh) 应用程序的卸载反馈方法及装置
CN108572985B (zh) 一种页面显示方法及装置
CN105956050B (zh) 一种数据收集方法、装置及设备
CN105653713B (zh) 一种确定设备识别码存在的方法及装置
KR20210016944A (ko) 미디어 스캔을 수행하는 전자 장치 및 그 미디어 스캔 방법
CN114374745A (zh) 一种协议格式的处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20181229

Address after: Room 2101, 600 Longhuazhong Road, Xuhui District, Shanghai 200030

Patentee after: SHANGHAI JINSHENG COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

TR01 Transfer of patent right