CN115695445A - 一种数据同步方法、终端和系统 - Google Patents
一种数据同步方法、终端和系统 Download PDFInfo
- Publication number
- CN115695445A CN115695445A CN202210081108.2A CN202210081108A CN115695445A CN 115695445 A CN115695445 A CN 115695445A CN 202210081108 A CN202210081108 A CN 202210081108A CN 115695445 A CN115695445 A CN 115695445A
- Authority
- CN
- China
- Prior art keywords
- state
- terminal
- data
- server
- interface
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种数据同步方法、终端和系统,该方法包括第一终端接收用户对第一终端上的第一应用程序的第一操作;第一终端响应于第一操作,显示第一界面,第一界面内容与第二界面内容不同;第一终端接收用户对第一界面的第三操作;响应于第三操作,第一终端向服务器上传第一应用程序的数据,并且,第二终端从服务器下载第一应用程序的数据并显示第三界面;第三界面与第一界面相同。这样,当第二终端对同步实时性要求不高时,用户操作第一终端上的应用程序,第一终端能够拉长同步更新数据的间隔。当第二终端对同步实时性要求高时,用户操作第一终端上的应用程序,第一终端能够实时更新数据,保证用户数据同步实时性要求,且最大程度减少资源消耗。
Description
本申请要求于2021年07月31日提交国家知识产权局、申请号为202110877488.6、发明名称为“一种数据同步方法、终端和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据同步方法、终端和系统。
背景技术
数据同步是指多个终端之间数据保持一致。数据同步业务是指利用服务器使多个终端之间数据保持一致的业务。例如,当某个终端上的数据发生变化时(如,对某个应用的数据进行增加、删除、修改的操作),终端可以将变化的数据更新到服务器。当服务器上的数据发生变化时,服务器通知各个终端从服务器上获取更新数据。这样,可以使得该终端上的数据与服务器上的数据保持一致。
但是,当用户频繁操作某个终端上应用的数据时,该终端会频繁更新数据,增大了终端的资源损耗,同时,增大了服务器的压力。若其他终端并不关注更新的数据,则终端频繁更新数据变得毫无意义。因此,现有的数据同步方法存在同步实时性和资源消耗的矛盾的问题。
发明内容
本申请实施例提供的一种数据同步方法、终端和系统,既能保证用户数据同步实时性要求,又能最大程度减少资源消耗。
为达到上述目的,本申请实施例采用如下技术方案。
第一方面,本申请实施例提供一种数据同步方法,该方法的执行主体可以是终端,也可以是位于终端中的部件(例如,芯片,芯片系统或处理器等),下面以执行主体是终端为例进行描述。方法包括:第一终端接收用户对第一终端上的第一应用程序的第一操作;第一终端响应于第一操作,显示第一界面,第一界面内容与第二终端显示的第二界面内容不同;第一终端接收用户对第一界面的第三操作;响应于第三操作,第一终端向服务器上传第一应用程序的数据,并且,第二终端从服务器获取第一应用程序的数据并显示第三界面,其中,第一应用程序的数据包括第一界面的数据;第三界面与第一界面相同。这样,用户在第一终端上操作应用程序时可以触发第二终端从服务器上获取应用程序的数据。
以第一应用程序为备忘录为例,当第二终端对同步实时性要求不高时,用户操作第一终端上的备忘录,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。当第二终端对同步实时性要求高时,用户操作第一终端上的备忘录,第一终端能够实时更新数据,能够保持同步的高实时性,保证用户使用备忘录体验。
在一些可实现方式中,还包括:第一终端接收用户对第一界面的第四操作;响应于第四操作,第一终端向服务器上传第一应用程序的数据并显示第四界面,并且,第二终端从服务器获取第一应用程序的数据并显示第五界面,其中,第一应用程序的数据包括第四界面的数据;第五界面与第四界面相同。
在一些可实现方式中,第一终端响应于第一操作,显示第一界面包括:向服务器发送第一请求,第一请求用于请求建立第一会话,并根据第一操作,确定第一会话的第一状态,第一状态为低实时性状态;服务器用于确定第二终端的第二会话的第二状态,第二会话的第二状态根据第一请求确定,第二会话的第二状态为低实时性状态。
以第一应用程序为备忘录为例,当第二终端对同步实时性要求不高时,用户操作第一终端上的备忘录,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。
在一些可实现方式中,第一终端响应于第三操作,向服务器发送第三请求,第三请求用于请求将低实时性状态切换为高实时性状态;第二终端用于从服务器获取第二会话的第二状态,并将第二会话的第二状态更新为高实时性状态。
以第一应用程序为备忘录为例,当第二终端对同步实时性要求高时,用户操作第一终端上的备忘录,第一终端能够实时更新数据,能够保持同步的高实时性,保证用户使用备忘录体验。
在一些可实现方式中,第一终端向服务器上传第一应用程序的数据,包括:第一状态为低实时性状态,终端在第三预设时间间隔之后向服务器上传第一应用程序的数据,且第二终端在第三预设时间间隔之后从服务器获取第一应用程序的数据;第一状态为高实时性状态,终端实时向服务器上传第一应用程序的数据,且第二终端实时从服务器获取第一应用程序的数据。
在一些可实现方式中,第一请求中携带第一终端上的第一应用程序的状态,第一会话的第一状态和第二会话的第二状态是根据第一应用程序的状态确定的。这样,第一终端上的应用程序可以根据自身状态设置同步实时性策略。
在一些可实现方式中,第一请求中携带实时性策略参数,第一会话的第一状态和第二会话的第二状态是根据实时性策略参数确定的,实时性策略参数是根据第一终端上的第一应用程序的状态确定的。
在一些可实现方式中,还包括:第一终端接收用户对第一终端上的第一应用程序的第六操作;第一终端响应于第六操作,向服务器发送第七请求,第七请求用于请求删除会话。
在一些可实现方式中,第一状态或第二状态为低实时性状态,实时性策略为异步更新数据;第一或第二状态为高实时性状态,实时性策略为同步更新数据。
在一些可实现方式中,第一应用程序包括方法应用程序和第三方应用程序,方法应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
第二方面,本申请实施例提供一种数据同步方法,该方法的执行主体可以是终端,也可以是位于终端中的部件(例如,芯片,芯片系统或处理器等),下面以执行主体是终端为例进行描述。方法包括:第二终端接收用户对第二终端上的第一应用程序的第二操作;第二终端响应于第二操作,显示第二界面,第二界面内容与第一终端的第一界面内容不同;当第一终端接收用户对第一界面的第三操作,并响应于第三操作,第一终端向服务器上传第一应用程序的数据时,第二终端从服务器获取第一应用程序的数据并显示第三界面,其中,第一应用程序的数据包括第一界面的数据;第三界面与第一界面相同。
在一些可实现方式中,还包括:当第一终端接收用户对第一界面的第四操作,并响应于第四操作,第一终端向服务器上传第一应用程序的数据并显示第四界面时,第二终端从服务器获取第一应用程序的数据并显示第五界面,其中,第一应用程序的数据包括第四界面的数据;第五界面与第四界面相同。
在一些可实现方式中,在第二终端响应于第二操作,显示第二界面,第二界面内容与第一界面内容不同之后,还包括在第一预设时间间隔之后,第二终端显示第六界面,第六界面和第一界面相同。以第一应用程序为备忘录为例,当用户操作备忘录时,第二终端对同步实时性要求不高时,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。
在一些可实现方式中,第二终端响应于第二操作,显示第二界面包括:向服务器发送第二请求,第二请求用于请求建立第二会话,服务器确定第二会话的第二状态,第二会话的第二状态根据第一终端发送的第一请求确定,第二会话的第二状态为低实时性状态。
在一些可实现方式中,第一终端响应于第三操作,向服务器发送第三请求时,第三请求用于请求将低实时性状态切换为高实时性状态;第二终端从服务器获取第二会话的第二状态,并将第二会话的第二状态更新为高实时性状态。
在一些可实现方式中,第二终端从服务器获取第二会话的第二状态,包括:第二终端按照第二预设时间间隔向服务器发送第四请求,第四请求用于获取最新状态;第二终端接收服务器发送的最新状态,并更新第二会话的第二状态更新为高实时性状态。
在一些可实现方式中,第二终端从服务器获取第一应用程序的数据,包括:第二终端按照第二状态对应的实时性策略从服务器获取数据变更通知;第二终端根据数据变更通知,向服务器发送第五请求,第五请求用于请求获取更新数据;第二终端按照第二状态对应的实时性策略从服务器上获取更新数据,服务器用于接收第五请求,并根据第五请求向第二终端发送更新数据。
在一些可实现方式中,第二终端从服务器获取第一应用程序的数据,包括:第二终端按照第二预设时间间隔查询服务器上的数据变化情况;当服务器上的数据发生变化时,第二终端向服务器发送第六请求,第六请求用于请求获取更新数据;第二终端按照第二状态对应的实时性策略从服务器上获取更新数据,服务器用于接收第六请求,并根据第六请求向第二终端发送更新数据。
在一些可实现方式中,第一请求中携带第一终端上的第一应用程序的状态,第一会话的第一状态和第二会话的第二状态是根据第一应用程序的状态确定的。
在一些可实现方式中,第一请求中携带实时性策略参数,第一会话的第一状态和第二会话的第二状态是根据实时性策略参数确定的,实时性策略参数是根据第一终端上的第一应用程序的状态确定的。
在一些可实现方式中,第一终端接收用户对第一终端上的第一应用程序的第六操作;第一终端响应于第六操作,向服务器发送第七请求,第七请求用于请求删除会话;第二终端接收用户对第二终端上的第一应用程序的第七操作;第二终端响应于第七操作,向服务器发送第八请求,第八请求用于请求删除会话。
在一些可实现方式中,第一状态或第二状态为低实时性状态,实时性策略为异步更新数据;第一或第二状态为高实时性状态,实时性策略为同步更新数据。
在一些可实现方式中,第一应用程序包括方法应用程序和第三方应用程序,方法应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
第三方面,本申请实施例提供一种数据同步系统,该系统包括:第一终端接收用户对第一终端上的第一应用程序的第一操作;第一终端响应于第一操作,显示第一界面;第二终端接收用户对第二终端上的第一应用程序的第二操作;第二终端响应于第二操作,显示第二界面,第二界面内容与第一界面内容不同;第一终端接收用户对第一界面的第三操作;响应于第三操作,第一终端向服务器上传第一应用程序的数据,并且,第二终端从服务器获取第一应用程序的数据并显示第三界面,其中,第一应用程序的数据包括第一界面的数据;第三界面与第一界面相同。
以第一应用程序为备忘录为例,当第二终端对同步实时性要求不高时,用户操作第一终端上的备忘录,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。当第二终端对同步实时性要求高时,用户操作第一终端上的备忘录,第一终端能够实时更新数据,能够保持同步的高实时性,保证用户使用备忘录体验。
在一些可实现方式中,第一终端接收用户对第一界面的第四操作;响应于第四操作,第一终端向服务器上传第一应用程序的数据并显示第四界面,并且,第二终端从服务器获取第一应用程序的数据并显示第五界面,其中,第一应用程序的数据包括第四界面的数据;第五界面与第四界面相同。
在一些可实现方式中,在第二终端响应于第二操作,显示第二界面,第二界面内容与第一界面内容不同之后,还包括在第一预设时间间隔之后,第二终端显示第六界面,第六界面和第一界面相同。以第一应用程序为备忘录为例,当用户操作备忘录时,第二终端对同步实时性要求不高时,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。
在一些可实现方式中,第一终端响应于第一操作,显示第一界面包括:向服务器发送第一请求,第一请求用于请求建立第一会话,并根据第一操作,确定第一会话的第一状态,第一状态为低实时性状态;第二终端响应于第二操作,显示第二界面包括:向服务器发送第二请求,第二请求用于请求建立第二会话,服务器确定第二会话的第二状态,第二会话的第二状态根据第一请求确定,第二会话的第二状态为低实时性状态。
在一些可实现方式中,第一终端响应于第三操作,向服务器发送第三请求,第三请求用于请求将低实时性状态切换为高实时性状态;第二终端从服务器获取第二会话的第二状态,并将第二会话的第二状态更新为高实时性状态。
在一些可实现方式中,第二终端从服务器获取第二会话的第二状态,包括:第二终端按照第二预设时间间隔向服务器发送第四请求,第四请求用于获取最新状态;第二终端接收服务器发送的最新状态,并更新第二会话的第二状态更新为高实时性状态。
在一些可实现方式中,第一终端向服务器上传第一应用程序的数据,包括:第一状态为低实时性状态,终端在第三预设时间间隔之后向服务器上传第一应用程序的数据,且第二终端在第三预设时间间隔之后从服务器获取第一应用程序的数据;第一状态为高实时性状态,终端实时向服务器上传第一应用程序的数据,且第二终端实时从服务器获取第一应用程序的数据。
在一些可实现方式中,第二终端从服务器获取第一应用程序的数据,包括:第二终端按照第二状态对应的实时性策略从服务器获取数据变更通知;第二终端根据数据变更通知,向服务器发送第五请求,第五请求用于请求获取更新数据;第二终端按照第二状态对应的实时性策略从服务器上获取更新数据,服务器用于接收第五请求,并根据第五请求向第二终端发送更新数据。
在一些可实现方式中,第二终端从服务器获取第一应用程序的数据,包括:第二终端按照第二预设时间间隔查询服务器上的数据变化情况;当服务器上的数据发生变化时,第二终端向服务器发送第六请求,第六请求用于请求获取更新数据;第二终端按照第二状态对应的实时性策略从服务器上获取更新数据,服务器用于接收第六请求,并根据第六请求向第二终端发送更新数据。
在一些可实现方式中,第一请求中携带第一终端上的第一应用程序的状态,第一会话的第一状态和第二会话的第二状态是根据第一应用程序的状态确定的。
在一些可实现方式中,第一请求中携带实时性策略参数,第一会话的第一状态和第二会话的第二状态是根据实时性策略参数确定的,实时性策略参数是根据第一终端上的第一应用程序的状态确定的。
在一些可实现方式中,第一终端接收用户对第一终端上的第一应用程序的第六操作;第一终端响应于第六操作,向服务器发送第七请求,第七请求用于请求删除会话;第二终端接收用户对第二终端上的第一应用程序的第七操作;第二终端响应于第七操作,向服务器发送第八请求,第八请求用于请求删除会话。
在一些可实现方式中,第一状态或第二状态为低实时性状态,实时性策略为异步更新数据;第一或第二状态为高实时性状态,实时性策略为同步更新数据。
在一些可实现方式中,第一应用程序包括系统应用程序和第三方应用程序,系统应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
第四方面,本申请实施例提供一种终端,应用于第一方面的服务访问方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行第一方面或第二方面的服务访问方法。
第六方面,本申请实施例提供一种计算机程序,当所述程序被处理器调用时,第一方面或第二方面面的服务访问方法被执行。
第七方面,本申请实施例提供一种芯片系统,包括一个或多个处理器,当所述一个或多个处理器执行指令时,所述一个或多个处理器执行第一方面或第二方面的服务访问方法。
其中,上述第三方面至第其方面中各个实施例的具体实施方式及对应的技术效果可以参见上述第一方面或第二方面的具体实施方式及技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种系统的结构示意图;
图2(1)为本申请实施例提供的一种终端的结构示意图;
图2(2)为本申请实施例提供的一种终端的系统框架图;
图3为一种数据同步方法的流程示意图;
图4(1)为本申请实施例提供的一种数据同步方法的会话创建阶段的流程示意图;
图4(2)为本申请实施例提供的一种数据同步方法的会话创建阶段的流程示意图;
图4(3)为本申请实施例提供的一种数据同步方法的会话创建阶段的流程示意图;
图4(4)为本申请实施例提供的一种数据同步方法的会话创建阶段的流程示意图;
图5为本申请实施例提供的一种服务器对同一用户的会话管理的示意图;
图6(1a)为本申请实施例提供的一种数据同步方法的数据同步阶段的流程示意图;
图6(1b)为本申请实施例提供的一种数据同步方法的数据同步阶段的流程示意图;
图6(2a)为本申请实施例提供的一种数据同步方法的数据同步阶段的流程示意图;
图6(2b)为本申请实施例提供的一种数据同步方法的数据同步阶段的流程示意图;
图6(3)为本申请实施例提供的又一种数据同步方法的数据同步阶段的流程示意图;
图6(4)为本申请实施例提供的又一种数据同步方法的删除会话阶段的流程示意图;
图7为本申请实施例提供的第一手机的一种显示页面的示意图;
图8为本申请实施例提供的第一手机的又一种显示页面的示意图;
图9中(1)为本申请实施例提供的第一手机的又一种显示页面的示意图;
图9中(2)为本申请实施例提供的第二手机的一种显示页面的示意图;
图9中(3)为本申请实施例提供的第二手机的一种显示页面的示意图;
图10为本申请实施例提供的第一手机的又一种显示页面的示意图;
图11中(1)为本申请实施例提供的第一手机的又一种显示页面的示意图;
图11中(2)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图12为本申请实施例提供的第一手机的又一种显示页面的示意图;
图13为本申请实施例提供的第一手机的又一种显示页面的示意图;
图14中(1)为本申请实施例提供的第一手机的又一种显示页面的示意图;
图14中(2)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图15中(1)为本申请实施例提供的第一手机的又一种显示页面的示意图;
图15中(2)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图15中(3)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图16中(1)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图16中(2)为本申请实施例提供的第一手机的又一种显示页面的示意图;
图17中(1)为本申请实施例提供的第二手机的又一种显示页面的示意图;
图17中(2)为本申请实施例提供的第一手机的又一种显示页面的示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供的数据同步方法可以应用于图1所示的多个终端和服务器组成的系统。如图1所示,该系统100可以包括服务器110和多个终端(如第一终端120、第二终端130、第三终端140、第四终端150和第五终端160)。
其中,上述终端可以为手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴终端、电视、虚拟现实设备等具有显示功能的设备,本申请实施例中对终端的具体形式不做特殊限制。
示例性的,如图1所示,第一终端120和第五终端160均可以为手机,第二终端130可以为平板电脑,第三终端140可以为电视机,第四终端150可以为笔记本电脑。
图2(1)是上述终端的结构框图。
如图2(1)所示,终端(如第一终端120、第二终端130、第三终端140和第四终端150)可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universalserial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括压力传感器280A,陀螺仪传感器280B,气压传感器280C,磁传感器280D,加速度传感器280E,距离传感器280F,接近光传感器280G,指纹传感器280H,温度传感器280J,触摸传感器280K,环境光传感器280L,骨传导传感器280M等。
可以理解的是,本发明实施例示意的结构并不构成对终端120的具体限定。在本申请另一些实施例中,终端120可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(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)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器210可以包含多组I2C总线。处理器210可以通过不同的I2C总线接口分别耦合触摸传感器280K,充电器,闪光灯,摄像头293等。例如:处理器210可以通过I2C接口耦合触摸传感器280K,使处理器210与触摸传感器280K通过I2C总线接口通信,实现终端220的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器210可以包含多组I2S总线。处理器210可以通过I2S总线与音频模块270耦合,实现处理器210与音频模块270之间的通信。在一些实施例中,音频模块270可以通过I2S接口向无线通信模块260传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块270与无线通信模块260可以通过PCM总线接口耦合。在一些实施例中,音频模块270也可以通过PCM接口向无线通信模块260传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器210与无线通信模块260。例如:处理器210通过UART接口与无线通信模块260中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块270可以通过UART接口向无线通信模块260传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器210与显示屏294,摄像头293等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器210和摄像头293通过CSI接口通信,实现终端220的拍摄功能。处理器210和显示屏294通过DSI接口通信,实现终端220的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器210与摄像头293,显示屏294,无线通信模块260,音频模块270,传感器模块280等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口230是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口230可以用于连接充电器为终端220充电,也可以用于终端220与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端220的结构限定。在本申请另一些实施例中,终端220也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块240可以通过终端220的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
终端120的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端120中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在终端120上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其他功能模块设置在同一个器件中。
无线通信模块260可以提供应用在终端120上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端120的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得终端120可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端120通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端120可以包括1个或N个显示屏294,N为大于1的正整数。
终端120可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
ISP用于处理摄像头293反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头293中。
摄像头293用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端120可以包括1个或N个摄像头293,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端120在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端220可以支持一种或多种视频编解码器。这样,终端120可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端120的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端120的存储能力。外部存储卡通过外部存储器接口120与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端120使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行终端120的各种功能应用以及数据处理。
终端120可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。在一些实施例中,音频模块270可以设置于处理器210中,或将音频模块270的部分功能模块设置于处理器210中。
扬声器270A,也称“喇叭”,用于将音频电信号转换为声音信号。终端120可以通过扬声器270A收听音乐,或收听免提通话。
受话器270B,也称“听筒”,用于将音频电信号转换成声音信号。当终端120接听电话或语音信息时,可以通过将受话器270B靠近人耳接听语音。
麦克风270C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风270C发声,将声音信号输入到麦克风270C。终端120可以设置至少一个麦克风270C。在另一些实施例中,终端120可以设置两个麦克风270C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端120还可以设置三个,四个或更多麦克风270C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口270D用于连接有线耳机。耳机接口270D可以是USB接口230,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器280A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280A可以设置于显示屏294。压力传感器280A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器280A,电极之间的电容改变。终端120根据电容的变化确定压力的强度。当有触摸操作作用于显示屏294,终端120根据压力传感器280A检测所述触摸操作强度。终端120也可以根据压力传感器280A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器280B可以用于确定终端120的运动姿态。在一些实施例中,可以通过陀螺仪传感器280B确定终端120围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器280B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器280B检测终端120抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端120的抖动,实现防抖。陀螺仪传感器280B还可以用于导航,体感游戏场景。
气压传感器280C用于测量气压。在一些实施例中,终端120通过气压传感器280C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器280D包括霍尔传感器。终端120可以利用磁传感器280D检测翻盖皮套的开合。在一些实施例中,当终端120是翻盖机时,终端120可以根据磁传感器280D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器280E可检测终端120在各个方向上(一般为三轴)加速度的大小。当终端120静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器280F,用于测量距离。终端120可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端120可以利用距离传感器280F测距以实现快速对焦。
接近光传感器280G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端120通过发光二极管向外发射红外光。终端120使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端120附近有物体。当检测到不充分的反射光时,终端120可以确定终端120附近没有物体。终端120可以利用接近光传感器280G检测用户手持终端120贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器280G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器280L用于感知环境光亮度。终端120可以根据感知的环境光亮度自适应调节显示屏294亮度。环境光传感器280L也可用于拍照时自动调节白平衡。环境光传感器280L还可以与接近光传感器280G配合,检测终端120是否在口袋里,以防误触。
指纹传感器280H用于采集指纹。终端120可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器280J用于检测温度。在一些实施例中,终端120利用温度传感器280J检测的温度,执行温度处理策略。例如,当温度传感器280J上报的温度超过阈值,终端120执行降低位于温度传感器280J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端120对电池242加热,以避免低温导致终端120异常关机。在其他一些实施例中,当温度低于又一阈值时,终端120对电池242的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器280K,也称“触控器件”。触摸传感器280K可以设置于显示屏294,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于终端120的表面,与显示屏294所处的位置不同。
骨传导传感器280M可以获取振动信号。在一些实施例中,骨传导传感器280M可以获取人体声部振动骨块的振动信号。骨传导传感器280M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器280M也可以设置于耳机中,结合成骨传导耳机。音频模块270可以基于所述骨传导传感器280M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器280M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。终端120可以接收按键输入,产生与终端120的用户设置以及功能控制有关的键信号输入。
马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏294不同区域的触摸操作,马达291也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
当然,终端120还可以包括其他功能单元,本申请实施例对此不进行限定。
下面以图2(1)所示架构为例,对本申请实施例提供的数据同步方法进行描述。下述实施例中的各单元可以具备图2(1)所示部件,不予赘述。本申请实施例中的创建(create)也可以理解为生成(generate)或者确定,本申请实施例中的“携带”也可以理解为“包括”,在此统一说明,本申请实施例对此不作具体限定。
此外,本申请的各实施例之间涉及的动作,术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。
参见图2(2),图2(2)是本申请实施例提供的第一电子设备的软件结构框图。
如图2(2)所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些可行的实施方式中,可将安卓系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2(2)所示,应用程序包可以包括蓝牙,设备管理应用(具备设备管理功能的应用),导航,备忘录,WLAN,短消息,图库,日历,通话等应用程序(application,APP)。
应用程序框架层为应用程序层的应用程序提供应用编程接口和编程框架。应用程序框架层包括一些预先定义的函数。
如图2(2)所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。上述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端120的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
需要说明的是,图2(2)中所示的同步模块可以集成在应用框架层中,也可以集成具体的应用程序中,如备忘录中。本申请实施例不做具体限定。
为了方便对本申请技术方案的理解,首先对本申请实施例涉及到的相关技术进行解释说明。
1、数据同步
数据同步是指利用服务器在多个终端之间进行数据同步。
示例性的,当终端上的数据更新时,该终端将更新数据更新到服务器。当服务器上的数据更新时,服务器通知多个终端从服务器上获取更新的数据。这样,多个终端及服务器上的数据均保持一致。
2、数据更新
数据更新是指数据发生变化,如,数据新增、数据删除、数据修改等。
其中,数据更新可以分为上行数据更新和下行数据更新。
上行数据更新是指:当终端上的数据更新时,终端将更新数据更新到服务器。
下行数据更新是指:当服务器上的数据更新时,终端从服务器上获取更新的数据。
在详细描述本申请的技术方案之前,先对现有的数据同步方法进行介绍。
如图3所示,为一种数据同步方法的流程示意图。该数方法流程如下:
S301、接收用户对第一应用程序APP(简称第一APP)的数据的操作。
其中,操作可以包括增加操作、删除操作和修改操作等。
S302、响应于用户对第一APP的数据的操作,第一APP为更新的数据配置更新标识。
S303、第一APP向服务器发送数据变更请求,该数据变更请求中携带更新的数据。
相应的,服务器接收到更新的数据。
S304、服务器更新数据。
S305、服务器将更新结果发送给第一APP,该更新结果可以包括更新成功。当然,也可以包括更新失败。相应的,第一APP接收到服务器发送的更新结果。
S306、第一APP更新数据并删除更新标识。
S307、服务器向第二APP发送数据变更通知,相应的,第二APP接收数据变更通知。
S308、第二APP向服务器发送数据获取请求。相应的,服务器接收数据获取请求。
S309、服务器将更新的数据发送给第二APP。相应的,第二APP接收服务器发送的更新的数据。
S310、第二APP更新数据。
在具体实施时,以第一APP和第二APP是备忘录应用程序为例,当用户编辑第一终端上的备忘录时,即使在同步数据业务中的第二终端也在线,但第二终端并没有打开备忘录。可见,第一终端和第二终端对备忘录的同步数据的实时性要求不同,以下对不同实时性需求的场景进行举例说明:
1)高实时性场景
示例1,当用户在第一终端上编辑备忘录时,用户在第二终端上也打开了这个备忘录,那么,用户会希望在第一终端上编辑的备忘录能够尽快在第二终端上同步展示出来。
2)低实时性场景
示例2,当用户在第一终端上编辑备忘录时,用户在第二终端上并没有打开这个备忘录,那么说明,用户不在关注第二终端上的备忘录的数据是否实时更新,只需要保证在下次第二终端打开备忘录时,第二终端上的备忘录的数据是最新的。
因此,当用户频繁编辑第一终端上的备忘录时,该第一终端会频繁更新数据,增大了第一终端的资源损耗,同时,增大了服务器的压力。若第二终端等其他终端并不关注备忘录更新的数据,则第一终端频繁更新数据变得毫无意义。因此,如何平衡同步数据实时性和资源消耗变得至关重要。
为了解决上述技术问题,本申请实施例提供一种数据同步方法,该方法包括第一终端接收用户对第一终端上的第一应用程序的第一操作。第一终端响应于第一操作,显示第一界面。第二终端接收用户对第二终端上的第一应用程序的第二操作。第二终端响应于第二操作,显示第二界面,第二界面内容与第一界面内容不同。第一终端接收用户对第一界面的第三操作。响应于第三操作,第一终端向服务器上传第一应用程序的数据,并且,第二终端从服务器下载第一应用程序的数据并显示第三界面,其中,第一应用程序的数据包括第一界面的数据;第三界面与第一界面相同。
其中,第一操作可以用于启动第一应用程序,或者,浏览应用程序的界面。
当第二终端对同步实时性要求不高时,用户操作第一终端上的应用程序,第一终端能够拉长同步更新数据的间隔,可以减少同步请求次数和数量,从而节约网络带宽和耗电,降低服务器IO连接数。服务器能够合并通知,减少通知发送数量,降低服务器资源和网络带宽。当第二终端对同步实时性要求高时,用户操作第一终端上的应用程序,第一终端能够实时更新数据,能够保持同步的高实时性,保证用户使用应用程序体验。
在一种具体实现方式中,第一终端接收用户对第一终端上的第一应用程序的第一操作,并响应于第一操作,显示第一界面,向服务器发送第一请求,第一请求用于请求建立第一会话。第二终端接收用户对第二终端上的第一应用程序的第二操作,并响应于第二操作,向服务器发送第二请求,第二请求用于请求建立第二会话。服务器根据第一请求建立第一会话,及根据第二请求建立第二会话,根据第一请求确定第一会话的第一状态和第二会话的第二状态。第一终端接收用户对第一界面的第三操作,并响应于第三操作,显示第二界面,并按照第一会话的第一状态对应的实时性策略,与服务器传输第一应用程序的数据。第二终端按照第二会话的第二状态对应的实时性策略,与服务器传输第一应用程序的数据,并显示第三界面,第三界面的界面信息与第二界面的界面信息一致或不一致。
其中,实时性策略可以包括高实时性策略和低实时性策略。而第一应用程序执行的实时性策略是由该用户其他终端上的应用程序的状态决定的。示例性的,在具体实施时,在低实时性场景中,第一终端可以采用低实时性策略发送更新数据。在高实时性场景中,第一终端可以采用高实时性策略发送更新数据。这样,第一终端在发送更新数据时按照实时性策略发送的,既能保证用户数据同步实时性要求,又能最大程度减少资源消耗。
本申请实施例应用于各种多终端同步数据的业务,例如,通讯录、备忘录、日历、书签、文档、短信、邮件、相片、第三方应用程序等业务。当然,本申请实施例并不局限于上述业务。具体实施时,本申请实施例以备忘录业务为例进行说明。
以下,以第一终端是第一手机120,第二终端是第二手机160,第一手机120与第二手机160中的备忘录同步的场景为例,对本申请实施例提供的一种数据同步方法进行详细介绍。
图4(1)为本申请实施例提供的一种数据同步方法的会话建立阶段的流程示意图;图4(2)为本申请实施例提供的一种数据同步方法的会话建立阶段的流程示意图;图4(3)为本申请实施例提供的一种数据同步方法的会话建立阶段的流程示意图。结合图4(1)、图4(2)和图4(3)所示,该方法可以包括:
S4001、第一手机120接收用户对第一手机120上的第一备忘录的第一操作。
其中,第一操作可以指手势操作,该手势操作可以包括点击操作、按压操作、滑动操作等。该点击操作还可以包括点击操作和双击操作等。
该第一操作用于指示第一备忘录启动建立会话功能。该第一操作可以是操作第一备忘录的图标,也可以是操作备忘录上的控件。
第一,第一操作是操作第一备忘录的图标。
示例性的,S4001的具体实现可以是:如图7所示,为第一手机120的桌面的示意图。用户点击第一手机120的桌面101上的第一备忘录102,第一手机120接收用户对备忘录102的点击操作。也就是说,当用户点击第一手机120的第一备忘录102,即可启动建立会话功能。
第二,第一操作是操作第一备忘录上的控件。
其中,操作第一备忘录上的控件,可以包括两种情形:第一种,操作第一备忘录的界面上的控件;第二种,操作第一备忘录的应用设置上的选项。
第一种,操作备忘录的界面上的控件。
示例性的,S4001的具体实现还可以是:在用户对第一手机120上的备忘录的点击操作之后,第一手机120启动备忘录。此时,第一手机120显示第一界面,该第一界面可以为备忘录的启动界面,在该界面上还显示有用于请求建立会话的第一控件。例如,在用户点击图7所示的备忘录102之后,第一手机120的显示界面由图7所示的桌面102跳转至图8所示的第一界面201,在第一界面201上还显示有第一控件(如开启同步控件)202。用户点击图8所示的第一控件202,第一手机120接收用户对第一控件202的点击操作。也就是说,当用户点击第一备忘录102的界面上的控件,即可启动建立会话功能。
第二种,操作第一备忘录的应用设置上的选项。
示例性的,在第一备忘录的应用设置界面上,用户可以选择”建立会话功能”的开启选项。也就是说,当用户选择了开启选项,即可启动建立会话功能。当用户点击第一备忘录的图标时,第一备忘录需要检测”建立会话功能”是否开启。若开启,则执行S4011。
在一种具体可实现方式中,如图4(3)所示,S4001具体为,第一手机的第一备忘录接收到用户对第一备忘录的第一操作,第一备忘录向会话模块发送第一备忘录的状态,或者,会话模块获取第一备忘录的状态。
S4011、响应于第一操作,第一手机120向服务器110发送建立第一会话的第一请求,相应的,服务器110接收第一手机120发送的第一请求。
其中,第一会话可以理解为第一手机120与服务器110进行通讯的过程。具体的,本申请实施例中的第一会话可以理解为第一手机120与服务器110进行同步状态协商的过程,其可以包含或覆盖所有数据同步过程。
其中,第一请求中携带第一备忘录的状态。该备忘录的状态可以包括未启动状态、浏览状态和编辑状态等。预先定义:未启动状态和浏览状态为低实时性状态,即可表示为STATE_LOW;编辑状态为高实时性状态,即可表示为STATE_HIGH。
这里需要说明的是:
1、针对通讯录、日历、书签、文档、短信和邮件等业务,这些业务的浏览状态为低实时性状态,即可表示为STATE_LOW。其中,浏览可以指浏览目录、浏览某一文章具体内容等。这些业务的编辑状态为高实时性状态,即可表示为STATE_HIGH。
2、针对相片等业务,该业务的浏览状态为低实时性状态,即可表示为STATE_LOW。其中,浏览可以包括浏览图片、浏览视频等。该业务的编辑/复制状态为高实时性状态,即可表示为STATE_HIGH。
3、针对第三方应用程序等业务,如运动类应用程序。该业务的浏览状态为低实时性状态,即可表示为STATE_LOW。其中,浏览可以指浏览应用程序内的视频、浏览应用程序中的参数等。该业务的信息处理状态为高实时性状态,即可表示为STATE_HIGH。例如,信息处理可以指在用户运动过程中,检测用户的运动数据。
当然,第一请求中也可以携带实时性策略参数。例如:
在一种具体可实现方式中,响应于第一操作,第一手机120可以获取第一备忘录的状态。其中,第一备忘录的状态可以包括未启动状态、浏览状态和编辑状态等。第一手机120根据第一备忘录的状态配置实时性策略参数。示例性的,如图4(3)所示,当第一手机120的会话模块获取的第一备忘录的状态为浏览状态时,第一手机120的会话模块确定第一备忘录对数据同步的实时性要求较低,此时,第一手机120的会话模块配置实时性策略参数为低实时性参数,即第一请求对应的程序代码中携带REQ_NORMAL字段。当第一手机120的会话模块获取第一备忘录的状态为编辑状态时,第一手机120的会话模块确定备忘录对数据同步的实时性要求较高,此时,第一手机120的会话模块配置实时性策略参数为高实时性参数,即第一请求对应的程序代码中携带REQ_HIGH字段。
在另一种具体可实现方式中,如图4(3)所示,响应于第一操作,第一备忘录根据第一备忘录的状态,配置实时性策略参数,并将实时性策略参数携带在第一请求中发送给第一手机的会话模块。示例性的,当第一备忘录的状态为浏览状态时,第一备忘录配置实时性策略参数为低实时性参数,并将实时性策略参数携带在第一请求,即第一请求对应的程序代码中携带REQ_NORMAL字段。当第一备忘录的状态为编辑状态时,第一备忘录配置实时性策略参数为高实时性参数,并将实时性策略参数携带在第一请求,即第一请求对应的程序代码中携带REQ_HIGH字段。
当然,该第一请求中并不局限于携带实时性策略参数,或备忘录的状态,还可以携带其他信息,如用户标识、第一手机标识等。本申请实施例不做具体限定。
S4021、服务器110根据第一请求,建立第一会话。
S4031、服务器110向第一手机120发送会话创建完成的通知。
同理,第二手机160与第一手机120请求建立会话的过程相同。具体如下所述:
S4002、第二手机160接收用户对第二手机上的第二备忘录的第二操作。
其中,第二操作可以与第一操作相同,可参见上述第一操作的相关描述,在此不再赘述。
S4002与S4001的实现方式相同,本申请实施例在此不再赘述。
S4012、响应于第二操作,第二手机160向服务器110发送建立第二会话的第二请求,相应的,服务器110接收第二手机160发送的第二请求。
其中,第二会话可以理解为第二手机160与服务器110进行通讯的过程。具体的,本申请实施例中的第二会话可以理解为第二手机160与服务器110进行同步状态协商的过程,其可以包含或覆盖所有数据同步过程。
其中,第二请求中可以携带第二备忘录的状态,也可以携带实时性策略参数。具体的,S4012与S4011的实现方式相同,本申请实施例在此不再赘述。
S4022、服务器110根据第二请求,建立第二会话。
S4032、服务器110向第二手机160发送会话创建完成的通知。
在服务器110与第一手机120建立第一会话,及服务器110与第二手机160建立第二会话之后,服务器110确定第一会话和第二会话的状态,具体如下所述:
S4041、服务器110根据第一请求,确定第一会话的第一状态。
其中,该第一状态可以用于表征第一手机120对同一用户的其他终端的数据同时实时性要求。
上述第一请求中可以携带第一手机120上第一备忘录的状态,也可以携带实时性策略参数。以下针对第一请求携带的不同信息进行详细描述:
第一,第一请求中携带第一手机120上第一备忘录的状态。
若第一手机120发送的第一请求中携带STATE_HIGH字段,则服务器110可以确定第一会议的第一状态为高实时性状态,即可表示为CLIENT_STATE_HIGH。若第一手机120发送的第一请求中均携带STATE_LOW字段,则服务器110可以确定第一会议的第一状态为低实时性状态,即可表示为CLIENT_STATE_LOW。
第二,第一请求中携带实时性策略参数。
若第一请求中携带实时性策略参数,则服务器110可以根据实时性策略参数确定第一会话的第一状态。例如,若第一手机120发送的第一请求中携带REQ_HIGH字段,则服务器110确定第一会话的第一状态为高实时性状态,即可表示为CLIENT_STATE_HIGH。若第一手机120发送的第一请求中携带REQ_LOW字段,则服务器110确定第一会话的第一状态为低实时性状态,即可表示为CLIENT_STATE_LOW。
当然,第一手机120也可以根据第一请求确定第一会话的第一状态。示例性的,S4040、第一请求携带第一备忘录的状态,第一手机120也可以根据第一备忘录的状态确定第一会话的第一状态。例如,第一备忘录的状态为高实时性状态,第一手机120确定第一会议的第一状态为高实时性状态;第一备忘录的状态为低实时性状态,第一手机120确定第一会议的第一状态为低实时性状态。
S4051、服务器110根据第二请求,确定第一会话的第二状态。
其中,该第二状态可以用于表征同一用户的其他终端对第一手机120的数据同步实时性要求。
上述第二请求同第一请求一样,可以携带第二手机160上第二备忘录的状态,也可以携带实时性策略参数。以下针对第二请求携带的不同信息进行详细描述:
第一,第二请求中携带第二手机160上第二备忘录的状态。
若第二手机160发送的第二请求中携带STATE_HIGH字段,则服务器110确定第一会话的第二状态为高实时性状态,即可表示为CLOUD_STATE_HIGH。若第二手机160发送的第二请求中均携带STATE_LOW字段,则服务器110确定第一会话的第二状态为低实时性状态,即可表示为CLOUD_STATE_LOW。
在服务器110确定第一会话的第二状态之后,服务器110根据的第一会话的第二状态配置实时性策略。例如,第一会话的第二状态为高实时性状态,此时,服务器110配置实时性策略为高实时性策略。第一会话的第二状态为低实时性状态,此时,服务器110配置实时性策略为低实时性策略。
第二,第二请求中携带实时性策略参数。
若第二请求中携带实时性策略参数,则服务器110可以确定第一会话的第二状态。例如,若第二手机160发送的请求中携带REQ_HIGH字段,则服务器110确定第一会话的第二状态为高实时性状态,即可表示为CLOUD_STATE_HIGH。若第二手机160发送的请求中携带REQ_LOW字段,则服务器110确定第一会话的第二状态为低实时性状态,即可表示为CLOUD_STATE_LOW。
S4061、服务器110将第一会话的第二状态发送给第一手机120,相应的,第一手机120接收第一会话的第二状态。
需要说明的是,服务器110可以将第一会话的第二状态携带在会话创建完成的通知上,一同发送给第一手机120。
同理,服务器110确定第二会话的状态与确定第一会话的状态的实现方式相同。
S4042、服务器110根据第二请求,确定第二会话的第一状态。
具体实现方式同上述S4041,具体如以下方式:
方式一,若第二手机160发送的第二请求中携带STATE_HIGH字段,则服务器110确定第二会话的第一状态为高实时性状态,即可表示为CLIENT_STATE_HIGH。若第二手机160发送的第二请求中均携带STATE_LOW字段,则服务器110确定第二会话的第一状态为低实时性状态,即可表示为CLIENT_STATE_LOW。
方式二,若第二请求中携带实时性策略参数,则服务器110可以确定第二会话的第一状态。例如,若第二手机160发送的第二请求中携带REQ_HIGH字段,则服务器110确定第二会话的第一状态为高实时性状态,即可表示为CLIENT_STATE_HIGH。若第二手机160发送的请求中携带REQ_LOW字段,则服务器110确定第二会话的第一状态为低实时性状态,即可表示为CLIENT_STATE_LOW。
也就是说,第二手机160也可以根据第二请求确定第二会话的第一状态。示例性的,S4040’、第二请求携带第二备忘录的状态,第二手机160也可以根据第二备忘录的状态确定第二会话的第一状态。具体实现方式与上述S4040的实现方式相似,在此不再赘述。
S4052、服务器110根据第一请求,确定第二会话的第二状态。
具体实现方式同上述S4051,具体如下:
方式一,若第一手机120发送的第一请求中携带STATE_HIGH字段,则服务器110可以确定第二会议的第二状态为高实时性状态,即可表示为CLOUD_STATE_HIGH。若第一手机120发送的第一请求中均携带STATE_LOW字段,则服务器110可以确定第一会议的第二状态为低实时性状态,即可表示为CLOUD_STATE_LOW。
方式二,若第一请求中携带实时性策略参数,则服务器110可以根据实时性策略参数确定第二会话的第二状态。例如,若第一手机120发送的第一请求中携带REQ_HIGH字段,则服务器110确定第二会话的第二状态为高实时性状态,即可表示为CLOUD_STATE_HIGH。若第一手机120发送的第一请求中携带REQ_LOW字段,则服务器110确定第二会话的第二状态为低实时性状态,即可表示为CLOUD_STATE_LOW。
S4062、服务器110将第二会话的第二状态发送给第二手机160,相应的,第二手机160接收第二会话的第二状态。
综上,服务器110返给终端的会话的状态是根据其他终端上的会话的状态确定。终端上的会话的状态均与服务器110返回的会话的状态为准。
其中,服务器110可以为每个终端创建一个会话(或称协同会话),可能同时存在多个会话(如第一会话和第二会话)。同一用户的多个终端(如第一手机120和第二手机160)的会话成为一个会话组。如图5所示,为服务器110对同一用户的一个会话组的管理的示意图。在图5中,每个协同会话可以包括:
用户ID:用于标识用户。可以理解为,同一用户的会话组的用户ID相同。
会话ID:用于标识会话。也就是说,每个协同会话的ID不同,会话ID是在会话创建时生成的,在会话更新时可以用于指定会话进行更新。
终端ID:用于标识终端。或者说,终端ID用于关联终端。在具体应用中,当需要向终端发送推送(PUSH)通知时,终端ID可以用于指定终端接收推送(PUSH)通知。
第一状态:根据终端本端的行为而确定的,终端本端的第一状态与至少一个对端的第二状态同步。
在一些实施例中,为终端对其他终端的数据同步实时性要求,其保留在服务器110上,用于服务器110控制终端执行实时性策略。
第二状态:根据对端的行为而确定的,终端本端的第二状态与至少一个对端的第一状态同步。
在一些实施例中,为其他终端对本终端的数据同步实时性要求。其返回给终端,用于同步代理控制终端执行实时性策略。
其中,同步代理用于代理应用程序(如备忘录)发送或接收数据。在本申请实施例中,同步代理可以指数据模块、会话模块和推送模块构成的代理单元。
在会话组中,当会话组里的会话的状态发生变化时,会影响其他会话的状态变更。如图4(2)、图4(3)和图4(4)所示,具体如下所述:
第一手机120的第一会话的第一状态变化,会影响第二手机160的第二会话的第二状态。
示例性的,假设第一会话的第一状态为低实时性状态。
S4101、第一手机120接收用户对第一手机120上的第一备忘录的第三操作,将第一会话的第一状态更改为高实时性状态。
例如,在第一手机120接收到服务器110发送的第一会话的会话状态之后,或者,在第一手机120保持第一会话的会话状态时,第一手机120显示如图10所示的第二界面301,在该第二界面301上还显示第二控件302,该第二控件302为用于启动编辑的控件。第一手机120接收用户对第二控件的第三操作。此时,第一手机120确定第一会话的第一状态由低实时性状态更改为高实时性状态。
S4111、响应于第三操作,第一手机120向服务器110发送用于将低实时性状态更改为高实时性状态的第三请求(或称第五请求)。相应的,服务器110接收第三请求。
其中,第三请求中可以携带会话状态的变化信息。例如,会话的状态由低实时性状态切换为高实时性状态。
在一种实现方式中,当用户对第二控件的第三操作后,响应于第三操作,第一手机120获取到备忘录的状态由低实时性状态变为高实时性状态。此时,第一手机120配置实时性策略参数为高实时性策略参数,并将高实时性策略参数携带在第三请求中发送给服务器110。
在另一种实现方式中,当用户对第二控件的第三操作后,响应于第三操作,第一手机120获取到备忘录的状态由低实时性状态变为高实时性状态。此时,第一手机120将低实时性状态切换为高实时性状态携带在第三请求中发送给服务器110。
S4121、服务器110根据第三请求,更改第一会话的第一状态为高实时性状态。
沿用上述示例,当服务器110接收到携带有高实时性策略参数的第五请求,服务器110根据第三请求,确定第一会话的第一状态为高实时性状态。此时,服务器110将第一会话的第一状态由低实时性状态更改为高实时性状态。
S4131、服务器110确定第二会话的第二状态为高实时性状态。
沿用上述示例,当服务器110接收到携带有高实时性策略参数的第三请求,服务器110根据第三请求,确定第二会话的第二状态为高实时性状态。此时,服务器110将第二会话的第二状态更改为高实时性状态。
当服务器110确定第二会话的第二状态为高实时性状态后,第二手机160获取更新的第二会话的第二状态。具体实现方式如下:
方式一:第二手机160定时轮询第二会话的第二状态。
如图4(2)所示,1、假设第二会话的第一状态为低实时性状态。
S4072、第二手机160按照第二预设时间间隔向服务器110发送第四请求,该第四请求用于请求获取最新状态。相应的,服务器110接收第四请求。
S4082、服务器110根据第四请求,确定第二会话的第二状态为高实时性状态。
S4092、服务器110将最新会话状态发送给第二手机160。相应的,第二手机160接收该最新状态。
S4102、第二手机160将第二会话的第二状态更新为高实时性状态。
2、假设第二会话的第一状态为高实时性状态。
S4072’、第二手机160向服务器110发送第四请求,该第四请求用于请求获取最新状态。相应的,服务器110接收第四请求。
S4082’、服务器110根据第四请求,确定第二会话的第二状态保持高实时性状态。
S4092’、服务器110将最新会话状态发送给第二手机160。相应的,第二手机160接收该最新状态。
S4102’、第二手机160保持第二会话的第二状态更新为高实时性状态。
方式二:服务器110向第二手机160推送第二会话的第二状态.
如图4(3)所示,S4141、服务器110向第二手机160发送第二会话的第二状态。
服务器110将处于高实时性状态的第二会话的第二状态发送给第二手机160。
上述以第一会话的第一状态由低实时性状态向高实时性状态变化为例进行说明,同理,第一会话的第一状态由高实时性状态向低实时性状态变化的实现方式类似,在此不再赘述。
另外,上述以第一手机120的第一会话的第一状态变化,会影响第二手机160的第二会话的第二状态进行说明的,当然,第二手机160的第一会话的第一状态变化,会影响第一手机120的第一会话的第二状态。
示例性的,假设第二会话的第一状态为高实时性状态。
第二手机160接收用户对第二手机160上的第二备忘录的第四操作。响应于第四操作,第二手机160向服务器110发送更改会话状态的第六请求。相应的,服务器110接收第六请求。当服务器110接收到携带有将高实时性状态切换为低实时性状态的第六请求,并根据该请求确定第一会话的第二状态为高实时性状态,第二会话的第一状态为高实时性状态。
可见,在两个终端之间进行数据同步的场景下,第一会话的第一状态和第二会话的第二状态为相同的,其都是通过第一手机的第一备忘录的状态确定的。第一会话的第二状态和第一会话的第一状态为相同的,其都是通过第二手机的第二备忘录的状态确定的。
这里需要说明的是,在至少三个终端之间进行数据同步的场景下,第一终端的第一会话的第一状态和第二终端的第二会话的第一状态影响第三终端的第三会话的第二状态。示例性的,当第一终端和第二终端中至少一个终端的会话的第一状态为高实时性状态时,第三终端的第三会话的第二状态为高实时性状态;当第一终端和第二终端的会话的第一状态均为低实时性状态时,第三终端的第三会话的第二状态为低实时性状态。
S4151、第二手机160将第二会话的第二状态更新为高实时性状态。
在建立会话之后,各个终端之间可以同步数据,当某一个终端上的数据发生变化,可将变化的数据同步给其他终端。
如下详细介绍各个终端之间数据同步具体可实现过程:
在一种具体可实现方式中,第一状态用于表征在上传数据时的实时性要求,第二状态用于表征在下载数据时的实时性要求。
如图6(1a)所示,为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图;该方法还可以包括:
S6013、第一手机120接收用户对第一手机120上的第一备忘录的第五操作。
示例性的,用户对图9中(1)或图10所示的第二控件302的操作。
S6014、响应于第五操作,第一手机120根据第一会话的第一状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
当用户对图9中(1)或图10所示的第二控件302的第五操作后,响应于第五操作,第一手机120的界面由图10所示的界面301跳转至图11中(1)所示的界面401。在该界面401上还显示有编辑框402和第三控件403。用户可以在该编辑框402中输入编辑内容,如,备忘录内容6,……,等等。
S6015、服务器110更新备忘录的数据。
当用户在图11中(1)所示的界面401中编辑框402中输入“备忘录内容6”时,第一手机120的第一会话的第一状态为高实时性状态,相应的,第二手机160的第二会话的第二状态为高实时性状态。第一手机120接收用户在编辑框中输入的编辑内容。第一手机120的备忘录将用户的编辑内容发送给如图6(3)中的数据模块。数据模块接收到用户的编辑内容更新备忘录的数据。同时,第一手机120实时向服务器110上传更新数据。服务器110更新备忘录的数据。
当第二手机需要从服务器110下载更新数据时,具体可采用如下方式:
S6016、第二手机确定服务器上的数据发生变化。
具体可采用以下方式实现:
方式一,S60161、第二手机与服务器建立TCP/HTTP长连接。S60162、服务器根据第二会话的第二状态,通过TCP/HTTP长连接向第二手机发送通知。
第二会话的第二状态可以为低实时性状态或高实时性状态。具体如方式二中的相关描述,在此不再赘述。
方式二,S60163、第二手机向服务器请求订阅通知。S60164、服务器根据第二会话的第二状态,向第二手机推送数据变更通知。
数据变更通知用于通知第二手机160服务器上的数据发送变化。
方式三,S60165、第二手机启动定时监测。S60166、第二手机根据第二会话的第一状态查询到服务器上的数据发送变化。
S6017、第二手机根据第二会话的第一状态向服务器发送数据获取请求。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
上述第一会话的第一状态与第二会话的第二状态一致,第一会话的第二状态与第二会话的第一状态一致。示例性的,第一会话的第一状态为低实时性状态,相应的,第二会话的第二状态也为低实时性状态。结合数据同步的实现过程,如下所述:
如图6(1b)所示,为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图,该方法还包括:
S6013、第一手机120接收用户对第一手机120上的第一备忘录的第五操作。
本步骤具体描述如上所述,在此不再赘述。
S6014、响应于第五操作,第一手机120根据第一会话的第一状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
其中,根据第一会话的第一状态的不同,第一手机120向服务器上传更新数据可以采用以下方式,具体可以为:
第一手机的数据模块获取第一手机的会话模块上的第一会话的第一状态,并将更新数据按照第一状态对应的实时性策略发送给服务器的数据模块。如,当第一会话的第一状态为STATE_LOW,对于同步代理来说,不需要及时同步数据到服务器。服务器的数据模块更新备忘录的数据。
示例性的,如图6(1b)所示,S6014具体可实现为:S60141、若第一会话的第一状态为低实时性状态,则第一手机120确定是否满足发送数据的第二预设时间间隔。若不满足,则第一手机120延迟将备忘录的更新数据发送给服务器110;若满足,则第一手机120将备忘录的更新数据发送给服务器110。
S6015、服务器110更新备忘录的数据。
本步骤具体描述如上所述,在此不再赘述。
S6016、第二手机确定服务器上的数据发生变化。
具体的,如图6(3)所示,服务器的数据模块将数据变更通知发送给服务器的会话模块,服务器的会话模块按照第二会话的第二状态对应的实时性策略将数据变更通知发送给推送模块,服务器的推送模块将数据变更通知发送给第二手机的推送模块,第二手机的推送模块将数据变更通知发送给第二手机的会话模块,第二手机的会话模块按照第二会话的第二状态对应的实时性策略将数据变更通知发送给数据模块。如图6(1b)所示,具体的:
若第二会话的第二状态为低实时性状态,则S61163、服务器确定是否满足发送通知的第三预设时间间隔。若不满足,则执行S62163;若满足,则执行S63163。S62163、服务器延迟发送数据变更通知。S63163、服务器将数据变更通知发送给第二手机。
S6017、第二手机根据第二会话的第二状态向服务器发送数据获取请求。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
其中,S6017-S6020具体描述如上所述,在此不再赘述。
上述第一会话的第一状态与第二会话的第二状态一致,第一会话的第二状态与第二会话的第一状态一致。示例性的,第一会话的第一状态为高实时性状态,相应的,第二会话的第二状态也为高实时性状态。结合数据同步的实现过程,如下所述:
如图6(1b)所示,为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图,该方法还包括:
S6013、第一手机120接收用户对第一手机120上的第一备忘录的第五操作。
本步骤具体描述如上所述,在此不再赘述。
S6014、响应于第五操作,第一手机120根据第一会话的第一状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
其中,根据第一会话的第一状态的不同,第一手机120向服务器上传更新数据可以采用以下方式,具体为:
第一手机的数据模块获取第一手机的会话模块上的第一会话的第一状态,并将更新数据按照第一状态对应的实时性策略发送给服务器的数据模块。如,当第一会话的第一状态为STATE_HIGH,对于同步代理来说,需要及时同步数据到服务器。服务器的数据模块更新备忘录的数据。
示例性的,S6014具体可实现方式为:S60142、若第一会话的第一状态为高实时性状态,则第一手机120实时将备忘录的更新数据发送给服务器110。
S6015’、服务器110更新备忘录的数据。
S6015’与S6015相同,具体实现可以详见上述相关内容,在此不再赘述。
S6016、第二手机确定服务器上的数据发生变化。
具体的,如图6(3)所示,服务器的数据模块将数据变更通知发送给服务器的会话模块,服务器的会话模块按照第二会话的第二状态对应的实时性策略将数据变更通知发送给推送模块,服务器的推送模块将数据变更通知发送给第二手机的推送模块,第二手机的推送模块将数据变更通知发送给第二手机的会话模块,第二手机的会话模块按照第二会话的第二状态对应的实时性策略将数据变更通知发送给数据模块。如图6(1b)所示,具体的:
若第二会话的第二状态为高实时性状态,则S64163、服务器实时将备忘录的更新的数据发送给第二手机。
S6017’、第二手机确定第二会话的第一状态。
S6017、第二手机根据第二会话的第一状态向服务器发送数据获取请求(如第七请求)。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
其中,S6017-S6020具体描述如上所述,在此不再赘述。
在另一种具体可实现方式中,第一状态用于表征在下载数据时的实时性要求,第二状态用于表征在上传数据时的实时性要求。
图6(2a)为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图;该方法还可以包括:
S6013’、服务器110更新第一会话的第二状态,并向第一手机120发送第一会话的第二状态。
在一种可实现方式中,当第二手机160接收用户对第二手机160上的第二备忘录的操作时,第二手机160确定第二会话的第一状态。同上述,第二会话的第一状态与第一会话的第二状态一致,故服务器110根据第二请求中携带的第二备忘录的状态,更新第一会话的第二状态。
S6014、第一手机120根据第一会话的第二状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
本步骤具体描述如上所述,在此不再赘述。
S6015、服务器110更新备忘录的数据。
本步骤具体描述如上所述,在此不再赘述。
当第二手机需要从服务器110下载更新数据时,具体可采用如下方式:
S6016、第二手机确定服务器上的数据发生变化。
具体可采用以下方式实现:
方式一,S60161、第二手机与服务器建立TCP/HTTP长连接。S60162、服务器根据第二会话的第一状态,通过TCP/HTTP长连接向第二手机发送通知。
第二会话的第一状态可以为低实时性状态或高实时性状态。具体如下相关描述,在此不再赘述。
方式二,S60163、第二手机向服务器请求订阅通知。S60164、服务器根据第二会话的第一状态,向第二手机推送数据变更通知。
数据变更通知用于通知第二手机160服务器上的数据发送变化。
方式三,S60165、第二手机启动定时监测。S60166、第二手机根据第二会话的第一状态查询到服务器上的数据发送变化。
S6017、第二手机根据第二会话的第二状态向服务器发送数据获取请求。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
其中,S6017-S6020具体描述如上所述,在此不再赘述。
上述第一会话的第一状态与第二会话的第二状态一致,第一会话的第二状态与第二会话的第一状态一致。示例性的,第一会话的第二状态为低实时性状态,相应的,第二会话的第一状态也为低实时性状态。结合数据同步的实现过程,如下所述:
如图6(2b)所示,为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图,该方法还包括:
S6013’、服务器110更新第一会话的第二状态,并向第一手机120发送第一会话的第二状态。
本步骤具体描述如上所述,在此不再赘述。
S6014、第一手机120根据第一会话的第一状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
其中,根据第一会话的第二状态的不同,第一手机120向服务器上传更新数据可以采用以下方式,具体为:
第一手机的数据模块获取第一手机的会话模块上的第一会话的第二状态,并将更新数据按照第二状态对应的实时性策略发送给服务器的数据模块。如,当第一会话的第二状态为CLOUD_STATE_LOW,对于同步代理来说,不需要及时同步数据到服务器。服务器的数据模块更新备忘录的数据。
示例性的,如图6(2b)所示,S6014具体可实现为:S60141’、若第一会话的第二状态为低实时性状态,则第一手机120确定是否满足发送数据的第二预设时间间隔。若不满足,则第一手机120延迟将备忘录的更新数据发送给服务器110;若满足,则第一手机120将备忘录的更新数据发送给服务器110。
S6015、服务器110更新备忘录的数据。
本步骤具体描述如上所述,在此不再赘述。
当第二手机需要从服务器110下载更新数据时,具体可采用如下方式:
S6016、第二手机确定服务器上的数据发生变化。
具体可采用以下方式实现:
具体的,如图6(3)所示,服务器的数据模块将数据变更通知发送给服务器的会话模块,服务器的会话模块按照第二会话的第一状态对应的实时性策略将数据变更通知发送给推送模块,服务器的推送模块将数据变更通知发送给第二手机的推送模块,第二手机的推送模块将数据变更通知发送给第二手机的会话模块,第二手机的会话模块按照第二会话的第一状态对应的实时性策略将数据变更通知发送给数据模块。如图6(2b)所示,具体的:
若第二会话的第一状态为低实时性状态,则S61163’、服务器确定是否满足发送通知的第三预设时间间隔。若不满足,则执行S62163’;若满足,则执行S63163’。S62163’、服务器延迟发送数据变更通知。S63163’、服务器将数据变更通知发送给第二手机。
S6017’、第二手机确定第二会话的第一状态。
S6017、第二手机根据第二会话的第一状态向服务器发送数据获取请求(如第七请求)。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
其中,S6017-S6020具体描述如上所述,在此不再赘述。
上述第一会话的第一状态与第二会话的第二状态一致,第一会话的第二状态与第二会话的第一状态一致。示例性的,第一会话的第二状态为高实时性状态,相应的,第二会话的第一状态也为高实时性状态。结合数据同步的实现过程,如下所述:
如图6(2b)所示,为本申请实施例提供的一种数据同步方法的数据更新阶段的流程示意图,该方法还包括:
S6013、第一手机120接收用户对第一手机120上的第一备忘录的第五操作。
本步骤具体描述如上所述,在此不再赘述。
S6014、响应于第五操作,第一手机120根据第一会话的第一状态将备忘录的更新数据发送给服务器110。相应的,服务器110接收备忘录的更新数据。
其中,根据第一会话的第二状态的不同,第一手机120向服务器上传更新数据可以采用以下方式,具体为:
第一手机的数据模块获取第一手机的会话模块上的第一会话的第二状态,并将更新数据按照第二状态对应的实时性策略发送给服务器的数据模块。如,当第一会话的第二状态为CLOUD_STATE_HIGH,对于同步代理来说,需要及时同步数据到服务器。服务器的数据模块更新备忘录的数据。
示例性的,如图6(2b)所示,S6014具体可实现为:S60142’、若第一会话的第二状态为高实时性状态,则第一手机120实时将备忘录的更新数据发送给服务器110。
S6015’、服务器110更新备忘录的数据。
S6015’与S6015相同,具体实现可以详见上述相关内容,在此不再赘述。
S6016、第二手机确定服务器上的数据发生变化。
具体的,如图6(3)所示,服务器的数据模块将数据变更通知发送给服务器的会话模块,服务器的会话模块按照第二会话的第一状态对应的实时性策略将数据变更通知发送给推送模块,服务器的推送模块将数据变更通知发送给第二手机的推送模块,第二手机的推送模块将数据变更通知发送给第二手机的会话模块,第二手机的会话模块按照第二会话的第一状态对应的实时性策略将数据变更通知发送给数据模块。如图6(2b)所示,具体的:
若第二会话的第一状态为高实时性状态,则S64163’、服务器实时将备忘录的更新的数据发送给第二手机。
S6017’、第二手机确定第二会话的第一状态。
S6017、第二手机根据第二会话的第一状态向服务器发送数据获取请求(如第七请求)。相应的,服务器接收到数据获取请求。
该数据获取请求用于请求服务器发送变更的数据。
S6018、服务器向第二手机发送更新的数据。
S6019、第二手机更新备忘录的数据。
S6020、第二手机显示备忘录的数据。
其中,S6017-S6020具体描述如上所述,在此不再赘述。
在一些实施例中,当用户不需要获取同步数据时,用户可以操作第一手机120和/或第二手机160,以删除会话。图6(4)为本申请实施例提供的一种数据同步方法的删除会话阶段的流程示意图;如图6(4)所示,该方法还可以包括:
S6023、第一手机120接收用户对第一手机120上的第一备忘录的第六操作。
该第六操作用于指示第一备忘录删除会话。该第六操作可以是操作备忘录上的控件。
其中,操作第一备忘录上的控件,可以包括两种情形:
第一种,操作第一备忘录的界面上的控件。
例如,在第一备忘录的界面上还显示用于删除会话的控件。当用户点击该控件后,第一手机向服务器发送会话删除请求,服务器根据该会话删除请求删除会话。
第二种,操作第一备忘录的应用设置上的选项。
例如,在第一备忘录的设置界面上有“用于删除会话”的选项。当用户选择该选项后,第一手机删除会话。或者,在第一备忘录的设置界面上有“建立会话”的选项。当用户不选择该选项后,第一手机删除会话。
S6024、响应于第六操作,发送第八请求,该第八请求用于请求删除会话。
S6027、服务器根据第八请求,删除第一会话。
同理,针对第二手机160删除会话的操作与第一手机120相同。
S6025、第二手机160接收用户对第二手机160上的第二备忘录的第七操作。
S6026、响应于第七操作,发送第九请求,该第九请求用于请求删除会话。
S6028、服务器根据第九请求,删除第二会话。
以下结合具体场景进行说明:
第一种情况,由于用户在第一手机的操作,来触发第一手机与第二手机的数据同步。
场景一:第一手机和第二手机均为低实时性状态,第一手机与第二手机的数据不会同步。例如,当用户操作图8所示的界面上控件202时,第一手机120的界面由图8所示的界面跳转至图9中(1)所示的界面301。此时,用户可以浏览界面301的内容,也可以编辑界面301的内容。当用户浏览界面301的内容时,第一手机120对第二手机160的实时性要求较低。也就是说,第一手机120的第一会话的第一状态为低实时性状态,第二手机160的第二会话的第二状态为低实时性状态。此时,第二手机160不需要实时同步数据,即第二手机160未获取同步数据,第二手机160上如图9中(2)所示的界面中显示为空白。
场景二:第一手机和第二手机均为高实时性状态,第一手机与第二手机的数据进行同步。
在一种实施例中,当用户编辑界面301的内容时,第一手机120对第二手机160的实时性要求较高。也就是说,第一手机120的第一会话的第一状态为高实时性状态,第二手机160的第二会话的第二状态为高实时性状态。此时,第二手机160需要实时同步数据,即第二手机160已获取同步数据,第二手机160的界面由图9中(2)所示的界面跳转至图9中(3)所示的界面。
在另一些实施例中,当用户在图10所示的界面301中点击“备忘录内容5”时,第一手机120的界面由图10所示的界面跳转至图11中(1)所示的界面。当用户在图11中(1)所示的界面中的编辑框中输入信息时,第一手机120的第一会话的第一状态为高实时性状态,相应的,第二手机160的第二会话的第二状态为高实时性状态。此时,第二手机160实时从服务器110下载更新数据,即第二手机160实时向服务器110发送数据获取请求。也就是说,第二手机160的界面由图9中(2)更新为图11中(2),且第一手机120显示图10的界面与第二手机160显示图11中(2)的界面同步更新数据。
在另一些实施例中,当用户在图12所示的界面上点击控件302时,第一手机120的界面由图12所示的界面跳转至图13所示的界面。当用户在图13所示的界面601中编辑框602中输入“备忘录内容6”,并点击控件603时,第一手机120的界面由图13所示的界面跳转至图14中(1)所示的界面701。此时,第一手机120的第一会话的第一状态为高实时性状态,相应的,第二手机160的第二会话的第二状态为高实时性状态。此时,第二手机160实时从服务器110下载更新数据,即第二手机160实时向服务器110发送数据获取请求。也就是说,第二手机160的界面由图11中(2)更新为图14中(2),且第一手机120显示图14中(1)的界面与第二手机160显示图14中(2)的界面同步更新数据。
第二种情况,由于用户在第二手机的操作,来触发第一手机与第二手机的数据同步。
场景三:第一手机和第二手机均为低实时性状态,第一手机与第二手机的数据不会同步。
沿用上述示例,当用户操作第一手机120的图12,图13,图14中(1)或图15中(2)时,第二手机160显示如图9中(2)或图15中(2)所示的界面。例如,当用户浏览第一手机120的图15中(1)所示的界面801的内容时,第一手机和第二手机均为低实时性状态,此时,第二手机160不需要实时同步数据,即第二手机160未获取同步数据,第二手机160上如图15中(2)所示的界面中显示为空白。
场景四:第一手机和第二手机均为高实时性状态,第一手机与第二手机的数据进行同步。
在一种实施例中,当用户操作第二手机中图15中(2)所示的界面上的控件903,此时,由于用户在第二手机上的操作,第二手机160对第一手机120的实时性要求较高,即第二手机160的第二会话的第一状态为高实时性状态。也就是说,第二手机160需要第一手机120实时上传数据,以实时下载第一手机120实时上传的数据。这样,第二手机160的显示界面由图15中(2)所示的界面跳转至图15中(3)所示的界面,与第一手机120的图15中(1)所示的界面同步。
在另一实施例中,当用户编辑第二手机160的图15中(3)所示的界面所示的“备忘录内容5”时,此时,第二手机160的第一会话的第一状态为高实时性状态,第二手机160对第一手机120的实时性要求较高。也就是说,第二手机160需要第一手机120实时上传数据,以实时下载第一手机120实时上传的数据。此时,第二手机160的界面由图15中(3)所示的界面跳转至图16中(1)所示的界面。当用户在第二手机160的图16中(1)所示的界面中的编辑框中继续输入信息(如拍照暂定于2021.6.6)时,第一手机120的界面由图15中(1)的界面跳转至图16中(2)所示的界面111,与第二手机160的图16中(1)所示的界面同步。
在一些实施例中,第一手机和第二手机均为高实时性状态,第二手机的数据会同步到第一手机中。当用户在第二手机160的图16中(1)所示的界面中的编辑框中输入信息(如拍照暂定于2021.6.6)时,并点击控件405完成编辑,此时,第一手机和第二手机均为高实时性状态,此时,第一手机120的界面由图15中(1)的界面跳转至图16中(2)所示的界面111,与第二手机160的图16中(1)所示的界面同步。
在一些实施例中,第一手机和第二手机均为高实时性状态,第一手机的数据会同步到第二手机中。当用户在第一手机120的图16中(2)所示的界面中的编辑框中继续输入信息(如请按时参加),即如图17中(2)所示,并点击控件406完成编辑。此时,第一手机和第二手机均为高实时性状态,第二手机160的界面由图16中(1)所示的界面跳转至图17中(1)所示的界面,与第一手机120的图17中(2)所示的界面同步。
本申请实施例的具体实现方式详见上述相关内容,本申请实施例不再赘述。
本申请上述实施例中的各个方案在不矛盾的前提下,均可以进行结合。
本申请实施例提供的又一种终端。该终端执行上述任一方法。
本申请实施例提供的一种系统,该系统执行上述任一方法。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方法。
本申请实施例还提供了一种芯片,该芯片包括处理器和接口电路,该接口电路和该处理器耦合,该处理器用于运行计算机程序或指令,以实现上述方法,该接口电路用于与该芯片之外的其它模块进行通信。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请的描述中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (41)
1.一种数据同步方法,其特征在于,
第一终端接收用户对所述第一终端上的第一应用程序的第一操作;
所述第一终端响应于所述第一操作,显示第一界面,所述第一界面内容与第二终端显示的第二界面内容不同;
所述第一终端接收用户对所述第一界面的第三操作;
响应于所述第三操作,所述第一终端向服务器上传所述第一应用程序的数据,并且,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第三界面,其中,所述第一应用程序的数据包括所述第一界面的数据;所述第三界面与所述第一界面相同。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述第一终端接收用户对所述第一界面的第四操作;
响应于所述第四操作,所述第一终端向所述服务器上传所述第一应用程序的数据并显示第四界面,并且,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第五界面,其中,所述第一应用程序的数据包括所述第四界面的数据;所述第五界面与所述第四界面相同。
3.根据权利要求1或2所述的方法,其特征在于,所述第一终端响应于所述第一操作,显示第一界面包括:
向所述服务器发送第一请求,所述第一请求用于请求建立第一会话,并根据所述第一操作,确定第一会话的第一状态,第一状态为低实时性状态;
所述服务器用于确定所述第二终端的第二会话的第二状态,所述第二会话的第二状态根据所述第一请求确定,所述第二会话的第二状态为低实时性状态。
4.根据权利要求3所述的方法,其特征在于,所述响应于第三操作,包括:
所述第一终端响应于所述第三操作,向所述服务器发送第三请求,所述第三请求用于请求将低实时性状态切换为高实时性状态;
所述第二终端用于从所述服务器获取所述第二会话的第二状态,并将所述第二会话的第二状态更新为高实时性状态。
5.根据权利要求3或4所述的方法,其特征在于,所述第一终端向所述服务器上传所述第一应用程序的数据,包括:
所述第一状态为低实时性状态,所述终端在第三预设时间间隔之后向所述服务器上传所述第一应用程序的数据,且所述第二终端在所述第三预设时间间隔之后从所述服务器获取所述第一应用程序的数据;
所述第一状态为高实时性状态,所述终端实时向所述服务器上传所述第一应用程序的数据,且所述第二终端实时从所述服务器获取所述第一应用程序的数据。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一请求中携带所述第一终端上的所述第一应用程序的状态,所述第一会话的第一状态和所述第二会话的第二状态是根据所述第一应用程序的状态确定的。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一请求中携带实时性策略参数,第一会话的第一状态和所述第二会话的第二状态是根据所述实时性策略参数确定的,所述实时性策略参数是根据所述第一终端上的第一应用程序的状态确定的。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
所述第一终端接收用户对所述第一终端上的所述第一应用程序的第六操作;
所述第一终端响应于所述第六操作,向所述服务器发送所述第七请求,所述第七请求用于请求删除会话。
9.根据权利要求1-8中任一项所述的方法,其特征在于,
所述第一状态或所述第二状态为低实时性状态,所述实时性策略为异步更新数据;
所述第一或所述第二状态为高实时性状态,所述实时性策略为同步更新数据。
10.根据权利要求1-9中任一项所述的方法,其特征在于,
所述第一应用程序包括方法应用程序和第三方应用程序,所述方法应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
11.一种数据同步方法,其特征在于,
第二终端接收用户对所述第二终端上的第一应用程序的第二操作;
所述第二终端响应于所述第二操作,显示第二界面,所述第二界面内容与第一终端的第一界面内容不同;
当所述第一终端接收用户对所述第一界面的第三操作,并响应于所述第三操作,所述第一终端向服务器上传所述第一应用程序的数据时,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第三界面,其中,所述第一应用程序的数据包括所述第一界面的数据;所述第三界面与所述第一界面相同。
12.根据权利要求11所述的方法,其特征在于,还包括:
当所述第一终端接收用户对所述第一界面的第四操作,并响应于所述第四操作,所述第一终端向所述服务器上传所述第一应用程序的数据并显示第四界面时,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第五界面,其中,所述第一应用程序的数据包括所述第四界面的数据;所述第五界面与所述第四界面相同。
13.根据权利要求11所述的方法,其特征在于,在第二终端响应于所述第二操作,显示第二界面,所述第二界面内容与所述第一界面内容不同之后,还包括
在第一预设时间间隔之后,第二终端显示第六界面,所述第六界面和所述第一界面相同。
14.根据权利要求11-13中任一项所述的方法,其特征在于,
所述第二终端响应于所述第二操作,显示第二界面包括:
向所述服务器发送第二请求,所述第二请求用于请求建立第二会话,所述服务器确定所述第二会话的第二状态,所述第二会话的第二状态根据所述第一终端发送的第一请求确定,所述第二会话的第二状态为低实时性状态。
15.根据权利要求14所述的方法,其特征在于,
当所述第一终端响应于所述第三操作,向所述服务器发送第三请求时,所述第三请求用于请求将低实时性状态切换为高实时性状态;
所述第二终端从所述服务器获取所述第二会话的第二状态,并将所述第二会话的第二状态更新为高实时性状态。
16.根据权利要求15所述的方法,其特征在于,所述第二终端从所述服务器获取所述第二会话的第二状态,包括:
所述第二终端按照第二预设时间间隔向所述服务器发送第四请求,所述第四请求用于获取最新状态;
所述第二终端接收所述服务器发送的最新状态,并更新所述第二会话的第二状态更新为高实时性状态。
17.根据权利要求14-16中任一项所述的方法,其特征在于,所述第二终端从所述服务器获取所述第一应用程序的数据,包括:
所述第二终端按照所述第二状态对应的实时性策略从所述服务器获取数据变更通知;
所述第二终端根据所述数据变更通知,向所述服务器发送所述第五请求,所述第五请求用于请求获取更新数据;
所述第二终端按照所述第二状态对应的实时性策略从所述服务器上获取所述更新数据,所述服务器用于接收所述第五请求,并根据所述第五请求向所述第二终端发送更新数据。
18.根据权利要求14-16中任一项所述的方法,其特征在于,所述第二终端从所述服务器获取所述第一应用程序的数据,包括:
所述第二终端按照第二预设时间间隔查询所述服务器上的数据变化情况;
当所述服务器上的数据发生变化时,所述第二终端向所述服务器发送第六请求,所述第六请求用于请求获取更新数据;
所述第二终端按照所述第二状态对应的实时性策略从所述服务器上获取所述更新数据,所述服务器用于接收所述第六请求,并根据所述第六请求向所述第二终端发送更新数据。
19.根据权利要求11-18中任一项所述的方法,其特征在于,所述第一请求中携带所述第一终端上的所述第一应用程序的状态,所述第一会话的第一状态和所述第二会话的第二状态是根据所述第一应用程序的状态确定的。
20.根据权利要求11-19中任一项所述的方法,其特征在于,所述第一请求中携带实时性策略参数,第一会话的第一状态和所述第二会话的第二状态是根据所述实时性策略参数确定的,所述实时性策略参数是根据所述第一终端上的第一应用程序的状态确定的。
21.根据权利要求11-20中任一项所述的方法,其特征在于,
所述第一终端接收用户对所述第一终端上的所述第一应用程序的第六操作;
所述第一终端响应于所述第六操作,向所述服务器发送所述第七请求,所述第七请求用于请求删除会话;
所述第二终端接收用户对所述第二终端上的所述第一应用程序的第七操作;
所述第二终端响应于所述第七操作,向所述服务器发送所述第八请求,所述第八请求用于请求删除会话。
22.根据权利要求11-21中任一项所述的方法,其特征在于,
所述第一状态或所述第二状态为低实时性状态,所述实时性策略为异步更新数据;
所述第一或所述第二状态为高实时性状态,所述实时性策略为同步更新数据。
23.根据权利要求11-22中任一项所述的方法,其特征在于,
所述第一应用程序包括方法应用程序和第三方应用程序,所述方法应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
24.一种数据同步系统,其特征在于,
第一终端接收用户对所述第一终端上的第一应用程序的第一操作;
所述第一终端响应于所述第一操作,显示第一界面;
第二终端接收用户对所述第二终端上的第一应用程序的第二操作;
所述第二终端响应于所述第二操作,显示第二界面,所述第二界面内容与所述第一界面内容不同;
所述第一终端接收用户对所述第一界面的第三操作;
响应于所述第三操作,所述第一终端向服务器上传所述第一应用程序的数据,并且,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第三界面,其中,所述第一应用程序的数据包括所述第一界面的数据;所述第三界面与所述第一界面相同。
25.根据权利要求24所述的系统,其特征在于,还包括:
所述第一终端接收用户对所述第一界面的第四操作;
响应于所述第四操作,所述第一终端向所述服务器上传所述第一应用程序的数据并显示第四界面,并且,所述第二终端从所述服务器获取所述第一应用程序的数据并显示第五界面,其中,所述第一应用程序的数据包括所述第四界面的数据;所述第五界面与所述第四界面相同。
26.根据权利要求24所述的系统,其特征在于,在第二终端响应于所述第二操作,显示第二界面,所述第二界面内容与所述第一界面内容不同之后,还包括
在第一预设时间间隔之后,第二终端显示第六界面,所述第六界面和所述第一界面相同。
27.根据权利要求24-26中任一项所述的系统,其特征在于,所述第一终端响应于所述第一操作,显示第一界面包括:
向所述服务器发送第一请求,所述第一请求用于请求建立第一会话,并根据所述第一操作,确定第一会话的第一状态,第一状态为低实时性状态;
所述第二终端响应于所述第二操作,显示第二界面包括:
向所述服务器发送第二请求,所述第二请求用于请求建立第二会话,所述服务器确定所述第二会话的第二状态,所述第二会话的第二状态根据所述第一请求确定,所述第二会话的第二状态为低实时性状态。
28.根据权利要求27所述的系统,其特征在于,响应于所述第三操作,还包括:
所述第一终端响应于所述第三操作,向所述服务器发送第三请求,所述第三请求用于请求将低实时性状态切换为高实时性状态;
所述第二终端从所述服务器获取所述第二会话的第二状态,并将所述第二会话的第二状态更新为高实时性状态。
29.根据权利要求28所述的系统,其特征在于,所述第二终端从所述服务器获取所述第二会话的第二状态,包括:
所述第二终端按照第二预设时间间隔向所述服务器发送第四请求,所述第四请求用于获取最新状态;
所述第二终端接收所述服务器发送的最新状态,并更新所述第二会话的第二状态更新为高实时性状态。
30.根据权利要求27或28所述的系统,其特征在于,所述第一终端向所述服务器上传所述第一应用程序的数据,包括:
所述第一状态为低实时性状态,所述终端在第三预设时间间隔之后向所述服务器上传所述第一应用程序的数据,且所述第二终端在所述第三预设时间间隔之后从所述服务器获取所述第一应用程序的数据;
所述第一状态为高实时性状态,所述终端实时向所述服务器上传所述第一应用程序的数据,且所述第二终端实时从所述服务器获取所述第一应用程序的数据。
31.根据权利要求27-30中任一项所述的系统,其特征在于,所述第二终端从所述服务器获取所述第一应用程序的数据,包括:
所述第二终端按照所述第二状态对应的实时性策略从所述服务器获取数据变更通知;
所述第二终端根据所述数据变更通知,向所述服务器发送所述第五请求,所述第五请求用于请求获取更新数据;
所述第二终端按照所述第二状态对应的实时性策略从所述服务器上获取所述更新数据,所述服务器用于接收所述第五请求,并根据所述第五请求向所述第二终端发送更新数据。
32.根据权利要求27-30中任一项所述的系统,其特征在于,所述第二终端从所述服务器获取所述第一应用程序的数据,包括:
所述第二终端按照第二预设时间间隔查询所述服务器上的数据变化情况;
当所述服务器上的数据发生变化时,所述第二终端向所述服务器发送第六请求,所述第六请求用于请求获取更新数据;
所述第二终端按照所述第二状态对应的实时性策略从所述服务器上获取所述更新数据,所述服务器用于接收所述第六请求,并根据所述第六请求向所述第二终端发送更新数据。
33.根据权利要求24-32中任一项所述的系统,其特征在于,所述第一请求中携带所述第一终端上的所述第一应用程序的状态,所述第一会话的第一状态和所述第二会话的第二状态是根据所述第一应用程序的状态确定的。
34.根据权利要求24-33中任一项所述的系统,其特征在于,所述第一请求中携带实时性策略参数,第一会话的第一状态和所述第二会话的第二状态是根据所述实时性策略参数确定的,所述实时性策略参数是根据所述第一终端上的第一应用程序的状态确定的。
35.根据权利要求24-34中任一项所述的系统,其特征在于,
所述第一终端接收用户对所述第一终端上的所述第一应用程序的第六操作;
所述第一终端响应于所述第六操作,向所述服务器发送所述第七请求,所述第七请求用于请求删除会话;
所述第二终端接收用户对所述第二终端上的所述第一应用程序的第七操作;
所述第二终端响应于所述第七操作,向所述服务器发送所述第八请求,所述第八请求用于请求删除会话。
36.根据权利要求24-35中任一项所述的系统,其特征在于,
所述第一状态或所述第二状态为低实时性状态,所述实时性策略为异步更新数据;
所述第一或所述第二状态为高实时性状态,所述实时性策略为同步更新数据。
37.根据权利要求24-36中任一项所述的系统,其特征在于,
所述第一应用程序包括系统应用程序和第三方应用程序,所述系统应用程序包括通讯录、备忘录、日历、书签、文档、短信、邮件、相片中的至少一个。
38.一种终端,其特征在于,执行如权利要求1-10中任一项所述的数据同步方法;或,执行如权利要求11-23中任一项所述的数据同步方法。
39.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-10中任一项所述的数据同步方法;或,执行如权利要求11-23中任一项所述的数据同步方法。
40.一种计算机程序,其特征在于,当所述程序被处理器调用时,权利要求1-10中任一项所述的数据同步方法被执行,或权利要求11-23中任一项所述的数据同步方法被执行。
41.一种芯片系统,其特征在于,包括一个或多个处理器,当所述一个或多个处理器执行指令时,所述一个或多个处理器执行如权利要求1-10中任一项所述的数据同步方法;或,执行如权利要求11-23中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/107489 WO2023011220A1 (zh) | 2021-07-31 | 2022-07-22 | 一种数据同步方法、终端和系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110877488 | 2021-07-31 | ||
CN2021108774886 | 2021-07-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695445A true CN115695445A (zh) | 2023-02-03 |
Family
ID=85060459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210081108.2A Pending CN115695445A (zh) | 2021-07-31 | 2022-01-24 | 一种数据同步方法、终端和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115695445A (zh) |
WO (1) | WO2023011220A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120117099A (ko) * | 2011-04-14 | 2012-10-24 | 삼성전자주식회사 | 휴대 단말기의 동기화 방법 및 장치 |
EP2763372B1 (en) * | 2013-02-01 | 2017-05-10 | HTC Corporation | Electronic apparatus, computer-readable medium and data synchronization method |
CN103856558B (zh) * | 2014-01-22 | 2017-07-14 | 北京京东尚科信息技术有限公司 | 一种用于终端应用的数据处理方法和装置 |
CN104965637B (zh) * | 2015-06-23 | 2018-06-19 | 百度在线网络技术(北京)有限公司 | 一种界面操作的实现方法及装置 |
-
2022
- 2022-01-24 CN CN202210081108.2A patent/CN115695445A/zh active Pending
- 2022-07-22 WO PCT/CN2022/107489 patent/WO2023011220A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023011220A1 (zh) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253719A1 (zh) | 一种录屏方法及电子设备 | |
CN111316598B (zh) | 一种多屏互动方法及设备 | |
WO2022257977A1 (zh) | 电子设备的投屏方法和电子设备 | |
WO2020143380A1 (zh) | 一种数据传输方法及电子设备 | |
CN113329047B (zh) | 一种分布式服务调度方法及相关装置 | |
US20230021994A1 (en) | Cross-Device Content Projection Method and Electronic Device | |
CN113923230B (zh) | 数据同步方法、电子设备和计算机可读存储介质 | |
CN114390139B (zh) | 一种电子设备在来电时呈现视频的方法、电子设备和存储介质 | |
WO2021052204A1 (zh) | 基于通讯录的设备发现方法、音视频通信方法及电子设备 | |
JP7416519B2 (ja) | マルチ端末マルチメディアデータ通信方法及びシステム | |
WO2022042770A1 (zh) | 控制通信服务状态的方法、终端设备和可读存储介质 | |
CN110602312B (zh) | 通话方法、电子设备及计算机可读存储介质 | |
CN113254409A (zh) | 文件共享方法、系统及相关设备 | |
CN114466107A (zh) | 音效控制方法、装置、电子设备及计算机可读存储介质 | |
CN114827581A (zh) | 同步时延测量方法、内容同步方法、终端设备及存储介质 | |
CN115705315A (zh) | 管理文件的方法、电子设备和计算机可读存储介质 | |
CN114157756A (zh) | 任务处理方法及相关电子设备 | |
WO2020134868A1 (zh) | 一种连接建立方法及终端设备 | |
CN114064160A (zh) | 应用图标布局方法及相关装置 | |
CN114185503A (zh) | 多屏交互的系统、方法、装置和介质 | |
EP4293997A1 (en) | Display method, electronic device, and system | |
CN115708059A (zh) | 设备之间的数据通信方法、电子设备及可读存储介质 | |
CN114827098A (zh) | 合拍的方法、装置、电子设备和可读存储介质 | |
WO2023011220A1 (zh) | 一种数据同步方法、终端和系统 | |
CN114500728A (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 |