CN106775644B - 文件运行方法及设备 - Google Patents

文件运行方法及设备 Download PDF

Info

Publication number
CN106775644B
CN106775644B CN201611046513.1A CN201611046513A CN106775644B CN 106775644 B CN106775644 B CN 106775644B CN 201611046513 A CN201611046513 A CN 201611046513A CN 106775644 B CN106775644 B CN 106775644B
Authority
CN
China
Prior art keywords
bit
terminal
code file
party application
file
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
CN201611046513.1A
Other languages
English (en)
Other versions
CN106775644A (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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201611046513.1A priority Critical patent/CN106775644B/zh
Publication of CN106775644A publication Critical patent/CN106775644A/zh
Priority to US15/820,740 priority patent/US10824410B2/en
Priority to EP17203348.2A priority patent/EP3327565A1/en
Application granted granted Critical
Publication of CN106775644B publication Critical patent/CN106775644B/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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files

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)

Abstract

本公开是关于一种文件运行方法及设备,属于计算机技术领域。所述方法包括:在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件;运行机器码文件;其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。本公开解决了预置在数据分区的第三方应用增加终端首次开机时长,降低终端首次开机速度的问题,实现了在数据分区预置有第三方应用的情况下,减少了终端首次开机的时长,提高了终端首次开机的速度的有益效果。

Description

