Android的账号与同步机制

本文介绍Android系统的账号与同步机制,用惯了网络的人都知道账号是干什么的,就是对自己身份的一种标志。同样在android系统中也有这么一个东西,框架中提供这个多半是为了和同步一起使用的,同步指的是数据本地和网络服务器端的同步(当然你要与其他手机同步也是可以的)。

下面将通过类图和两个关键的流程时序图来对整个账号同步机制进行分析:

通过这张图可以看到这个框架中的一些主要的类,两者的设计如出一辙,都是由一个系统级的服务来管理整个过程,在Account中是AccountManagerService而在Sync中世ContentService,并且具体的实现就是交个各个应用程序来实现,当然利用的机制就是AIDL,由应用程序来实现一个Service提供给以上两个服务去调用。但是这两块还是有差异的,比如两个manager,AccountManager是它的服务的代理,而SyncManager却不是,它只是ContentService用来执行同步操作的一个执行器。

下面图把添加账户和发起同步的操作时序展示了出来,为了简单起见省略了中间的跨进程调用的过程就直接列出来了(PS,第一次画时序图,貌似画得有点问题,大概意思应该没错,有问题请大家在下面指出来,谢谢咯!亲)

先是添加账户的:

流程还是比较清晰的,这里没有提到添加成功后的操作,说明一下,这是一个异步的操作,所以成功与否是需要回调的,也就是前面类图中提到的OnAccountUpdateListener,其实里面最终还是通过广播机制来做的,大家可以看一下源码。

接下来是发起同步的:

这个流程多一点,但是还是很明了就不多说了,同步数据肯定是个耗时操作啦,所以呢,这里也是异步操作,成功与否照样是回调,就是StatusChangeListener。这个过程是如何做到的,我目前还没时间仔细看,请了解的朋友告诉一下,谢谢。

以上都是一些原理和框架上的东西,具体对于应用来说如何实现账户管理又如何实现同步管理呢,这不是本文的重点,大家可以自行参考源码packages中的exchange来设计,当然网上也有很多优秀的帖子有说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值