CN108614697B - 后台Dex编译管控的方法及装置 - Google Patents
后台Dex编译管控的方法及装置 Download PDFInfo
- Publication number
- CN108614697B CN108614697B CN201611146793.3A CN201611146793A CN108614697B CN 108614697 B CN108614697 B CN 108614697B CN 201611146793 A CN201611146793 A CN 201611146793A CN 108614697 B CN108614697 B CN 108614697B
- Authority
- CN
- China
- Prior art keywords
- application program
- background
- application
- core binding
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000009434 installation Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 6
- 230000002035 prolonged effect Effects 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供后台Dex编译管控的方法及装置,以至少解决目前使用ART虚拟机运行时,点击某个应用会出现前台应用启动时间变长,使用过程卡顿的问题。方法包括:确定应用程序的类型;若所述应用程序的类型为后台类应用程序,确定所述后台类应用程序的绑核资源,其中,所述后台类应用程序的绑核资源小于前台类应用程序的绑核资源;根据所述后台类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述后台类应用程序的绑核资源的信息;调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述后台类应用程序的绑核资源的信息,并根据所述后台类应用程序的绑核资源的信息,创建线程编译所述应用程序。本申请适用于计算机领域。
Description
技术领域
本申请涉及计算机领域,尤其涉及后台Dex编译管控的方法及装置。
背景技术
为解决安卓(Android)性能问题,Android从4.4开始使用安卓运行时刻(AndroidRuntime,ART)虚拟机运行,以替换之前一直使用的安卓Dalvik虚拟机。其中,为了保持向后兼容,即支持原来大量的安卓Dalvik虚拟机代码,ART虚拟机仍采用与安卓Dalvik虚拟机相同的应用开发模式,即源代码还是编译生成Dalvik虚拟机下的可执行Dex文件。后台类应用程序安装时,采用Dex2Oat编译工具,将Dex文件编译成ART虚拟机下的可执行Oat文件,以保证应用程序运行时直接读取Oat文件运行。
然而,由于后台类应用程序和前台类应用程序采用相同的绑核策略,抢占了前台类应用程序的中央处理单元(Central Processing Unit,CPU)和输入输出(Input/Output)I/O资源,因此,当用户在应用市场中下载了某个应用后,点击该应用时,会出现前台应用启动时间变长,使用过程卡顿的问题。
发明内容
本申请实施例提供后台Dex编译管控的方法及装置,以至少解决目前使用ART虚拟机运行时,点击某个应用会出现前台应用启动时间变长,使用过程卡顿的问题。
为达到上述目的,本申请实施例提供如下技术方案:
第一方面,本申请实施例提供一种后台Dex编译管控的方法,该方法包括:确定应用程序的类型;若该应用程序的类型为后台类应用程序,确定该后台类应用程序的绑核资源,其中,该后台类应用程序的绑核资源小于前台类应用程序的绑核资源;根据该后台类应用程序的绑核资源设置***属性,其中,该***属性中包括该后台类应用程序的绑核资源的信息;调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该后台类应用程序的绑核资源的信息,并根据该后台类应用程序的绑核资源的信息,创建线程编译该应用程序。也就是说,本申请实施例中,通过限制后台类应用程序的绑核资源,可以使得前台类应用程序有足够的绑核资源,从而提升了前台类应用程序的性能,避免了使用ART虚拟机运行时,点击某个应用会出现前台应用启动时间变长,使用过程卡顿的问题。
在一种可能的设计中,该确定该后台类应用程序的绑核资源,包括:根据预先配置的应用程序的类型和绑核资源的对应关系,确定该后台类应用程序的绑核资源,其中,该对应关系中包括该后台类应用程序和该后台类应用程序的绑核资源的对应关系。也就是说,可以静态配置应用程序的类型和绑核资源的对应关系,在确定应用程序的类型之后,可以直接根据该对应关系确定该应用程序的绑核资源。
在一种可能的设计中,该方法还包括:若该***属性为空或者该Dex2Oat读取该***属性失败,该Dex2Oat还用于根据预先设置的绑核资源,创建线程编译该应用程序,其中,该预先设置的绑核资源等于该前台类应用程序的绑核资源。这样可以避免因为***属性的问题而运行异常的情况发生,从而保证应用程序的正常运行。
在一种可能的设计中,该确定应用程序的类型,包括:确定包管理服务PMS的调用者是否为PM;若该PMS的调用者是PM,确定该应用程序的类型为调试类应用程序;若该PMS的调用者不是PM,确定该PMS的调用者是否为PackageInstaller;若该PMS的调用者是PackageInstaller,确定该应用程序的类型为前台类应用程序;若该PMS的调用者不是PackageInstaller,确定该应用程序的类型为后台类应用程序。通过上述方式,可以确定应用程序的类型。
在一种可能的设计中,在该确定应用程序的类型之后,还包括:若该应用程序的类型为前台类应用程序,确定该前台类应用程序的绑核资源;根据该前台类应用程序的绑核资源设置***属性,其中,该***属性中包括该前台类应用程序的绑核资源的信息;调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该前台类应用程序的绑核资源的信息,并根据该前台类应用程序的绑核资源的信息,创建线程编译该应用程序。基于本申请实施例提供的后台Dex编译管控的方法,还可以处理前台类应用程序。
在一种可能的设计中,在该确定应用程序的类型之后,还包括:若该应用程序的类型为调试类应用程序,确定该调试类应用程序的绑核资源;根据该调试类应用程序的绑核资源设置***属性,其中,该***属性中包括该调试类应用程序的绑核资源的信息;调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该调试类应用程序的绑核资源的信息,并根据该调试类应用程序的绑核资源的信息,创建线程编译该应用程序。
基于本申请实施例提供的后台Dex编译管控的方法,还可以处理调试类应用程序。
在一种可能的设计中,该后台类应用程序的绑核资源包括M1个小核,N1个大核,其中,(M1+N1)<(M2+N2),M2为前台类应用程序的绑核资源中小核的数量,N2为前台类应用程序的绑核资源中大核的数量,M1、N1、M2、N2均为整数。
在一种可能的设计中,该***属性的格式为:<pkg_name>:B<N>:L<M>,其中,pkg_name表示应用名称,B表示大核,L表示小核,N表示大核的数量,M表示小核的数量。
第二方面,本申请实施例提供一种后台Dex编译管控的装置,该装置包括:确定模块、设置模块和调用模块;该确定模块,用于确定应用程序的类型;该确定模块,还用于若该应用程序的类型为后台类应用程序,确定该后台类应用程序的绑核资源,其中,该后台类应用程序的绑核资源小于前台类应用程序的绑核资源;该设置模块,用于根据该后台类应用程序的绑核资源设置***属性,其中,该***属性中包括该后台类应用程序的绑核资源的信息;该调用模块,用于调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该后台类应用程序的绑核资源的信息,并根据该后台类应用程序的绑核资源的信息,创建线程编译该应用程序。
在一种可能的设计中,该确定模块确定该后台类应用程序的绑核资源,包括:根据预先配置的应用程序的类型和绑核资源的对应关系,确定该后台类应用程序的绑核资源,其中,该对应关系中包括该后台类应用程序和该后台类应用程序的绑核资源的对应关系。
在一种可能的设计中,若该***属性为空或者该Dex2Oat读取该***属性失败,该Dex2Oat还用于根据预先设置的绑核资源,创建线程编译该应用程序,其中,该预先设置的绑核资源等于该前台类应用程序的绑核资源。
在一种可能的设计中,该确定模块确定应用程序的类型,包括:确定包管理服务PMS的调用者是否为PM;若该PMS的调用者是PM,确定该应用程序的类型为调试类应用程序;若该PMS的调用者不是PM,确定该PMS的调用者是否为PackageInstaller;若该PMS的调用者是PackageInstaller,确定该应用程序的类型为前台类应用程序;若该PMS的调用者不是PackageInstaller,确定该应用程序的类型为后台类应用程序。
在一种可能的设计中,该确定模块,还用于在该确定应用程序的类型之后,若该应用程序的类型为前台类应用程序,确定该前台类应用程序的绑核资源;该设置模块,还用于根据该前台类应用程序的绑核资源设置***属性,其中,该***属性中包括该前台类应用程序的绑核资源的信息;该调用模块,还用于调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该前台类应用程序的绑核资源的信息,并根据该前台类应用程序的绑核资源的信息,创建线程编译该应用程序。
在一种可能的设计中,该确定模块,还用于在该确定应用程序的类型之后,若该应用程序的类型为调试类应用程序,确定该调试类应用程序的绑核资源;该设置模块,还用于根据该调试类应用程序的绑核资源设置***属性,其中,该***属性中包括该调试类应用程序的绑核资源的信息;该调用模块,还用于调用Dex2Oat,该Dex2Oat用于读取该***属性,得到该调试类应用程序的绑核资源的信息,并根据该调试类应用程序的绑核资源的信息,创建线程编译该应用程序。
在一种可能的设计中,该后台类应用程序的绑核资源包括M1个小核,N1个大核,其中,(M1+N1)<(M2+N2),M2为前台类应用程序的绑核资源中小核的数量,N2为前台类应用程序的绑核资源中大核的数量,M1、N1、M2、N2均为整数。
在一种可能的设计中,该***属性的格式为:<pkg_name>:B<N>:L<M>,其中,pkg_name表示应用名称,B表示大核,L表示小核,N表示大核的数量,M表示小核的数量。
第三方面,本申请实施例提供一种后台Dex编译管控的装置,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该后台Dex编译管控的装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该后台Dex编译管控的装置执行第一方面任意一项的后台Dex编译管控的方法。
第四方面,本申请实施例提供了一种计算机存储介质,用于储存为上述后台Dex编译管控的装置所用的计算机软件指令,其包含用于执行上述方面为后台Dex编译管控的装置所设计的程序。
第五方面,本申请实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面中任意一项的后台Dex编译管控的方法中的流程。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的Android***支持的三种类型的应用程序的安装架构示意图;
图2为本申请实施例提供的计算机设备的架构示意图;
图3为本申请实施例提供的一种后台Dex编译管控的方法的流程示意图;
图4为本申请实施例提供的另一种后台Dex编译管控的方法的流程示意图;
图5为本申请实施例提供的又一种后台Dex编译管控的方法的流程示意图;
图6为本申请实施例提供的一种后台Dex编译管控的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1为本申请实施例提供的Android***支持的三种类型的应用程序的安装架构示意图。如图1所示,当前Android***支持后台类应用程序、前台类应用程序和调试类应用程序三种类型的应用程序。其中,
后台类应用程序:从应用市场安装。例如:华为的应用市场,360手机助手,应用宝等,这类应用程序安装时,没有应用安装界面,在后台直接调用包管理服务(PackageManager Service,PMS)安装应用程序。PMS安装完成应用程序后,发送消息通知应用市场安装完成。
前台类应用程序:应用程序安装时,有交互界面。例如:从浏览器中下载应用程序后安装、或者从文件管理软件中点击应用的Android应用程序包文件(AndroidApplication Package,APK)后安装,或者,应用内更新等。这类应用程序安装时,直接调用PackageInstaller,再由PackageInstaller去调用PMS完成应用程序的安装。其中,PackageInstaller是Android上默认的应用程序,用它来交互式地安装普通包文件,其提供用户界面管理应用的安装。
调试类应用程序:通过电脑安装。例如:通过数据线连接电脑后,通过电脑的软件安装应用程序,其通过PM安装(install)命令,调用PMS完成应用程序的安装。其中,PM是Android里面package Manage的命令行,用于安装包的操作。
其中,在上述三种类型的应用程序安装时,PMS均需要调用Dex2Oat编译工具,将Dex文件编译成ART虚拟机下的可执行Oat文件,以保证应用程序运行时直接读取Oat文件运行。本申请实施例中,将运行PMS的装置称作后台Dex编译管控的装置,当然,运行PMS的装置也可能是其他名称,本申请实施例对此不作具体限定。
如图2所示,本申请实施例中,后台Dex编译管控的装置可以通过图2中的计算机设备(或***)来实现。
图2所示为本申请实施例提供的计算机设备示意图。计算机设备200包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。
通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(Radio Access Network,RAN),无线局域网(Wireless Local AreaNetworks,WLAN)等。
存储器203可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器203用于存储执行本申请方案的应用程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的应用程序代码,从而实现后台Dex编译管控。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备200可以包括多个处理器,例如图2中的处理器201和处理器208。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(Liquid Crystal Display,LCD),发光二级管(Light Emitting Diode,LED)显示设备,阴极射线管(Cathode Ray Tube,CRT)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接受用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备200可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图2中类似结构的设备。本申请实施例不限定计算机设备200的类型。
如图3所示,为本申请实施例提供的后台Dex编译管控的方法,应用于后台Dex编译管控的装置,包括如下步骤:
S301、后台Dex编译管控的装置确定应用程序的类型。
如图1所示,当前Android***支持后台类应用程序、前台类应用程序和调试类应用程序三种类型的应用程序。其中,后台Dex编译管控的装置可以通过如下方式确定应用程序的类型:
后台Dex编译管控的装置确定PMS的调用者是否为PM;若PMS的调用者是PM,确定应用程序的类型为调试类应用程序;若PMS的调用者不是PM,确定PMS的调用者是否为PackageInstaller;若PMS的调用者是PackageInstaller,确定应用程序的类型为前台类应用程序;若PMS的调用者不是PackageInstaller,确定应用程序的类型为后台类应用程序。
S302、若应用程序的类型为后台类应用程序,后台Dex编译管控的装置确定后台类应用程序的绑核资源。
其中,后台类应用程序的绑核资源小于前台类应用程序的绑核资源。
例如,后台类应用程序的绑核资源包括M1个小核,N1个大核,其中,(M1+N1)<(M2+N2),M2为前台类应用程序的绑核资源中小核的数量,N2为前台类应用程序的绑核资源中大核的数量,M1、N1、M2、N2均为整数。
一种可能的实现方式中,后台Dex编译管控的装置确定后台类应用程序的绑核资源,具体可以包括:
根据预先配置的应用程序的类型和绑核资源的对应关系,确定后台类应用程序的绑核资源,其中,上述对应关系中包括后台类应用程序和后台类应用程序的绑核资源的对应关系。
例如,后台Dex编译管控的装置中可以预先配置如表一所示的对应关系:
表一
应用程序的类型 | 绑核资源 |
后台类应用程序 | M1个小核,N1个大核 |
前台类应用程序 | M2个小核,N2个大核 |
调试类应用程序 | M3个小核,N3个大核 |
…… | …… |
在后台Dex编译管控的装置确定应用程序的类型为后台类应用程序之后,可以根据表一所示的对应关系,确定后台类应用程序的绑核资源包括M1个小核,N1个大核。
S303、后台Dex编译管控的装置根据后台类应用程序的绑核资源设置***属性。
其中,***属性中包括后台类应用程序的绑核资源的信息。
其中,本申请实施例中,***属性的格式可以为:<pkg_name>:B<N>:L<M>,其中,pkg_name表示应用名称,B表示大核,L表示小核,N表示大核的数量,M表示小核的数量。
比如,若应用程序的名称为应用宝,应用宝的类型为后台类应用程序,后台类应用程序的绑核资源包括M1个小核,N1个大核,则后台Dex编译管控的装置根据后台类应用程序的绑核资源设置***属性为:“应用宝:B<N1>:L<M1>”。
S304、后台Dex编译管控的装置调用Dex2Oat,该Dex2Oat用于读取***属性,得到后台类应用程序的绑核资源的信息,并根据后台类应用程序的绑核资源的信息,创建线程编译应用程序。
其中,若后台类应用程序的绑核资源包括M1个小核,N1个大核,则后台Dex编译管控的装置可以创建(M1+N1)个线程编译应用程序,其中,每个大核或小核运行一个线程。
可选的,若***属性为空或者Dex2Oat读取***属性失败,则Dex2Oat还用于根据预先设置的绑核资源,创建线程编译应用程序,其中,预先设置的绑核资源等于前台类应用程序的绑核资源。
例如,预先设置的绑核资源可以包括M2个小核,N2个大核。
这样可以避免因为***属性的问题而运行异常的情况发生,从而保证应用程序的正常运行。
基于本申请实施例提供的后台Dex编译管控的方法,由于后台Dex编译管控的装置可以确定应用程序的类型,并在确定应用程序的类型为后台类应用程序之后,确定后台类应用程序的绑核资源,其中,后台类应用程序的绑核资源小于前台类应用程序的绑核资源,进而后台Dex编译管控的装置根据该后台类应用程序的绑核资源设置***属性,并调用Dex2Oat,该Dex2Oat用于读取***属性,得到后台类应用程序的绑核资源的信息,并根据后台类应用程序的绑核资源的信息,创建线程编译应用程序。也就是说,本申请实施例中,通过限制后台类应用程序的绑核资源,可以使得前台类应用程序有足够的绑核资源,从而提升了前台类应用程序的性能,避免了使用ART虚拟机运行时,点击某个应用会出现前台应用启动时间变长,使用过程卡顿的问题。
其中,上述S301-S304中后台Dex编译管控的装置的动作可以由图2所示的计算机设备200中的处理器201调用存储器203中存储的应用程序代码来执行,本申请实施例对此不作任何限制。
如图4所示,本申请实施例中,在后台Dex编译管控的装置确定应用程序的类型之后,还包括如下步骤:
S305、若应用程序的类型为前台类应用程序,后台Dex编译管控的装置确定前台类应用程序的绑核资源。
一种可能的实现方式中,后台Dex编译管控的装置确定前台类应用程序的绑核资源,具体可以包括:
根据预先配置的应用程序的类型和绑核资源的对应关系,确定前台类应用程序的绑核资源,其中,上述对应关系中包括前台类应用程序和前台类应用程序的绑核资源的对应关系。
例如,后台Dex编译管控的装置中可以预先配置如上述表一所示的对应关系。
在后台Dex编译管控的装置确定应用程序的类型为前台类应用程序之后,可以根据表一所示的对应关系,确定前台类应用程序的绑核资源包括M2个小核,N2个大核。
S306、后台Dex编译管控的装置根据前台类应用程序的绑核资源设置***属性。
其中,***属性中包括前台类应用程序的绑核资源的信息。
其中,***属性的格式可参考步骤S303中的描述,本申请实施例在此不再赘述。
比如,若应用程序的名称为微信,微信的类型为前台类应用程序,前台类应用程序的绑核资源包括M2个小核,N2个大核,则后台Dex编译管控的装置根据前台类应用程序的绑核资源设置***属性为:“微信:B<N2>:L<M2>”。
S307、后台Dex编译管控的装置调用Dex2Oat,该Dex2Oat用于读取***属性,得到前台类应用程序的绑核资源的信息,并根据前台类应用程序的绑核资源的信息,创建线程编译应用程序。
其中,若前台类应用程序的绑核资源包括M2个小核,N2个大核,则后台Dex编译管控的装置可以创建(M2+N2)个线程编译应用程序,其中,每个大核或小核运行一个线程。
基于本申请实施例提供的后台Dex编译管控的方法,还可以处理前台类应用程序。
其中,上述S301-S307中后台Dex编译管控的装置的动作可以由图2所示的计算机设备200中的处理器201调用存储器203中存储的应用程序代码来执行,本申请实施例对此不作任何限制。
如图5所示,本申请实施例中,在后台Dex编译管控的装置确定应用程序的类型之后,还包括如下步骤:
S308、若应用程序的类型为调试类应用程序,后台Dex编译管控的装置确定调试类应用程序的绑核资源。
一种可能的实现方式中,后台Dex编译管控的装置确定调试类应用程序的绑核资源,具体可以包括:
根据预先配置的应用程序的类型和绑核资源的对应关系,确定调试类应用程序的绑核资源,其中,上述对应关系中包括调试类应用程序和调试类应用程序的绑核资源的对应关系。
例如,后台Dex编译管控的装置中可以预先配置如上述表一所示的对应关系。
在后台Dex编译管控的装置确定应用程序的类型为调试类应用程序之后,可以根据表一所示的对应关系,确定调试类应用程序的绑核资源包括M3个小核,N3个大核。
需要说明的是,本申请实施例中,调试类应用程序的绑核资源可以和前台类应用程序的资源相同,也可以不同,即M3可以等于M2,N3可以等于N2,或者,M3可以不等于M2,或者M3可以不等于N2,本申请实施例对此不作具体限定。
S309、后台Dex编译管控的装置根据调试类应用程序的绑核资源设置***属性。
其中,***属性中包括调试类应用程序的绑核资源的信息。
其中,***属性的格式可参考步骤S303中的描述,本申请实施例在此不再赘述。
比如,若应用程序的名称为微信,微信的类型为调试类应用程序,调试类应用程序的绑核资源包括M3个小核,N3个大核,则后台Dex编译管控的装置根据调试类应用程序的绑核资源设置***属性为:“微信:B<N3>:L<M3>”。
S310、后台Dex编译管控的装置调用Dex2Oat,该Dex2Oat用于读取***属性,得到调试类应用程序的绑核资源的信息,并根据调试类应用程序的绑核资源的信息,创建线程编译应用程序。
其中,若调试类应用程序的绑核资源包括M3个小核,N3个大核,则后台Dex编译管控的装置可以创建(M3+N3)个线程编译应用程序,其中,每个大核或小核运行一个线程。
基于本申请实施例提供的后台Dex编译管控的方法,还可以处理调试类应用程序。
其中,上述S301-S310中后台Dex编译管控的装置的动作可以由图2所示的计算机设备200中的处理器201调用存储器203中存储的应用程序代码来执行,本申请实施例对此不作任何限制。
表二给出了应用“京东商城”启动时,不同的绑核资源场景下,有无Dex2Oat在后台运行时的影响对比列表,其中,目前,前台类应用程序的绑核资源为绑4大核,由表二可以看出,在有Dex2Oat在后台运行的情况下,当后台类应用程序的绑核资源为绑2大核时,应用“京东商城”的启动时间最短。
表二
上述主要从后台Dex编译管控的装置的角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述后台Dex编译管控的装置为了实现上述功能,其包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对后台Dex编译管控的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中所涉及的后台Dex编译管控的装置60的一种可能的结构示意图,该后台Dex编译管控的装置60包括:确定模块601、设置模块602和调用模块603。其中,确定模块601用于支持后台Dex编译管控的装置60执行图3至图5中的步骤S301和S302;设置模块602用于支持后台Dex编译管控的装置60执行图3至图5中的步骤S303;调用模块603用于支持后台Dex编译管控的装置60执行图3至图5中的步骤S304。
可选的,确定模块601还用于支持后台Dex编译管控的装置60执行图4或图5中的步骤S305;设置模块602用于支持后台Dex编译管控的装置60执行图4或图5中的步骤S306;调用模块603用于支持后台Dex编译管控的装置60执行图4或图5中的步骤S307。
可选的,确定模块601还用于支持后台Dex编译管控的装置60执行图5中的步骤S308;设置模块602用于支持后台Dex编译管控的装置60执行图5中的步骤S309;调用模块603用于支持后台Dex编译管控的装置60执行图5中的步骤S310。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
由于本申请实施例提供的后台Dex编译管控的装置可用于执行上述后台Dex编译管控的方法,因此其所能获得的技术效果可参考上述方法实施例,本申请实施例在此不再赘述。
本申请实施例还提供了一种计算机存储介质,用于储存为上述后台Dex编译管控的装置所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现后台Dex编译管控的方法。
本申请实施例还提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述方法实施例的流程。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信***。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (17)
1.一种后台Dex编译管控的方法,其特征在于,所述方法包括:
确定应用程序的类型;
若所述应用程序的类型为后台类应用程序,确定所述后台类应用程序的绑核资源,其中,所述后台类应用程序的绑核资源小于前台类应用程序的绑核资源;
根据所述后台类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述后台类应用程序的绑核资源的信息;
调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述后台类应用程序的绑核资源的信息,并根据所述后台类应用程序的绑核资源的信息,创建线程编译所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述确定所述后台类应用程序的绑核资源,包括:
根据预先配置的应用程序的类型和绑核资源的对应关系,确定所述后台类应用程序的绑核资源,其中,所述对应关系中包括所述后台类应用程序和所述后台类应用程序的绑核资源的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述***属性为空或者所述Dex2Oat读取所述***属性失败,所述Dex2Oat还用于根据预先设置的绑核资源,创建线程编译所述应用程序,其中,所述预先设置的绑核资源等于所述前台类应用程序的绑核资源。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述确定应用程序的类型,包括:
确定包管理服务PMS的调用者是否为PM,所述PM为Android里面package Manage的命令行,用于执行调试类应用程序的安装操作;
若所述PMS的调用者是PM,确定所述应用程序的类型为调试类应用程序;
若所述PMS的调用者不是PM,确定所述PMS的调用者是否为PackageInstaller;
若所述PMS的调用者是PackageInstaller,确定所述应用程序的类型为前台类应用程序;
若所述PMS的调用者不是PackageInstaller,确定所述应用程序的类型为后台类应用程序。
5.根据权利要求1-3任一项所述的方法,其特征在于,在所述确定应用程序的类型之后,还包括:
若所述应用程序的类型为前台类应用程序,确定所述前台类应用程序的绑核资源;
根据所述前台类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述前台类应用程序的绑核资源的信息;
调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述前台类应用程序的绑核资源的信息,并根据所述前台类应用程序的绑核资源的信息,创建线程编译所述应用程序。
6.根据权利要求1-3任一项所述的方法,其特征在于,在所述确定应用程序的类型之后,还包括:
若所述应用程序的类型为调试类应用程序,确定所述调试类应用程序的绑核资源;
根据所述调试类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述调试类应用程序的绑核资源的信息;
调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述调试类应用程序的绑核资源的信息,并根据所述调试类应用程序的绑核资源的信息,创建线程编译所述应用程序。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述后台类应用程序的绑核资源包括M1个小核,N1个大核,其中,(M1+N1)<(M2+N2),M2为前台类应用程序的绑核资源中小核的数量,N2为前台类应用程序的绑核资源中大核的数量,M1、N1、M2、N2均为整数。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述***属性的格式为:<pkg_name>:B<N>:L<M>,其中,pkg_name表示应用名称,B表示大核,L表示小核,N表示大核的数量,M表示小核的数量。
9.一种后台Dex编译管控的装置,其特征在于,所述装置包括:确定模块、设置模块和调用模块;
所述确定模块,用于确定应用程序的类型;
所述确定模块,还用于若所述应用程序的类型为后台类应用程序,确定所述后台类应用程序的绑核资源,其中,所述后台类应用程序的绑核资源小于前台类应用程序的绑核资源;
所述设置模块,用于根据所述后台类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述后台类应用程序的绑核资源的信息;
所述调用模块,用于调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述后台类应用程序的绑核资源的信息,并根据所述后台类应用程序的绑核资源的信息,创建线程编译所述应用程序。
10.根据权利要求9所述的装置,其特征在于,所述确定模块确定所述后台类应用程序的绑核资源,包括:
根据预先配置的应用程序的类型和绑核资源的对应关系,确定所述后台类应用程序的绑核资源,其中,所述对应关系中包括所述后台类应用程序和所述后台类应用程序的绑核资源的对应关系。
11.根据权利要求10所述的装置,其特征在于,若所述***属性为空或者所述Dex2Oat读取所述***属性失败,所述Dex2Oat还用于根据预先设置的绑核资源,创建线程编译所述应用程序,其中,所述预先设置的绑核资源等于所述前台类应用程序的绑核资源。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述确定模块确定应用程序的类型,包括:
确定包管理服务PMS的调用者是否为PM,所述PM为Android里面package Manage的命令行,用于执行调试类应用程序的安装操作;
若所述PMS的调用者是PM,确定所述应用程序的类型为调试类应用程序;
若所述PMS的调用者不是PM,确定所述PMS的调用者是否为PackageInstaller;
若所述PMS的调用者是PackageInstaller,确定所述应用程序的类型为前台类应用程序;
若所述PMS的调用者不是PackageInstaller,确定所述应用程序的类型为后台类应用程序。
13.根据权利要求9-11任一项所述的装置,其特征在于,
所述确定模块,还用于在所述确定应用程序的类型之后,若所述应用程序的类型为前台类应用程序,确定所述前台类应用程序的绑核资源;
所述设置模块,还用于根据所述前台类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述前台类应用程序的绑核资源的信息;
所述调用模块,还用于调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述前台类应用程序的绑核资源的信息,并根据所述前台类应用程序的绑核资源的信息,创建线程编译所述应用程序。
14.根据权利要求9-11任一项所述的装置,其特征在于,
所述确定模块,还用于在所述确定应用程序的类型之后,若所述应用程序的类型为调试类应用程序,确定所述调试类应用程序的绑核资源;
所述设置模块,还用于根据所述调试类应用程序的绑核资源设置***属性,其中,所述***属性中包括所述调试类应用程序的绑核资源的信息;
所述调用模块,还用于调用Dex2Oat,所述Dex2Oat用于读取所述***属性,得到所述调试类应用程序的绑核资源的信息,并根据所述调试类应用程序的绑核资源的信息,创建线程编译所述应用程序。
15.根据权利要求9-11任一项所述的装置,其特征在于,所述后台类应用程序的绑核资源包括M1个小核,N1个大核,其中,(M1+N1)<(M2+N2),M2为前台类应用程序的绑核资源中小核的数量,N2为前台类应用程序的绑核资源中大核的数量,M1、N1、M2、N2均为整数。
16.根据权利要求9-11任一项所述的装置,其特征在于,所述***属性的格式为:<pkg_name>:B<N>:L<M>,其中,pkg_name表示应用名称,B表示大核,L表示小核,N表示大核的数量,M表示小核的数量。
17.一种后台Dex编译管控的装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述后台Dex编译管控的装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述后台Dex编译管控的装置执行如权利要求1-8中任意一项所述的后台Dex编译管控的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146793.3A CN108614697B (zh) | 2016-12-13 | 2016-12-13 | 后台Dex编译管控的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146793.3A CN108614697B (zh) | 2016-12-13 | 2016-12-13 | 后台Dex编译管控的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614697A CN108614697A (zh) | 2018-10-02 |
CN108614697B true CN108614697B (zh) | 2021-03-30 |
Family
ID=63657282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611146793.3A Active CN108614697B (zh) | 2016-12-13 | 2016-12-13 | 后台Dex编译管控的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614697B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111435318A (zh) * | 2019-01-15 | 2020-07-21 | 青岛海信移动通信技术股份有限公司 | 应用程序的dex优化方法及终端 |
CN112948074B (zh) * | 2021-02-01 | 2023-08-18 | 驭新智行科技(宁波)有限公司 | dex2oat进程的CPU资源调度方法及电子设备 |
CN114996078B (zh) * | 2021-12-07 | 2023-05-09 | 荣耀终端有限公司 | dex文件的编译控制方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164269A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | 一种多窗口显示应用程序的方法及终端 |
CN104731643A (zh) * | 2015-02-27 | 2015-06-24 | 浙江大学 | 一种后台应用程序的管理方法和管理*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和*** |
CN104360885A (zh) * | 2014-11-18 | 2015-02-18 | 深圳市中兴移动通信有限公司 | 一种启动控制方法、装置及终端 |
CN104407690B (zh) * | 2014-12-19 | 2018-03-06 | 中科创达软件股份有限公司 | 调节cpu工作频率的方法、装置及移动终端 |
CN106155790B (zh) * | 2016-06-30 | 2020-02-18 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序的管理方法、管理装置和终端 |
-
2016
- 2016-12-13 CN CN201611146793.3A patent/CN108614697B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164269A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | 一种多窗口显示应用程序的方法及终端 |
CN104731643A (zh) * | 2015-02-27 | 2015-06-24 | 浙江大学 | 一种后台应用程序的管理方法和管理*** |
Non-Patent Citations (2)
Title |
---|
基于Trace合并和寄存器分配的Dalvik优化;余超君等;《计算机工程》;20141221;第61-65,70页 * |
英国Delcam公司发布PowerMILL10,融入多线程和后台处理技术;超星期刊;《模具工程》;20091231(第11期);第52页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108614697A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2658190C2 (ru) | Управление доступом во время выполнения к интерфейсам прикладного программирования | |
US20150331726A1 (en) | Persistent and resilient worker processes | |
WO2015048206A1 (en) | Rendering interpreter for visualizing data provided from restricted environment container | |
US9141363B2 (en) | Application construction for execution on diverse computing infrastructures | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN108170430B (zh) | 一种界面展示的方法及*** | |
CN108614697B (zh) | 后台Dex编译管控的方法及装置 | |
CN110895471A (zh) | 安装包生成方法、装置、介质及电子设备 | |
CN111651219A (zh) | 一种多模块项目配置文件管理的方法及设备 | |
US10725795B2 (en) | Systems, methods, and apparatuses for dynamic creation of an external code segment within a cloud based computing environment | |
CN110597564A (zh) | 一种安装包构建和业务组件加载方法、装置、终端设备 | |
CN106599045B (zh) | 一种请求发送方法及装置 | |
CN109102200B (zh) | 一种定时任务处理方法及装置 | |
CN113448650A (zh) | 直播功能插件加载方法、装置、设备及存储介质 | |
CN104700255B (zh) | 多进程处理方法、装置和*** | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
CN110599112B (zh) | 一种网络页面开发、维护方法和装置 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN116382694A (zh) | 一种提升容器环境下Maven工程编译速度的方法 | |
EP3872630A2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN113448585B (zh) | 一种线程池的编译方法、装置、电子设备和存储介质 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN111859403A (zh) | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 | |
CN106570143B (zh) | 一种发送响应对象的方法和装置 | |
CN110928860A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200424 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |