掌桥专利:专业的专利平台
掌桥专利
首页

应用程序包处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:57:17


应用程序包处理方法、装置、设备及存储介质

技术领域

本申请涉及人工智能技术领域,特别涉及一种应用程序包处理方法、装置、设备及存储介质。

背景技术

一个应用程序的代码想要在设备上运行,通常需要先进行编译,然后被打包成能够被该设备的操作系统识别的文件,这种能够被操作系统识别和运行的文件即为应用程序包。开发人员通常会将应用程序的代码文件或资源文件构建成应用程序包,向其他设备分发该应用程序包,以使得该其他设备能够安装该应用程序或在该应用程序中加载资源文件。

目前,应用程序包处理方法通常是由相关技术人员在设备上操作下载应用程序包,对其进行解压,然后相关技术人员使用AssetStudio工具加载应用程序包中的单个资源文件,选择解析控件,对该单个资源文件进行解析,以在界面中显示解析结果。该相关技术人员能够基于显示的解析结果进行人工分析,以了解该资源文件中资源的一些情况。如果想要记录下该资源文件的解析结果,则需要人工记录,或者人工进行导出操作,将该资源文件的解析结果导出为一个解析文档。

上述方法中,AssetStudio工具用于加载并解析单个资源文件,如果需要获知应用程序包中多个资源文件的综合情况时,则需要相关技术人员通过AssetStudio工具,依次对每个资源文件进行加载和解析,然后人工对每个资源文件进行记录和分析,再根据多个资源文件的记录或分析进行人工统计分析,无法快速了解该应用程序包中资源文件的情况,因而,上述方法的处理效率很低,且容易出错,准确性较差。

发明内容

本申请实施例提供了一种应用程序包处理方法、装置、设备及存储介质,能够提高处理效率和处理结果的准确性。所述技术方案如下:

一方面,提供了一种应用程序包处理方法,所述方法包括:

基于自动化脚本,获取应用程序包,所述应用程序包中包括至少两个资源文件;

基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件;

基于所述自动化脚本,解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息,一个资源文件的文件信息用于指示所述资源文件包括的资源的属性;

基于所述自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件,包括:

对所述应用程序包进行解压,得到所述应用程序包中的至少两个加密资源文件;

对所述至少两个加密资源文件进行解密,得到所述至少两个资源文件。

一方面,提供了一种应用程序包处理装置,所述装置包括:

获取模块,用于基于自动化脚本,获取应用程序包,所述应用程序包中包括至少两个资源文件;

解压模块,用于基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件;

解析模块,用于基于所述自动化脚本,解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息,一个资源文件的文件信息用于指示所述资源文件包括的资源的属性;

生成模块,用于基于所述自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述解压模块用于:

对所述应用程序包进行解压,得到所述应用程序包中的至少两个加密资源文件;

对所述至少两个加密资源文件进行解密,得到所述至少两个资源文件。

在一些实施例中,一个资源文件的所述文件信息包括所述资源文件中资源的资源名称、所述资源的类型、所述资源的大小和任一资源与其他资源之间的依赖关系中的至少一项。

在一些实施例中,所述装置还包括:

确定模块,用于基于所述自动化脚本,根据所述至少两个资源文件的文件名称或路径,确定所述至少两个资源文件的类型;

所述获取模块还用于基于所述自动化脚本,基于所述至少两个资源文件的类型,获取所述应用程序包的资源文件信息,所述资源文件信息包括所述应用程序包中不同类型的资源文件所占比例、数量或大小中至少一项;

所述生成模块用于基于所述至少两个资源文件的文件信息和所述资源文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述获取模块用于执行下述任一项:

响应于任一应用程序包构建完成所触发的应用程序包处理指令,基于自动化脚本,获取构建完成的所述应用程序包;

响应于对任一应用程序包的处理操作所触发的应用程序包处理指令,基于自动化脚本,获取被执行所述处理操作的所述应用程序包;

响应于定时触发的应用程序包处理指令,基于自动化脚本,获取当前周期内构建完成的应用程序包。

在一些实施例中,所述应用程序包的版本为第一版本;所述第一版本的应用程序包的分析结果为第一分析结果;

所述获取模块还用于获取第二版本的应用程序包的第二分析结果;

所述装置还包括:

对比模块,用于对比所述第一分析结果和所述第二分析结果,得到所述第一版本的应用程序包和所述第二版本的应用程序包之间的差异信息,所述差异信息包括资源文件之间的差异、资源之间的差异或资源差异所影响的范围中至少一项。

在一些实施例中,所述装置还包括:

发送模块,用于响应于所述分析结果指示所述应用程序包的大小超过第一阈值,发送预警信息。

在一些实施例中,所述装置还包括:

第一设置模块,用于根据所述分析结果所指示的所述应用程序包中不同类型的资源文件所占比例,将第一目标类型的资源文件的下载方式设置为动态下载方式,所述第一目标类型的资源文件所占比例在所述不同类型的资源文件所占比例中最大。

