CN115904409A - 信息处理方法及装置、电子设备及存储介质 - Google Patents

信息处理方法及装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115904409A
CN115904409A CN202211414599.4A CN202211414599A CN115904409A CN 115904409 A CN115904409 A CN 115904409A CN 202211414599 A CN202211414599 A CN 202211414599A CN 115904409 A CN115904409 A CN 115904409A
Authority
CN
China
Prior art keywords
specified configuration
folder
application
configuration file
information
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.)
Pending
Application number
CN202211414599.4A
Other languages
English (en)
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 CN202211414599.4A priority Critical patent/CN115904409A/zh
Publication of CN115904409A publication Critical patent/CN115904409A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本公开实施例提供一种信息处理方法及装置、电子设备及存储介质。所述信息处理方法,可包括:根据应用程序包安装目标程序;在所述目标程序安装或升级完成之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;根据所述指定配置规则,对所述预定功能进行预编译。

Description

信息处理方法及装置、电子设备及存储介质
技术领域
本公开涉及电子技术领域,尤其涉及一种信息处理方法及装置、电子设备及存储介质。
背景技术
通过应用程序包可以将程序安装到电子设备中。例如,手机、平板电脑或者可穿戴式设备等可以从服务器下载安装包或者升级包,使用安装包安装在设备内安装新程序,或者使用升级包对已安装程序进行升级和迭代。
但是在应用程序使用的过程中,有时候会伴随着应用程序响应速度慢的问题,从而使得用户使用体验差。
发明内容
本公开实施例公开了一种信息处理方法及装置、终端设备及存储介质。
本公开实施例第一方面提供一种信息处理方法,所述方法包括:
根据应用程序包安装目标程序;
在所述目标程序安装或升级完成之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
根据所述指定配置规则,对所述预定功能进行预编译。
可以理解地,所述方法还包括:
在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
当所述第一文件夹内存在第二文件夹时,确定所述应用程序包包含所述指定配置规则。
可以理解地,所述第一文件夹包括:资产asset文件夹;
和/或;
所述第二文件夹包括:可执行文件优化dexopt子文件。
可以理解地,所述当所述指定路径下存在预定子路径时,确定所述应用程序包包含所述指定配置规则,包括:
在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
可以理解地,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
可以理解地,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
可以理解地,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
可以理解地,所述方法还包括:
在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;
或者,
在完成所述预定功能编译会后,输出安装或升级结果通知。
本公开实施例第二方面提供一种信息处理装置,所述装置包括:
安装模块,用于根据应用程序包安装目标程序;
获取模块,用于在所述目标程序安装完成之后,获取所述应用程序包的存在指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
预编译模块,用于在存在指定配置规则时,根据所述指定配置规则,对所述预定功能进行预编译。
可以理解地,所述装置还包括:
读取模块,具体用于在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
确定当所述第一文件夹内存在第二文件夹时,确定所述应用程序包包含所述指定配置规则在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹。
可以理解地,所述第一文件夹包括:资产asset文件夹;
和/或;
所述预第二文件夹包括:可执行文件优化dexopt子文件。
可以理解地,所述确定模块,用于在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
可以理解地,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
可以理解地,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
可以理解地,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
可以理解地,所述装置还包括:输出模块;
所述输出模块,用于在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;或者,在完成所述预定功能编译会后,输出安装或升级结果通知。
本公开实施例第三方面提供一种电子设备,包括:
用于存储处理器可执行指令的存储器;
处理器,与所述存储器连接;
其中,所述处理器被配置为执行如前述任意技术方案提供的信息处理方法。
本公开实施例第四方面提供一种非临时性计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现前述第一方面任意技术方案提供的信息处理方法。
本公开的实施例提供的技术方案,一方面,在完成目标应用的安装之后,会获取应用程序包包含的指定配置规则,根据指定配置规则预先进行预定功能所对应代码的预先编译。在完成预编译之后就会生成电子设备可执行的机器码,后续电子设备执行预定功能时不用临时编译,从而减少了执行预定功能时临时编译代码的时间,从而提升了预定功能的执行响应速率。另一方面,该指定配置规则是直接携带在应用程序包中,如此,即便电子设备首次安装目标应用,也可以确定出需要预先编译的预定功能的代码,从而即便电子设备首次安装目标应用,也可以基于预定功能的代码预先编译提升响应速率,并提升了用户使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本公开一示例性实施例示出的信息处理方法的流程示意图;
图2是本公开一示例性实施例示出的信息处理方法的流程示意图;
图3是本公开一示例性实施例示出的信息处理方法的流程示意图;
图4是本公开一示例性实施例示出的信息处理方法的流程示意图;
图5是本公开一示例性实施例示出的信息处理装置的结构示意图;
图6是本公开一示例性实施例示出的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附申请文件中所详述的、本发明的一些方面相一致的装置和方法的例子。
本公开实施例提供一种信息处理方法,所述方法可包括:
S1110:根据应用程序包安装目标程序;
S1120:在所述目标程序安装或升级完成之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
S1130:在存在指定配置规则时,根据所述指定配置规则,对所述预定功能进行预编译。
该电子设备可包括各种终端设备和/或服务器等。所述终端设备可包括移动终端和/或固定终端。所述移动终端可包括但不限于:手机、平板电脑、可穿戴式设备、车载设备、智能家居设备和/或智能办公设备。
所述应用程序包可包括但不限于安卓应用程序包(Android ApplicationPackage,APK),等目标应用的安装包和/或升级包等。
该目标应用可为各种安装在电子设备内的应用程序,例如,社交应用、视频播放应用、阅读类应用、购物应用、旅行类应用、备忘录应用、音频播放应用和/或办公应用等。
在本公开实施例中,所述应用程序包可携带指定配置规则,该指定配置规则可指示是否存在待预编译的预定功能,和/或预定功能的指代信息。
示例性地,在预编译时,根据指代信息预编译预定功能的部分或者全部字节码,得到编译后的机器码。
字节码(Byte-code)是一种包含执行程序,由一序列操作(Opration,op)代码/数据对组成的二进制文件,是一种中间码,电子设备的硬件不能直接执行字节码。
所述机器码为电子设备的硬件可执行的代码。
在另一些实施例中,所述代码信息可包括:字节码的标识、和/或预定功能的字节码的存储位置信息等。
总之,所述代码信息可供电子设备,在应用程序包找到待预编译的代码。
此处的预编译可理解为:在没有执行预定功能之前预先编译,得到机器码;
并将机器码存在对应文件中,后续在使用到预定功能时就不用临时编译了,从而提升预定功能的响应速度。
示例性地,将所述机器码存在预编译(Of Ahead Time,OAT)文件中。OAT文件是一种安卓(Android)私有可执行与可链接格式(Executable and Linkable Format,ELF)文件格式,它不仅包含有从DEX文件翻译而来的本地机器指令,还包含有原来的DEX文件内容
所述预定功能包括:启动功能,可包括:目标应用的启动功能,若预先预编译启动相关的字节码,就可以提升目标程序安装之后启动速度。
所述热点功能可为所述目标程序中启动功能以外的其他功能。
示例性地,所述热点功能可包括以下至少之一:
目标应用上市应用之后,根据统计大量用户的统计数据确定出使用频率最高的一个或多个功能;
目标应用上市应用之后,根据统计大量用户的统计数据确定好评率最高的一个或多个功能;
目标应用的核心功能,例如,即时通信的社交应用,则应用界面的聊天功能为所述热点功能;
根据目标应用上市前内测时确定的使用频率最高的一个或多个功能;
目标应用上市前内测时,根据统计数据确定出的好评率最高的一个或多个功能;
包含类的个数最多的一个或多个功能;
包含方法的个数最多的一个或多个功能。
在本公开实施例中,热点功能相相比较非热点功能而言,由于使用的频率较高,因此是通过预编译可以提升后续的响应速率。
一方面,在完成目标应用的安装之后,会获取应用程序包包含的指定配置规则,根据指定配置规则预先进行预定功能所对应代码的预先编译。在完成预编译之后就会生成电子设备可执行的机器码,后续电子设备执行预定功能时不用临时编译,从而减少了执行预定功能时临时编译代码的时间,从而提升了预定功能的执行响应速率。
另一方面,该指定配置规则是直接携带在应用程序包中,如此,即便电子设备首次安装目标应用,也可以确定出需要预先编译的预定功能的代码,从而即便电子设备首次安装目标应用,也可以基于预定功能的代码预先编译提升响应速率。且指定配置规则携带在升级包中,在目标程序升级之后,原始预编译得到的机器码文件被覆盖或被丢弃之后,也可以在升级完成之后,立马根据该执行配置规则预先编译指定功能的部分或者全部字节码。
在一个实施例中,所述应用程序包可能包括指定配置规则,也可有可能不包含所述指定配置规则。
在一个实施例中,所述应用程序包可包括一个指定字段,该指定字段可显性指示该应用程序包是否包括指定配置规则。
在另一个实施例中,如图2所示,本公开实施例的所述方法,包括:
S1111:根据应用程序包安装目标程序;
S1121:确定所述应用程序包是否包含指定配置规则;
S1131:在所述应用程序包包含指定配置规则且在所述目标程序完成安装或升级之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
S1141:在存在指定配置规则时,根据所述指定配置规则,对所述预定功能进行预编译。
在一些实施例中,所述确定所述应用程序包是否包含指定配置规则,可包括:
S11211:在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
S11212:当所述第一文件夹内存在第二文件夹或指定配置文件时,确定所述应用程序包是否包含所述指定配置规则。
若存在指定配置规则,则会存储在第一文件夹夹的一个文件夹中或者一个文件中。因此,若第一文件夹内存在存储指定配置规则的第二文件夹或者存储指定配置规则的指定配置文件时,则确定应用程序包含指定配置规则。
否则,可以认为应用程序包不包含指定配置规则,因此,不用额外的指定字段显性指示是否存在指定配置文件。
在一个实施例中,所述第一文件夹包括:资产asset文件夹;
和/或;
所述第二文件夹包括:可执行文件优化dexopt子文件。
在一个实施例中,asset文件夹也可以理解为asset目录。asset目录。的一种特殊目录,用于放置应用程序(Application,APP)所需的固定文件,且该文件被打包到APK中时,不会被编码到二进制文件。由于指定配置规则是无需编码为二进制文件的信息,因此放置在第一文件夹内是很合适的,且与应用程序包的原有文件或目录的设置具有较高额兼容性。
当然在另一些实施例中,该指定配置规则也可以是设置在一个应用程序包原本就不包含的特定文件夹内,而非设置在第一文件夹内。
Dexopt文件夹可用于存储虚拟机可执行文件(Dalvik Executable File)。Dalvik为安卓虚拟机的一种。
在一些实施例中,所述当所述指定路径下存在预定子路径时,确定所述应用程序包包含所述指定配置规则,包括:
在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
所述指定配置规则存储在指定配置文件中。该指定配置文件可具有特定的命名,如此可以通过在应用程序包中文件夹的遍历以及文件名的搜索,就可以确定该应用程序包是否包含指定配置规则。
示例性地,电子设备收到网络设备提供的应用程序包的压缩包,在解压之后就会获得应用程序包的各个文件和文件目录,通过文件目录的便利和/或文件检索,就快速知晓知道应用程序包是否携带所述指定配置规则。
在一些实施例中,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
所述指定配置文件可包括:文件体,文件体内携带有指定配置规则所指向的内容。在本公开实施例中,直接存储预定功能的代码信息,如此,可以方便电子设备直接根据代码信息,对预定功能的全部或者部分字节码编码成机器码。
示例性地,在一些实施例中,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
所述类(class)名为:类的名称,可以唯一确定指向特定类。
所述方法(method)名为:方法名称,可以唯一指向特定方法。
示例性地,所述类名指示的类可包括但不限于以下至少之一:
帧渲染相关的类;
汇总活动(Component Activity)类等。
在一些实施例中,所述代码信息指示的类和/或方法可为编译时长大于时长阈值的类和/或方法,因此可以预先编译,从而节省临时编译所占据的响应时长。
在一个实施例中,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
所述文件头可用于电子设备解码所述配置规则文件。
所述文件头还可包括:系统信息,该系统信息可指示安装该目标应用程序的操作系统的相关信息。例如,该系统信息可指示:操作系统的版本号。
所述编译信息包括的所述代码信息指示的类和/或方法的统计信息;可用于电子设备对文件体中的代码信息进行校验。
例如,编译信息指示的类个数和/或方法个数,和文件体中的代码信息枚举的类名称对应的类个数和/或枚举的方法名称对应的方法个数不同时,可以认为该定配置文件可能被篡改或者有误,可以先跳过该配置规则文件,暂缓对指定功能的字节码的全部或部分预先编译。
示例性地,可以向服务器重新请求该指定配置文件,根据重新接收的指定配置文件进行指定功能全部或者部分字节码的预编译。
所述指定配置文件的版本信息的指示的指定配置文件的更新次数或者版本序号。例如,随着目标程序的使用,大量的客户端会更新多个用户会用该目标程序的统计信息,从而使得热点功能可能会发生变化,或者,热定功能未发生变化但是热点功能中需要预先编码的类和/或方法的可能会发生变化。
在收到该配置规则文件之后,电子设备可以根据版本信息,确定该指定配置规则是否为最新版本的指定配置文件。例如,电子设备通过和目标程序的服务器的信息交互,若确定出不是最新版本的指定配置文件,可以重新从最新版本的指定配置文件,根据最新版本的指定配置文件,对预定功能的代码全部或者部分进行预编码是。
在另一些实施例中,若所述目标应用安装在电子设备一段时间之后,当前从网络设备下载的应用程序包为目标程序的升级包,所述方法还包括:
获取所述电子设备自行根据目标应用各个功能的使用统计得到本地配置文件;
匹配所述本地配置文件和指定配置文件;
若所述本地配置文件包含的类名称全部包含在指定配置文件中,且本地配置文件包含的方法名称全部包含在指定配置文件中,则在升级包安装完毕之后,单独根据指定配置文件进行编译;
或者,
若所述本地配置文件包含的类名称未全部包含在指定配置文件中,和/或本地配置文件包含的方法名未全部包含在指定配置文件中,则在升级包安装完毕之后,结合本地配置文件和指定配置文件,进行特定功能和预定功能字节码的全部或者部分预编译。
例如,在根据指定配置文件进行预编译的同时,预编译类名称和/或方法名称包含在本地配置文件中且不包含在指定配置文件中的类和/或方法的字节码。
在一些实施例中,若需要同时预编译指定配置文件涉及的预定功能和/或本地配置文件涉及的特定功能,会使得预编码得到的OAT等机器码文件的数据量过大,则优先根据本地配置文件优先预编译特定功能的字节码。如此,可以优先满足该电子设备的使用用户的个性需求。
所述机器码文件的数据量过大可包括:预测数据量大于指定阈值。
该预测数据量为:根据指定配置文件指定的类名称和/或方法名称,以及本地配置文件指定的类名称和/或方法名称,同时预编译预定功能和特定功能的部分或者全部字节码得到机器码文件的数据量预估值。
若所述预测数据量小于或等于指定阈值,则同时根据指定配置文件指定的类名称和/或方法名称,以及本地配置文件指定的类名称和/或方法名称,同时预编译预定功能和特定功能的部分或者全部字节码。
所述指定阈值可为:目标程序的服务器下发的,或者,所述电子设备根据电子设备的当前可用存储容量计算的。
例如,服务器可以发送电子设备的型号和备选阈值的对应关系信息,电子设备根据自身的型号,从备选阈值中确定所述指定阈值。
例如,所述指定阈值的大小和所述当前可用存储容量正相关。
进一步地,在部分预编译所述指定配置文件中预定功能所对应代码时,可以根据所述编译信息指示的热定功能的热度值,优选预编译指定配置文件中热度值最高的一个或多个预定功能全部或者部分字节码。
当然以上仅仅是举例,具体实现时不局限于上述举例。
在一些实施例中,所述目标程序安装成功之后,无需输出提示,检测到目标程序的启动操作之后,直接启动目标程序即可。
在一些实施例中,所述方法还包括:
在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;
或者,
在完成所述预定功能编译会后,输出安装或升级结果通知。
若应用程序包不包含指定配置规则,由于目标程序完成了安装,则可以直接输出安装或升级结果通知,以提示用户目标应用程序安装或升级成功。
若应用程序包包含指定配置规则,虽然目标程序完成了安装,但是预编译还没有结束,此时可以暂缓安装或升级结果通知的输出,在完成预编译之后再输出安装或升级结果通知。
当然在另一些实施例中,在完成目标程序安装完毕
之后,安装或升级结果通知和预编译的操作可以并行执行,如此可以让用户感知目标程序的安装或升级速率快。
本公开实施例提供一种适用于APK升级和安装的方法。
通过大数据分析,统计出现有用户高频使用的应用场景,之后根据这些场景预测出未来用户使用应用的关键路径,将关键路径中收集关于启动和/或帧渲染过程中较长常用的类和方法,并将收集到的类名和/或方法名,写入配置规则,将该配置规则集成到APK中发布。
例如,以手机为例,设备的操作系统在安装APK时读取配置规则,将其转码为适用于当前设备的系统版本的配置文件。之后在升级或安装过程中,根据配置文件中的内容预先编译,后续应用在运行到关键路径时,将直接运行编译后文件,以提高其升级和安装后性能。
示例性地,Android应用程序运行过程可如下:
首先应用程序由Java语言进行开发并转换为dex文件集成到APK中。
在应用程序在安装或升级后,dex文件代码都会在解释模式下运行,将运行到的字节码转换为机器码。
当一些字节码被频繁执行时会通过即时(just in time,JIT)编译器对这些代码进行即时编译,之后再次运行到这些代码时则会直接运行其机器码。
由此带来的问题是应用在安装和升级后是完全没有经过编译优化的,缺少对热点功能代码进行统计和编译优化的过程,导致在安装和升级后的使用中出现应用启动时间长,卡顿明显等问题。这种问题对于版本迭代频繁,需要经常升级的应用影响尤为明显。
针对以上问题,本公开实施例提供一种基于配置文件改善应用升级后性能的方案。通过大数据分析已有用户使用应用情况,预测应用关键路径并编写配置文件。之后在安装和升级时预编译配置文件中的类和方法起到优化性能目的。
参考图4所示,本公开实施例主要包括应用构建阶段集成配置文件,和应用安装阶段编译配置文件。
具体地如,本公开实施例提供的信息处理方法可包括:
S2110:应用开发人员预测用户使用应用的核心场景,统计应用关键路径;
S2120:根据应用关键路径用到的类和方法创建配置规则
S2130:构建APK,将配置规则集成到APK中,发布APK。
APK发布之后,电子设备就可以从服务器或者其他网络设备中下载所述APK,并通过该APK在设备内安装目标程序。
如图4所示,本公开实施例提供的信息处理方法还可包括:
S3110:安装APK;
S3120:判断APK内是否包含指定配置规则,如果不包含则跳过写入有指定配置规则的配置文件相关流程。
S3130:配置文件转码,例如,转码成该设备的操作系统可识别的文件和代码。如果包含配置规则,则根据当前Android系统版本将配置规则转码为可被系统识别和读取的配置文件。
S3140:根据配置文件预编译,例如,设备的操作系统识别到配置文件后根据配置文件对相应dex文件内容进行优化编译,最终编译可被直接执行的OAT文件。
S3150:完成安装之后,更新系统状态。此处的更新系统状态可包括:目标程序告知操作系统完成安装或者完成目标程序的升级。
S3160:操作系统发送安装结果至用户界面(User Interface,UI),从而告知用户完成目标程序的安装或者升级。在具体实现时,该步骤可省略。
步骤S2110:应用开发人员预测用户使用应用关键步骤并编写配置规则。
应用开发人员通过大数据分析,统计出现有用户高频使用到的应用功能,将应用运行这些应用功能的路径定义为关键路径。关键路径将作为预测未来用户使用应用行为的依据。之后收集关键路径中关于启动和帧渲染时常用的类和方法,将这些类和方法的名称编写入配置文件(即前述指定配置文件),并将该配置文件集成到APK中。
如果缺少配置文件将会在安装时跳过相关根据指定配置文件进行预编译的步骤。
配置文件可由文件头以及文件体配置规则组成。
所述文件头可包括:系统信息和/或编译信息。该系统信息可以指示操作系统的版本号等。所述文件体可包括指定配置规则。进一步地,该文件体可包括:需要预编译的类名和/或方法名。而APK中的配置规则只包含应用代码中的类和方法的名称。
不同系统版本对于配置文件内格式要求不同,所以需要系统重新编码配置文件(该配置文件可为前述指定配置文件),将其与系统版本相匹配。
本公开实施例通过识别当前安卓(Android)系统版本,将提供的配置文件转码为与系统版本相匹配的配置文件。
操作系统成功识别到配置文件后,操作系统会根据配置文件中涉及到的类和方法,在dex文件中进行相应的编译优化,将其预编译为oat文件。当应用执行到关键路径时会直接运行oat文件,达到提升应用性能效果。此处的编译优化至少可包括:预编译。
本公开实施例能够通过提升应用安装和升级后启动速度,提高流畅度,改善用户体验。因为在应用安装和升级过程中预先编译关键路径中代码,对于一些安装升级后初期需要做大量工作的应用性能提升尤为明显,同时对于版本升级迭代频繁的应用的用户体验也有很大改善。
本公开实施例能够显著提升应用安装和升级后的启动速度。以下是对于几款常用应用实验测试结果:
Figure BDA0003939599250000131
本公开实施例能够在应用升级和安装后缩短渲染时间,从而有效减少卡顿,提高流畅度。
如图5所示,本公开实施例提供一种信息处理装置,所述装置包括:
安装模块110,用于根据应用程序包安装目标程序;
获取模块120,用于在所述目标程序安装完成之后,获取所述应用程序包的存在指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
预编译模块130,用于根据所述指定配置规则,对所述预定功能进行预编译。
在一些实施例中,所述安装模块110、获取模块120和所述预编译模块130可为程序模块;所述程序模块被处理器执行之后能够实现上述操作。
在另一些实施例中,所述安装模块110、获取模块120和所述预编译模块130可为软硬结合模块;所述软硬结合模块包括但不限于可编程阵列,所述可编程阵列包括但不限于现场可编程阵列和/或复杂可编程阵列。
在还有一些实施例中,所述安装模块110、获取模块120和所述预编译模块130可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
在一些实施例中,所述装置还包括:
读取模块,具体用于在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
确定当所述第一文件夹内存在第二文件夹时,确定所述应用程序包包含所述指定配置规则。
在一些实施例中,所述第一文件夹包括:资产asset文件夹;
和/或;
所述预第二文件夹包括:可执行文件优化dexopt子文件。
在一些实施例中,所述确定模块,用于在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
在一些实施例中,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
在一些实施例中,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
在一些实施例中,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
在一些实施例中,所述装置还包括:输出模块;
所述输出模块,用于在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;或者,在完成所述预定功能编译会后,输出安装或升级结果通知。
结合图6所示,本公开实施例中,提供一种电子设备,包括:
用于存储处理器可执行指令的存储器;
处理器,与存储器连接;
其中,处理器被配置为执行前述任意技术方案提供的信息处理方法,示例性地,执行图1至图4所示的信息处理方法。
示例性地,电子设备700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,电子设备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、磁带、软盘和光数据存储设备等。
本公开实施例提供一种非临时性计算机可读存储介质,当存储介质中的指令由计算机的处理器执行时,使得计算机能够执行前述一个或多个技术方案所述的信息处理方法。所述处理器执行所述指令时至少能够执行以下步骤:根据应用程序包安装目标程序;在所述目标程序安装或升级完成之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;根据所述指定配置规则,对所述预定功能进行预编译。
可以理解地,所述方法,包括:
在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
当所述第一文件夹内存在第二文件夹或指定配置文件时,确定所述应用程序包是否包含所述指定配置规则。
可以理解地,所述第一文件夹包括:资产asset文件夹;
和/或;
所述第二文件夹包括:可执行文件优化dexopt子文件。
可以理解地,所述当所述第一文件夹内存在第二文件夹或指定配置文件时,确定所述应用程序包是否包含所述指定配置规则,包括:
在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
可以理解地,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
可以理解地,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
可以理解地,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
可以理解地,所述方法还包括:
在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;
或者,
在完成所述预定功能编译会后,输出安装或升级结果通知。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附申请文件指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的申请文件来限制。

Claims (18)

1.一种信息处理方法,其特征在于,所述方法包括:
根据应用程序包安装目标程序;
在所述目标程序安装或升级完成之后,获取所述应用程序包的指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
根据所述指定配置规则,对所述预定功能进行预编译。
2.根据权利要求1所述的方法,其特征在于,所述方法,包括:
在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
当所述第一文件夹内存在第二文件夹或指定配置文件时,确定所述应用程序包是否包含所述指定配置规则。
3.根据权利要求2所述的方法,其特征在于,
所述第一文件夹包括:资产asset文件夹;
和/或;
所述第二文件夹包括:可执行文件优化dexopt子文件。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述当所述第一文件夹内存在第二文件夹或指定配置文件时,确定所述应用程序包是否包含所述指定配置规则,包括:
在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
5.根据权利要求4所述的方法,其特征在于,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
6.根据权利要求5所述的方法,其特征在于,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;
或者,
在完成所述预定功能编译会后,输出安装或升级结果通知。
9.一种信息处理装置,其特征在于,所述装置包括:
安装模块,用于根据应用程序包安装目标程序;
获取模块,用于在所述目标程序安装完成之后,获取所述应用程序包的存在指定配置规则;其中,所述指定配置规则包括:预定功能的代码信息;其中,所述预定功能包括:启动功能和/或热点功能;
预编译模块,用于根据所述指定配置规则,对所述预定功能进行预编译。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
读取模块,具体用于在所述目标程序安装完成之后,读取所述应用程序包的第一文件夹;
确定当所述第一文件夹内存在第二文件夹时,确定所述应用程序包包含所述指定配置规则。
11.根据权利要求10所述的装置,其特征在于,
所述第一文件夹包括:资产asset文件夹;
和/或;
所述预第二文件夹包括:可执行文件优化dexopt子文件。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述确定模块,用于在所述目标程序安装完成之后,确定所述应用程序包是否存在指定配置文件,其中,所述指定配置文件用于存储所述指定配置规则。
13.根据权利要求12所述的装置,其特征在于,所述指定配置文件包括:
文件体,包含所述预定功能的代码信息。
14.根据权利要求13所述的装置,其特征在于,所述指定配置文件还包括:
文件头,其中,所述文件头包括编译信息;
其中,所述编译信息,包括以下至少之一:
所述代码信息指示的类和/或方法的统计信息;
所述指定配置文件的版本信息。
15.根据权利要求9至11任一项所述的装置,其特征在于,所述代码信息包括以下至少之一:
所述预定功能的类名;
所述预定功能的方法名。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:输出模块;
所述输出模块,用于在所述应用程序包不存在所述指定配置规则时,输出安装或升级结果通知;或者,在完成所述预定功能编译会后,输出安装或升级结果通知。
17.一种电子设备,其特征在于,包括:
用于存储处理器可执行指令的存储器;
处理器,与所述存储器连接;
其中,所述处理器被配置为执行如权利要求1至8任一项所述的信息处理方法。
18.一种非临时性计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现如权利要求1至8任一项所述的信息处理方法。
CN202211414599.4A 2022-11-11 2022-11-11 信息处理方法及装置、电子设备及存储介质 Pending CN115904409A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211414599.4A CN115904409A (zh) 2022-11-11 2022-11-11 信息处理方法及装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211414599.4A CN115904409A (zh) 2022-11-11 2022-11-11 信息处理方法及装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115904409A true CN115904409A (zh) 2023-04-04

Family

ID=86490823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211414599.4A Pending CN115904409A (zh) 2022-11-11 2022-11-11 信息处理方法及装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115904409A (zh)

Similar Documents

Publication Publication Date Title
CN109032606B (zh) 原生应用程序的编译处理方法、装置及终端
EP3096224B1 (en) Method and apparatus for processing application installation package
CN107862514B (zh) 公交卡管理方法、装置及系统、存储介质
CN111221559B (zh) 应用更新方法、装置、存储介质、终端及服务器
CN111736916A (zh) 基于Java语言的动态扩展方法、装置、电子设备及存储介质
CN111913756B (zh) 应用程序的优化方法、装置、系统、电子设备及存储介质
CN109558553B (zh) 样式确定方法及装置
CN114443051A (zh) 应用程序编译和运行方法及装置、存储介质
CN111538502A (zh) 安装包的处理方法、装置、电子设备及存储介质
CN116069612A (zh) 一种异常定位方法、装置和电子设备
CN111580824B (zh) 程序优化方法、装置及存储介质
CN113010157A (zh) 一种代码生成方法及装置
CN112650540B (zh) 一种启动快应用的方法及相关装置
CN106293683B (zh) 一种项目的编译方法及装置
CN110851370A (zh) 程序测试方法及装置、存储介质
CN115904409A (zh) 信息处理方法及装置、电子设备及存储介质
CN112631695B (zh) 一种数据校验方法、装置、电子设备及存储介质
CN110874259A (zh) 程序执行方法、装置、设备和存储介质
CN114546436A (zh) 一种微前端服务更新方法、装置、电子设备及存储介质
CN105204827A (zh) 信息获取装置、方法以及电子设备
CN109933357B (zh) 应用程序升级方法及装置
CN110659081B (zh) 用于程序对象的文件处理方法、装置及电子设备
CN107526683B (zh) 应用程序功能冗余度的检测方法、装置及存储介质
CN112445484A (zh) 一种寄存器处理方法、装置、电子设备及存储介质
CN114546419A (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