CN106020725B - 应用文件处理装置及方法 - Google Patents

应用文件处理装置及方法 Download PDF

Info

Publication number
CN106020725B
CN106020725B CN201610343414.3A CN201610343414A CN106020725B CN 106020725 B CN106020725 B CN 106020725B CN 201610343414 A CN201610343414 A CN 201610343414A CN 106020725 B CN106020725 B CN 106020725B
Authority
CN
China
Prior art keywords
resource
file
installation package
application installation
source code
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
CN201610343414.3A
Other languages
English (en)
Other versions
CN106020725A (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.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology 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 Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201610343414.3A priority Critical patent/CN106020725B/zh
Publication of CN106020725A publication Critical patent/CN106020725A/zh
Application granted granted Critical
Publication of CN106020725B publication Critical patent/CN106020725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种应用文件处理装置及方法,其装置包括:源码获取模块,用于获取应用安装包的源码,应用安装包的源码中包括多个分散的资源文件;资源文件获取模块,用于获取所述应用安装包的源码中的资源文件;合并模块,用于对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件;编译打包模块,用于基于所述合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包。本发明可以减少碎片空间,有效较少磁盘空间的占用并节省用户的数据流量。

Description

应用文件处理装置及方法
技术领域
本发明涉及移动终端技术领域,尤其涉及一种应用文件处理装置及方法。
背景技术
目前,手机终端的应用程序都采用APK(安装包)的形式,不同的应用,其APK文件的大小不一。在APK文件中,存在着很多的资源文件,比如XML(可扩展标记语言,eXtensibleMarkup Language)文件。XML文件定义了每个页面的布局以及相关的字体、颜色等资源,而这些XML文件在一个APK文件中存在的数量非常多,比如酷狗音乐APK,其中的XML文件有三四千个之多,由此导致的一个问题是:三四千个XML文件的总大小不过4M左右,但是加上磁盘碎片,总共占用的存储空间却有10M之多,可见如此多的文件占用了特别多的磁盘空间。同时,当用户进行应用升级时,也会占用比较多的流量。
发明内容
本发明的主要目的在于提出一种应用文件处理装置及方法,旨在减少磁盘碎片,减少应用安装包占用的磁盘存储空间。
为实现上述目的,本发明提供的一种应用文件处理装置,包括:
源码获取模块,用于获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
资源文件获取模块,用于获取所述应用安装包的源码中的资源文件;
合并模块,用于对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件;
编译打包模块,用于基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
可选地,所述合并模块,还用于获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置。
可选地,所述装置还包括:
解析获取模块,用于在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源。
可选地,所述解析获取模块,还用于在接收到用户对所述文件整合后的应用安装包的调用指令时,获取所述合并后的资源文件;解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
可选地,所述解析获取模块,还用于根据不同的资源标识,从所述资源内容中解析出对应的资源。
本发明实施例还提出一种应用文件处理方法,包括:
获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
获取所述应用安装包的源码中的资源文件;
对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件;
基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
可选地,所述对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件的步骤包括:
获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;
将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置。
可选地,所述方法还包括:
在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述应用安装包获取对应的资源。
可选地,所述在接收到用户对所述应用安装包的调用指令时,解析所述应用安装包获取对应的资源的步骤包括:
在接收到用户对所述文件整合后的应用安装包的调用指令时,获取所述合并后的资源文件;
解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;
根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
可选地,所述从所述合并后的资源文件中获取对应的资源内容的步骤包括:
根据不同的资源标识,从所述资源内容中解析出对应的资源。
本发明提出的一种应用文件处理装置及方法,通过获取应用安装包的源码,应用安装包的源码中包括多个分散的资源文件;获取应用安装包的源码中的资源文件;对获取的应用安装包的源码中资源文件进行合并,得到合并后的资源文件;基于合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包,通过此种方式可以大大减少文件的个数,同时减少碎片空间,从而有效较少磁盘空间的占用并节省用户的数据流量。
附图说明
图1是实现本发明各个实施例的一个可选的移动终端的硬件结构示意图;
图2是如图1所示的移动终端的无线通信系统示意图;
图3是现有的存储介质中存储不连续的文件的空间示意图;
图4是本发明第一实施例应用文件处理装置的模块示意图;
图5是本发明实施例中合并后的文件格式示意图;
图6是通过本发明实施例方案将图3所示的存储介质中不连续的文件进行合并后得到的磁盘空间示意图;
图7是本发明第二实施例应用文件处理装置的模块示意图;
图8是本发明实施例中从合并文件中解析出资源的流程示意图;
图9是本发明第三实施例应用文件处理方法的流程示意图;
图10是本发明第四实施例应用文件处理方法的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例方案中涉及的终端设备主要指移动终端。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的一个可选的移动终端的硬件结构示意图。
移动终端100可以包括无线通信单元110、用户输入单元130、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。
输出单元150可以包括显示单元151等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块1810,多媒体模块1810可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构以及通信系统,提出本发明各个实施例。
首先介绍一下磁盘碎片的概念:
磁盘碎片指的是硬盘读写过程中产生的不连续文件。硬盘上非连续写入的文件会产生磁盘碎片,磁盘碎片会显著降低硬盘的运行速度,这主要是硬盘读取文件需要在多个碎片之间跳转,增加了等待盘片旋转到指定扇区的潜伏期和磁头切换磁道所需的寻道时间,影响系统效能。如图3所示,假设一个存储量为10M的存储介质,如果里面存储的文件不是连续存放的,那么便会产生碎片空间,如图3所示,深色空间为存储的文件,白色空间为产生的碎片空间,通过此图可知,这个10M的存储介质一共存放了6个文件就导致了空间被占满,然而有一半的空间是被碎片所占据。
由于现有技术中,应用安装包文件中存在着很多分散不连续的XML文件等资源文件,这些资源文件会产生大量的磁盘碎片,占用特别多的磁盘空间。
为此,本发明提出一种解决方案,针对安装包文件中产生碎片的XML文件,提出合并解析的方案,可以减少磁盘碎片空间,减少应用安装包占用的磁盘存储空间。
具体地,如图4所示,本发明第一实施例提出一种应用文件处理装置,包括:源码获取模块201、资源文件获取模块202、合并模块203及编译打包模块204,其中:
源码获取模块201,用于获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
资源文件获取模块202,用于获取所述应用安装包的源码中的资源文件;
合并模块203,用于对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件;
编译打包模块204,用于基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
具体地,本实施例应用文件处理装置可以设置在移动终端内,也可以独立设置在移动终端之外。
其中,本实施例所述的应用文件可以为运行在移动终端上的各种应用安装包文件,以Android为例,即Android应用程序包文件(安装包,Application Package File),以下简称应用安装包,是一种Android操作系统上的应用程序安装文件格式。一个Android应用程序的代码若要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“安装包”。一个安装包文件内包含被编译的代码文件(.dex文件)、文件资源(resources)、assets、证书(certificates),和清单文件(manifest file),安装包文件基于ZIP文件格式,它与JAR文件的构造方式相似。
为了减少应用安装包占用的磁盘存储空间首先,获取应用安装包的源码,源码中包括多个分散的资源文件。
然后,获取应用安装包的源码中的资源文件。
其中,源码中的资源文件可以为XML文件,XML文件定义了每个页面的布局以及相关的字体、颜色等资源。
之后,对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件。
本实施例方案中,在编译安装包时,将源码中分散的XML等资源文件进行合并,但其中的内容并不会丢失,只是会将内容进行合并统一。后续,在用户使用安装包时,需要从合并后的这个文件中去解析读取相关的资源。
具体地,在合并时,首先,获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;
然后,将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置。合并后的文件格式可以如图5所示。
其中,Resource_file_name1代表了某个资源文件的名称,资源内容保持不变。两个关键字Start和End,分别代表了一个资源文件的开始和结束位置。通过这几个关键字段,便能准确定位某一个具体的资源内容。
由于将分散的各资源文件合并为一个文件,无需产生很多的碎片文件,因此大大减少了应用安装包对磁盘空间的占用。
如图6所示,图6示出了将图3所示的存储介质中不连续的文件进行合并后,得到的磁盘空间占用情况。从图6可以看出,通过文件的合并后,大大减少了磁盘空间的占用率(只占用了不到一半的空间),从而起到了应用安装包瘦身的目的。
之后,基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包,即得到瘦身后的应用安装包。
本实施例通过上述方案,获取应用安装包的源码中的资源文件;对获取的应用安装包的源码中资源文件进行合并,得到合并后的资源文件;基于合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包,通过此种方式便可以大大减少文件的个数,同时减少碎片空间,从而有效较少磁盘空间的占用并节省用户的数据流量。
如图7所示,本发明第二实施例提出一种应用文件处理装置,基于上述图4所述的实施例,本实施例与上述图4所示的实施例的区别在于,本实施例还包括用户使用应用安装包时获取应用安装包中对应的资源的方案。
所述装置还包括:
解析获取模块205,用于在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源。
进一步地,所述解析获取模块205,还用于在接收到用户对所述文件整合后的应用安装包的调用指令时,获取所述合并后的资源文件;解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
具体地,在接收到用户对应用安装包的调用指令时,终端系统加载文件整合后的应用安装包,解析该应用安装包获取合并后的资源文件;
然后,解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;
最后,根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
其中,不同的资源通过资源标识进行区分,因此,在从合并后的资源文件中获取对应的资源内容时,根据不同的资源标识,从所述资源内容中解析出对应的资源。
以图5所示的Resource_file_name1为例,从合并文件中解析资源文件得到对应的资源的流程可以如图8所示。
由上述方案可知,在系统加载应用安装包时,由于文件数量大大的减少,从而可以提升系统执行效率,节省电量以及CPU占用率等资源。
本实施例通过上述方案,获取应用安装包的源码中的资源文件;对获取的应用安装包的源码中资源文件进行合并,得到合并后的资源文件;基于合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包,在用户使用安装包时,解析应用安装包,从合并后的资源文件中解析读取相关的资源。通过此种方式可以大大减少文件的个数,同时减少碎片空间,从而有效较少磁盘空间的占用并节省用户的数据流量。
对应地,提出本发明应用文件处理方法实施例。
如图9所示,本发明第三实施例提出一种应用文件处理方法,该方法实施例对应上述图4所示的装置第一实施例;该方法包括:
步骤S101,获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
本实施例方法执行主体可以为移动终端,也可以为一种应用文件处理装置,该应用文件处理装置可以设置在移动终端内,也可以独立设置在移动终端之外。
其中,本实施例所述的应用文件可以为运行在移动终端上的各种应用安装包文件,以Android为例,即Android应用程序包文件(安装包,Application Package File),以下简称应用安装包,是一种Android操作系统上的应用程序安装文件格式。一个Android应用程序的代码若要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“安装包”。一个安装包文件内包含被编译的代码文件(.dex文件)、文件资源(resources)、assets、证书(certificates),和清单文件(manifest file),安装包文件基于ZIP文件格式,它与JAR文件的构造方式相似。
为了减少应用安装包占用的磁盘存储空间首先,获取应用安装包的源码,源码中包括多个分散的资源文件。
步骤S102,获取所述应用安装包的源码中的资源文件;
其中,源码中的资源文件可以为XML文件,XML文件定义了每个页面的布局以及相关的字体、颜色等资源。
步骤S103,对获取的所述应用安装包的源码中资源文件进行合并,得到合并后的资源文件;
本实施例方案中,在编译安装包时,将源码中分散的XML等资源文件进行合并,但其中的内容并不会丢失,只是会将内容进行合并统一。后续,在用户使用安装包时,需要从合并后的这个文件中去解析读取相关的资源。
具体地,在合并时,首先,获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;
然后,将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置。合并后的文件格式可以如图5所示。
其中,Resource_file_name1代表了某个资源文件的名称,资源内容保持不变。两个关键字Start和End,分别代表了一个资源文件的开始和结束位置。通过这几个关键字段,便能准确定位某一个具体的资源内容。
由于将分散的各资源文件合并为一个文件,无需产生很多的碎片文件,因此大大减少了应用安装包对磁盘空间的占用。
如图6所示,图6示出了将图3所示的存储介质中不连续的文件进行合并后,得到的磁盘空间占用情况。从图6可以看出,通过文件的合并后,大大减少了磁盘空间的占用率(只占用了不到一半的空间),从而起到了应用安装包瘦身的目的。
步骤S104,基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
之后,基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包,即得到瘦身后的应用安装包。
本实施例通过上述方案,获取应用安装包的源码中的资源文件;对获取的应用安装包的源码中资源文件进行合并,得到合并后的资源文件;基于合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包,通过此种方式便可以大大减少文件的个数,同时减少碎片空间,从而有效较少磁盘空间的占用并节省用户的数据流量。
如图10所示,本发明第四实施例提出一种应用文件处理方法(该方法实施例对应上述图7所示的装置第二实施例),基于上述图9所示的实施例,本实施例与上述图9所示的实施例的区别在于,本实施例还包括用户使用应用安装包时获取应用安装包中对应的资源的方案。
该方法还包括:
步骤S105,在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源。
具体地,在接收到用户对应用安装包的调用指令时,终端系统加载文件整合后的应用安装包,解析该应用安装包获取合并后的资源文件;
然后,解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;
最后,根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
其中,不同的资源通过资源标识进行区分,因此,在从合并后的资源文件中获取对应的资源内容时,根据不同的资源标识,从所述资源内容中解析出对应的资源。
以图5所示的Resource_file_name1为例,从合并文件中解析资源文件得到对应的资源的流程可以如图8所示。
由上述方案可知,在系统加载应用安装包时,由于文件数量大大的减少,从而可以提升系统执行效率,节省电量以及CPU占用率等资源。
本实施例通过上述方案,获取应用安装包的源码中的资源文件;对获取的应用安装包的源码中资源文件进行合并,得到合并后的资源文件;基于合并后的资源文件,对源码进行编译并打包,得到文件整合后的应用安装包,在用户使用安装包时,解析该应用安装包,从合并后的资源文件中解析读取相关的资源。通过此种方式可以大大减少文件的个数,同时减少碎片空间,从而有效较少磁盘空间的占用并节省用户的数据流量。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种应用文件处理装置,其特征在于,包括:
源码获取模块,用于获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
资源文件获取模块,用于获取所述应用安装包的源码中的资源文件;
合并模块,用于获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置,得到合并后的资源文件;
编译打包模块,用于基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
解析获取模块,用于在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源。
3.根据权利要求2所述的装置,其特征在于,
所述解析获取模块,还用于在接收到用户对所述文件整合后的应用安装包的调用指令时,获取所述合并后的资源文件;解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
4.根据权利要求3所述的装置,其特征在于,
所述解析获取模块,还用于根据不同的资源标识,从所述资源内容中解析出对应的资源。
5.一种应用文件处理方法,其特征在于,包括:
获取应用安装包的源码,所述应用安装包的源码中包括多个分散的资源文件;
获取所述应用安装包的源码中的资源文件;
获取所述应用安装包的源码中各资源文件的名称及对应的资源内容;将各资源文件的资源内容合并成一个二进制文件,在所述二进制文件中,对应每一资源文件的资源内容,标识对应的资源文件的名称,以及对应的资源内容的开始位置和结束位置,得到合并后的资源文件;
基于所述合并后的资源文件,对所述源码进行编译并打包,得到文件整合后的应用安装包。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源。
7.根据权利要求6所述的方法,其特征在于,所述在接收到用户对所述文件整合后的应用安装包的调用指令时,解析所述文件整合后的应用安装包获取对应的资源的步骤包括:
在接收到用户对所述文件整合后的应用安装包的调用指令时,获取所述合并后的资源文件;
解析所述合并后的资源文件,获取所述调用指令对应的资源文件名称,以及对应的资源内容的开始位置和结束位置;
根据所述对应的资源内容的开始位置和结束位置,从所述合并后的资源文件中获取对应的资源内容。
8.根据权利要求7所述的方法,其特征在于,所述从所述合并后的资源文件中获取对应的资源内容的步骤包括:
根据不同的资源标识,从所述资源内容中解析出对应的资源。
CN201610343414.3A 2016-05-20 2016-05-20 应用文件处理装置及方法 Active CN106020725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610343414.3A CN106020725B (zh) 2016-05-20 2016-05-20 应用文件处理装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610343414.3A CN106020725B (zh) 2016-05-20 2016-05-20 应用文件处理装置及方法

Publications (2)

Publication Number Publication Date
CN106020725A CN106020725A (zh) 2016-10-12
CN106020725B true CN106020725B (zh) 2019-07-12

Family

ID=57095796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610343414.3A Active CN106020725B (zh) 2016-05-20 2016-05-20 应用文件处理装置及方法

Country Status (1)

Country Link
CN (1) CN106020725B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775781B (zh) * 2017-02-17 2021-04-27 北京金山安全软件有限公司 减小应用安装包的方法、装置及电子设备
CN106775916B (zh) * 2017-02-17 2020-02-28 北京金山安全软件有限公司 减小应用安装包的方法、装置及电子设备
CN109144563A (zh) * 2018-06-29 2019-01-04 平安科技(深圳)有限公司 应用组件构建打包方法、装置及计算机存储介质
CN110278282A (zh) * 2019-07-01 2019-09-24 成都启英泰伦科技有限公司 一种语音大数据存储调用方法
CN111556127B (zh) * 2020-04-24 2023-04-07 广东乐心医疗电子股份有限公司 一种可穿戴设备升级方法及相关设备
CN114201703A (zh) * 2020-09-18 2022-03-18 华为技术有限公司 一种的生成文件的方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544005A (zh) * 2013-09-10 2014-01-29 Tcl集团股份有限公司 一种Android自定义控件的扩展开发方法及装置
CN105184118A (zh) * 2015-08-31 2015-12-23 西北大学 一种基于代码碎片化的Android应用程序加壳保护方法及装置
CN105204823A (zh) * 2014-05-29 2015-12-30 腾讯科技(深圳)有限公司 生成应用程序安装包的方法及装置
CN105282206A (zh) * 2014-07-25 2016-01-27 北京联嘉众赢网络技术有限公司 网站资源文件的处理方法、装置和系统
CN105574000A (zh) * 2014-10-08 2016-05-11 中兴通讯股份有限公司 扩展apk文件应用的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9635094B2 (en) * 2012-10-15 2017-04-25 International Business Machines Corporation Capturing and replaying application sessions using resource files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544005A (zh) * 2013-09-10 2014-01-29 Tcl集团股份有限公司 一种Android自定义控件的扩展开发方法及装置
CN105204823A (zh) * 2014-05-29 2015-12-30 腾讯科技(深圳)有限公司 生成应用程序安装包的方法及装置
CN105282206A (zh) * 2014-07-25 2016-01-27 北京联嘉众赢网络技术有限公司 网站资源文件的处理方法、装置和系统
CN105574000A (zh) * 2014-10-08 2016-05-11 中兴通讯股份有限公司 扩展apk文件应用的方法及装置
CN105184118A (zh) * 2015-08-31 2015-12-23 西北大学 一种基于代码碎片化的Android应用程序加壳保护方法及装置

Also Published As

Publication number Publication date
CN106020725A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
CN106020725B (zh) 应用文件处理装置及方法
CN106201183B (zh) 分屏显示装置、移动终端及方法
CN104951326B (zh) 网页访问方法及装置
CN105282245B (zh) 跨服务器消息推送系统及方法
CN105915623A (zh) 应用安装包处理装置及方法
CN105681561B (zh) 广告拦截装置和方法
CN106412104A (zh) 应用消息推送装置及方法
CN106055328B (zh) 针对第三方应用的主题更换装置及方法
CN107066320A (zh) 一种Android进程冻结和解冻的装置及方法
CN105740008A (zh) 禁止应用程序链式启动的装置和方法
CN106528576A (zh) 页面搜索方法、终端及系统
CN105302864A (zh) 根据屏幕分辨率加载图片的装置和方法
CN106598515B (zh) 一种移动终端及悬浮分屏方法
CN104657181A (zh) 应用程序安装方法及装置
CN106559571A (zh) 参数配置装置、移动终端及方法
CN106559579A (zh) 移动终端和cpu/gpu调度参数更新方法
CN106055324A (zh) 系统主题更换装置及方法
CN106453939A (zh) 一种流媒体接入方法及装置
CN105956104A (zh) 业务视图框架及其开发方法
CN105278995A (zh) 应用程序的管理方法、系统、服务器和移动终端
CN105446625A (zh) 基于浏览器的图片粘贴方法及装置
CN105897436B (zh) 流量监测装置及方法
CN105611059B (zh) 显示应用程序可用性的方法、装置及移动终端
CN105744069B (zh) 一种信息传输方法、终端和系统
CN106502751A (zh) 热部署装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant