CN115988002B - 一种数据传输方法和电子设备 - Google Patents

一种数据传输方法和电子设备 Download PDF

Info

Publication number
CN115988002B
CN115988002B CN202310122646.6A CN202310122646A CN115988002B CN 115988002 B CN115988002 B CN 115988002B CN 202310122646 A CN202310122646 A CN 202310122646A CN 115988002 B CN115988002 B CN 115988002B
Authority
CN
China
Prior art keywords
target file
electronic device
file
fingerprint
index 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.)
Active
Application number
CN202310122646.6A
Other languages
English (en)
Other versions
CN115988002A (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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310122646.6A priority Critical patent/CN115988002B/zh
Publication of CN115988002A publication Critical patent/CN115988002A/zh
Application granted granted Critical
Publication of CN115988002B publication Critical patent/CN115988002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据传输方法和电子设备,涉及终端领域,用于在电子设备接收文件时,识别相同的文件,并且相同的文件只存储一份。该方法包括:第一电子设备接收第二电子设备发送的用于唯一标识目标文件的第一指纹信息;第一电子设备根据第一指纹信息确定目标文件是否可能已存储在本地,如果目标文件不可能存储在本地,则向第二电子设备发送第一反馈信息,第一反馈信息用于指示第二电子设备向第一电子设备发送目标文件,如果目标文件可能存储在本地,则在本地查找目标文件。如果在本地查找到目标文件,则向第二电子设备发送不用向第一电子设备发送目标文件的第二反馈信息。如果在本地未查找到目标文件,则向第二电子设备发送第一反馈信息。

Description

一种数据传输方法和电子设备
技术领域
本申请涉及终端领域,尤其涉及一种数据传输方法和电子设备。
背景技术
电子设备接收到多个相同的文件时,会对多个相同的文件设置不同的文件名以做区分,并将多个相同的文件单独存储。但是,这样会额外占用电子设备的存储空间,浪费存储资源。
发明内容
本申请提供一种数据传输方法和电子设备,用于在电子设备接收文件时,识别相同的文件,并且相同的文件只存储一份,从而节约电子设备的存储空间。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种数据传输方法,应用于第一电子设备,该方法包括:接收第二电子设备发送的第一指纹信息,第一指纹信息用于唯一标识第二电子设备待发送给第一电子设备的目标文件;根据第一指纹信息确定目标文件是否可能已存储在本地,如果目标文件不可能存储在本地,则向第二电子设备发送第一反馈信息,第一反馈信息用于指示第二电子设备向第一电子设备发送目标文件,如果目标文件可能存储在本地,则在本地查找目标文件;如果在本地查找到目标文件,则向第二电子设备发送第二反馈信息,第二反馈信息用于指示第二电子设备不用向第一电子设备发送目标文件。如果在本地未查找到目标文件,则向第二电子设备发送第一反馈信息。
采用本申请提供的数据传输方法,在第二电子设备向第一电子设备传输文件之前,首先向第一电子设备发送能够唯一标识待发送文件的指纹信息,第一电子设备对接收到的指纹信息进行处理,确定该文件不可能存储在本地,或者可能存储在本地。如果确定该文件不可能存储在本地,则第一电子设备直接通知第二电子设备发送该文件。这样,不仅使第一电子设备避免了重复接收、存储相同的文件,而且提高了第一电子设备和第二电子设备之间的传输效率。如果确定该文件可能存储在本地,为了确保该文件是否真的存储在本地,第一电子设备还需要在本地进行查找。第一电子设备如果在本地查找到了该文件,则第一电子设备通知第二电子设备不用发送该文件。第一电子设备如果在本地未查找到该文件,则第一电子设备通知第二电子设备发送该文件。这样,可以保证第一电子设备不会重复接收、存储相同的文件。
在一种可能的实施方式中,上述在查找到目标文件之前,该方法还包括:接收目标文件,并且生成目标文件的索引信息。目标文件的索引信息包括第二指纹信息和最近访问时间。最近访问时间的初始值等于接收目标文件的时间。也就是说,在每次接收到文件之后,都会生成该文件的索引信息。这样,可以方便下次接收新的文件时,电子设备确定新的文件是否已存储在本地。
在一种可能的实施方式中,上述在本地查找目标文件,包括:查找索引信息中的第二指纹信息与第一指纹信息是否相同,相同则查找到目标文件。由于一个指纹信息可以唯一标识一个文件,因此第一电子设备可以将接收到的第一指纹信息与历史存储的第二指纹信息进行比对,以确定目标文件是否已存储在本地。这样,可以提高查找结果的准确率。
在一种可能的实施方式中,上述在本地查找目标文件之后,该方法还包括:如果查找到目标文件,则将目标文件的索引信息中的最近访问时间,更新为查找到目标文件的时间。
一个文件的最近访问时间可以体现出该文件存储在电子设备中的时间,或者,电子设备最近读取该文件的时间。如果最近访问时间越靠后,可以表明该文件大概率会被再次查找,那么可以将该文件的索引信息存储在电子设备的指纹缓存模块中。这样,可以提高电子设备接收新的文件的过程中,查找该文件是否存储在本地时的查找效率。
在一种可能的实施方式中,上述在接收目标文件之后,该方法还包括:采用M个随机映射函数对第二指纹信息进行处理,得到数组的M个第二索引,并且将数组中与M个第二索引对应的元素置为目标预设值。
在一种可能的实施方式中,上述根据第一指纹信息确定目标文件是否可能已存储在本地,包括:
采用M个随机映射函数对第一指纹信息进行处理,得到数组的M个第一索引,并且根据数组中与M个第一索引对应的元素是否等于目标预设值,来确定目标文件是否可能已存储在本地。
在一种可能的实施方式中,如果数组中与M个第一索引对应的元素均等于目标预设值,则目标文件可能存储在本地,否则目标文件不可能存储在本地。
第二方面,提供了一种数据传输方法,应用于第二电子设备,该方法包括:获取目标文件的第一指纹信息,并且向第一电子设备发送第一指纹信息;接收第一电子设备发送的第一反馈信息或第二反馈信息,并且根据第一反馈信息向第一电子设备发送目标文件,或者,根据第二反馈信息结束数据传输流程。其中,第一反馈信息用于指示第二电子设备向第一电子设备发送目标文件,第二反馈信息用于指示第二电子设备不用向第一电子设备发送目标文件。
在一种可能的实施方式中,上述获取目标文件的第一指纹信息,包括:获取目标文件的大小,如果目标文件的大小超过阈值,则获取目标文件的第一指纹信息。
第三方面,提供了一种电子设备,包括处理器和存储器,存储器中存储指令,当处理器执行指令时,如第一方面及其任一实施方式所述的方法被执行,或者,第二方面及其任一实施方式所述的方法被执行。
第四方面,提供了一种计算机存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第一方面及其任一实施方式所述的方法,或者,执行如第二方面及其任一实施方式所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当指令在上述电子设备上运行时,使得该电子设备执行如第一方面及其任一实施方式所述的方法,或者,执行如第二方面及其任一实施方式所述的方法。
第六方面,提供了一种芯片系统,该芯片系统包括处理器,用于支持电子设备实现上述第一方面及其任一实施方式中所涉及的功能,或者,实现上述第二方面及其任一实施方式中所涉及的功能。在一种可能的设计中,该电子设备还包括接口电路,接口电路可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
第二方面至第六方面的技术效果参照第一方面及其任一实施方式的技术效果,在此不再重复。
附图说明
图1为本申请实施例提供的布隆过滤器的原理示意图;
图2为本申请实施例提供的一种数据传输方法所适用的系统结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种电子设备运行的软件架构示意图;
图5为本申请实施例提供的一种电子设备传输数据时的界面示意图之一;
图6为本申请实施例提供的一种电子设备传输数据时的界面示意图之二;
图7为本申请实施例提供的一种数据传输方法的流程示意图之一;
图8为本申请实施例提供的一种电子设备传输数据时的界面示意图之三;
图9为本申请实施例提供的一种数据传输方法的流程示意图之二;
图10为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例涉及的术语“耦合”、“连接”应做广义理解,例如,可以指物理上的直接连接,也可以指通过电子器件实现的间接连接,例如通过电阻、电感、电容或其他电子器件实现的连接。
首先对本申请实施例涉及的一些概念进行介绍。
近距离分享(nearby share):近距离分享是一种设备之间无线快速共享图片、视频、文档等文件的技术。近距离分享可以通过蓝牙(bluetooth,BT)发现周边其他支持该近距离分享的设备,然后通过无线局域网(wireless local area network,WLAN) 直连传输文件,传输过程不需要网络。
布隆过滤器(bloom filter,BF):布隆过滤器是一种基于比特数组(或称比特向量)实现的概率型的数据结构,能够高效的插入和查询,用来判断某个元素一定不存在一个集合内,或者可能存在该集合内。布隆过滤器可以包括一个长度为N(N为正整数,用于表示多个)的数组,以及M(M为正整数,用于表示多个,且M小于N)个随机映射函数(或称哈希函数)。其中,数组的每一个元素的初始值为第一预设值(如0)。
在查询第一数据是否存在集合中时,布隆过滤器利用M个随机映射函数对第一数据进行处理,得到数组的M个第一索引。如果数组中与M个第一索引对应的元素均为第二预设值(如1),则表明该第一数据可能存在集合中。如果数组中与M个第一索引中任一索引对应的元素为第一预设值,则表明第一数据一定不存在集合中。针对要插入到集合中的第二数据,布隆过滤器也是利用M个随机映射函数对第二数据进行处理,得到数组的M个第二索引,然后,将数组中与M个第二索引对应的元素置为第二预设值。
假设N为10,M为3。如图1所示,初始状态下,数组的每一个元素为0。在将第二数据插入到集合中时,3个随机映射函数对第二数据进行处理,得到3个第二索引:1、3、5。那么,可以将数组的第2个元素、第4个元素和第6个元素均置为1。当对第一数据进行查询时,3个随机映射函数对第一数据进行处理,得到3个第一索引:1、2、6。此时,查看数组的第2个元素、第3个元素和第7个元素。由于数组的第3个元素和第7个元素均为0,则可以表明第一数据一定不存在集合中。但是,即使数组的第2个元素、第3个元素和第7个元素均为1,也只能表明第一数据可能存在集合中,而无法确定第一数据一定存在集合中。也就是说,布隆过滤器在查询数据时,会存在一定的误判率。
本申请实施例提供一种数据传输方法,可以适用于图2所示的系统。如图2所示,该系统可以包括第一电子设备201和第二电子设备202,第一电子设备201与第二电子设备202可以通过无线通信方式传输文件。在一次数据传输过程中,第一电子设备201可以是接收方设备,第二电子设备202可以是发送方设备,或者,第二电子设备202可以是接收方设备,第一电子设备201可以是发送方设备。第一电子设备201和第二电子设备202可以是相同的电子设备,也可以是不同的电子设备。
电子设备可以是一种具有通信功能的设备,电子设备可以是移动的,也可以是固定的。电子设备可以部署在陆地上(例如室内或室外、手持或车载等),也可以部署在水面上(例如轮船等),还可以部署在空中(例如飞机、气球等)。该电子设备可以称为用户设备(user equipment,UE)、接入终端、终端单元、用户单元(subscriber unit)、终端站、移动站(mobile station,MS)、移动台、终端代理或终端装置等。例如,该电子设备可以是手机、平板电脑、笔记本电脑等。本申请实施例对电子设备的具体类型和结构等不作限定。下面对电子设备的一种可能结构进行说明。
以电子设备为手机为例,图3示出了电子设备300的一种可能的结构。该电子设备300可以包括处理器310、外部存储器接口320、内部存储器321、通用串行总线(universalserial bus,USB)接口330、电源管理模块340、电池341、无线充电线圈342、天线1、天线2、移动通信模块350、无线通信模块360、音频模块370、扬声器370A、受话器370B、麦克风370C、耳机接口370D、传感器模块380、按键390、马达391、指示器392、摄像头393、显示屏394以及用户标识模块(subscriber identification module,SIM)卡接口395等。
其中,传感器模块380可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备300的具体限定。在本申请另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以为现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application specificintegrated circuit,ASIC)、片上系统(system on chip,SoC)、中央处理单元(centralprocessing unit,CPU)、应用处理器(application processor,AP)、网络处理器(networkprocessor,NP)、数字信号处理器(digital signal processor,DSP)、微控制单元(microcontroller unit,MCU)、可编程逻辑器件(programmable logic device,PLD)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signalprocessor,ISP)、控制器、视频编解码器、基带处理器以及神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器310可以是应用处理器AP。或者,上述处理器310可以集成在片上系统(system on chip,SoC)中。或者,上述处理器310可以集成在集成电路(integrated circuit,IC)芯片中。该处理器310可以包括IC芯片中的模拟前端(analogfront end,AFE)和微控制单元(micro-controller unit,MCU)。
其中,控制器可以是电子设备300的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口、集成电路内置音频(inter-integrated circuitsound,I2S)接口、脉冲编码调制(pulse code modulation,PCM)接口、通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobile industry processor interface,MIPI)、通用输入输出(general-purposeinput/output,GPIO)接口、用户标识模块(subscriber identity module,SIM)接口和/或USB接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备300的结构限定。在本申请另一些实施例中,电子设备300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电源管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器(如电子设备300的无线充电底座或者其他可以为电子设备300无线充电的设备),也可以是有线充电器。例如,电源管理模块340可以通过USB接口330接收有线充电器的充电输入。电源管理模块340可以通过电子设备的无线充电线圈342接收无线充电输入。
其中,电源管理模块340为电池341充电的同时,还可以为电子设备供电。电源管理模块340接收电池341的输入,为处理器310、内部存储器321、外部存储器接口320、显示屏394、摄像头393和无线通信模块360等供电。电源管理模块340还可以用于监测电池341的电池容量、电池循环次数、电池健康状态(漏电、阻抗)等参数。在其他一些实施例中,电源管理模块340也可以设置于处理器310中。
电子设备300的无线通信功能可以通过天线1、天线2、移动通信模块350、无线通信模块360、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备300中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块350可以提供应用在电子设备300上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块360可以提供应用在电子设备300上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络)、蓝牙(bluetooth,BT)、调频(frequency modulation,FM)、近距离无线通信技术(nearfield communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。在一些实施例中,电子设备300的天线1和移动通信模块350耦合,天线2和无线通信模块360耦合,使得电子设备300可以通过无线通信技术与网络以及其他设备通信。
电子设备300通过GPU、显示屏394以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏394用于显示图像,视频等。显示屏394包括显示面板。在一些实施例中,电子设备300可以包括1个或N个显示屏394,N为大于1的正整数。
电子设备300可以通过ISP、摄像头393、视频编解码器、GPU、显示屏394以及应用处理器等实现拍摄功能。ISP 用于处理摄像头393反馈的数据。在一些实施例中,ISP可以设置在摄像头393中。摄像头393用于捕获静态图像或视频。在一些实施例中,电子设备可以包括1个或N个摄像头393,N为大于1的正整数。示例性的,本申请实施例的摄像头包括广角摄像头和主摄像头。
外部存储器接口320可以用于连接外部存储卡,例如微闪迪(micro SanDisk,Micro SD)卡,实现扩展电子设备300的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行电子设备300的各种功能应用以及数据处理。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flashstorage,UFS)等。
本申请实施例涉及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
电子设备300可以通过音频模块370、扬声器370A、受话器370B、麦克风370C、耳机接口370D以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块370用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。在一些实施例中,音频模块370可以设置于处理器310中,或将音频模块370的部分功能模块设置于处理器310中。扬声器370A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器370B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风370C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。电子设备300可以设置至少一个麦克风370C。耳机接口370D用于连接有线耳机。耳机接口370D可以是USB接口330,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键390包括开机键、音量键等。按键390可以是机械按键。也可以是触摸式按键。电子设备300可以接收按键输入,产生与电子设备300的用户设置以及功能控制有关的键信号输入。马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息、未接来电、通知等。SIM卡接口395用于连接SIM卡。SIM卡可以通过插入SIM卡接口395,或从SIM卡接口395拔出,实现和电子设备300的接触和分离。电子设备300可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口395可以支持纳SIN(Nano SIM)卡、微SIM(MicroSIM)卡、SIM卡等。在一些实施例中,电子设备300采用嵌入式(embedded SIM,eSIM)卡,eSIM卡可以嵌在电子设备300中,不能和电子设备300分离。
处理器310通过执行内部存储器321中存储的程序、指令来执行本申请实施例提供的数据传输方法。处理器310运行的程序可以基于操作系统,例如安卓(Android)操作系统®、苹果(iOS)操作系统®、视窗(Windows)操作系统等。如图4所示,以处理器310运行的程序基于安卓操作系统®为例,处理器310运行的程序按照功能进行分层,可以包括应用程序层、框架层和本地服务层。
应用程序层可以包括近距离分享应用。近距离分享应用用于在传输文件的过程中,可以调用相关的模块(如下文涉及的近距离通信模块)和服务(如下文中涉及的近距离分享服务),生成唯一标识文件的指纹信息,并且根据该指纹信息确认文件是否已存储在接收方的电子设备中。
框架层用于向应用程序层中的应用程序提供系统资源服务、应用编程接口(application programming interface,API)、近距离通信模块、重删控制器(dedupcontroller)模块、指纹缓存(fingerprint cache)模块等。系统资源服务可以包括:数字传输复制保护服务、近距离分享服务、用户验证服务、状态机等。
其中,重删控制器模块,用于计算唯一标识文件的指纹信息。
指纹缓存模块,用于存储通过近距离分享应用最近接收到的部分文件的索引信息,以及最近在本地查找到的部分文件的索引信息。指纹缓存模块,还用于对接收到的指纹信息进行插入和查询,以确定该指纹信息唯一标识的文件是否可能已存储在本地,并且在确定本地可能存储该文件时,查找该文件。
应用编程接口,可以包括数字传输复制保护接口、近距离客户机接口和用户身份验证接口等。
近距离通信模块,用于根据近距离通信协议进行通信。
本地服务层可以包括指纹数据库(fingerprint database),以及通过近距离分享应用接收到的文件。其中,指纹数据库中包括电子设备中存储在近距离分享目录中的所有文件的索引信息。
第一电子设备201与第二电子设备202之间传输的文件可以是:图片、视频、音频、文档、应用安装包等,本申请实施例对传输的文件的类型不作限定。
下文以第一电子设备为接收方设备,第二电子设备为发送方设备,并且第一电子设备与第二电子设备通过近距离分享应用传输文件为例进行介绍。
当第一电子设备接收到多个相同的文件时,第一电子设备会对多个相同的文件设置不同的文件名以做区分,并将多个相同的文件单独存储。但是,这样会额外占用第一电子设备的存储空间,浪费第一电子设备的存储资源。
假设第一电子设备和第二电子设备均为手机,第二电子设备向第一电子设备传输应用“音乐”的安装包。下面结合图5和图6,对第一电子设备与第二电子设备之间通过近距离分享应用传输该安装包的常规流程进行介绍。
如图5中A所示,第二手机500显示安装包目录界面501,安装包目录界面501可以包括音乐安装包502。作为对用户长按音乐安装包502操作的响应,如图5中B所示,第二手机500显示第一弹窗503。第一弹窗503包括“近距离分享”按钮504。作为对用户点击“近距离分享”按钮504操作的响应,如图5中C所示,第二手机500显示第二弹窗505。第二弹窗505中可以包括第一手机的图标506。作为对用户点击第一手机的图标506操作的响应,第二手机500向第一手机发送音乐安装包的发送请求。在第二手机500接收到同意接收该安装包的反馈信息后,第二手机500向第一手机发送该安装包。在发送成功后,如图5中D所示,第二手机500显示发送界面507。发送界面507显示“发送成功”,用于提示用户数据传输流程已结束。
如图6中A所示,当第一手机600接收到上述发送请求后,第一手机600显示第三弹窗601。第三弹窗601用于提示用户是否接收该安装包,以及显示该安装包的预览信息(如该安装包的名称和大小)、“接收”按钮602和“拒绝”按钮603。作为对用户点击“接收”按钮602操作的响应,第一手机600向第二手机发送同意接收该安装包的反馈信息。在第一手机600接收该安装包的过程中,如图6中B所示,第一手机600可以显示第四弹窗604。第四弹窗604可以实时展示该安装包的接收进度。当接收完成后,如图6中C所示,第一手机600显示第五弹窗606,第五弹窗606用于提示用户目标文件已接收完成。如果第一手机600中已存储了音乐安装包,那么当第一手机600接收完成后,第一手机600中会包括应用“音乐”的两个安装包。作为对用户打开近距离分享目录的响应,如图6中D所示,第一手机600显示近距离分享目录界面605。近距离分享目录界面605可以包括上述两个安装包的文件名,分别为:音乐(music)安装包(android application package,APK)、音乐安装包(1)(music(1).APK)。
在电子设备的操作台(console)中,通过列表命令(list,LS)可以列举出近距离分享目录中的所有文件,通过显示文件的状态信息命令(stat)可以显示文件的详细信息。
假设近距离分享目录的路径为/data/media/0/share,示例性的,通过列表命令实现列举近距离分享目录中的所有文件的过程为:
HNLGE:/data/media/0/share # ls
music.APK music(1).APK
示例性的,通过显示文件的状态信息命令显示近距离分享目录中的每个文件的详细信息的过程为:
HNLGE:/data/media/0/share # stat “music.APK”
File:music.APK
Size:87723383 Blocks:171512 IO Blocks:512 regular file
Device:fd0dh/64781d Inode:40854 Links:1 Device type:0,0
Access:(0660/-rw-rw---) Uid:10413/u0_a143) Gid:1023/media_rw)
Access:2022-11-23 10:33:42.781999952 +0800
Modify:2022-11-23 10:33:50.717999949 +0800
Change:2022-11-23 10:33:51.037999949 +0800
HNLGE:/data/media/0/share # stat “music(1).APK”
File:music(1).APK
Size:87723383 Blocks:171512 IO Blocks:512 regular file
Device:fd0dh/64781d Inode:40940 Links:1 Device type:0,0
Access:(0660/-rw-rw---) Uid:10413/u0_a143) Gid:1023/media_rw)
Access:2022-11-23 10:34:12.473999941 +0800
Modify:2022-11-23 10:34:20.353999938 +0800
Change:2022-11-23 10:34:20.705999938 +0800
由上述过程可知,第一手机的近距离分享目录中存储有两个文件(music.APK和music(1).APK),这两个文件的文件名不同,索引节点(inode)不同,最后一次访问时间(Access)不同,最后一次修改内容时间(Modify)不同,最后一次修改文件属性时间(Change)不同,但是,文件的大小(Size、Blocks、IO Blocks)等其他信息均相同,可以表明这两个文件的本质是相同的。其中,两个文件的索引节点不同,可以表明这两个文件是完全独立的。也就是说,这两个文件是被独立存储在电子设备中的。
综上所述,当第一电子设备再次接收到已存储在本地的文件后,第一电子设备会在再次接收到的文件进行重命名加以区分后,独立存储再次接收到的文件。也就是说,多个相同的文件被多次独立存储在电子设备中,这会对电子设备的存储空间造成极大地浪费。
基于此,本申请实施例提供了一种数据传输方法,在第二电子设备向第一电子设备传输目标文件的过程中,首先向第一电子设备发送能够唯一标识目标文件的第一指纹信息。第一电子设备根据接收到的第一指纹信息,确定目标文件是否已存储在本地。如果第一电子设备确定目标文件已存储在本地,则通知第二电子设备不用再发送目标文件。这样,第一电子设备不用重复接收、存储相同的文件,从而节省了第一电子设备的存储空间。如果第一电子设备确定目标文件未存储在本地,则通知第二电子设备发送目标文件。也就是说,电子设备在接收文件时,能够识别出该文件是否已存储在本地,并且对于相同的文件只存储一份,从而节约电子设备的存储空间。
具体的,如图7所示,本申请实施例提供的数据传输方法可以包括:
S701、第二电子设备与第一电子设备建立连接。
第二电子设备与第一电子设备之间需要传输文件时,首先需要建立连接。第二电子设备与第一电子设备建立连接时,双方均需开启近距离分享应用和蓝牙功能,并且处于预设范围内,以便于第一电子设备与第二电子设备建立连接。第二电子设备和第一电子设备通过广播的方式建立设备间连接后,第二电子设备与第一电子设备才能够传输文件。
S702、第二电子设备获取目标文件的第一指纹信息。
目标文件为第二电子设备待发送给第一电子设备的文件。本申请实施例提供的电子设备中包括重删控制器模块。重删控制器模块中预存有散列算法。散列算法可以根据任意大小的文件,计算出一个唯一的指纹信息,且该过程不可逆,即不能根据指纹信息反推出文件的内容。一个指纹信息可以唯一标识一个文件,那么根据两个文件的指纹信息,便可以确定这两个文件是否为同一文件。也就是说,根据第一指纹信息,便可以确定第一电子设备中是否存储有目标文件。
示例性的,该散列算法可以是任意一种散列算法,如信息摘要算法(message-digest algorithm,MD5)、安全散列算法(secure hash algorithm 1,SHA-1)等,本申请实施例对预存的散列算法的类型不作限定。该指纹信息可以是消息摘要、散列值等。针对一个任意大小的文件,信息摘要算法可以计算出一个128位(16字节),或64位(8字节)的散列值;安全散列算法可以计算出一个160位(20字节)的散列值。
可选的,在第二电子设备获取目标文件的第一指纹信息之前,第二电子设备还需要获取目标文件的大小。如果目标文件的大小未超过阈值,则表明目标文件为小文件,不会占用较多的存储空间。因此,第二电子设备可以直接向第一电子设备发送目标文件。这样,可以节约传输时间,提高传输效率。如果目标文件的大小超过阈值,则表明目标文件为大文件,会占用较多的存储空间。第二电子设备向第一电子设备传输目标文件之前,需要先确定可以唯一标识目标文件的第一指纹信息。
本申请实施例提供的电子设备中存储的每个文件都有对应的文件属性,该文件属性可以包括:文件的大小(占用空间)、文件类型、文件名称等。
如图5中C所示,当用户点击第一手机的图标506时,作为对发送音乐安装包(即目标文件)操作的响应,第二电子设备首先可以从目标文件的文件属性中查找目标文件的文件大小属性,从而获取目标文件的大小。
S703、第二电子设备向第一电子设备发送第一指纹信息。
第二电子设备确定了目标文件的第一指纹信息之后,可以通过近距离分享应用将第一指纹信息发送给第一电子设备,以便于第一电子设备根据第一指纹信息确定目标文件是否已存储在本地。
S704、第一电子设备根据第一指纹信息,确定目标文件是否可能已存储在本地。
第一电子设备接收到第一指纹信息后,首先需要确定目标文件不可能存储在本地,或者可能存储在本地。如果目标文件不可能存储在本地,那么可以直接执行S712。如果目标文件可能存储在本地,那么可以按顺序执行S705。
本申请实施例提供的电子设备中包括指纹缓存模块。指纹缓存模块中预存有概率型的数据结构。概率型的数据结构可以用于对接收到的指纹信息进行查询处理,从而确定该指纹信息唯一标识的文件是否可能已存储在本地。
上述数据结构可以为任意一种概率型的数据结构,如布隆过滤器,但不仅限于此。本申请实施例对该数据结构的具体类型不作限制。下面以该数据结构为布隆过滤器为例,简单介绍第一电子设备根据第一指纹信息,确定目标文件是否可能已存储在本地的过程。
首先,第一电子设备采用布隆过滤器中的M个随机映射函数对第一指纹信息进行处理,得到布隆过滤器中的数组的M个第一索引。然后,第一电子设备根据该数组中与这M个第一索引对应的元素是否等于目标预设值(例如,上述第二预设值),来确定目标文件是否可能已存储在本地。
可选的,如果布隆过滤器中的数组中与这M个第一索引对应的元素均等于该目标预设值,则表明目标文件可能存储在本地,否则目标文件不可能存储在本地。
示例性的,假设M为3,第一指纹信息为“0xd41d8cd98f00b204e9800998ecf8427e”,第一预设值为0,第二预设值为1。首先,第一电子设备通过3个随机映射函数对第一指纹信息“0xd41d8cd98f00b204e9800998ecf8427e”进行处理,得到的3个第一索引:0、1、3。然后,第一电子设备查看数组中第1个元素、第2个元素和第4个元素。如果该数组中第1个元素、第2个元素和第4个元素均为1,则表明目标文件可能已存储在第一电子设备中。如果该数组中第1个元素、第2个元素或第4个元素为0,则表明目标文件不可能存储在第一电子设备中。
S705、如果目标文件可能存储在本地,则第一电子设备在本地查找目标文件。
目标文件可能存储在本地,这并不代表第一电子设备中一定存储有目标文件。为了准确地确定第一电子设备中是否存储有目标文件,第一电子设备还需要在本地查找目标文件,从而确定是否需要通知第二电子设备发送目标文件。
可选的,第一电子设备可以通过查找目标文件的索引信息来查找目标文件。本申请实施例提供的电子设备中包括所有通过近距离分享应用接收到的文件的索引信息。一条索引信息可以对应一个文件。也就是说,根据一条索引信息,可以找到唯一的一个文件。因此,第一电子设备可以通过查找目标文件的索引信息来查找目标文件。
下面简单介绍一条索引信息的组成结构:
示例性的,一条索引信息可以包括:序号、最近访问时间、指纹信息,以及文件名。
其中:序号,用于表示电子设备接收到该文件的先后顺序(如由序号1递增)。
最近访问时间,为通过近距离分享应用接收,并且存储在近距离分享目录中的文件被访问的时间戳(该时间戳的格式为Unix时间戳)。也就是说,如果一个文件通过近距离分享应用首次被发送至电子设备时,则该文件的最近访问时间为电子设备接收到该文件的时间。如果该文件通过近距离分享应用再次被发送至电子设备时,电子设备在查找过程中读取到该文件的索引信息,则该文件的最近访问时间会被更新为电子设备读取该文件的索引信息的时间。
指纹信息,用于唯一标识一个文件。
文件名,为通过近距离分享应用接收的文件的名称。
由上述一条索引信息的组成结构可知,第一电子设备查找目标文件时,可以通过确定预存的多条索引信息中是否包括第一指纹信息来实现。如果任一条索引信息中包括第一指纹信息,则表明第一电子设备中已存储了目标文件。如果任一条索引信息中不包括第一指纹信息,则表明第一电子设备中未存储目标文件。
可选的,指纹数据库中存储有所有存储在近距离分享目录中的文件的索引信息,指纹缓存模块中存储有指纹数据库中的部分索引信息。第一电子设备在查找本地是否已存储目标文件的索引信息的过程中,可以先在指纹缓存模块中查找,如果第一电子设备在指纹缓存模块中未查找到,则再在指纹数据库中查找。这样,可以提高查找效率。
下面简单介绍哪些索引信息可以存储在指纹缓存模块中:
示例性的,第一电子设备将指纹数据库中存储的所有文件的索引信息按照序号从大到小进行排列,得到第一索引信息组,再从第一索引信息组中按顺序选择前a个索引信息。第一电子设备将指纹数据库中存储的所有文件的索引信息按照最近访问时间的先后进行排列,得到第二索引信息组,再从第二索引信息组中按顺序选择后b个索引信息。从第一索引信息组中选择的a个索引信息可以表示电子设备最近接收到的a个文件,从第二索引信息组中选择的b个索引信息可以表示电子设备最近在本地已查找到的b个文件。也就是说,这(a+b)个文件是用户近期所需要的,大概率会被再次进行传输。为了使指纹缓存模块中没有重复的索引信息,需要对这(a+b)个索引信息进行去重处理后,再存储在指纹缓存模块中。
可选的,当第一电子设备通过近距离分享应用传输一次文件,指纹缓存模块中存储的索引信息会更新一次,并且指纹缓存模块中存储的索引信息的数量不会超过指纹缓存模块的存储上限。
当第一电子设备接收到目标文件后,第一索引信息组的内容和排序会发生变化,因此,a个索引信息会发生变化(a个索引信息中序号最小的索引信息会被目标文件的索引信息替换掉)。同理,第二索引信息组的内容和排序也会发生变化,因此,b个索引信息也会发生变化(b个索引信息中最近访问时间越早的索引信息会被目标文件的索引信息替换掉)。也就是说,指纹缓存模块中存储的索引信息是会更新的,但是指纹缓存模块中存储的索引信息的数量不会超过(a+b)。
假设布隆过滤器中的数组长度N=100000、a=100、b=10、一个文件的索引信息占用的最大存储空间为288个字节(4个字节(序号)+ 8个字节(最近访问时间)+ 20个字节(指纹信息)+ 256个字节(文件名最长长度)=288个字节),则指纹缓存模块占用的总内存空间为:(100000÷8)+288×(100+10) =156680个字节≈153千字节。由此可见,指纹缓存模块中存储的索引信息不会占用第一电子设备太多的内存空间。
S706、如果在本地未查找到目标文件,则第一电子设备向第二电子设备发送第一反馈信息。
第一反馈信息用于指示第二电子设备向第一电子设备发送目标文件。如果第一电子设备在本地未查找到目标文件,则表明第一电子设备未通过近距离分享应用接收过目标文件,此时,第一电子设备再通知第二电子设备发送目标文件。这样,第一电子设备可以避免重复接收相同的文件,从而节约了存储空间。
S707、第二电子设备向第一电子设备发送目标文件。
可选的,当第二电子设备成功发送目标文件后,如图5中D所示,第二电子设备可以显示发送界面507,用于提示用户数据传输流程已结束。
S708、第一电子设备生成目标文件的索引信息。
当第一电子设备接收到目标文件后,可以生成目标文件的索引信息。目标文件的索引信息可以包括:接收到目标文件时目标文件的排序(即序号)、目标文件的第二指纹信息(即指纹信息)、接收到目标文件的时间(即最近访问时间)、目标文件在近距离分享目录中的文件名。也就是说,最近访问时间的初始状态可以是接收到目标文件的时间。
假设目标文件是第一电子设备通过近距离分享应用接收到的第5个文件,则序号为5;假设第一电子设备接收到目标文件的时间为2022年12月20日10时30分36秒,则最近访问时间为1671503436;假设第二指纹信息为0ed41d8cd98f00b204e9800998ecf8427x,目标文件存储在近距离分享目录下的名称为IMG_1128_09123.jpg,那么目标文件的索引信息可以通过表1表示。
表1
第一电子设备接收到目标文件后,需要将第二指纹信息插入到第一电子设备中,以便于下次接收新的目标文件的过程中将第二指纹信息与新的目标文件的第一指纹信息进行对比。下面以概率型的数据结构为布隆过滤器为例,简单介绍插入第二指纹信息的过程。
示例性的,假设M为4,第二指纹信息为“0ed41d8cd98f00b204e9800998ecf8427x”,第一预设值为0,第二预设值为1。第一电子设备通过布隆过滤器中的4个随机映射函数对第二指纹信息“0ed41d8cd98f00b204e9800998ecf8427x”进行处理后,得到的4个第二索引:2、3、4、8,将布隆过滤器中的N位数组中与第3个元素、第4个元素、第5个元素和第9个元素均置为1。
可选的,在第一电子设备接收目标文件的过程中,如图6所示,第一电子设备可以显示第四弹窗604,用于向用户展示接收目标文件的进度。当第一电子设备接收完成后,如图6所示,第一电子设备可以显示第五弹窗606,用于提示用户接收完成。
S709、如果在本地查找到目标文件,则第一电子设备向第二电子设备发送第二反馈信息。
第二反馈信息用于指示第二电子设备不用向第一电子设备发送目标文件。当第一电子设备根据第一指纹信息在本地查找到目标文件后,表明本地已存储了目标文件,为了避免重复接收、存储目标文件,则向第二电子设备反馈不用再发送目标文件,这样第二电子设备不会再向第一电子设备发送目标文件。
可选的,当第一电子设备在本地查找到目标文件后,第一电子设备可以提示用户本地已存储目标文件,并且第一电子设备可以跳转到近距离分享目录界面,向用户展示已存储在本地的目标文件。这样,可以提示用户数据传输流程已结束,并向用户展示目标文件,提高了数据传输效率,从而提升用户体验。
示例性的,以第一电子设备为手机为例。如图8中A所示,第一手机600可以显示第六弹窗801。第六弹窗801可以包括提示内容802、“是”按钮803和“否”按钮804,提示内容802可以是“本地已存储有相同的文件,是否展示该文件”。作为对用户点击“是”按钮803操作的响应,如图8中B所示,第一手机600跳转到近距离分享目录界面605,向用户展示目标文件。
S710、第一电子设备更新目标文件的索引信息。
第一电子设备在本地查找到目标文件后,目标文件的索引信息中的最近访问时间会发生变化。此时,第一电子设备需要将目标文件的索引信息中的最近访问时间,更新为第一电子设备查找到目标文件的索引信息的时间。这样,可以便于第一电子设备更新指纹缓存模块中的索引信息,从而便于第一电子设备接收到新的文件时,确定新的文件是否已存储在本地。
S711、第二电子设备结束数据传输流程。
第二电子设备接收到第二反馈信息后,结束数据传输流程,并且可以提示用户已完成数据传输。
示例性的,当第二电子设备接收到第二反馈信息后,如图5中D所示,第二电子设备可以显示发送界面507,以提示用户已完成数据传输流程。
S712、如果目标文件不可能存储在本地,则第一电子设备向第二电子设备发送第一反馈信息。
目标文件不可能存储在本地,表明第一电子设备中肯定没有存储目标文件。此时,第一电子设备不需要再在本地进行查找,直接通知第二电子设备发送目标文件,这样,可以提高第一电子设备和第二电子设备之间的传输效率,并且可以避免重复接收相同的文件,节约了第一电子设备的存储空间。
在确定目标文件不可能存储在本地的情况下,第二电子设备在接收到第一反馈信息后,再向第一电子设备发送目标文件(同S707);第一电子设备接收到目标文件后,执行S708,本申请实施例对此不再赘述。
如上述实施例,用于实现本申请实施例提供的数据传输方法的电子设备可以包括近距离分享应用、近距离分享服务和近距离通信模块。
下面结合附图9,简单介绍第二电子设备通过近距离分享应用向第一电子设备传输目标文件的过程中,第一电子设备的内部的相关模块的交互流程、第二电子设备的内部的相关模块的交互流程,以及第一电子设备和第二电子设备之间的交互过程。
S901、第二电子设备的近距离分享应用向第二电子设备的近距离分享服务发送目标文件。
响应于用户在第二电子设备的近距离分享界面(如图5中C所示的界面)点击第一电子设备的图标(如图5中C所示的第一手机的图标506),第二电子设备的近距离分享应用向第二电子设备的近距离分享服务发送目标文件。
应理解,近距离分享应用界面是指在使用近距离分享应用过程中所涉及到的所有界面。例如,近距离分享应用界面可以包括:图5中B所示的界面、图5中C所示的界面、发送界面507,图6中A所示的界面、图6中B所示的界面、图6中C所示的界面、图6中D所示的近距离分享目录界面605,以及图8中A所示的界面。
S902、第二电子设备的近距离分享服务获取目标文件的第一指纹信息。
近距离分享服务可以调用重删控制器模块来计算目标文件的第一指纹信息。S901和S902可以实现上述S702中的功能。
可选的,第二电子设备的近距离分享服务在获取目标文件的第一指纹信息之前,可以先获取目标文件的文件大小。如果目标文件的文件大小超过阈值,则第二电子设备的近距离分享服务再调用重删控制器模块计算目标文件的第一指纹信息。
S903、第二电子设备的近距离分享服务通过第二电子设备的近距离通信模块,向第一电子设备的近距离通信模块发送第一指纹信息。
第二电子设备的近距离分享服务获取到目标文件的第一指纹信息后,向第二电子设备的近距离通信模块发送第一指纹信息。第二电子设备的近距离通信模块将接收到的第一指纹信息发送至第一电子设备的近距离通信模块。S903可以实现上述S703中的功能。
S904、第一电子设备的近距离通信模块向第一电子设备的近距离分享服务发送第一指纹信息。
S905、第一电子设备的近距离分享服务根据第一指纹信息在本地查找目标文件。
第一电子设备的近距离分享服务在本地查找目标文件之前,首先根据第一指纹信息确定目标文件是否可能存储在本地(图9中未示出该过程,该过程可以实现上述S704的功能)。目标文件是否可能存储在本地可以包括:目标文件不可能存储在本地,或者目标文件可能存储在本地。
近距离分享服务可以调用指纹缓存模块对第一指纹信息进行处理,确定目标文件是否可能存储在本地。
如果目标文件可能存储在本地,则第一电子设备的近距离分享服务在指纹缓存模块、指纹数据库中查找第一指纹信息,从而查找目标文件(该过程可以实现上述S705的功能)。
如果第一电子设备的近距离分享服务查找到第一指纹信息,则表明在本地查找到目标文件,即目标文件肯定存储在本地。否则,则表明本地未存储目标文件。
如果目标文件不可能存储在本地,则表明在本地无法查找到目标文件。那么,第一电子设备的近距离分享服务可以通过近距离通信模块向第二电子设备的近距离通信模块发送第一反馈信息,第一反馈信息用于指示第二电子设备向第一电子设备发送目标文件。(该过程可以实现上述S712的功能)。
S906、如果查找到目标文件,则第一电子设备的近距离分享服务向第一电子设备的近距离分享应用发送第一指示信息。
第一指示信息,用于指示目标文件已存储在本地。如图8中A所示,第一电子设备的近距离分享应用接收到第一指示信息后,第一电子设备可以显示第六弹窗801,用于提示用户目标文件已存储在本地。
S907、第一电子设备的近距离分享服务通过第一电子设备的近距离通信模块,向第二电子设备的近距离通信模块发送第二反馈信息。
如果查找到目标文件,第一电子设备的近距离分享服务,还通过第一电子设备的近距离通信模块,向第二电子设备的近距离通信模块发送第二反馈信息。第二反馈信息,用于指示第二电子设备不用向第一电子设备发送目标文件。S907可以实现上述S709的功能。
S908、第二电子设备的近距离通信模块,向第二电子设备的近距离分享服务发送第二反馈信息。
S909、第二电子设备的近距离分享服务向第二电子设备的近距离分享应用发送第二指示信息。
第二电子设备的近距离分享服务接收到第二反馈信息后,向第二电子设备的近距离应用发送第二指示信息。第二指示信息,用于指示数据传输流程结束。上述S711可以包括S908和S909。
如图5中D所示,当第二电子设备的近距离分享应用接收到第二指示信息后,第二电子设备可以显示发送界面507,用于提示用户数据传输流程已结束。
S910、第一电子设备的近距离分享服务更新目标文件的索引信息。
第一电子设备的近距离分享服务在本地查找到目标文件后,目标文件的最近访问时间会发生变化,需要将目标文件的索引信息中的最近访问时间更新为,查找到目标文件的索引信息的时间。这样,可以方便更新指纹缓存模块中存储的索引信息。S910可以实现上述S710的功能。
S911、如果未查找到目标文件,则第一电子设备的近距离分享服务通过第一电子设备的近距离通信模块,向第二电子设备的近距离通信模块发送第一反馈信息。
第一反馈信息,用于指示第二电子设备向第一电子设备发送目标文件。S911可以实现上述S706的功能。
S912、第二电子设备的近距离通信模块向第二电子设备的近距离分享服务发送第一反馈信息。
S913、第二电子设备的近距离分享服务,通过第二电子设备的近距离通信模块,向第一电子设备的近距离通信服务发送目标文件。
第二电子设备的近距离分享服务接收到第一反馈信息后,通过第二电子设备的近距离通信模块、第一电子设备的近距离通信模块,向第一电子设备的近距离通信服务发送目标文件。S913可以实现上述S707的功能。
S914、第一电子设备的近距离分享服务生成目标文件的索引信息。
第一电子设备的近距离通信模块接收到目标文件后,将目标文件发送至第一电子设备的近距离分享服务。第一电子设备的近距离分享服务接收到目标文件之后,生成目标文件的索引信息。S914可以实现上述S708的功能。
S915、第一电子设备的近距离分享服务向第一电子设备的近距离分享应用发送第三指示信息。
第三指示信息,用于指示目标文件已接收完成。当第一电子设备的近距离分享应用接收到第三指示信息时,如图6中C所示,第一电子设备可以显示第五弹窗606,用于提示用户目标文件已接收完成。
如图10所示,本申请实施例还提供一种芯片系统。该芯片系统100包括至少一个处理器1001和至少一个接口电路1002。至少一个处理器1001和至少一个接口电路1002可通过线路互联。处理器1001用于支持电子设备实现上述方法实施例中的各个步骤,例如图7所示的方法,至少一个接口电路1002可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
本申请实施例还提供一种计算机存储介质,该计算机存储介质包括指令,当指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中的各个步骤,例如执行图7所示的方法。
本申请实施例还提供一种包括指令的计算机程序产品,当指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中的各个步骤,例如执行图7所示的方法。
关于芯片系统、计算机存储介质、计算机程序产品的技术效果参照前面方法实施例的技术效果。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个设备,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个设备中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机存储介质中,或者从一个计算机存储介质向另一个计算机存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (7)

1.一种数据传输方法,其特征在于,应用于第一电子设备,所述第一电子设备包括指纹缓存模块和指纹数据库;所述方法包括:
接收第二电子设备发送的第一指纹信息,所述第一指纹信息用于唯一标识所述第二电子设备待发送给所述第一电子设备的目标文件;
根据所述第一指纹信息确定所述目标文件是否可能已存储在本地;
如果确定所述目标文件不可能存储在本地,则向所述第二电子设备发送第一反馈信息,所述第一反馈信息用于指示所述第二电子设备向所述第一电子设备发送所述目标文件;否则,在本地查找所述目标文件;
如果查找到所述目标文件,则向所述第二电子设备发送第二反馈信息,所述第二反馈信息用于指示所述第二电子设备不用向所述第一电子设备发送所述目标文件;如果未查找到所述目标文件,则向所述第二电子设备发送所述第一反馈信息;
在查找到所述目标文件之前,所述方法还包括:
接收所述目标文件;
生成所述目标文件的索引信息,所述目标文件的索引信息包括第二指纹信息和最近访问时间,所述最近访问时间的初始值等于接收所述目标文件的时间;
在所述在本地查找所述目标文件之后,所述方法还包括:
如果查找到所述目标文件,则将所述目标文件的索引信息中的最近访问时间,更新为查找到所述目标文件的时间;
所述索引信息还包括序号,所述序号用于表示所述第一电子设备接收到所述目标文件的先后顺序;所述方法还包括:
将所述第一电子设备中的所有文件的索引信息按照所述序号从大到小进行排列,得到第一索引信息组,将所述指纹数据库中的所有索引信息按照所述最近访问时间的先后顺序进行排列,得到第二索引信息组;
对所述第一索引信息组中的前a个索引信息,以及所述第二索引信息组中的前b个索引信息进行合并和去重处理,得到第三索引信息组;a、b均为正整数;
将所述第三索引信息组存储在所述指纹缓存模块中,将所述第三索引信息组以外的索引信息存储在所述指纹数据库中;
所述在本地查找所述目标文件,包括:先在所述指纹缓存模块中查找所述目标文件,如果在所述指纹缓存模块中未查找到,则在所述指纹数据库中查找。
2.根据权利要求1所述的方法,其特征在于,所述在本地查找所述目标文件,包括:
查找所述索引信息中的第二指纹信息与所述第一指纹信息是否相同,相同则查找到所述目标文件。
3.根据权利要求1或2所述的方法,其特征在于,在所述接收所述目标文件之后,所述方法还包括:
采用M个随机映射函数对所述第二指纹信息进行处理,得到数组的M个第二索引;
将所述数组中与M个第二索引对应的元素置为目标预设值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一指纹信息确定所述目标文件是否可能已存储在本地,包括:
采用所述M个随机映射函数对所述第一指纹信息进行处理,得到所述数组的M个第一索引;
根据所述数组中与所述M个第一索引对应的元素是否等于所述目标预设值来确定所述目标文件是否可能已存储在本地。
5.根据权利要求4所述的方法,其特征在于,如果所述数组中与所述M个第一索引对应的元素均等于所述目标预设值,则所述目标文件可能存储在本地,否则所述目标文件不可能存储在本地。
6.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储指令,当所述处理器执行所述指令时,如权利要求1-5任一项所述的方法被执行。
7.一种计算机存储介质,其特征在于,包括指令,当所述指令在电子设备上执行时,使得所述电子设备执行如权利要求1-5任一项所述的方法。
CN202310122646.6A 2023-02-16 2023-02-16 一种数据传输方法和电子设备 Active CN115988002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310122646.6A CN115988002B (zh) 2023-02-16 2023-02-16 一种数据传输方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310122646.6A CN115988002B (zh) 2023-02-16 2023-02-16 一种数据传输方法和电子设备

Publications (2)

Publication Number Publication Date
CN115988002A CN115988002A (zh) 2023-04-18
CN115988002B true CN115988002B (zh) 2023-08-15

Family

ID=85970693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310122646.6A Active CN115988002B (zh) 2023-02-16 2023-02-16 一种数据传输方法和电子设备

Country Status (1)

Country Link
CN (1) CN115988002B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942292A (zh) * 2014-04-11 2014-07-23 华为技术有限公司 虚拟机镜像文件处理方法、装置及系统
CN106203319A (zh) * 2016-07-05 2016-12-07 北京小米移动软件有限公司 指纹匹配方法和装置
CN106201771A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 数据存储系统和数据读写方法
CN106326308A (zh) * 2015-07-03 2017-01-11 华中科技大学 一种基于sdn的网内重复数据删除方法及系统
CN106407226A (zh) * 2015-07-31 2017-02-15 华为技术有限公司 一种数据处理方法、备份服务器及存储系统
CN107295002A (zh) * 2017-07-12 2017-10-24 联动优势科技有限公司 一种云端存储数据的方法及服务器
CN107329692A (zh) * 2017-06-07 2017-11-07 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN114328377A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 元数据管理方法和电子设备
CN114416676A (zh) * 2021-12-20 2022-04-29 北京星网锐捷网络技术有限公司 数据处理方法、装置、设备和存储介质
CN115278616A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 一种文件分享方法和电子设备
CN115567212A (zh) * 2022-09-20 2023-01-03 南京中孚信息技术有限公司 文件处理方法、装置、计算机设备和计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697228B2 (en) * 2014-04-14 2017-07-04 Vembu Technologies Private Limited Secure relational file system with version control, deduplication, and error correction
US10642522B2 (en) * 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942292A (zh) * 2014-04-11 2014-07-23 华为技术有限公司 虚拟机镜像文件处理方法、装置及系统
CN106201771A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 数据存储系统和数据读写方法
CN106326308A (zh) * 2015-07-03 2017-01-11 华中科技大学 一种基于sdn的网内重复数据删除方法及系统
CN106407226A (zh) * 2015-07-31 2017-02-15 华为技术有限公司 一种数据处理方法、备份服务器及存储系统
CN106203319A (zh) * 2016-07-05 2016-12-07 北京小米移动软件有限公司 指纹匹配方法和装置
CN107329692A (zh) * 2017-06-07 2017-11-07 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN107295002A (zh) * 2017-07-12 2017-10-24 联动优势科技有限公司 一种云端存储数据的方法及服务器
CN114328377A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 元数据管理方法和电子设备
CN115278616A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 一种文件分享方法和电子设备
CN114416676A (zh) * 2021-12-20 2022-04-29 北京星网锐捷网络技术有限公司 数据处理方法、装置、设备和存储介质
CN115567212A (zh) * 2022-09-20 2023-01-03 南京中孚信息技术有限公司 文件处理方法、装置、计算机设备和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种支持海量数据备份的可扩展分布式重复数据删除系统;刘厚贵;《计算机研究与发展》;全文 *

Also Published As

Publication number Publication date
CN115988002A (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US11129221B2 (en) Bluetooth connection method, device and smart terminal
CN111107667B (zh) 蓝牙耳机的配对方法、装置及可读存储介质
US20150134743A1 (en) Method and apparatus for connecting communication of electronic devices
KR20150065410A (ko) 전자 장치의 억세스 포인트 접속 방법 및 그 전자 장치
CN112119623B (zh) 基于帐户组共享内容的方法和执行该方法的电子装置
CN114390501B (zh) 数据传输的方法及电子设备
CN108605373B (zh) 用于提供网络共享服务的方法和电子装置
US9904864B2 (en) Method for recommending one or more images and electronic device thereof
CN112262556A (zh) 模型文件的管理方法和终端设备
CN110855534A (zh) 在智能家庭系统中用于搜索和控制受控者的方法和设备
CN108256466B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
WO2024007809A1 (zh) 一种应用产品提示信息的输出方法和装置
CN115988002B (zh) 一种数据传输方法和电子设备
CN112889096B (zh) 一种动态调整avrcp版本的方法及终端设备
CN106576293B (zh) 电子设备和用于控制电子设备中的信息交换的方法
CN108874591B (zh) 文件处理方法及相关产品
CN117335830A (zh) 无线通信电路、蓝牙通信切换方法和电子设备
CN114173321B (zh) 设备通信连接建立方法及设备通信系统
US11341095B2 (en) Electronic device for searching for file information stored in external device and operation method thereof
CN113721836A (zh) 一种数据去重方法及装置
CN113885785B (zh) 一种数据去重方法及装置
CN115826771B (zh) 一种输入法切换方法和电子设备
US20230111512A1 (en) Electronic device and method for generating additional information about file in electronic device
CN114915619B (zh) 一种文件的分享方法及电子设备
CN114374690B (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
GR01 Patent grant
GR01 Patent grant