文件运行方法及设备
技术领域
本公开涉及计算机技术领域,特别涉及一种文件运行方法及设备。
背景技术
随着安卓(英文:Android)系统的不断发展,很多生产商都会在搭载有安卓系统的终端上预置大量的第三方应用。
目前安卓系统所使用的安卓运行环境(英文:Android runtime;简称:ART)虚拟机在终端首次开机对预置的第三方应用进行安装的过程中,需要将该第三方应用的字节码文件编译成机器码文件,这样会增加终端首次开机的时长,降低终端首次开机的速度。
发明内容
为了实现终端在首次开机时能够快速开机,本公开实施例提供了一种文件运行方法及设备。
根据本公开实施例的第一方面,提供一种文件运行方法,包括:
在运行终端中预置的第三方应用时,从所述终端的数据分区中提取所述第三方应用的机器码文件;
运行所述机器码文件;
其中,所述机器码文件是在所述终端首次开机前,编译装置将所述第三方应用的字节码文件编译得到的。
可选的,所述方法还包括:
在所述终端的系统升级后需要对所述第三方应用进行重新安装时,从所述终端的数据分区获取所述字节码文件;
将所述字节码文件编译成机器码文件;
其中,所述字节码文件是所述编译装置预先存储在所述终端的数据分区的。
可选的,所述机器码文件存储在所述终端的数据分区;
所述方法还包括:在所述终端首次开机时,将所述第三方应用安装在所述终端的数据分区。
可选的,所述从所述终端的数据分区中提取所述第三方应用的机器码文件,包括:
在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效;
根据所述清楚标志位所指示的内容,从所述终端的数据分区中提取所述第三方应用的机器码文件;
在提取所述机器码文件之后,设置所述清除标志位失效。
根据本公开实施例的第二方面,提供一种文件运行方法,包括:
在终端首次开机前,将所述第三方应用的字节码文件编译成机器码文件;
将所述机器码文件存储在所述终端的数据分区。
可选的,所述方法还包括:
在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效;
其中,所述强制提取字节码文件标志位用于指示所述终端提取所述字节码文件。
可选的,所述将所述第三方应用的字节码文件编译成机器码文件,包括:
确定所述第三方应用支持的操作系统类型;
根据所述操作类型将所述第三方应用的字节码文件编译成机器码文件。
可选的,所述操作系统类型包括32位操作系统和64位操作系统;
所述根据所述操作系统类型将所述第三方应用的字节码文件编译成机器码文件,包括:
当所述第三方应用支持32位操作系统和64位操作系统,将所述字节码文件编译为32位机器码文件和64位机器码文件;
或,当所述第三方应用支持32位操作系统且不支持64位操作系统,将所述字节码文件编译为32位机器码文件;
或,当所述第三方应用支持64位操作系统且不支持32位操作系统,将所述字节码文件编译为64位机器码文件。
可选的,所述确定所述第三方应用支持的操作系统类型,包括:
分别检测所述第三方应用的解压后的安装包是否包括32位目录和64位目录;
当所述解压后的安装包同时包括所述32位目录和所述64位目录,确定所述第三方应用支持32位操作系统和64位操作系统;
当或,所述解压后的安装包包括所述32位目录且不包括所述64位目录,确定所述第三方应用支持32位操作系统且不支持所述64位操作系统;
或,当所述解压后的安装包包括和所述64位目录且不包括所述32位目录,确定所述第三方应用支持64位操作系统且不支持32位操作系统。
可选的,所述方法还包括:
在所述终端的数据分区存储所述字节码文件。
可选的,所述在所述终端的数据分区存储所述字节码文件,包括:
检测预设的安卓编译文件中,所述第三方应用的应用设置;
当所述应用设置为保留字节码文件时,在所述终端的数据分区存储所述字节码文件;
当所述应用设置为不保留字节码文件时,将所述应用设置修改为保留字节码文件,并在所述终端的数据分区存储所述字节码文件。
可选的,所述通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效,包括:
在所述终端的数据分区中设置清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效。
根据本公开实施例的第三方面,提供一种文件运行设备,包括:
提取模块,被配置为在运行终端中预置的第三方应用时,从所述终端的数据分区中提取所述第三方应用的机器码文件;
运行模块,被配置为运行所述机器码文件;
其中,所述机器码文件是在所述终端首次开机前,编译装置将所述第三方应用的字节码文件编译得到的。
可选的,所述设备还包括:
获取模块,被配置为在所述终端的系统升级后需要对所述第三方应用进行重新安装时,从所述终端的数据分区获取所述字节码文件;
编译模块,被配置为将所述字节码文件编译成机器码文件;
其中,所述字节码文件是所述编译装置预先存储在所述终端的数据分区的。
可选的,所述机器码文件存储在所述终端的数据分区;
所述设备还包括:安装模块,被配置为在所述终端首次开机时,将所述第三方应用安装在所述终端的数据分区。
可选的,所述提取模块,被配置为:
在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效;
根据所述清楚标志位所指示的内容,从所述终端的数据分区中提取所述第三方应用的机器码文件;
在提取所述机器码文件之后,设置所述清除标志位失效。
根据本公开实施例的第四方面,提供一种文件运行设备,包括:
编译模块,被配置为在终端首次开机前,将所述第三方应用的字节码文件编译成机器码文件;
第一存储模块,被配置为将所述机器码文件存储在所述终端的数据分区。
可选的,所述设备还包括:
修改模块,被配置为在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效;
其中,所述强制提取字节码文件标志位用于指示所述终端提取所述字节码文件。
可选的,所述编译模块,包括:
确定子模块,被配置为确定所述第三方应用支持的操作系统类型;
编译子模块,被配置为根据所述操作系统类型将所述第三方应用的字节码文件编译成机器码文件。
可选的,所述操作系统类型包括32位操作系统和64位操作系统;
所述编译子模块,被配置为:
当所述第三方应用支持32位操作系统和64位操作系统,将所述字节码文件编译为32位机器码文件和64位机器码文件;
或,当所述第三方应用支持32位操作系统且不支持64位操作系统,将所述字节码文件编译为32位机器码文件;
或,当所述第三方应用支持64位操作系统且不支持32位操作系统,将所述字节码文件编译为64位机器码文件。
可选的,所述确定子模块,被配置为:
分别检测所述第三方应用的解压后的安装包是否包括32位目录和64位目录;
当所述解压后的安装包同时包括所述32位目录和所述64位目录,确定所述第三方应用支持32位操作系统和64位操作系统;
或,当所述解压后的安装包包括所述32位目录且不包括所述64位目录,确定所述第三方应用支持32位操作系统且不支持64位操作系统;
或,当所述解压后的安装包包括和所述64位目录且不包括所述32位目录,确定所述第三方应用支持64位操作系统且不支持32位操作系统。
可选的,所述设备还包括:
第二存储模块,被配置为在所述终端的数据分区存储所述字节码文件。
可选的,所述第二存储模块,被配置为:
检测预设的安卓编译文件中,所述第三方应用的应用设置;
当所述应用设置为保留字节码文件时,在所述终端的数据分区存储所述字节码文件;
当所述应用设置为不保留字节码文件时,将所述应用设置修改为保留字节码文件,并在所述终端的数据分区存储所述字节码文件。
可选的,所述修改模块,被配置为:
在所述终端的数据分区中设置清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效。
根据本公开实施例的第五方面,提供一种文件运行设备,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在运行终端中预置的第三方应用时,从所述终端的数据分区中提取所述第三方应用的机器码文件;
运行所述机器码文件;
其中,所述机器码文件是在所述终端首次开机前,编译装置将所述第三方应用的字节码文件编译得到的。
根据本公开实施例的第六方面,提供一种文件运行设备,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在终端首次开机前,将所述第三方应用的字节码文件编译成机器码文件;
将所述机器码文件存储在所述终端的数据分区。
本公开实施例提供的技术方案带来的有益效果是:
本公开实施例提供的文件运行方法及设备,在运行预置的第三方应用时,可以在数据分区中提取到终端首次开机前已经编译好的第三方应用的机器码文件,减少了终端首次开机的时长,提高了终端首次开机的速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-1是根据本公开各个实施例提供的文件运行方法所涉及的一种实施环境的示意图;
图1-2是根据一示例性实施例示出的一种文件运行方法的流程图;
图1-3是根据一示例性实施例示出的一种文件运行方法的流程图;
图2-1是根据一示例性实施例示出的一种文件运行方法的流程图;
图2-2是根据一示例性实施例示出的一种编译字节码文件的方法的流程图;
图2-3是根据一示例性实施例示出的一种存储字节码文件的方法的流程图;
图2-4是根据一示例性实施例示出的一种重新安装预置的第三方应用的方法的流程图;
图3-1是根据一示例性实施例示出的一种文件运行设备的框图;
图3-2是根据一示例性实施例示出的另一种文件运行设备的框图;
图3-3是根据一示例性实施例示出的再一种文件运行设备的框图;
图4-1是根据一示例性实施例示出的一种文件运行设备的框图;
图4-2是根据一示例性实施例示出的另一种文件运行设备的框图;
图4-3是根据一示例性实施例示出的一种编译模块的框图;
图4-4是根据一示例性实施例示出的再一种文件运行设备的框图;
图5是根据一示例性实施例示出的一种文件运行设备的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
请参见图1-1,其示出了本公开部分实施例中提供的文件运行方法所涉及的实施环境的示意图。该实施环境可以包括:编译装置110和至少一个终端120。
编译装置110可以是一台计算机。终端120可以为智能手机、电脑、多媒体播放器、电子阅读器、可穿戴式设备等。编译装置110和终端120之间可以通过通信线建立连接,该通信线可以为通用串行总线(英文:Universal Serial Bus;简称:USB)线。编译装置110可以对终端120中的系统文件进行操作。该系统文件可以包括第三方应用的相关文件。
图1-2是本公开一示意性实施例提供的一种文件运行方法的流程图,该方法可以应用于图1-1所示的终端120中,该方法包括:
步骤201、在运行终端中预置的第三方应用时,终端从终端的数据分区中提取第三方应用的机器码文件。
其中,机器码文件是一种二进制形式文件,该文件在第三方应用运行中可以被终端直接执行。
步骤202、终端运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
其中,该编译装置可以是计算机。字节码文件本身也是一种二进制形式的代码文件,但是字节码文件不能直接被终端执行,被编译成机器码文件之后才能被终端执行。
综上所述,本公开实施例提供的文件运行方法,在运行预置的第三方应用时,可以在数据分区中提取到终端首次开机前已经编译好的第三方应用的机器码文件,减少了终端首次开机的时长,提高了终端首次开机的速度。
图1-3是本公开一示意性实施例提供的一种文件运行方法的流程图,该方法可以应用于图1-1所示的编译装置110中,该方法包括:
步骤301、在终端首次开机前,编译装置将第三方应用的字节码文件编译成机器码文件。
步骤302、编译装置将机器码文件存储在终端的数据分区。
综上所述,本公开实施例提供的文件运行方法,通过在终端首次开机前,将第三方应用的字节码文件编译成机器码文件,使得终端在首次开始过程中可以省略将字节码文件编译成机器码文件的步骤,减少了终端首次开机的时长,提高了终端首次开机的速度。
图2-1是本公开一示意性实施例提供的另一种文件运行方法的流程图,该方法包括:
步骤401、在终端首次开机前,编译装置将第三方应用的字节码文件编译成机器码文件。
可选的,如图2-2所示,步骤401可以包括:
步骤4011、编译装置确定第三方应用支持的操作系统类型。
其中,该操作系统类型包括32位操作系统和64位操作系统。一般情况下,如果该第三方应用支持32位操作系统,则该第三方应用可以在搭载32位操作系统的终端上运行,由于操作系统的向下兼容性,该第三方应用也可以在搭载64位操作系统的终端上运行;如果该第三方应用支持64位操作系统,则该第三方应用只能在搭载64位操作系统的终端上运行。
当第三方应用和终端搭载的操作系统不匹配时,例如,将支持64位操作系统的第三方应用A安装在搭载32位操作系统的终端上时,就会造成该第三方应用A运行异常。为了避免第三方应用运行异常的问题,需要确定第三方应用支持的操作系统类型。
可选的,步骤4011可以包括:
步骤4011a、编译装置分别检测第三方应用的解压后的安装包是否包括32位目录和64位目录。
可选的,可以先通过解压缩(英文:unzip)命令对第三方应用的安装包文件进行解压,然后检测该解压之后的安装包文件中的库(英文:library;简称lib)文件中是否包括“armeabi”目录(即32位目录)和“arm64”目录(即64位目录)。
步骤4011b、当解压后的安装包中同时包括32位目录和64位目录,编译装置确定该第三方应用支持32位操作系统和64位操作系统。
示例的,第三方应用B预置在数据分区中,在对该第三方应用B的安装包文件进行解压之后,检测到该第三方应用B的安装包文件中的lib库中同时包含有“armeabi”目录和“arm64”目录,即同时包含有32位目录和64位目录时,编译装置确定该第三方应用B支持32位操作系统和64位操作系统。
步骤4011c、当解压后的安装包中包括32位目录且不包括64位目录,编译装置确定该第三方应用支持32位操作系统且不支持64位操作系统。
示例的,第三方应用C预置在数据分区中,在对该第三方应用C的安装包文件进行解压之后,检测到该第三方应用C的安装包文件中的lib库中包括有“armeabi”目录且不包含“arm64”目录,即包括32位目录且不包括64位目录时,编译装置确定该第三方应用C支持32位操作系统且不支持64位操作系统。
步骤4011d、当解压后的安装包中包括64位目录且不包括32位目录,编译装置确定该第三方应用支持64位操作系统且不支持32位操作系统。
示例的,第三方应用D预置在数据分区中,在对该第三方应用D的安装包文件进行解压之后,检测到该第三方应用D的安装包文件中的lib库中包括有“arm64”目录且不包括“armeabi”目录,即就是包括64位目录且不包括32位目录时,编译装置确定该第三方应用D支持64位操作系统且不支持32位操作系统。
步骤4012、编译装置根据操作系统类型将第三方应用的字节码文件编译成机器码文件。
可选的,根据第三方应用支持的操作系统类型,对第三方应用的字节码文件进行相应的编译,可以保证终端能够提取到和终端上搭载的操作系统类型对应的机器码文件,进而保证第三方应用能够正常运行。
可选的,步骤4012可以包括:
步骤4012a、当第三方应用支持32位操作系统和64位操作系统,将字节码文件编译为32位机器码文件和64位机器码文件。
对于同时支持32位操作系统和64位操作系统的第三方应用,可以将该第三方应用的字节码文件编译为32位机器码和64位机器码,以保证在实际应用的时候,无论该第三方应用是安装在搭载32位操作系统的终端上,还是安装在搭载64位操作系统的终端上,都能正常运行。
示例的,将同时支持32位操作系统和64位操作系统的第三方应用E的字节码文件编译为32位机器码文件和64位机器码文件,然后将该第三方应用E预置在搭载32位操作系统的终端上,在第三方应用E安装成功后,终端需要运行该第三方应用E的时候,可以提取到该第三方应用E的32位机器码文件;或者将该第三方应用E预置在搭载64位操作系统的终端上,在第三方应用E安装成功后,终端需要运行该第三方应用E的时候,便可以提取到该第三方应用E的64位机器码文件。
实际应用中,可以将第三方应用预置在终端中,终端将第三方应用安装成功后,在运行第三方应用的过程中,可以对第三方应用进行分享,对于同时支持32位操作系统和64位操作系统的第三方应用,如果在对该第三方应用的字节码文件进行编译的时候,将字节码文件编译为32位机器码和64位机器码,在终端将该第三方应用进行分享的时候,就可以将其分享至其他搭载32位操作系统的终端或者搭载64位操作系统的终端上,减小了第三方应用的分享局限性。
示例的,搭载32位操作系统的终端A上安装有同时支持32位操作系统和64位操作系统的第三方应用F,在对该第三方应用F的字节码文件进行编译的时候,将字节码文件编译为32位机器码和64位机器码。在分享操作中,终端A可以将该第三方应用F分享给搭载64位操作系统的终端B,该第三方应用F可以在终端B上正常安装及运行。如果在对该第三方应用F的字节码文件进行编译的时候,只将字节码文件编译为32位机器码,那么将该第三方应用F分享给搭载64位操作系统的终端B之后,该第三方应用F在终端B上安装运行时可能会出现异常。
步骤4012b、当第三方应用支持32位操作系统且不支持64位操作系统,将字节码文件编译为32位机器码文件。
示例的,将支持32位操作系统且不支持64位操作系统的第三方应用G的字节码文件编译为32位机器码文件,然后将该第三方应用G预置在搭载32位操作系统的终端上,在第三方应用G安装成功后,终端需要运行该第三方应用G的时候,便可以提取到该第三方应用G的32位机器码文件。
步骤4012c、当第三方应用支持64位操作系统且不支持32位操作系统,将字节码文件编译为64位机器码文件。
示例的,将支持64位操作系统且不支持32位操作系统的第三方应用H的字节码文件编译为64位机器码文件,然后将该第三方应用H预置在搭载64位操作系统的终端上,在第三方应用H安装成功后,终端需要运行该第三方应用H的时候,便可以提取到该第三方应用H的64位机器码文件。
步骤402、编译装置将机器码文件存储在终端的数据分区。
可选的,编译装置将第三方应用的字节码文件编译成机器码文件之后,编译装置可以将编译好的机器码文件存储在终端的数据分区。将第三方应用预置在数据分区中,可以保证该第三方应用支持卸载。
步骤403、编译装置在终端的数据分区存储第三方应用的字节码文件。
其中,该字节码文件为预置在终端的数据分区的第三方应用的字节码文件。预置在终端的数据分区的第三方应用在终端的系统升级后,需要重新进行安装。该安装操作是在终端的系统升级完成后,终端的第一次开机过程中进行的。在安装过程中,需要重新提取该第三方应用的字节码文件。
为了防止在系统升级后终端第一次开机对第三方应用进行安装的过程中无法找到字节码文件,造成安装异常的问题,编译装置需要在终端的数据分区中存储第三方应用的字节码文件,以便后期系统升级后,第三方应用重新安装时使用,保证第三方应用的顺利安装。对于编译装置在终端的数据分区中存储第三方应用的字节码文件的顺序本公开实施例不做限定,例如,可以是在将第三方应用的字节码文件编译成机器码文件之前,也可以是在将第三方应用的字节码文件编译成机器码之后。
可选的,如图2-3所示,步骤403可以包括:
步骤4031、编译装置检测预设的安卓编译文件中,第三方应用的应用设置。
其中,该预设的安装编译文件是安卓系统中具有编译功能的文件,该预设的安卓编译文件可以为“Android.mk”文件。其中,该应用设置用于指示是否保留字节码文件的设置。
步骤4032、当应用设置为保留字节码文件时,编译装置在终端的数据分区存储字节码文件。
示例的,对预置在终端的数据分区的第三方应用D进行编译的时候,如果应用设置为保留字节码文件,那么在编译操作完成之后,终端的数据分区中会保留该第三方应用D的字节码文件。
步骤4033、当应用设置为不保留字节码文件时,编译装置将应用设置修改为保留字节码文件,并在终端的数据分区存储字节码文件。
可选的,可以通过对“Android.mk”文件进行修改将应用设置修改为保留字节码文件,该修改操作可以是设置如下代码:
LOCAL_DEX_PREOPT:=nostripping;
设置了该代码后,在编译装置将字节码文件编译为机器码文件之后,终端的数据分区中会保留第三方应用的字节码文件。
示例的,对预置在终端的数据分区的第三方应用E进行编译的时候,如果应用设置为不保留字节码文件,那么在进行编译操作之前,对应用设置进行修改,将该应用设置修改为保留字节码文件,修改完成之后,进行编译操作,那么在该编译操作完成之后,终端的数据分区中存储有该第三方应用E的字节码文件。
步骤404、编译装置在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改系统框架源码来禁止强制提取字节码文件标志位生效。
其中,该强制提取字节码文件标志位用于指示终端提取字节码文件。
可选的,该强制提取字节码文件标志位可以表示为“SCAN_FORCE_DEX”,可以通过对预设的系统框架(英文:framework)源码进行修改来禁止“SCAN_FORCE_DEX”标志位生效,保证终端在出厂后首次开机对预置的第三方应用进行安装的时候不会强制提取字节码文件,而忽略已经编译好的机器码文件。其中,该系统框架源码是组成系统框架层的一种开源代码。
示例的,编译装置可以在终端的数据分区中设置清除标志位,该清除标志位用于指示终端禁止强制提取字节码文件标志位生效。
可选的,可以将该清除标志位设置在“/data/app”目录下,该清除标志位可以起到标识作用。在该清除标志位生效时,终端可以根据该清除标志位禁止强制提取字节码文件标志位生效,在该清除标志位无效或被删除时,强制提取字节码文件标志位生效,终端可以在需要提取字节码文件时,根据强制提取字节码文件标志位时,提取字节码文件。
步骤405、编译装置将系统文件配置在终端内。其中该系统文件包括第三方应用的安装文件。
可选的,编译装置可以先将包含有第三方应用的安装文件的系统文件打包成系统镜像文件,然后将该系统镜像文件配置在终端内。其中,该第三方应用的安装文件中包含有该第三方应用的字节码文件及机器码文件。
步骤406、在终端首次开机时,终端将第三方应用安装在终端的数据分区。
目前安卓系统所使用的ART虚拟机要求对于预置在终端的数据分区的第三方应用,在该第三方应用运行提取机器码文件的时候,该提取路径要和该第三方应用的安装路径保持一致,这样才能保证该第三方应用正常运行。
第三方应用默认安装在系统分区下,对于预置在终端的数据分区下的第三方应用,由于其提取机器码文件的路径在数据分区下,因此需要设置将第三方应用的安装位置设置在数据分区,以保证提取路径和该安装路径一致。
具体的设置方法可以是对安卓编译“Android.mk”文件进行修改,该修改操作可以是在“Android.mk”文件中增加如下代码:
LOCAL_MOUDLE_PATH:=$(TARGET_OUT_DATA_APPS);
该代码指示将第三方应用安装在终端的数据分区的应用程序(英文:Application;简称:APP)目录下,即将该第三方应用安装在“/data/app”目录下。
步骤407、在运行终端中预置的第三方应用时,终端从终端的数据分区中提取第三方应用的机器码文件。
具体的,步骤407可以包括:
步骤X1、终端在终端首次开机时,检测终端的数据分区中的清除标志位。
其中,该清除标志位用于指示终端禁止强制提取字节码文件标志位生效。
步骤X2、终端根据清除标志位所指示的内容,从终端的数据分区中提取第三方应用的机器码文件。
由于清除标志位指示终端禁止强制提取字节码文件标志位生效,在终端首次开机时,终端不会去提取第三方应用的字节码文件进行编译操作,可以直接从终端的数据分区中提取第三方应用的机器码文件。
实际应用中,当终端需要运行某一第三方应用,且该应用为预置在终端中的第三方应用时,终端也可以从终端的数据分区中提取该第三方应用的机器码文件。示例的,预置在终端的数据分区的第三方应用A,终端首次开机时将该第三方应用A安装在终端的数据分区,安装成功后,在需要运行该第三方应用A时,终端从终端的数据分区中提取该第三方应用A的机器码文件。
步骤X3、终端在提取机器码文件之后,设置清除标志位失效。
实际应用中,终端在提取机器码文件之后,也可以将该清除标志位删除。示例的,如果终端在提取机器码文件之后,设置该清除标志位设置位失效,也即是将该清除标志位设置为失效位,那么在终端非首次开机且需要提取字节码文件的时候,需要先检测该清除标志位,检测到该清除标志位为失效位后,可以对字节码文件进行提取;如果终端在提取机器码文件之后,将该清除标志位删除,那么在终端非首次开机且需要提取字节码文件的时候,可以直接对字节码文件进行提取。
步骤408、终端运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
其中,该编译装置可以是计算机。实际应用中,终端的系统通常会进行升级,在系统升级完成后,终端第一次开机的过程中,需要对预置在数据分区的第三方应用进行重新安装,该重新安装的方法可以为图2-4所示的方法:
步骤420、在终端的系统升级后需要对第三方应用进行重新安装时,终端从终端的数据分区获取字节码文件。
实际应用中,数据分区的文件一般不参与升级,所以每次在终端的系统升级完成后的第一次开机过程中都需要对预置在数据分区的第三方应用进行重新安装。在该安装的过程中需要重新获取该第三方应用的字节码文件,然后执行步骤421。
步骤421、终端将字节码文件编译成机器码文件。
可选的,将该字节码文件编译为机器码文件,以便于该第三方应用在后期的使用过程中能够顺利运行。
综上所述,本公开实施例提供的文件运行方法,在运行预置的第三方应用时,可以在数据分区中提取到终端首次开机前已经编译好的第三方应用的机器码文件,减少了终端首次开机的时长,提高了终端首次开机的速度。
需要说明的是,本公开实施例提供的文件运行方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如,例如上述步骤403也可以在步骤401之前,只要保证在编译装置将第三方应用的字节码文件编译成机器码文件之后,数据分区中保留有第三方应用的字节码文件即可。当步骤403位于步骤401之前时,可以先将第三方应用的字节码文件进行复制,然后将其存储在数据分区。完成该存储操作之后,此时的数据分区中存在两份第三方应用的字节码文件,然后编译装置将该两份第三方应用的字节码文件中的其中一份字节码文件编译成机器码文件,编译操作完成后,数据分区中依然保留有该第三方应用的字节码文件。任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本公开的保护范围之内,因此不再赘述。
图3-1是本公开一示意性实施例提供的一种文件运行设备50的框图,参见图3-1,该文件运行设备50可以包括:
提取模块501,被配置为在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件。
运行模块502,被配置为运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
综上所述,本公开实施例提供的文件运行设备,在运行预置的第三方应用时,提取模块可以在数据分区中提取到终端首次开机前已经编译好的第三方应用的机器码文件,运行模块可以运行该机器码文件,减少了终端首次开机的时长,提高了终端首次开机的速度。
可选的,提取模块501还可以被配置为:
在终端首次开机时,检测终端的数据分区中的清除标志位,清除标志位用于指示终端禁止强制提取字节码文件标志位生效。
根据清除标志位所指示的内容,从终端的数据分区中提取第三方应用的机器码文件。
在提取机器码文件之后,设置清除标志位失效。
图3-2是本公开一示意性实施例提供的另一种文件运行设备50的框图,参见图3-2,该文件运行设备50可以包括:提取模块501,运行模块502,获取模块503,编译模块504。
提取模块501,被配置为在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件。
运行模块502,被配置为运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
获取模块503,被配置为在终端的系统升级需要对第三方应用进行重新安装时,从终端的数据分区获取字节码文件。
编译模块504,被配置为将字节码文件编译成机器码文件。
其中,该字节码文件是编译装置在将预先存储在终端的数据分区的。
图3-3是本公开一示意性实施例提供的再一种文件运行设备50的框图,参见图3-3,该文件运行设备50可以包括:提取模块501,运行模块502,安装模块505。
提取模块501,被配置为在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件。
运行模块502,被配置为运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
安装模块505,被配置为在终端首次开机时,将第三方应用安装在终端的数据分区。
综上所述,本公开实施例提供的文件运行设备,在运行预置的第三方应用时,提取模块可以在数据分区中提取到终端首次开机前已经编译好的第三方应用的机器码文件,运行模块可以运行该机器码文件,减少了终端首次开机的时长,提高了终端首次开机的速度。
图4-1是本公开一示意性实施例提供的一种文件运行设备60的框图,参见图4-1,该文件运行设备60可以包括:
编译模块601,被配置为在终端首次开机前,将第三方应用的字节码文件编译成机器码文件。
第一存储模块602,被配置为将机器码文件存储在终端的数据分区。
综上所述,本公开实施例提供的文件运行设备,在终端首次开机前,通过编译模块将第三方应用的字节码文件编译成机器码文件,使得终端在首次开始过程中可以省略将字节码文件编译成机器码文件的步骤,减少了终端首次开机的时长,提高了终端首次开机的速度。
图4-2是本公开一示意性实施例提供的另一种文件运行设备60的框图,参见图4-2,该文件运行设备60可以包括:编译模块601,第一存储模块602,修改模块603。
编译模块601,被配置为在终端首次开机前,将第三方应用的字节码文件编译成机器码文件。
第一存储模块602,被配置为将机器码文件存储在终端的数据分区。
修改模块603,被配置为在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改系统框架源码来禁止强制提取字节码文件标志位生效。
其中,该强制提取字节码文件标志位用于指示终端提取字节码文件。
可选的,修改模块603还可以被配置为:在终端的数据分区中设置清除标志位,该清除标志位用于指示终端禁止强制提取字节码文件标志位生效。
图4-3是本公开一示意性实施例提供的一种编译模块601的框图,参见图4-3,该编译模块601可以包括:
确定子模块6011,被配置为确定第三方应用支持的操作系统类型。
编译子模块6012,被配置为根据操作系统类型将第三方应用的字节码文件编译成机器码文件。
可选的,编译子模块6012,被配置为:
当第三方应用支持32位操作系统和64位操作系统,将字节码文件编译为32位机器码文件和64位机器码文件。
或,当第三方应用支持32位操作系统且不支持64位操作系统,将字节码文件编译为32位机器码文件。
或,当第三方应用支持64位操作系统且不支持32位操作系统,将字节码文件编译为64位机器码文件。
可选的,确定子模块6011,被配置为:
分别检测第三方应用的解压后的安装包是否包括32位目录和64位目录。
当解压后的安装包同时包括32位目录和64位目录,确定第三方应用支持32位操作系统和64位操作系统。
或,当解压后的安装包包括32位目录且不包括64位目录,确定第三方应用支持32位操作系统且不支持64位操作系统。
或,当解压后的安装包包括和64位目录且不包括32位目录,确定第三方应用支持64位操作系统且不支持32位操作系统。
图4-4是本公开一示意性实施例提供的再一种文件运行设备60的框图,参见图4-4,该文件运行设备60可以包括:编译模块601,第一存储模块602,第二存储模块604。
编译模块601,被配置为在终端首次开机前,将第三方应用的字节码文件编译成机器码文件。
第一存储模块602,被配置为将机器码文件存储在终端的数据分区。
第二存储模块604,被配置为在终端的数据分区存储字节码文件。
可选的,第二存储模块604,被配置为:
检测预设的安卓编译文件中,第三方应用的应用设置。
当应用设置为保留字节码文件时,在终端的数据分区存储字节码文件。
当应用设置为不保留字节码文件时,将应用设置修改为保留字节码文件,并在终端的数据分区存储字节码文件。
综上所述,本公开实施例提供的文件运行设备,在终端首次开机前,通过编译模块将第三方应用的字节码文件编译成机器码文件,使得终端在首次开始过程中可以省略将字节码文件编译成机器码文件的步骤,减少了终端首次开机的时长,提高了终端首次开机的速度。
本公开实施例提供一种文件运行设备,可以用于图1所示的终端,设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件。
运行机器码文件。
其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
本公开实施例提供一种文件运行设备,可以用于图1所示的终端,设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在终端首次开机前,将第三方应用的字节码文件编译成机器码文件。
将机器码文件存储在终端的数据分区。
图5是本公开一示例性实施例示出的一种文件运行设备700的框图。设备700可以为终端,例如,设备700可以被提供为一移动终端,例如,移动电话,数字广播终端,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。也可以为编译装置,例如,设备700可以被提供为一计算机或处理器。
例如,参照图5,设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(I/O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述文件运行方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在设备700的操作。这些数据的示例包括用于在设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为设备700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
I/O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为设备700提供各个方面的状态评估。例如,传感器组件714可以检测到设备700的打开/关闭状态,组件的相对定位,例如所述组件为设备700的显示器和小键盘,传感器组件714还可以检测设备700或设备700一个组件的位置改变,用户与设备700接触的存在或不存在,设备700方位或加速/减速和设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于设备700和其他设备之间有线或无线方式的通信。设备700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,设备700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述文件运行方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由设备700的处理器720执行以完成上述文件运行方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
当设备700为终端时,设备700提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由设备700的处理器执行时,使得设备700能够执行本公开实施例提供的一种文件运行方法,该方法至少可以包括:
在运行终端中预置的第三方应用时,从终端的数据分区中提取第三方应用的机器码文件。
运行机器码文件。其中,该机器码文件是在终端首次开机前,编译装置将第三方应用的字节码文件编译得到的。
当设备700为编译装置时,设备700提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由设备700的处理器执行时,使得设备700能够执行本公开实施例提供的一种文件运行方法,所述方法至少包括:
在终端首次开机前,将第三方应用的字节码文件编译成机器码文件。
将机器码文件存储在终端的数据分区。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (23)

1.一种文件运行方法,其特征在于,所述方法包括:
在运行终端中预置的第三方应用时,在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,所述清除标志位用于指示所述终端禁止强制提取字节码文件标志位生效;
根据所述清除标志位所指示的内容,从所述终端的数据分区中提取所述第三方应用的机器码文件;
运行所述机器码文件;
在提取所述机器码文件之后,设置所述清除标志位失效;
其中,所述机器码文件是在所述终端首次开机前,编译装置将所述第三方应用的字节码文件编译得到的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述终端的系统升级后需要对所述第三方应用进行重新安装时,从所述终端的数据分区获取所述字节码文件;
将所述字节码文件编译成机器码文件;
其中,所述字节码文件是所述编译装置预先存储在所述终端的数据分区的。
3.根据权利要求1或2所述的方法,其特征在于,所述机器码文件存储在所述终端的数据分区;
所述方法还包括:在所述终端首次开机时,将所述第三方应用安装在所述终端的数据分区。
4.一种文件运行方法,其特征在于,所述方法包括:
在终端首次开机前,将第三方应用的字节码文件编译成机器码文件;
将所述机器码文件存储在所述终端的数据分区,所述机器码文件为在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,根据所述清除标志位所指示的内容,从所述终端的数据分区中提取得到,所述清除标志位用于指示所述终端禁止强制提取字节码文件标志位生效,所述机器码文件在提取后,所述清除标志位失效。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效;
其中,所述强制提取字节码文件标志位用于指示所述终端提取所述字节码文件。
6.根据权利要求4所述的方法,其特征在于,
所述将所述第三方应用的字节码文件编译成机器码文件,包括:
确定所述第三方应用支持的操作系统类型;
根据所述操作系统类型将所述第三方应用的字节码文件编译成机器码文件。
7.根据权利要求6所述的方法,其特征在于,所述操作系统类型包括32位操作系统和64位操作系统;
所述根据所述操作系统类型将所述第三方应用的字节码文件编译成机器码文件,包括:
当所述第三方应用支持32位操作系统和64位操作系统,将所述字节码文件编译为32位机器码文件和64位机器码文件;
或,当所述第三方应用支持32位操作系统且不支持64位操作系统,将所述字节码文件编译为32位机器码文件;
或,当所述第三方应用支持64位操作系统且不支持32位操作系统,将所述字节码文件编译为64位机器码文件。
8.根据权利要求6所述的方法,其特征在于,所述确定所述第三方应用支持的操作系统类型,包括:
分别检测所述第三方应用的解压后的安装包是否包括32位目录和64位目录;
当所述解压后的安装包同时包括所述32位目录和所述64位目录,确定所述第三方应用支持32位操作系统和64位操作系统;
或,当所述解压后的安装包包括所述32位目录且不包括所述64位目录,确定所述第三方应用支持32位操作系统且不支持所述64位操作系统;
或,当所述解压后的安装包包括和所述64位目录且不包括所述32位目录,确定所述第三方应用支持64位操作系统且不支持32位操作系统。
9.根据权利要求4至8任一所述的方法,其特征在于,所述方法还包括:
在所述终端的数据分区存储所述字节码文件。
10.根据权利要求9所述的方法,其特征在于,
所述在所述终端的数据分区存储所述字节码文件,包括:
检测预设的安卓编译文件中,所述第三方应用的应用设置;
当所述应用设置为保留字节码文件时,在所述终端的数据分区存储所述字节码文件;
当所述应用设置为不保留字节码文件时,将所述应用设置修改为保留字节码文件,并在所述终端的数据分区存储所述字节码文件。
11.根据权利要求5所述的方法,其特征在于,所述通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效,包括:
在所述终端的数据分区中设置清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效。
12.一种文件运行设备,其特征在于,所述设备包括:
提取模块,被配置为在运行终端中预置的第三方应用时,在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,所述清除标志位用于指示所述终端禁止强制提取字节码文件标志位生效;
根据所述清除标志位所指示的内容,从所述终端的数据分区中提取所述第三方应用的机器码文件;
运行模块,被配置为运行所述机器码文件;
所述提取模块,还被配置为在提取所述机器码文件之后,设置所述清除标志位失效;
其中,所述机器码文件是在所述终端首次开机前,编译装置将所述第三方应用的字节码文件编译得到的。
13.根据权利要求12所述的设备,其特征在于,所述设备还包括:
获取模块,被配置为在所述终端的系统升级后需要对所述第三方应用进行重新安装时,从所述终端的数据分区获取所述字节码文件;
编译模块,被配置为将所述字节码文件编译成机器码文件;
其中,所述字节码文件是所述编译装置预先存储在所述终端的数据分区的。
14.根据权利要求12或13所述的设备,其特征在于,所述机器码文件存储在所述终端的数据分区;
所述设备还包括:安装模块,被配置为在所述终端首次开机时,将所述第三方应用安装在所述终端的数据分区。
15.一种文件运行设备,其特征在于,所述设备包括:
编译模块,被配置为在终端首次开机前,将第三方应用的字节码文件编译成机器码文件;
第一存储模块,被配置为将所述机器码文件存储在所述终端的数据分区,所述机器码文件为在所述终端首次开机时,检测所述终端的数据分区中的清除标志位,根据所述清除标志位所指示的内容,从所述终端的数据分区中提取得到,所述清除标志位用于指示所述终端禁止强制提取字节码文件标志位生效,所述机器码文件在提取后,所述清除标志位失效。
16.根据权利要求15所述的设备,其特征在于,所述设备还包括:
修改模块,被配置为在预设的系统框架源码中存在强制提取字节码文件标志位时,通过修改所述系统框架源码来禁止所述强制提取字节码文件标志位生效;
其中,所述强制提取字节码文件标志位用于指示所述终端提取所述字节码文件。
17.根据权利要求15所述的设备,其特征在于,
所述编译模块,包括:
确定子模块,被配置为确定所述第三方应用支持的操作系统类型;
编译子模块,被配置为根据所述操作系统类型将所述第三方应用的字节码文件编译成机器码文件。
18.根据权利要求17所述的设备,其特征在于,所述操作系统类型包括32位操作系统和64位操作系统;
所述编译子模块,被配置为:
当所述第三方应用支持32位操作系统和64位操作系统,将所述字节码文件编译为32位机器码文件和64位机器码文件;
或,当所述第三方应用支持32位操作系统且不支持64位操作系统,将所述字节码文件编译为32位机器码文件;
或,当所述第三方应用支持64位操作系统且不支持32位操作系统,将所述字节码文件编译为64位机器码文件。
19.根据权利要求17所述的设备,其特征在于,所述确定子模块,被配置为:
分别检测所述第三方应用的解压后的安装包是否包括32位目录和64位目录;
当所述解压后的安装包同时包括所述32位目录和所述64位目录,确定所述第三方应用支持32位操作系统和64位操作系统;
或,当所述解压后的安装包包括所述32位目录且不包括所述64位目录,确定所述第三方应用支持32位操作系统且不支持64位操作系统;
或,当所述解压后的安装包包括和所述64位目录且不包括所述32位目录,确定所述第三方应用支持64位操作系统且不支持32位操作系统。
20.根据权利要求15至19任一所述的设备,其特征在于,所述设备还包括:
第二存储模块,被配置为在所述终端的数据分区存储所述字节码文件。
21.根据权利要求20所述的设备,其特征在于,
所述第二存储模块,被配置为:
检测预设的安卓编译文件中,所述第三方应用的应用设置;
当所述应用设置为保留字节码文件时,在所述终端的数据分区存储所述字节码文件;
当所述应用设置为不保留字节码文件时,将所述应用设置修改为保留字节码文件,并在所述终端的数据分区存储所述字节码文件。
22.根据权利要求16所述的设备,其特征在于,所述修改模块,被配置为:
在所述终端的数据分区中设置清除标志位,所述清除标志位用于指示所述终端禁止所述强制提取字节码文件标志位生效。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储至少一条指令,所述指令被处理器执行时实现权利要求1-3任一所述的文件运行方法或者4-11任一所述的文件运行方法。
CN201611046513.1A 2016-11-23 2016-11-23 文件运行方法及设备 Active CN106775644B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201611046513.1A CN106775644B (zh) 2016-11-23 2016-11-23 文件运行方法及设备
US15/820,740 US10824410B2 (en) 2016-11-23 2017-11-22 Method and equipment for executing a file
EP17203348.2A EP3327565A1 (en) 2016-11-23 2017-11-23 Method and equipment for running a file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611046513.1A CN106775644B (zh) 2016-11-23 2016-11-23 文件运行方法及设备

Publications (2)

Publication Number Publication Date
CN106775644A CN106775644A (zh) 2017-05-31
CN106775644B true CN106775644B (zh) 2020-03-17

Family

ID=58975414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611046513.1A Active CN106775644B (zh) 2016-11-23 2016-11-23 文件运行方法及设备

Country Status (3)

Country Link
US (1) US10824410B2 (zh)
EP (1) EP3327565A1 (zh)
CN (1) CN106775644B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423093B (zh) * 2017-07-21 2020-09-15 珠海市魅族科技有限公司 控制方法及装置、计算机装置和计算机可读存储介质
CN111078225B (zh) * 2019-11-21 2023-07-28 贝壳技术有限公司 一种热重载方法、装置、电子设备和存储介质
CN113504997B (zh) * 2021-07-28 2023-03-21 亿咖通(湖北)技术有限公司 应用程序安装包文件的处理方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699398A (zh) * 2012-09-27 2014-04-02 联想(北京)有限公司 终端设备及其启动控制方法
CN105528229A (zh) * 2015-12-16 2016-04-27 广东欧珀移动通信有限公司 提高移动终端首次开机速度的方法及装置
CN105677335A (zh) * 2015-12-29 2016-06-15 广东欧珀移动通信有限公司 提高移动终端首次开机速度的方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE514762C2 (sv) 1998-05-28 2001-04-23 Ericsson Telefon Ab L M Förfarande, anordning och portabel terminal för programvarunedladdning i ett trådlöst näverk samt sådant telekommunikationsnät
GB0325553D0 (en) * 2003-11-01 2003-12-03 Ibm Method and apparatus for activating/deactivating run-time determined software routines in Java compiled bytecode applications
US7587712B2 (en) * 2003-12-19 2009-09-08 Marvell International Ltd. End-to-end architecture for mobile client JIT processing on network infrastructure trusted servers
US7555679B2 (en) * 2004-10-13 2009-06-30 Lenovo (Singapore) Pte Ltd System and method for computer system rejuvenation
US8732690B1 (en) * 2011-10-27 2014-05-20 Crimson Corporation Computing device configured for installing an application
US9183020B1 (en) * 2014-11-10 2015-11-10 Xamarin Inc. Multi-sized data types for managed code
US20170269950A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Selective execution of ahead-of-time compiled code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699398A (zh) * 2012-09-27 2014-04-02 联想(北京)有限公司 终端设备及其启动控制方法
CN105528229A (zh) * 2015-12-16 2016-04-27 广东欧珀移动通信有限公司 提高移动终端首次开机速度的方法及装置
CN105677335A (zh) * 2015-12-29 2016-06-15 广东欧珀移动通信有限公司 提高移动终端首次开机速度的方法及装置

Also Published As

Publication number Publication date
US10824410B2 (en) 2020-11-03
US20180143817A1 (en) 2018-05-24
EP3327565A1 (en) 2018-05-30
CN106775644A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
EP3168745B1 (en) Method, device and system for application updating
JP6189000B2 (ja) アプリケーションのインストールパッケージの処理方法、装置、プログラム及び記録媒体
US20170060566A1 (en) Method and device for installing plug-in of smart device
EP3010187B1 (en) Method for upgrading and device and apparatus thereof
CN111221559B (zh) 应用更新方法、装置、存储介质、终端及服务器
CN107357613B (zh) 应用更新方法、装置及计算机可读存储介质
CN106406956B (zh) 应用程序的安装方法及装置
CN106775903B (zh) 安全策略文件更新方法及装置
CN105808305B (zh) 静态资源的加载方法和装置
CN106775644B (zh) 文件运行方法及设备
CN105468410A (zh) 系统升级方法及装置
CN111240694A (zh) 应用检测方法、应用检测装置及存储介质
CN111198706A (zh) 更新系统功能的方法、更新系统功能的装置及存储介质
EP3073371A1 (en) Method and device for loading theme application
CN109901886B (zh) 页面语言切换方法、系统、装置和计算机可读存储介质
CN111142939B (zh) 应用程序处理方法及装置
CN113590091A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN112181406A (zh) 一种渲染引擎的共享方法和装置
CN109933357B (zh) 应用程序升级方法及装置
CN111813426A (zh) 一种指纹数据处理方法及装置
CN107391356B (zh) 卡顿信息获取方法、装置及计算机可读存储介质
CN111767063A (zh) 应用程序的资源更新方法、装置及设备
CN114416218B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110377312B (zh) 一种软件升级方法、装置及介质
CN107391972B (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