在一些实施例中,所述装置还包括:

第二设置模块,用于响应于所述分析结果所指示第二目标类型的资源文件的大小大于第二阈值,将第二目标类型的资源文件的下载方式设置为动态下载方式。

一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述一个或多个处理器加载并执行以实现上述应用程序包处理方法的各种可选实现方式。

一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述应用程序包处理方法的各种可选实现方式。

一个方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括一条或多条程序代码,所述一条或多条程序代码存储在计算机可读存储介质中。电子设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条程序代码,所述一个或多个处理器执行所述一条或多条程序代码,使得电子设备能够执行上述任一种可能实施方式的应用程序包处理方法。

本申请实施例提供了一种自动处理应用程序包的方法,一方面,在对应用程序包处理时,该应用程序包的获取、解压、资源文件的解析和生成分析结果的过程基于自动化脚本实现,整个流程实现了自动化,完全无需人工参与,大大减少了人工成本,提高了处理效率,且能够提高处理结果的准确性。另一方面,在对应用程序包解压后,能够自动化批量地对资源文件进行解析,解析全量的资源文件,而不是由人工借助AssetStudio工具来一个一个的解析,大大提高了处理效率,且解析后能够基于多个资源文件的解析结果生成分析结果,该分析结果能够体现整个应用程序包的情况,而不再是单个资源文件的情况,该分析结果也就更加符合用户需求,用户无需一个个地对资源文件进行分析,节省了人工分析时间,因而,上述方法不仅效率高,适用性也好。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。

图1是本申请实施例提供的一种应用程序包处理方法的实施环境的示意图;

图2是本申请实施例提供的一种应用程序包处理方法的流程图;

图3是本申请实施例提供的一种应用程序包处理方法的流程图;

图4是本申请实施例提供的一种终端界面;

图5是本申请实施例提供的一种终端界面;

图6是本申请实施例提供的一种终端界面;

图7是本申请实施例提供的一种终端界面;

图8是本申请实施例提供的一种应用程序包处理装置的结构示意图;

图9是本申请实施例提供的一种电子设备的结构示意图;

图10是本申请实施例提供的一种终端的结构框图;

图11是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像能够被称为第二图像,并且类似地,第二图像能够被称为第一图像。第一图像和第二图像都能够是图像,并且在某些情况下,能够是单独且不同的图像。

本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个数据包是指两个或两个以上的数据包。

应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。

还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示能够存在三种关系,例如,A和/或B,能够表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

还应理解,根据A确定B并不意味着仅仅根据A确定B,还能够根据A和/或其它信息确定B。

还应理解,术语“包括”(也称“inCludes”、“inCluding”、“Comprises”和/或“Comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。

还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

下面对本申请涉及到的名词进行说明。

Unity3D:一种手机游戏使用的跨平台游戏引擎,用于开发手机游戏。

AssetsBundle:unity运行在安卓平台的一种资源打包文件格式,文件包里有具体的资源类型,比如贴图、网格模型、特效资源等。

Android(安卓)系统:一个智能手机系统,可以在这个系统里安装应用程序。

APK(Android application package,Android应用程序包):一种可以被安装在Android系统的应用程序压缩文件。例如,电子游戏应用的APK里面包含游戏资源、应用程序代码等文件。

在一些实施例中,本申请可以采用人工智能技术,通过设备自动化对应用程序包进行处理。下面对人工智能技术进行简单介绍。

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本申请实施例提供的方案涉及人工智能的云计算、自动化等技术,具体通过如下实施例进行说明。

下面对本申请的实施环境进行说明。

图1是本申请实施例提供的一种应用程序包处理方法的实施环境的示意图。该实施环境包括终端101,或者该实施环境包括终端101和应用程序包处理平台102。终端101通过无线网络或有线网络与应用程序包处理平台102相连。

终端101能够是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器,膝上型便携计算机中的至少一种。终端101安装和运行有支持应用程序包处理的应用程序,例如,该应用程序能够是系统应用、即时通讯应用、新闻推送应用、购物应用、在线视频应用、社交应用、电子游戏应用等。

示例性地,该终端101能够独立完成该工作,也能够通过应用程序包处理平台102为其提供数据服务。本申请实施例对此不作限定。示例性地,该应用程序包处理平台102用于处理应用程序包,在终端101向该应用程序包处理平台102请求应用程序包时,该应用程序包处理平台102能够将处理后的应用程序包分发给终端101。

应用程序包处理平台102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。应用程序包处理平台102用于为支应用程序包处理的应用程序提供后台服务。可选地,应用程序包处理平台102承担主要处理工作,终端101承担次要处理工作;或者,应用程序包处理平台102承担次要处理工作,终端101承担主要处理工作;或者,应用程序包处理平台102或终端101分别能够单独承担处理工作。或者,应用程序包处理平台102和终端101两者之间采用分布式计算架构进行协同计算。

可选地,该应用程序包处理平台102包括至少一台服务器1021以及数据库1022,该数据库1022用于存储数据,在本申请实施例中,该数据库1022中能够存储有应用程序包或应用程序包的分析结果(例如,多个版本的应用程序包的分析结果),为至少一台服务器1021提供数据服务。

服务器能够是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端能够是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。

本领域技术人员能够知晓,上述终端101、服务器1021的数量能够更多或更少。比如上述终端101、服务器1021能够仅为一个,或者上述终端101、服务器1021为几十个或几百个,或者更多数量,本申请实施例对终端或服务器的数量和设备类型不加以限定。

图2是本申请实施例提供的一种应用程序包处理方法的流程图,该方法由电子设备执行,该电子设备为终端或服务器,参见图2,该方法包括以下步骤。

201、电子设备响应于基于自动化脚本,获取应用程序包,所述应用程序包中包括至少两个资源文件。

相关技术人员在需要向客户端下发应用程序的资源时,通过会将资源打包为多个资源文件,再将多个资源文件与应用程序代码一起压缩,得到应用程序包。当然,在该应用程序包中仅包括资源文件时,可以将多个资源文件压缩得到应用程序包。在该应用程序包生成后,可以获取应用程序包,对该应用程序包中的资源文件进行分析,能够根据分析结果对应用程序包的包体进行优化,或者根据分析结果,对不同类型的资源采取不同的加载方式,以提高收益等。

在本申请实施例中,设置有一种自动化脚本,其中,脚本(Script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。该自动化脚本即为可自动化执行的脚本,无需人工参与,在满足其执行条件时该自动化脚本能够自动执行。该自动化脚本包括对应用程序包处理的整个处理流程所需的脚本。

在一些实施例中,该应用程序包可以为基于Unity3D的手机游戏的应用程序包。

202、电子设备基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件。

该应用程序包是通过压缩得到的,想要对其中的资源文件进行分析时,电子设备可以对应用程序包进行解压,还原资源文件,得到资源文件后,可以对其进行解析,确定资源文件中资源的属性。

203、电子设备基于所述自动化脚本,解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息,一个资源文件的文件信息用于指示所述资源文件包括的资源的属性。

资源文件中包括该资源文件中包含的资源和该资源文件中资源的各种属性。电子设备可以对资源文件进行解析,来获取其中资源的属性。

在对资源文件进行解析时,基于该自动化脚本,电子设备能够自动地解析解压得到的资源文件,也即是,解压得到资源文件后,能够触发该自动化脚本中的解析流程,对解压得到的资源文件进行解析。该解析过程自动进行,为一个批量解析的过程,能够批量地检查全量资源文件,无需人工一个个地解析,进而能够大大提高解析效率,提高对应用程序包的处理效率。

在一些实施例中,该整个处理流程中可以包括多个阶段,每个阶段执行结束可以继续执行下个流程。例如,在解压阶段的流程结束后,能够继续进行解析阶段的流程。

204、电子设备基于所述自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果。

电子设备解析得到每个资源文件的文件信息后,自动化脚本能够触发下一个流程的执行,基于解析得到的各个资源文件的文件信息,来分析得到应用程序包整体的资源分析结果,该资源分析结果为一个全量解析得到的结果。例如,该应用程序包中包括哪些资源,不同类型的资源的数量、所占比例或大小等,还可以包括该应用程序包中不同的资源之间的依赖关系等。

在一些实施例中,通过该分析结果能够获知该应用程序包的整体资源分布,也能够获知该应用程序包的资源详情,这种分析结果通过人工解析可能需要非常大的工作量,耗时严重,且通过人工分析也可能无法获知如此准确的分析结果。

上述步骤201至步骤204能够通过自动化流程实现,在该电子设备中可以存储有自动化脚本,电子设备能够基于该自动化脚本,获取应用程序包,然后基于该自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件,再基于该自动化脚本,批量地对解压得到的所述至少两个资源文件进行解析,得到所述至少两个资源文件的文件信息,最后基于该自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果。

本申请实施例提供了一种自动处理应用程序包的方法,一方面,在对应用程序包处理时,该应用程序包的获取、解压、资源文件的解析和生成分析结果的过程基于自动化脚本实现,整个流程实现了自动化,完全无需人工参与,大大减少了人工成本,提高了处理效率,且能够提高处理结果的准确性。另一方面,在对应用程序包解压后,能够自动化批量地对资源文件进行解析,解析全量的资源文件,而不是由人工借助AssetStudio工具来一个一个的解析,大大提高了处理效率,且解析后能够基于多个资源文件的解析结果生成分析结果,该分析结果能够体现整个应用程序包的情况,而不再是单个资源文件的情况,该分析结果也就更加符合用户需求,用户无需一个个地对资源文件进行分析,节省了人工分析时间,因而,上述方法不仅效率高,适用性也好。

图3是本申请实施例提供的一种应用程序包处理方法的流程图,参见图3,该方法包括以下步骤。

301、电子设备基于自动化脚本,获取应用程序包,所述应用程序包中包括至少两个资源文件。

在本申请实施例中,该电子设备能够通过自动化流程对构建完成的应用程序包进行处理,以监控应用程序包中资源文件或资源的情况。

该自动化流程通过自动化脚本实现,在该电子设备中可以存储有自动化脚本,该自动化脚本能够自动执行,无需人工参与,在检测到满足触发条件时,即可执行以对应用程序包进行处理。

在一些实施例中,该应用程序包处理过程可以包括多种触发方式,也即是,可以为应用程序包处理流程设置触发方式,该触发条件可以理解为该自动化脚本的触发条件。该触发方式可以包括多种,相关技术人员可以根据需求选择任一种触发方式,本申请实施例对此不作限定。

下面提供三种应用程序包处理过程的触发方式。

触发方式一:构建触发。

在触发方式一中,该步骤301可以为:电子设备响应于任一应用程序包构建完成所触发的应用程序包处理指令,基于自动化脚本,获取构建完成的所述应用程序包。构建触发是指应用程序包构建完成时,能够触发该电子设备来获取构建完成的应用程序包,并进行后续处理过程。

触发方式二:手动触发。

在触发方式二中,该步骤301可以为:电子设备响应于对任一应用程序包的处理操作所触发的应用程序包处理指令,基于自动化脚本,获取被执行所述处理操作的所述应用程序包。手动触发是指用户对应用程序包进行操作来触发获取该应用程序包和后续处理过程。如果用户想要对某个应用程序包进行分析,则可以选中该应用程序包,并确定分析该应用程序包,电子设备则可以执行该获取步骤以及后续的处理步骤。

触发方式三:定时触发。

在触发方式三中,该步骤301可以为:电子设备响应于定时触发的应用程序包处理指令,基于自动化脚本,获取当前周期内构建完成的应用程序包。定时触发是指设置一个周期,电子设备周期性地去获取一次应用程序包,并对应用程序包进行处理。

对于应用程序包的获取过程,在一些实施例中,该应用程序包通常由构建机构建得到。通过设置,电子设备可以与构建机进行信息交互,以从构建机中获取到其构建完成的应用程序包。具体地,该从构建机中获取应用程序包的过程可以理解为下载过程,也即是,电子设备可以从构建机处下载构建完成的应用程序包。在另一些实施例中,该应用程序包可以在构建后存储在其他电子设备中,或者存储在数据库中,相应地,该电子设备也可以从其他电子设备或数据库中获取该应用程序包。

在一些实施例中,该应用程序包可以用于运行在安卓操作系统中,也即是,该应用程序包可以为安卓应用程序包,也即是APK。当然,本申请实施例对该应用程序包所适用的操作系统不作限定,例如,该应用程序包也可以用于运行在IOS操作系统中。

302、电子设备基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件。

电子设备获取到应用程序包后,自动化脚本会触发下一流程,可以自动对其进行后续处理。在处理时,由于该应用程序包为一个压缩包,电子设备无法直接对其中的资源文件进行解析,因而,需要对其进行解压处理。

在一些实施例中,该资源文件通常是被加密后再压缩得到应用程序包,因而电子设备在解压时,可以先解压得到加密后的加密资源文件,再对其进行解密,以还原得到资源文件。具体地,该步骤303可以为:电子设备可以基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的至少两个加密资源文件。其中,该加密资源文件为对资源文件进行加密后得到的文件。然后电子设备可以对所述至少两个加密资源文件进行解密,得到所述至少两个资源文件。解密后得到的该资源文件则为未加密的资源文件。

在一些实施例中,该解密过程可以通过解密工具实现,本申请实施例对具体采用哪种解密工具不作限定。

在一些实施例中,该资源文件可以基于目标打包格式对资源进行打包得到。例如,该目标打包格式可以为AssetsBundle,则该资源文件也可以称为AssetsBundle文件。以应用程序包为APK为例,上述步骤302为对APK进行解压,得到加密后的AssetsBundle文件,然后对加密后的AssetsBundle文件进行解码,得到未加密的AssetsBundle文件。

303、电子设备基于所述自动化脚本,根据所述至少两个资源文件的文件名称或路径,确定所述至少两个资源文件的类型。

电子设备解压得到至少两个资源文件后,可以初步对其进行处理,得到资源文件的统计结果,该初步处理过程可以包括该步骤303和下述步骤304,可以由自动化脚本在解压后自动触发。具体地,电子设备可以通过资源文件的文件名称或路径,能够确定出该资源文件的类型,该类型可以由相关技术人员根据需求进行设置,例如,场景资源、场景、角色、武器、野怪等,又例如,音频、视频、图片、特效、shader等,本申请实施例对此不作限定。

304、电子设备基于所述自动化脚本,基于所述至少两个资源文件的类型,获取所述应用程序包的资源文件信息,所述资源文件信息包括所述应用程序包中不同类型的资源文件所占比例、数量或大小中至少一项。

电子设备确定出每个资源文件的类型后,能够基于类型,对不同类型的资源文件进行统计,得到该资源文件信息,来分析出该应用程序包中不同类型的资源文件所占比例、数量或大小中至少一项。

例如,可以分析出不同类型的资源文件所占比例,或者不同类型的资源文件的数量,或者不同类型的资源文件的大小。又例如,可以分析出上述三种信息中的任意两项,比如,该应用程序包中不同类型的资源文件所占比例和数量。又例如,可以分析出上述三种信息:该应用程序包中不同类型的资源文件所占比例、数量和大小。

该步骤303和步骤304为对解压得到的至少两个资源进行归类,得到所述至少两个资源文件的资源文件信息的过程,通过归类,能够确定出应用程序包中不同类型的资源文件的分布,后续相关技术人员能够根据归类的结果来对应用程序包的包体进行优化,比如,场景资源的占比较大,后续需要减少应用程序包中场景资源的占比。

例如,提供一个具体示例,以对某个电子游戏的APK中AssetsBundle文件进行归类为例,如图4所示,对APK进行解压,并对解压得到的AssetsBundle文件进行归类后,能够得到该APK中音视频等类型的资源文件的大小,具体如图4中区域401(概况)中的内容:

ApkSize:677.80M(兆),也即是APK的Size(大小)为677.80M(兆)。

ObbSize:0.0kb,也即是,Obb(Opaque Binary Blob,安卓游戏通用数据包)的大小为0.0kb(Kilobyte,千字节)。

ScriptSize:0.0kb,也即是,Script(脚本)的大小为0.0kb。

VideoSize:45.64M,也即是,Video(视频)类型的资源文件的大小为45.64M。

AudioSize:248.04M,也即是,Audio(音频)类型的资源文件的大小为248.04M。

AllABSize:1.61G,也即是,All(所有的)AB(AssetsBundle的缩写)文件的大小为1.61G(在此指GB的简写,Gigabyte,吉字节)。

对AssetsBundle文件进行归类,确定资源文件的类型,将同一类型的资源文件归类到一起,如图4中区域402(AssetsBundle资源分析)中的内容,该区域402中仅以场景资源为例,统计到场景资源文件共有6508个,这些场景资源文件的大小为543.30M。下面针对该场景资源中各种资源文件进行了统计,得到各种场景资源文件的数量以及大小。

305、电子设备基于所述自动化脚本,解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息,一个资源文件的文件信息用于指示所述资源文件包括的资源的属性。

电子设备解压得到资源文件后,还可以对资源文件进行解析,进一步获取资源文件中资源的情况。该解析过程能够在解压步骤之后自动触发,响应于任一资源文件解压完成,能够对该资源文件进行解析,得到该资源文件的文件信息。

每个资源文件包括的资源的属性可以存储于该资源文件的头信息中,电子设备对头信息进行解析,即可提取得到所需的资源的属性。具体地,电子设备可以批量地解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息。

该解析头信息的过程可以理解为读取头信息的过程,也即是,电子设备可以读取该资源文件的头信息,得到该资源文件的元数据,该元数据即包括上述文件信息。

在一些实施例中,一个资源文件的所述文件信息可以包括所述资源文件中资源的资源名称、所述资源的类型、所述资源的大小和任一资源与其他资源之间的依赖关系中的至少一项。也即是,该文件信息可以包括资源文件中资源的资源名称,或者可以包括资源文件中资源的类型,或者可以包括资源文件中资源的大小,或者可以包括资源文件中任一资源与其他资源之间的依赖关系,也可以包括这几种属性中的任意两项或任意三项,也可以将这几种属性全包括在内。该依赖关系是指两种资源可以引用或被引用的关系。

例如,资源A引用资源B,可以认为二者具有依赖关系。反过来资源B引用资源A,也可以认为二者具有依赖关系。在一个具体的可能实施例中,该应用程序包可以为某个电子游戏的应用程序包,该电子游戏可以手机游戏。例如,该应用程序包为基于Unity3D的手机游戏的应用程序包。以电子游戏中的场景资源为例进行说明,树木资源和该树木旁边的草资源可以具有依赖关系,在显示树木资源时,通常还会显示该树木旁边的草资源。

在另一些实施例中,该文件信息还可以包括资源文件中资源的其它属性,例如,资源的位置,或者资源的优先级等,相关技术人员可以根据需求来设置需要解析的属性,本申请实施例对此不作限定。

在一些实施例中,在上述解析过程,由于基于自动化脚本实现对资源文件的解析,无需人工选择资源文件触发解析步骤,因而,能够对资源文件进行解压后批量地进行解析,每个资源文件都会对应有文件信息,这样该批量解析过程能够得到多个资源文件的文件信息,解析得到的结果也就能够进行统计分析,获取整个应用程序包中的一些全量信息。具体地,电子设备可以将每个资源文件的标识信息与对应的文件信息对应记录,后续在对多个资源文件的文件信息进行汇总时,能够根据记录的资源文件的标识信息来获取到对应的该资源文件的文件信息,对文件信息进行汇总。电子设备也可以先创建用于存储分析结果的数据结构,再在对任一资源文件进行解析时,即将该资源文件的文件信息记录在该数据结构的相应字段中。

306、电子设备基于所述自动化脚本,基于所述至少两个资源文件的文件信息和所述资源文件信息,生成所述应用程序包的分析结果。

电子设备分析得到资源文件的资源文件信息以及资源文件中资源的文件信息后,自动化脚本能够触发下一流程,对解析得到的资源文件的文件信息进行汇总分析,综合这些信息,生成该应用程序包的分析结果。

在一些实施例中,该分析结果可以包括该应用程序包中的资源文件列表,每个资源文件中的资源列表,资源之间的依赖关系等。在一些实施例中,该分析结果可以采用数据结构字符串的形式,该字符串可以包括上述信息。比如,该数据结构字符串的格式可以为目标格式,比如json(JavaScript Object Notation,JS对象简谱)格式。当然,也可以为其他格式,本申请实施例对此不作限定。

该步骤306为基于所述自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果的过程,上述仅以电子设备解压后对资源文件进行了归类,进而生成分析结果时,综合了归类结果和解析结果为例进行说明。在另一些实施例中,电子设备也可以不进行归类,而是直接对资源文件进行解析,进而基于解析结果生成分析结果,本申请实施例对此不作限定。

在一些实施例中,电子设备生成分析结果后,还可以进一步对分析结果进行处理,也可以将该分析结果发送给其他设备进行处理。例如,该应用程序包可以为某个版本的应用程序包,在该版本之前或之后还可以有其他版本的应用程序包,该电子设备可以针对不同版本的应用程序包的分析结果,进行版本对比,来分析资源的改动情况,或者不同版本中不同类型的资源文件的变化情况。

在由该电子设备进行后续处理的方式中,所述应用程序包的版本为第一版本;所述第一版本的应用程序包的分析结果为第一分析结果。电子设备还可以获取第二版本的应用程序包的第二分析结果,然后对比所述第一分析结果和所述第二分析结果,得到所述第一版本的应用程序包和所述第二版本的应用程序包之间的差异信息,所述差异信息包括资源文件之间的差异、资源之间的差异或资源差异所影响的范围中至少一项。

对于资源差异所影响的范围,可以通过对比出资源之间的差异,再通过资源之间的依赖关系,可以分析出该资源差异所影响的范围。

在由其他设备进行后续处理的方式中,电子设备可以将该第一版本的应用程序包的第一分析结果发送给其他设备,该其他设备可以接收第一分析结果,也可以接收第二分析结果,然后进行上述版本对比的结果。比如,该版本对比可以由后台进行,电子设备可以将第一分析结果通过接口自动化上传到云端数据库,然后由后台执行上述版本对比的步骤。

例如,如图5和图6所示,电子设备可以对0.0.1000.3646(版本号)与0.0.1000.3651(版本号)两个版本的APK进行分析得到的结果,能够看到不同类型的资源大小的对比,资源引用数量的对比以及资源被引用数量的对比。如图6所示,通过对比分析,能够得到一个版本相对于另一个版本改动了哪些资源。

该第一分析结果还可以用于APK包体优化,或者针对性地预警。

在一些实施例中,电子设备还可以响应于所述分析结果指示所述应用程序包的大小超过第一阈值,发送预警信息。例如,该第一阈值为2GB,在通过分析发现APK大于2GB时,该APK可能无法在手机上安装和运行,则可以发送该预警信息,由相关技术人员及时采取措施,对APK进行优化,减少其大小。

在一些实施例中,电子设备还可以根据所述分析结果所指示的所述应用程序包中不同类型的资源文件所占比例,将第一目标类型的资源文件的下载方式设置为动态下载方式,所述第一目标类型的资源文件所占比例在所述不同类型的资源文件所占比例中最大。通过上述分析结果,能够对APK中不同类型的资源文件占用有所了解,将一些大小比较大的类型的资源文件设置为动态下载方式,这样静态下载APK时,无需下载该第一目标类型的资源文件,后续用户在需要用到该第一目标类型的资源文件时,可以再下载,从而提高下载灵活性,减小用户的下载负担。

在一些实施例中,电子设备还可以响应于所述分析结果所指示第二目标类型的资源文件的大小大于第二阈值,将第二目标类型的资源文件的下载方式设置为动态下载方式。该第二目标类型与第一目标类型有些类似,第一目标类型是通过资源文件所占比例确定出来的,第二目标类型是通过资源文件大小确定出来的。例如某游戏,初始包体APK大小为1.8GB,其中场景资源占用400MB,游戏角色资源占用200MB,音频和视频资源占用300MB,图集和单图占用200MB。占用空间比较多的是场景资源,这样为了节省包体,就可以采用动态下载方式,收益最大。

该第一阈值和第二阈值可以由相关技术人员根据需求进行设置,本申请实施例对此不作限定。

在一些实施例中,本申请提供的方法能够通过自动化脚本实现,脚本可以部署到持续集成自动化构建线,例如,该持续集成自动化构建线可以为一些交付平台,比如Jenkins平台,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具。然后脚本能够定时触发,可以完成包括APK下载、APK文件解压并解码、Assetsbundle文件解析、数据归档和上传、数据对比和邮件预警等全流程自动化。持续集成流水线作为一个平台,将本发明涉及到的技术模块串联起来,实现自动化流程,提升测试效率。

例如,如图7所示,该PAK分析流程可以包括多种触发方式,相关技术人员可以在此进行设置,对于自动化分析流程中每个处理步骤,也可以在此进行设置,例如,可以在这里进行自动化脚本的更新,设置拉取工具,进行下包、ab(也即是Assetsbundle文件)分析、归档构件、上传nike(一种服务器)、归档报告等各个步骤的设置,以及在什么样的情况下能够进行预警,也即是通知。该通知可以通过多种方式进行通知,比如,社交平台、邮件通知、短信通知等。

本申请实施例提供了一种自动处理应用程序包的方法,一方面,在对应用程序包处理时,该应用程序包的获取、解压、资源文件的解析和生成分析结果的过程基于自动化脚本实现,整个流程实现了自动化,完全无需人工参与,大大减少了人工成本,提高了处理效率,且能够提高处理结果的准确性。另一方面,在对应用程序包解压后,能够自动化批量地对资源文件进行解析,解析全量的资源文件,而不是由人工借助AssetStudio工具来一个一个的解析,大大提高了处理效率,且解析后能够基于多个资源文件的解析结果生成分析结果,该分析结果能够体现整个应用程序包的情况,而不再是单个资源文件的情况,该分析结果也就更加符合用户需求,用户无需一个个地对资源文件进行分析,节省了人工分析时间,因而,上述方法不仅效率高,适用性也好。

上述所有可选技术方案,能够采用任意结合形成本申请的可选实施例,在此不再一一赘述。

图8是本申请实施例提供的一种应用程序包处理装置的结构示意图,参见图8,该装置包括:

获取模块801,用于基于自动化脚本,获取应用程序包,所述应用程序包中包括至少两个资源文件;

解压模块802,用于基于所述自动化脚本,对所述应用程序包进行解压,得到所述应用程序包中的所述至少两个资源文件;

解析模块803,用于基于所述自动化脚本,解析解压得到的所述至少两个资源文件的头信息,从所述头信息中提取所述至少两个资源文件的文件信息,一个资源文件的文件信息用于指示所述资源文件包括的资源的属性;

生成模块804,用于基于所述自动化脚本,基于所述至少两个资源文件的文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述装置还包括:

确定模块,用于根据所述至少两个资源文件的文件名称或路径,确定所述至少两个资源文件的类型;

所述获取模块801还用于基于所述至少两个资源文件的类型,获取所述应用程序包的资源文件信息,所述资源文件信息包括所述应用程序包中不同类型的资源文件所占比例、数量或大小中至少一项;

所述生成模块804用于基于所述至少两个资源文件的文件信息和所述资源文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述解压模块802用于:

对所述应用程序包进行解压,得到所述应用程序包中的至少两个加密资源文件;

对所述至少两个加密资源文件进行解密,得到所述至少两个资源文件。

在一些实施例中,一个资源文件的所述文件信息包括所述资源文件中资源的资源名称、所述资源的类型、所述资源的大小和任一资源与其他资源之间的依赖关系中的至少一项。

在一些实施例中,所述装置还包括:

确定模块,用于基于所述自动化脚本,根据所述至少两个资源文件的文件名称或路径,确定所述至少两个资源文件的类型;

所述获取模块801还用于基于所述自动化脚本,基于所述至少两个资源文件的类型,获取所述应用程序包的资源文件信息,所述资源文件信息包括所述应用程序包中不同类型的资源文件所占比例、数量或大小中至少一项;

所述生成模块804用于基于所述至少两个资源文件的文件信息和所述资源文件信息,生成所述应用程序包的分析结果。

在一些实施例中,所述获取模块801用于执行下述任一项:

响应于任一应用程序包构建完成所触发的应用程序包处理指令,基于自动化脚本,获取构建完成的所述应用程序包;

响应于对任一应用程序包的处理操作所触发的应用程序包处理指令,基于自动化脚本,获取被执行所述处理操作的所述应用程序包;

响应于定时触发的应用程序包处理指令,基于自动化脚本,获取当前周期内构建完成的应用程序包。

在一些实施例中,所述应用程序包的版本为第一版本;所述第一版本的应用程序包的分析结果为第一分析结果;

所述获取模块801还用于获取第二版本的应用程序包的第二分析结果;

所述装置还包括:

对比模块,用于对比所述第一分析结果和所述第二分析结果,得到所述第一版本的应用程序包和所述第二版本的应用程序包之间的差异信息,所述差异信息包括资源文件之间的差异、资源之间的差异或资源差异所影响的范围中至少一项。

在一些实施例中,所述装置还包括:

发送模块,用于响应于所述分析结果指示所述应用程序包的大小超过第一阈值,发送预警信息。

在一些实施例中,所述装置还包括:

第一设置模块,用于根据所述分析结果所指示的所述应用程序包中不同类型的资源文件所占比例,将第一目标类型的资源文件的下载方式设置为动态下载方式,所述第一目标类型的资源文件所占比例在所述不同类型的资源文件所占比例中最大。

在一些实施例中,所述装置还包括:

第二设置模块,用于响应于所述分析结果所指示第二目标类型的资源文件的大小大于第二阈值,将第二目标类型的资源文件的下载方式设置为动态下载方式。

本申请实施例提供的装置能够自动处理应用程序包,一方面,在对应用程序包处理时,该应用程序包的获取、解压、资源文件的解析和生成分析结果的过程基于自动化脚本实现,整个流程实现了自动化,完全无需人工参与,大大减少了人工成本,提高了处理效率,且能够提高处理结果的准确性。另一方面,在对应用程序包解压后,能够自动化批量地对资源文件进行解析,解析全量的资源文件,而不是由人工借助AssetStudio工具来一个一个的解析,大大提高了处理效率,且解析后能够基于多个资源文件的解析结果生成分析结果,该分析结果能够体现整个应用程序包的情况,而不再是单个资源文件的情况,该分析结果也就更加符合用户需求,用户无需一个个地对资源文件进行分析,节省了人工分析时间,因而,上述方法不仅效率高,适用性也好。

需要说明的是:上述实施例提供的应用程序包处理装置在处理应用程序包时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将应用程序包处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序包处理装置与应用程序包处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图9是本申请实施例提供的一种电子设备的结构示意图,该电子设备900可因配置或性能不同而产生比较大的差异,能够包括一个或一个以上处理器(Central ProcessingUnits,CPU)901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器901加载并执行以实现上述各个方法实施例提供的应用程序包处理方法。该电子设备还能够包括其他用于实现设备功能的部件,例如,该电子设备还能够具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出。本申请实施例在此不做赘述。

上述方法实施例中的电子设备能够实现为终端。例如,图10是本申请实施例提供的一种终端的结构框图。该终端1000可以是便携式移动终端,比如:智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1000包括有:处理器1001和存储器1002。

处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请中方法实施例提供的应用程序包处理方法。

在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。

外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置在终端1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在另一些实施例中,显示屏1005可以是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。

摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。

定位组件1008用于定位终端1000的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1008可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1009用于为终端1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。

加速度传感器1011可以检测以终端1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1012可以检测终端1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对终端1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1013可以设置在终端1000的侧边框和/或显示屏1005的下层。当压力传感器1013设置在终端1000的侧边框时,可以检测用户对终端1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在显示屏1005的下层时,由处理器1001根据用户对显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1014用于采集用户的指纹,由处理器1001根据指纹传感器1014采集到的指纹识别用户的身份,或者,由指纹传感器1014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置在终端1000的正面、背面或侧面。当终端1000上设置有物理按键或厂商Logo时,指纹传感器1014可以与物理按键或厂商Logo集成在一起。

光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。

接近传感器1016,也称距离传感器,通常设置在终端1000的前面板。接近传感器1016用于采集用户与终端1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

上述方法实施例中的电子设备能够实现为服务器。例如,图11是本申请实施例提供的一种服务器的结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,能够包括一个或一个以上处理器(Central Processing Units,CPU)1101和一个或一个以上的存储器1102,其中,所述存储器1102中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器1101加载并执行以实现上述各个方法实施例提供的应用程序包处理方法。当然,该服务器还能够具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还能够包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条计算机程序的存储器,上述至少一条计算机程序由可由处理器执行以完成上述实施例中的应用程序包处理方法。例如,计算机可读存储介质能够是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact DiscRead-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括一条或多条程序代码,所述一条或多条程序代码存储在计算机可读存储介质中。电子设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条程序代码,所述一个或多个处理器执行所述一条或多条程序代码,使得电子设备能够执行上述应用程序包处理方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

应理解,根据A确定B并不意味着仅仅根据A确定B,还能够根据A和/或其它信息确定B。

本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,该程序能够存储于一种计算机可读存储介质中,上述提到的存储介质能够是只读存储器,磁盘或光盘等。

以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 应用程序包处理方法、装置、设备及存储介质
  • 应用程序包处理方法、装置、电子设备及存储介质
技术分类

06120112741067