430 likes | 613 Views
Android的 账户同步备份 框架. 乐众Rom架构师 盛大创新院 郭振. 北漂,攻城狮. 霍华德图片. http://p.yoho.cn/11670215.jpg. 为什么呢??. 服务. Google Service Framework. 账户:Gmail,Google play,G+,Google Now 同步: Google Sync 备份:Google Data Backup. 设计一个同步备份的软件. 功能需求. 设计盛大服务统一入口:盛大账户,共享登陆成果. 将通讯录和日历信息同步到服务器上.
E N D
Android的账户同步备份框架 乐众Rom架构师 盛大创新院 郭振
北漂,攻城狮 霍华德图片 http://p.yoho.cn/11670215.jpg
Google Service Framework • 账户:Gmail,Google play,G+,Google Now • 同步: Google Sync • 备份:Google Data Backup
功能需求 设计盛大服务统一入口:盛大账户,共享登陆成果 将通讯录和日历信息同步到服务器上 将通话记录,短信,系统设置等信息备份到存储卡
账户管理是什么 提供了集中的账户访问接口 AccoutManager public Account[] getAccountsByType(String type) public getAuthToken() 管理多账户和存储账户信息
AccountAuthenticatorActivity AbstractAccountAuthenticator SndaAuthenticator 1:getAuthToken(Account) 2:addAccount(AccountType) 。。。。 SndaAccountActivity 用户输入用户名和密码 连接到账户server进行验证 把获得的证书存储到设备上 AuthenticaltorService mAccountManager.addAccountExplicitly (account, mPassword, null); <action android:name= "android.accounts. AccountAuthenticator" />
注意 1:账户Server支持,Web服务接入 2:注意账户信息的安全
如何调用 1:GET_ACCOUNTS权限 2:请求流程: AccountType:com.snda
功能需求 使用盛大账户登录,且登录之后,其他应用无需再登录 将通讯录和日历信息同步到服务器上
同步管理框架 处理基于账户的信息同步 只负责调度控制各同步流程,具体协议,服务,操作各App自行开发 gmail的通讯录,calendar同步,FaceBook自动更新
通讯录同步 AbstractThreadSyncAdapter ContactSyncrAdapter OnPerformSync() ContactManager SyncContacts() SyncService <action android:name= " android:name="android.content.SyncAdapter" />" />
功能需求 使用盛大账户登录,且登录之后,其他应用无需再登录 将通讯录和日历信息同步到服务器上 将通话记录,短信,系统设置备份到存储卡
App BackupAgent dataChanged BackupManagerService ServiceKey 云端存储 GoogleTransaportor LocalTransport Cache
BackupAgent CalllogBackupAgent onBackup()和onRestore() 在manifest文件内用android:backupAgent 属性声明备份代理和backup key
1:抛弃框架,直接读写数据库 2:获得Root权限,通过shell命令将应用的data数据强制拷贝到sd卡下 3:扩展备份系统
扩展备份系统 • 扩展Transport,负责与存储信息 • IBackupTransport.Stub • performBackup • preformRestore • 版本管理 • 界面开发
功能需求 使用盛大账户登录,且登录之后,其他应用无需再登录 将通讯录和日历信息同步到服务器上 将通话记录,短信,系统设置,应用程序备份到存储卡
回顾 • 账户管理 • 同步管理 • 备份管理
Q&A Email: guozhen@sdna.com weibo: weibo.com/guozhen01