CN117708070A - 一种文件压缩方法及电子设备 - Google Patents
一种文件压缩方法及电子设备 Download PDFInfo
- Publication number
- CN117708070A CN117708070A CN202310937556.2A CN202310937556A CN117708070A CN 117708070 A CN117708070 A CN 117708070A CN 202310937556 A CN202310937556 A CN 202310937556A CN 117708070 A CN117708070 A CN 117708070A
- Authority
- CN
- China
- Prior art keywords
- compression unit
- storage
- dnode
- storage address
- compressed
- 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
Links
- 238000007906 compression Methods 0.000 title claims abstract description 149
- 230000006835 compression Effects 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013144 data compression Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 36
- 238000007726 management method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本申请提供一种文件压缩方法及电子设备,该方法可以应用于电子技术领域,包括:按照压缩单位,对标记为待压缩文件的目标文件进行压缩,当压缩单位中同时包括索引节点inode的数据块和存储文件地址dnode的数据块时停止对inode中的数据块进行压缩,然后可以继续对inode中的多个dnode进行压缩,当压缩单位中同时包括不同dnode的数据块时停止对当前dnode进行压缩,并对下一个dnode进行压缩,这样可以不对压缩单位中存储地址跨node的数据块进行压缩,也就不会出现超出地址访问的问题,从而可以对已存在数据的普通文件进行压缩。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种文件压缩方法及电子设备。
背景技术
友好闪存文件系统(Flash Friendly File System,F2Fs)是其中一种支持Linux内核使用的文件系统,F2Fs中可以包括多个存储数据的文件。在使用F2Fs的电子设备中,当用户在电子设备上执行某些操作时,例如安装应用、拍照以及下载视频等,会产生大量的数据,为了将这些数据长期保存,则需要以文件的形式将这些数据存储至存储器中。
随着文件系统中存储的数据越来越多,会导致存储空间减少,进而存在存储空间不够用的情况,对文件中的数据进行压缩,可以节省存储空间。
但是,目前,inode无法对已经存在数据的普通文件进行压缩,导致用户体验感差。
发明内容
本申请提供的文件压缩方法及电子设备,可以对已存在数据的普通文件进行压缩,进而提升用户体验感。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种文件压缩方法,该方法可以应用于电子设备,包括,
在对标记为待压缩文件的目标文件进行压缩时,可以按照压缩单位以及存储地址序号由小到大的顺序依次对待压缩文件中inode中存储的数据块进行压缩并且在每次压缩过程中,对压缩单位中是否同时包括所述索引节点inode的数据块和存储文件地址dnode的数据块进行判断,其中,目标文件为已存储数据的文件,数据块为存储地址存储数据的最小单元,压缩单位中包括预设数量的数据块。
当确定压缩单位中同时包括inode的数据块和dnode的数据块时停止对inode中的数据块进行压缩,然后对inode中的多个dnode中的数据块进行压缩时,按照压缩单位以及存储地址序号由小到大的对待压缩文件中dnode的数据块进行压缩并且在每次压缩过程中对压缩单位中是否同时包括不同dnode的数据块进行判断。
当压缩单位中同时包括不同dnode的数据块时停止对当前dnode中的数据块进行压缩,并对下一个dnode进行压缩。
进一步的,可以通过以下方式对压缩单位中是否同时包括索引节点inode的数据块和存储文件地址dnode的数据块进行判断:
可以根据当前压缩单位中存储地址的最小序号与组成压缩单位的数据块的预设数量之和确定当前压缩单位中最后一个存储地址的序号,当确定最后一个存储地址的序号大于inode中存储地址的个数时,可以确定压缩单位中同时包括索引节点inode的数据块和存储地址dnode的数据块。
具体的,当前压缩单位中存储地址的最小序号也可以表示当前要压缩的数据块所处的存储地址,可以用函数start_idx表示,inode中存储地址个数可以用函数addr_per_inode表示,若当前要压缩的数据块的存储地址的序号加压缩单位的数据块数量减1的值大于函数addr_per_inode的返回值,说明当前数据块组的中的“最后一个理论要压缩的数据块”对应的存储地址超出inode的存储地址,可以确定压缩单位中同时包括索引节点inode的数据块和存储地址dnode的数据块。
在某些可能实现的方式中,还可以根据当前压缩单位中存储地址的最小序号与inode中存储地址的个数的差值确定第一结果值,然后根据第一结果值与dnode中存储地址的个数的商确定当前压缩单位中序号最小的存储地址对应数据块所在的dnode的序号。
同时可以根据当前压缩单位中最后一个存储地址的序号与inode中存储地址的个数的差值确定第二结果值。根据第二结果值与dnode中存储地址的个数的商值确定当前压缩单位中最后一个存储地址对应数据块所在的dnode的序号。其中,最后一个存储地址为根据序号最小的存储地址与组成压缩单位的数据块的预设数量确定。
当确定序号最小的存储地址对应数据块所在的dnode的序号与最后一个存储地址对应数据块所在的dnode的序号不相同时,可以确定压缩单位中同时包括不同dnode的数据块。
在某些可能实现的方式中,可以判断当前需要压缩的数据块对应的存储地址位于inode中还是dnode中。
具体的,可以获取当前要压缩的数据块所处的存储地址的序号,也就是当前压缩单位中存储地址的最小序号,当当前要压缩的数据块所处的存储地址的序号小于inode中存储地址件个数时候,可以确定当前需要压缩的数据块位于inode中,当当前要压缩的数据块的位置大于inode中存储地址个数时候,可以确定当前需要压缩的数据块位于dnode中。
当当前要压缩的数据块对应的存储地址位于inode中,按照压缩单位以及存储地址序号由小到大的顺序依次对待压缩文件中inode中存储的数据块进行压缩;。
当当前要压缩的数据块对应的存储地址位于dnode中,按照压缩单位以及存储地址序号由小到大的顺序对待压缩文件中dnode中存储的数据块进行压缩。
在某些可能实现的方式中,为了节约存储空间,可以按照预设的压缩单位,对已经压缩的存储地址中的存储空间进行释放,其中,组成预设的压缩单位中的数据块的数量可以根据需求预先设置,从而达到释放被压缩之后的存储地址的存储空间的目的。
在某些可能实现的方式中,当有数据需要写入时,还可以按照预设的申请内存空间单位将数据块存储至释放存储空间之后的存储地址,其中,组成预设的申请内存空间的单位中的数据块的数量可以也可以根据需求预先设置,从而可以向释放存储空间之后的存储地址中存储数据。
第二方面,本申请提供了一种电子设备,包括:处理器和存储器;
在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述电子设备执如第一方面中任一项所述的方法。
第三方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在移动终端上运行时,使得所述电子设备执如第一方面中任一项所述的方法。
由上述技术方案可知,本申请具有如下有益效果:
本申请中在对标记为待压缩文件的目标文件进行压缩时,可以按照压缩单位以及存储地址序号由小到大的顺序依次对待压缩文件中inode中存储的数据块进行压缩并且在每次压缩过程中,对压缩单位中是否同时包括inode的数据块和dnode的数据块进行判断,当压缩单位中同时包括inode的数据块和dnode的数据块时停止对inode中的数据块进行压缩,然后继续按照压缩单位以及存储地址序号由小到大的对待压缩文件中dnode的数据块进行压缩并且在每次压缩过程中对压缩单位中是否同时包括不同dnode的数据块进行判断,当压缩单位中同时包括不同存储地址dnode的数据块时停止对当前dnode中的数据块进行压缩,并对下一个dnode进行压缩。这样可以不对压缩单位中存储地址跨node的数据块进行压缩,也就不会出现超出地址访问的问题,从而可以对已存在数据的普通文件进行压缩,进而提升用户体验感。
附图说明
图1为本申请实施例提供的一种电子设备的组成示例图;
图2A为本申请实施例提供的一种电子设备的软硬件结构示例图;
图2B为本申请实施例提供的一种文件系统与内存管理交互的原理图;
图3为本申请实施例提供的一种普通文件的结构原理图;
图4为本申请实施例提供的一种打开相机示意图;
图5为本申请实施例提供的一种相机界面预览场景示意图;
图6为本申请实施例提供的一种压缩文件的结构原理图;
图7为本申请实施例提供的一种文件压缩方法的流程图;
图8为本申请实施例提供的一种存储地址分配序号的示意图;
图9为本申请实施例提供的一种数据块组超出inode存储地址的示意图;
图10为本申请实施例提供的一种数据块组不处于同一dnode的示意图;
图11为本申请实施例提供的一种压缩以及释放过程的示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
文件系统,指管理磁盘数据的系统,也可以指管理只读存储器只读存储器(Read-Only Memory,ROM)的文件系统,它可以将数据以目录或文件的型式直接存储在磁盘或者ROM中。
文件系统包括很多种,F2Fs(Flash Friendly File System)是其中一种支持Linux内核使用的文件系统,F2Fs系统中可以包括多个存储数据的文件,每个文件可以包括索引节点inode,其中,索引节点inode是一个结构,用于存储文件的元信息。每个inode中可以包括一定数量的存储地址以及一定数量的dnode,每个dnode中也包括存在一定数量的存储地址,用于存储数据。在使用F2Fs文件系统的电子设备中,当用户在电子设备上执行某些操作时,例如安装应用、拍照以及下载视频等,会产生大量的数据,为了将这些数据长期保存,则需要以文件的形式将这些数据存储至ROM中。
每一个存储地址中可以存储一个数据块block,其中,数据块block为F2Fs文件系统中存储数据的最小单元。多个数据块可以组成一个压缩单位,以压缩单位对文件进行压缩,在使用F2Fs文件系统的电子设备中,当用户在电子设备上执行某些操作时,例如安装应用、拍照以及下载视频等,会产生大量的数据,为了将这些数据长期保存,则需要以文件的形式将这些数据存储至硬盘中。
随着文件系统中存储的数据越来越多,会导致存储空间减少,进而存在存储空间不够用的情况,对文件中的数据进行压缩,可以节省存储空间。
目前,压缩文件的地址管理规则为需要根据压缩压缩单位对inode以及dnode中的存储地址进行取余,因此,已存储数据的普通文件与压缩文件地址管理规则,也就是存储结构不同,所以无法对已经存在数据的普通文件进行压缩。
有鉴于此,本申请提供的文件压缩方法及电子设备,本申请可以将目标文件转化为存储结构相同的压缩文件,然后按照压缩单位对压缩文件进行压缩,并可以判断当前需要压缩的数据块对应的存储地址位于inode中还是dnode中,当确定当前需要压缩的数据块对应的存储地址位于inode时,可以判断当前数据块组的最后一个理论数据块对应的存储地址是否超出inode的存储地址,若超出inode的存储地址,则将inode中未压缩的数据块对应的存储地址标记为特殊位置,对特殊位置的数据块不做压缩处理,当确定当前需要压缩的数据块对应的存储地址位于dnode时,判断当前数据块组中的最后一个理论数据块对应的存储地址是否超出所处dnode的存储地址,若超出所处dnode的存储地址,则将dnode中未压缩的数据块对应的存储地址标记为特殊位置,对特殊位置的数据块不做压缩处理,这样可以将目标文件转化为存储结构相同的压缩文件,并且不对特殊位置中的数据块,也就是压缩单位中存储地址跨node的数据块进行压缩,也就不会出现超出地址访问的问题,从而可以对已存在数据的普通文件进行压缩。
在一些实施例中,电子设备可以是手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴电子设备、智能手表等设备,本申请对上述电子设备的具体形式不做特殊限制。在本实施例中,电子设备的结构可以如图1所示,图1为本申请实施例提供的一种电子设备的结构示意图。
如图1所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,传感器模块180,显示屏194等。其中传感器模块180可以包括触摸传感器180K等。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110中可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oled,量子点发光二极管(quantumdot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备的显示屏194上可以显示一系列图形用户界面(graphical userinterface,GUI),这些GUI都是该电子设备的主屏幕。一般来说,电子设备的显示屏194的尺寸是固定的,只能在该电子设备的显示屏194中显示有限的控件。控件是一种GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接触摸传感器180K,也称“触控器件”通过触摸操作(directmanipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、控件、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
进一步的,触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。例如,用户通过触摸传感器180K触摸显示屏194,中的相机英勇控件,则可以通过显示屏194提供与触摸操作相关的视觉输出,也就是说显示屏194可以显示打开相机之后的界面。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中,在某些可能实现的方式中,外部存器接口120可以为只读存储器(Read-Only Memory,ROM),用于存储手机中的照片、视频、音乐等数据。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
另外,在上述部件之上,运行有操作系统。例如苹果公司所开发的iOS操作系统,谷歌公司所开发的Android开源操作系统,微软公司所开发的Windows操作系统等。在该操作系统上可以安装运行应用程序。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
另外,在上述部件之上,运行有操作系统。例如苹果公司所开发的iOS操作系统,谷歌公司所开发的Android开源操作系统,微软公司所开发的Windows操作系统等。在该操作系统上可以安装运行应用程序。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图2A是本申请实施例的电子设备的软硬件结构框图。
分层架构将软件,硬件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将可以将软、硬件分为四层,从上至下分别为应用层,系统框架层、内核层、硬件层。
应用层可以包括一系列应用程序包。如图2A所示,应用程序包可以包括常驻服务、系统应用以及三方应用等,常驻服务例如可以包括蓝牙、WiFi等,系统应用可以包括相机,图库,日历,通话,地图,导航短信息等,三方应用可以包括,第三方的视频播放器、第三方的社交软件等应用程序。
系统框架层为应用层的应用程序提供应用编程接口(application programminginterface,API)服务和编程框架。系统框架层包括一些预先定义的函数。如图2A所示,系统框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
应用层和系统框架层运行在虚拟机中。虚拟机将应用层和系统框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。内核层可以包括显示驱动,摄像头驱动,音频驱动,传感器驱动、内存管理单元以及文件系统等。
硬件层可以包括中央处理器(Central Processing Unit,CPU)、数字信号处理器(digital signal processor,DSP)、只读存储器(Read-Only Memory,ROM)等。
文件系统可以是F2Fs文件系统,用于将数据以目录或文件的型式直接存储在存储器中。如图2B所示,在应用运行过程中,内存管理单元可以从文件系统中读取新的文件页,部分文件页修改后可以标记为脏页暂存于内存中择机写回外存。
CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
DSP用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
文件系统主要与ROM进行交互,从而ROM可以为文件系统中存储的文件提供存储空间。
需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于基于iOS、Windows等操作系统的电子设备。
系统常驻服务、系统应用和三方应用均通过调用系统框架层提供的API接口来提供服务。系统框架层的这些API服务依赖于内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。而内核也同时作为硬件和软件栈之间的抽象层。
需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于基于iOS、Windows等操作系统的电子设备。
文件系统,指管理磁盘数据的系统,也可以指管理只读存储器ROM的文件系统,它可以将数据以目录或文件的型式直接存储在磁盘或者ROM中。
文件系统包括很多种,F2Fs(Flash Friendly File System)是其中一种支持Linux内核使用的文件系统,F2Fs系统中可以包括多个存储数据的文件,每个文件的构成可以如图3所示,可以包括A索引节点inode,其中,索引节点是一个结构,用于存储文件的元信息,例如inode编号、文件大小、访问权限、创建时间、修改时间、数据在存储器的位置等等,inode中的地址区域即为包括存储地址的区域,它可以包括一定数量的存储地址例如可以为923-extra_isize-inline_xattr_addrs个,例如为866个,也就是866个存储地址,需要说明的是extra_isize-inline_xattr_addrs可以为inode中存储文件的创建日期、文件的大小等元信息占用的存储地址,inode中减去这部分存储地址剩余的可以为可以存储数据的存储地址的个数。
inode中除了地址区域之外还可以包括一定数量的存储文件地址dnode每个donde中也可以包括多个存储地址,示例性的,每个inode中包括5个dnode,每个dnode中包括1018个存储地址,当然这里只是举例说明,在此不做限定。
具体的,以A索引节点inode中包括866个存储地址,5个dnode、每个dnode中包括1018个存储地址为例进行介绍。当有数据写入的时候,可以先存储至inode中,当inode存储满之后可以将数据存储至每个donde中。
在某些可能实现的方式中,可以将索引节点中的每个存储地址分配唯一对应的序号,可以将索引节点中的存储地址以及dnode中的存储地址分配由小到大的序号,按照序号由小到大分别依次将数据写入每个存储地址,需要说明的是,inode中的每个存储地址可以存储一个数据块block,当inode中的当前存储地址存储满之后,也就是存储了一个数据块之后,按照序号可以将文件存储至下一个存储地址,其中,数据块block为F2Fs文件系统中存储数据的最小单元。
进一步的,当inode中的存储地址存储数据完毕之后,可以将数据存储至每个dnode中,需要说明的是,dnode中的每一个存储地址也可以存储一个数据块,示例性的,当当前dnode存储1018个数据块之后,可以认为当前dnode已存满数据,则将数据存储至下一个dnode中。
下面结合场景进行介绍,在使用F2Fs文件系统的电子设备中,当用户在电子设备上执行某些操作时,例如安装应用、拍照以及下载视频等,会产生大量的数据,为了将这些数据长期保存,则需要以文件的形式将这些数据存储至硬盘中。
具体的,以用户打开相机应用拍照为例,如图4所示,图4示出了一种用户打开相机应用的示意图,例如,用户触摸操作为打开相机,触摸传感器180K可以接收用户对相机图标401的触摸操作,并向处理器110上报对相机图标401的触摸操作,处理器110在接收对相机图标401的触摸操作之后,可以响应于上述触摸操作,启动相机图标401对应的应用(可简称为相机应用)。
当电子设备在应用层触发启动相机应用操作时,则会调用系统框架层的视图系统API服务,构成相机显示界面,并在显示屏194上显示相机的拍摄预览界面。其中,相机显示界面可以由一个或多个视图组成,可以包括显示文字的视图以及显示图片的视图。如图5所示的相机应用界面,相机应用的显示界面上可以包括拍照控件501等各种功能控件。电子设备响应于用户点击拍照控件501,触发拍照事件,获得照片,从而可以将拍摄照片产生的数据以文件的形式,存储至文件系统中,可以理解的是,文件系统的具体的存储空间大小由ROM提供。
随着文件系统中存储的数据越来越多,会导致存储空间减少,进而存在存储空间不够用的情况,对文件中的数据进行压缩,可以节省存储空间。
目前,对文件的压缩是以多个数据块组成一个压缩单位,以压缩单位对文件进行压缩,但是只可以对新建立的压缩文件进行压缩,无法对已经存在数据的普通文件进行压缩。
示例性的,压缩单位为32,文件的索引节点inode中包括866个存储地址,每个dnode中包括1018个存储地址,每个存储地址中储存一个数据块,则可以以32个数据块为一个压缩单位对inode以及dnode中数据进行压缩,可以看出,inode中剩余2个数据块由于无法组成一个压缩单位,从而无法进行压缩,dnode中剩余28个数据块由于无法组成一个压缩单位,从而无法进行压缩,因此可能会导致压缩失败,所以无法对已经存在数据的普通文件进行压缩。
为了避免上述问题,文件需要在刚建立未存储数据时候,对其分配压缩标识,转化成可以对存储的数据进行压缩的压缩文件,为了能够对压缩文件进行压缩,需要对压缩文件进行不同于普通文件的地址管理规则,对压缩文件inode以及dnode中的存储地址的个数进行取余处理,示例性的,如图6所示,A为索引节点inode,A中的地址区域例如可以存储(923-extra_isize-inline_xattr_addrs)%cluster_size个存储地址,以及一定数量的B,也就是存储文件地址,每个dnode例如可以存储1018%cluster_size个存储地址,其中,cluster_size可以表示对压缩文件中的inode以及dnode中的存储地址的个数进行取余,例如以压缩单位为32为例,压缩文件的索引节点inode中原本可以包括866个存储地址,dnode中原本可以包括1018个存储地址,对压缩文件中的inode以及dnode中的存储地址的个数进行取余之后,文件的索引节点inode中包括864个存储地址,dnode中包括992个存储地址,如图6所示,B中的a区域可以为取余之后舍弃的地址,以32个压缩单位为例,那么a区域中的存储地址可以26个,这样由于压缩文件的存储地址进行了取余处理,所以在压缩文件存储数据之后,以32个数据块为压缩单位对压缩文件进行压缩,没有剩余的存储地址,可以对压缩文件进行完整压缩。
因此,由于已存储数据的普通文件与压缩文件地址管理规则,也就是存储结构不同,所以只可以对新建立的压缩文件进行压缩,无法对已经存在数据的普通文件进行压缩,导致用户体验感差。
本申请提供一种文件压缩方法,以解决无法对已经存在数据的普通文件进行压缩的问题。
为了使本申请的技术方案更加清楚、易于理解,下面结合上述实施例及相应的附图,对本申请实施例提供的文件压缩方法进行介绍。参见图7所示的一种文件压缩方法的流程图。下面以电子设备为该方法的执行主体进行介绍,如图7所示,该文件压缩方法可以包括但不限于如下内容:
S701:将目标文件转化为存储结构相同的压缩文件。
目标文件为已经存在数据的需要进行压缩的普通文件,压缩文件能够对存储地址中存储的数据进行压缩的文件,存储结构为inode以及dnode的存储地址的个数。由于普通文件与压缩文件的存储结构不同,因此,对目标文件进行压缩需要将目标文件转化为存储结构相同的压缩文件。
具体的,电子设备可以为目标文件分配压缩标识,然后将分配压缩标识的目标文件和压缩文件存储地址对齐,也就是说,对压缩文件中的存储地址不进行取余处理。从而可以将目标文件转化为存储结构相同的压缩文件,需要说明的是,这里的压缩文件指的是未进行压缩的待压缩文件。
S702:按照压缩单位对压缩文件进行压缩。
电子设备可以在将目标文件转化为存储结构相同的压缩文件之后。按照压缩单位对目标文件进行压缩,其中,压缩单位可以由多个数据块组成,例如压缩单位为32,那么每次以32个数据块为一个数据块组进行压缩,以一个存储地址存储一个数据块为例,那么就是每次压缩32个存储地址中的数据块,数据块block为F2Fs文件系统中存储数据的最小单元。
在某些可能实现的方式中,可以将索引节点inode中的每个存储地址以及dnode中的每个存储地址分配唯一对应的序号,如图8所示,在图8(a)中所示结构的索引节点inode中,以inode中的地址区域包括860个存储地址,每个dnode中包括1018个存储地址为例,可以将inode中的每个存储地址依次分配由小到大的序号,分配序号1的可以为第1个存储地址,直至每个存储地址都分配完成,然后可以将每个dnode中的存储地址也对应分配序号,比如说inode分配至第860个存储地址,那么第1个dnode中的存储地址可以接着第860个存储地址继续分配,例如如图8(b)中所示将第1个dnode中的第1个存储地址序号分配为861,按照此原理,第1个存储地址dnode中的存储地址分配完成之后,对下一个dnode的存储地址进行分配,当需要对压缩文件进行压缩时,可以按照序号由小到大的顺序组成压缩单位进行压缩,示例性的,按照压缩单位为32对压缩文件进行压缩,那么首次压缩时,将序号由小到大排名前32的数据块组成一个压缩单位进行压缩,之后按照该顺序进行后续压缩,直至inode中所有数据块完成压缩,然后基于同样原理,按照序号由小到大顺序逐次对每个dnode中的存储地址进行压缩,这里只是举例说明,当然也可以从序号0开始分配,分配序号0的可以为第0个存储地址,依次类推按照数字由小到大的顺序进行分配序号。
在某些可能实现的方式中,还可以将索引节点inode中的每个存储地址进行优先级排序,当有数据写入时,按照优先级从大到小将数据写入每个存储地址,当需要对压缩文件进行压缩时,可以按照优先级由小到大的顺序组成压缩单位进行压缩,示例性的,按照压缩单位为32对目标文件进行压缩,那么首次压缩时,将优先级由大到小排名前32的数据块组成一个压缩单位进行压缩,之后按照该顺序进行后续压缩,直至所有inode中所以数据块完成压缩,按照优先级对dnode中的存储地址进行压缩。
需要说明的是,压缩方式并不限于上述两种,本申请只是举例说明在此不做限定。
S703:判断当前需要压缩的数据块对应的存储地址位于inode中还是dnode中。
电子设备可以获取当前要压缩的数据块所处的存储地址的序号,当前要压缩的数据块为当前组成压缩单位的数据块中对应存储地址序号最小或者优先级最高的数据块,也就是“第一个数据块”,可以用函数start_idx表示,当获取当前要压缩的数据块所处的存储地址的序号小于inode中包括的存储地址件的个数时候,可以确定当前需要压缩的数据块位于inode中,当当前要压缩的数据块的位置大于inode中存储地址的个数时候,可以确定当前需要压缩的数据块位于dnode中,其中,inode中存储地址的个数可以用函数addr_per_inode表示,例如,压缩文件的索引节点inode中包括864个存储地址,若当前需要压缩的数据块处于第860个存储地址之中,函数start_idx的返回值为860,函数addr_per_inode的返回值为864,函数start_idx的返回值小于函数addr_per_inode的返回值,那么可以确定当前需要压缩的数据块位于inode中,执行步骤S704,若函数start_idx的返回值大于函数addr_per_inode的返回值,例如,当前需要压缩的数据块处于第1060个存储地址之中,函数start_idx的返回值为1060,函数addr_per_inode的返回值为864,函数start_idx的返回值大于函数addr_per_inode的返回值,那么可以确定当前需要压缩的数据块位于dnode中,执行步骤S705。
S704:判断当前数据块组的最后一个理论数据块对应的存储地址是否超出inode的存储地址。
当前数据块组指的是当前需要压缩的数据块所在的数据块组,也就是要压缩的数据块组,当前数据块组的“最后一个理论数据块”对应的存储地址指的是当前数据块组中理论上应该压缩的存储地址序号最大的数据块对应的存储地址,其存储地址对应的序号可以为当前要压缩的数据块的存储地址的序号加压缩单位的数据块数量减1,例如,如图9所示,压缩文件的索引节点inode中包括864个存储地址,当前要压缩的数据块存储在第863个存储地址中,对应的序号为863,压缩单位为4,那么,最后一个理论数据块对应的存储地址就是866,若当前要压缩的数据块的存储地址的序号加压缩单位的数据块数量减1的值大于函数addr_per_inode的返回值,说明当前数据块组的“最后一个理论数据块”对应的存储地址超出inode的存储地址,也就是说该数据块存储在dnode的存储地址中,inode中剩余的可压缩的存储地址对应的数据块无法按照压缩单位组成数据块组进行压缩,例如,inode中包括864个存储地址,函数addr_per_inode的返回值为864,最后一个理论数据块对应的存储地址为第866个存储地址,那么实际上inode中可以压缩的只剩下第863以及第864个存储地址的数据块,无法按照压缩单位组成数据块组进行压缩,若按照压缩单位对inode中剩余的这两个存储地址的数据块进行压缩可能会导致超出地址访问,因此可以将第863以及第864个存储地址标记为特殊位置,从而执行步骤S707,不对特殊位置的数据块进行压缩,也就是不对当前组成压缩单位的inode中的数据块进行压缩处理,若最后一个理论数据块对应的存储地址为第863个存储地址,inode中包括864个存储地址,那么可以确定当前数据块组的最后一个理论数据块对应的存储地址处于inode的存储地址中,未超出inode的存储地址,则执行步骤S706,对当前数据块组进行压缩,当然,上述涉及到的数据等只是举例说明,并不做任何限定。
S705:判断当前数据块组中的最后一个理论数据块对应的存储地址是否超出所处dnode的存储地址。
在确定当前需要压缩的数据块位于dnode中之后,可以确定当前要压缩的数据块对应的存储地址,根据当前要压缩的数据块对应的存储地址确定当前要压缩的数据块在第几个dnode中。
具体的,可以用当前要压缩的数据块对应的存储地址的序号与inode中存储地址的个数做差,得到第一结果值,可以表示当前要压缩的数据块对应的存储地址在dnode中的位置,再用第一结果值与每个dnode中存储地址的个数做商,可以确定当前要压缩的数据块对应的存储地址所在的dnode,其中,dnode中的存储地址个数可以用函数addr_per_block表示,例如,以inode中包括860个存储地址,每个dnode中包括1018个存储地址为例,当前要压缩的数据块所处的位置为第1060个存储地址中,为例介绍。
函数start_idx的返回值为1060,函数addr_per_inode的返回值为860,函数addr_per_block的返回值为1018,当前要压缩的数据块对应的存储地址的序号与inode中存储地址的个数做差,就可以为函数start_idx的返回值1060减函数addr_per_inode的返回值860,得到第一结果值为200。再用第一结果值200与每个dnode中存储地址的个数做商,也是第一结果200除函数addr_per_block的返回值为1018,例如得到的商值为0,那么则可以表示当前要压缩的数据块对应的存储地址在第1个dnode中,也就是说,若存储地址从序号1开始分配,商值例如为i,则可以表示当前要压缩的数据块对应的存储地址在第i+1个dnode中,若存储地址从序号0开始分配,则商值例如为i,则可以表示当前要压缩的数据块对应的存储地址在第i个dnode中。
进一步的,在确定当前要压缩的数据块对应的存储地址所处的dnode之后,可以判断当前数据块组中理论上应该压缩的“最后一个理论数据块”对应的存储地址是否与当前要压缩的数据块对应的存储地址所处一个dnode,可以通过当前要压缩的数据块的存储地址的序号加压缩单位的数据块数量减1确定“最后一个理论数据块”对应的存储地址,示例性的,当前要压缩的数据块所处的位置为第1060个存储地址,压缩单位为4个数据块,那么“最后一个数据块”对应的存储地址就为1063,这里可以叫第二结果值基于上述同样原理,可以确定,“最后一个数据块”对应的存储地址也处于第1个dnode中,则可以确定当前数据块组中的最后一个理论数据块对应的存储地址未超出所处dnode的存储地址,可以执行步骤S706,对当前数据块组进行压缩。
再例如,当前要压缩的数据块所处的位置为第1877个存储地址,可以确定该存储地址处于第1个dnode中,当前数据块组中理论上应该压缩的“最后一个理论数据块”对应的存储地址为第1880个存储地址,可以确定该存储地址处于第2个dnode中,那么可以确定当前要压缩的数据块的存储地址与“最后一个理论数据块”对应的存储地址不处于同一个dnode中,也就是说,可以确定当前数据块组中的“最后一个理论数据块”对应的存储地址超出所处dnode的存储地址。那么实际上当前dnode中可以压缩的只剩下第1877以及第1878个存储地址的数据块,无法按照压缩单位组成数据块组进行压缩,若按照压缩单位对当前dndoe中剩余的这两个地址的数据块进行压缩可能会导致超出地址访问,因此可以将第1877以及第1878两个存储地址标记为特殊位置,从而执行步骤S707,不对特殊位置的数据块进行压缩。
为了表达的更加直观,可以结合附图说明,如图10所示,以存储地址a、存储地址b、存储地址c以及存储地址d中各存储一个数据块,且每个数据块组成一个压缩单位为例,基于上述原理确定,存储地址a中存储的数据块,也就是当前要压缩数据块与存储地址d中存储的数据块,也就是“最后一个理论数据块”,不处于同一个dnode中,则无法按照压缩单位组成数据块组进行压缩,若按照压缩单位对当前dndoe中的存储地址a以及存储地址b中存储的数据块进行压缩可能会导致超出地址访问,从而可以执行步骤S707,不对特殊位置的数据块进行压缩。
S706:对当前数据块组进行压缩。
在某些可能实现的方式中,可以基于lz4压缩算法对当前数据块组进行压缩,在这里并不做限定,当然本领域技术人员也可以想到通过其他算法例如LZO(Lempel-Ziv-Oberhume)压缩算法、zstd(zstandard)压缩算法以及lzorle压缩算法等。
S707:对当前组成压缩单位的数据块不做压缩处理。
电子设备对特殊位置的数据块不做压缩处理,然后继续进行下一次压缩。
本申请可以将目标文件转化为存储结构相同的压缩文件,然后按照压缩单位对压缩文件进行压缩,并可以判断当前需要压缩的数据块对应的存储地址位于inode中还是dnode中,当确定当前需要压缩的数据块对应的存储地址位于inode时,可以判断当前数据块组的最后一个理论数据块对应的存储地址是否超出inode的存储地址,若超出inode的存储地址,则将inode中未压缩的数据块对应的存储地址标记为特殊位置,对特殊位置的数据块不做压缩处理,当确定当前需要压缩的数据块对应的存储地址位于dnode时,判断当前数据块组中的最后一个理论数据块对应的存储地址是否超出所处dnode的存储地址,若超出所处dnode的存储地址,则将dnode中未压缩的数据块对应的存储地址标记为特殊位置,对特殊位置的数据块不做压缩处理,这样可以将目标文件转化为存储结构相同的压缩文件,并且不对特殊位置中的数据块,也就是压缩单位中存储地址跨node的数据块进行压缩,也就不会出现超出地址访问的问题,从而可以对已存在数据的普通文件进行压缩,提升用户体验感差。
在对压缩文件中的数据进行压缩之后,为了节约存储空间,需要对已经压缩的存储地址中的存储空间进行释放。
示例性的,如图11(a)所示,以4个数据块组成一个压缩单位为例进行压缩,第1个存储地址(序号为1的存储地址)、第2个存储地址、第3个存储地址(序号为3的存储地址)以及第4个存储地址(序号为4的存储地址)中各存储一个数据块为例。
将第1个存储地址、将第3个存储地址以及第4个存储地址(序号为4的存储地址)中的数据压缩到了第2个存储地址中,如图11(b)所示,此时第2个存储地址中存储的就是压缩数据,可以用函数VALID_ADDR表示,可以在第1个存储地址(序号为1的存储地址)中存储压缩标记用于表示该压缩单位中的数据块已经进行压缩,其中,压缩标记可以用函数compress_addr表示,数据块可以用block表示,第3以及第4个存储地址中已经进行了压缩,但是空间还未释放,可以用函数NEW_ADDR表示。
进一步的,如图11(c)所示,第1个存储地址中虽然被分配了压缩标记,但是由于其中的数据被压缩至第2个存储地址中,其存储空间仍然可以被释放,对第1、第3和第4个存储地址中的存储空间进行释放,在释放存储空间的过程中,可以以4个存储地址组成一个释放单位进行释放。例如,释放之前第1、第3和第4个存储地址中各存储一个4K大小的数据块,那么经过压缩以及空间释放,每个存储地址就可以释放4K的存储空间,直至遍历整个压缩文件,对每个释放单位中的存储地址都进行释放,释放流程与上述压缩流程类似,在此不做多余叙述,释放后的存储地址,可以用函数NULL_ADDR表示,由于也就可以对已存在数据的普通文件进行压缩并释放存储空间,这样就可以节约处更多的存储空间。
在某些可能实现的方式中,本申请还可以从释放后的存储地址中申请存储空间,以存储数据,例如,还是以4个存储地址为一个申请内存空间单位,则可以从函数为NULL_ADDR的存储地址中申请存储空间,存储数据块,直至遍历整个压缩文件,申请空间流程与上述释放空间流程类似,在此不做多余叙述。
本申请实施例还提供了一种电子设备,包括:处理器和存储器;其中,在存储器中存储有一个或多个计算机程序,一个或多个计算机程序包括指令;当所述指令被处理器执行时,使得电子设备执如上述实施例中的方法。
本申请实施例还提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在移动终端上运行时,使得电子设备执如上述实施例中的方法。
本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种文件压缩方法,应用于电子设备,其特征在于,包括:
对标记为待压缩文件的目标文件进行压缩时,按照压缩单位以及存储地址序号由小到大的顺序依次对所述待压缩文件中inode中存储的数据块进行压缩并且在每次压缩过程中,对压缩单位中是否同时包括所述索引节点inode的数据块和存储文件地址dnode的数据块进行判断;所述目标文件为已存储数据的文件,所述数据块为所述存储地址存储数据的最小单元,所述压缩单位中包括预设数量的数据块;
当压缩单位中同时包括所述inode的数据块和dnode的数据块时停止对inode中的数据块进行压缩;
对所述inode中的多个dnode中的数据块进行压缩时,按照压缩单位以及存储地址序号由小到大的顺序对所述待压缩文件中dnode的数据块进行压缩并且在每次压缩过程中对压缩单位中是否同时包括不同dnode的数据块进行判断;
当压缩单位中同时包括不同dnode的数据块时停止对当前dnode中的数据块进行压缩,并对下一个dnode进行压缩。
2.根据权利要求1所述的方法,其特征在于,所述对压缩单位中是否同时包括所述索引节点inode的数据块和存储文件地址dnode的数据块进行判断,包括:
根据当前压缩单位中存储地址的最小序号与组成压缩单位的数据块的预设数量之和确定所述当前压缩单位中最后一个存储地址的序号;
当确定所述最后一个存储地址的序号大于inode中存储地址的个数时,确定压缩单位中同时包括所述索引节点inode的数据块和存储文件地址dnode的数据块。
3.根据权利要求1所述的方法,其特征在于,所述对压缩单位中是否同时包括不同dnode的数据块进行判断,包括:
确定当前压缩单位中序号最小的存储地址对应数据块所在的dnode的序号以及当前压缩单位中最后一个存储地址对应数据块所在的dnode的序号,所述最后一个存储地址为根据所述序号最小的存储地址与组成压缩单位的数据块的预设数量确定;
当确定序号最小的存储地址对应数据块所在的dnode的序号与最后一个存储地址对应数据块所在的dnode的序号不相同时,确定压缩单位中同时包括不同存储地址dnode的数据块。
4.根据权利要求3所述的方法,其特征在于,所述确定当前压缩单位中序号最小的存储地址对应数据块所在的dnode的序号以及当前压缩单位中最后一个存储地址对应数据块所在的dnode的序号,包括:
根据所述当前压缩单位中存储地址的最小序号与inode中存储地址的个数的差值确定第一结果值;
根据所述第一结果值与dnode中存储地址的个数的商确定当前压缩单位中序号最小的存储地址对应数据块所在的dnode的序号;
根据所述当前压缩单位中最后一个存储地址的序号与inode中存储地址的个数的差值确定第二结果值;
根据所述第二结果值与dnode中存储地址的个数的商值确定当前压缩单位中最后一个存储地址对应数据块所在的dnode的序号。
5.根据权利要求1所述的方法,其特征在于,所述按照压缩单位以及存储地址序号由小到大的顺序依次对所述待压缩文件中inode中存储的数据块进行压缩,包括:
当当前压缩单位中存储地址的最小序号小于inode中存储地址的个数时,按照压缩单位以及存储地址序号由小到大的顺序依次对所述待压缩文件中inode中存储的数据块进行压缩;所述当前压缩单位中存储地址的最小序号小于inode中存储地址的个数表征当前要压缩的数据块对应的存储地址位于inode中。
6.根据权利要求1所述的方法,其特征在于,所述按照压缩单位以及存储地址序号由小到大的对所述待压缩文件中存储地址dnode中存储的数据块进行压缩,包括:
当当前压缩单位中存储地址的最小序号大于inode中存储地址的个数时,按照压缩单位以及存储地址序号由小到大的顺序对所述待压缩文件中dnode中存储的数据块进行压缩;所述当前压缩单位中存储地址的最小序号大于inode中存储地址的个数表征当前要压缩的数据块对应的存储地址位于dnode中。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
按照预设的释放单位释放数据压缩之后的存储地址的存储空间。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于写入数据指令,按照预设的申请内存空间单位将数据块存储至释放存储空间之后的存储地址。
9.一种电子设备,其特征在于,包括:处理器和存储器;
其中,在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述电子设备执如权利要求1-8任一项所述的方法。
10.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,所述电子设备执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310937556.2A CN117708070A (zh) | 2023-07-27 | 2023-07-27 | 一种文件压缩方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310937556.2A CN117708070A (zh) | 2023-07-27 | 2023-07-27 | 一种文件压缩方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117708070A true CN117708070A (zh) | 2024-03-15 |
Family
ID=90159435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310937556.2A Pending CN117708070A (zh) | 2023-07-27 | 2023-07-27 | 一种文件压缩方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117708070A (zh) |
-
2023
- 2023-07-27 CN CN202310937556.2A patent/CN117708070A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868785B2 (en) | Application program page processing method and device | |
CN107832100B (zh) | 一种apk插件的加载方法及其终端 | |
US10430047B2 (en) | Managing content on an electronic device | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN114185494B (zh) | 内存匿名页的处理方法、电子设备及可读存储介质 | |
CN115292199B (zh) | 一种显存泄露的处理方法及相关装置 | |
CN115017534B (zh) | 文件处理权限控制方法、装置及存储介质 | |
CN114020652B (zh) | 一种应用程序的管理方法及电子设备 | |
KR20160048173A (ko) | 기억 처리 방법, 장치 및 단말 | |
US20230082375A1 (en) | Permission Reuse Method, Permission Reuse-Based Resource Access Method, and Related Device | |
JP2003067209A (ja) | Java(登録商標)アプリケーション間の通信を用いたJava(登録商標)アプリケーションミドレットの実行方法 | |
CN117708070A (zh) | 一种文件压缩方法及电子设备 | |
CN114138140B (zh) | 信息管理方法、电子设备及存储介质 | |
CN115033193B (zh) | 转屏处理方法、装置、介质及电子设备 | |
CN110704157B (zh) | 一种应用启动方法、相关装置及介质 | |
CN111625500B (zh) | 文件快照方法及装置、电子设备和存储介质 | |
CN111274211B (zh) | 应用文件的存储方法、装置及系统 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN116361012B (zh) | 一种内存页分配方法及电子设备 | |
CN116991447B (zh) | 一种操作系统更新方法及相关设备 | |
CN116661645B (zh) | 显示应用卡片的方法、电子设备及可读存储介质 | |
CN114706633B (zh) | 预加载方法、电子设备及存储介质 | |
CN117130627B (zh) | 配件升级方法及电子设备 | |
CN111831655B (zh) | 一种数据处理的方法、装置、介质和电子设备 | |
CN115981576B (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 |