44
Android DevCamp Produced by CSDN Website: http://devcamp.csdn.net/ Weibo: http://weibo.com/cmdnclub/

Android账户同步备份框架 | 盛大乐众ROM 郭振

Embed Size (px)

Citation preview

Page 1: Android账户同步备份框架 | 盛大乐众ROM 郭振

Android DevCamp Produced by CSDN Website: http://devcamp.csdn.net/ Weibo: http://weibo.com/cmdnclub/

Page 2: Android账户同步备份框架 | 盛大乐众ROM 郭振

Android的账户同步备份框架

乐众Rom架构师 �盛大创新院 �郭振 �

Page 3: Android账户同步备份框架 | 盛大乐众ROM 郭振

北漂,攻城狮

霍华德图片

http://p.yoho.cn/11670215.jpg

Page 4: Android账户同步备份框架 | 盛大乐众ROM 郭振
Page 5: Android账户同步备份框架 | 盛大乐众ROM 郭振
Page 6: Android账户同步备份框架 | 盛大乐众ROM 郭振

服务

Page 7: Android账户同步备份框架 | 盛大乐众ROM 郭振
Page 8: Android账户同步备份框架 | 盛大乐众ROM 郭振

Google Service Framework

•  账户:Gmail,Google play,G+,Google Now •  同步: Google Sync •  备份:Google Data Backup

Page 9: Android账户同步备份框架 | 盛大乐众ROM 郭振

设计⼀一个同步备份的软件

Page 10: Android账户同步备份框架 | 盛大乐众ROM 郭振

功能需求

设计盛大服务统⼀一入口:盛大账户,共享登陆成果

将通讯录和日历信息同步到服务器上

将通话记录,短信,系统设置等信息备份到存储卡

Page 11: Android账户同步备份框架 | 盛大乐众ROM 郭振

交互界面

Page 12: Android账户同步备份框架 | 盛大乐众ROM 郭振

交互界面

Page 13: Android账户同步备份框架 | 盛大乐众ROM 郭振

交互界面

Page 14: Android账户同步备份框架 | 盛大乐众ROM 郭振

盛大账户的设计

Page 15: Android账户同步备份框架 | 盛大乐众ROM 郭振

一般的账户模块设计

输入用户名和密码

发送登录请求

登录成功,获得Token 数据库

加入Token构造网络请求

存储登录信息

读取

读取

Page 16: Android账户同步备份框架 | 盛大乐众ROM 郭振

账户管理是什么

提供了集中的账户访问接口 AccoutManager public Account[] getAccountsByType(String type) public getAuthToken()

管理多账户和存储账户信息

Page 17: Android账户同步备份框架 | 盛大乐众ROM 郭振

结构

AccountAuthenticator

AccountManager

AccountManagerServiceAccountAuthenticatorService

SQLite

binder

app framework

app

Page 18: Android账户同步备份框架 | 盛大乐众ROM 郭振

Web service Passport

账户系统

app

手机

token

tokentoken

token

Page 19: Android账户同步备份框架 | 盛大乐众ROM 郭振

SndaAccountActivity

用户输入用户名和密码

连接到账户server进行验证

把获得的证书存储到设备上

AccountAuthenticatorActivity AbstractAccountAuthenticator

SndaAuthenticator

1:getAuthToken(Account) 2:addAccount(AccountType)

。。。。

AuthenticaltorService

<action android:name="android.accounts.

AccountAuthenticator" />

mAccountManager.addAccountExplicitly(account, mPassword, null);

Page 20: Android账户同步备份框架 | 盛大乐众ROM 郭振

注意

1:账户Server支持,Web服务接入

2:注意账户信息的安全

Page 21: Android账户同步备份框架 | 盛大乐众ROM 郭振

如何调用

1:GET_ACCOUNTS权限2:请求流程:

AccountType:com.snda�

Page 22: Android账户同步备份框架 | 盛大乐众ROM 郭振

get

getAuthToken/blockingGetAuthToken

根据token构造请求

invalidateAuthTokentoken是否过期 是

继续app处理

getAccountsByType

addAccount是否有账户 否

Page 23: Android账户同步备份框架 | 盛大乐众ROM 郭振

Account & Sync的设置

Page 24: Android账户同步备份框架 | 盛大乐众ROM 郭振

功能需求

使用盛大账户登录,且登录之后,其他应用无需再登录

将通讯录和日历信息同步到服务器上

Page 25: Android账户同步备份框架 | 盛大乐众ROM 郭振

PIM同步设计

Page 26: Android账户同步备份框架 | 盛大乐众ROM 郭振

同步Server 用户验证 解析同步包 冲突解决 响应同步结果

同步Client同步请求和响应同步信息处理 同步请求控制和调度

SymcML协议,HTTP请求

Page 27: Android账户同步备份框架 | 盛大乐众ROM 郭振

同步管理框架

– 处理基于账户的信息同步 – 只负责调度控制各同步流程,具体协议,服务,操作各App自行开发

– gmail的通讯录,calendar同步,FaceBook自动更新

Page 28: Android账户同步备份框架 | 盛大乐众ROM 郭振

架构图

SyncManager

SyncStorageEngine

ActiveSyncContext

AbstractThreadSyncAdapter

SyncService

SyncQueue

AlarmManager

app framework

app

Page 29: Android账户同步备份框架 | 盛大乐众ROM 郭振

ContactManager SyncContacts()

AbstractThreadSyncAdapter

ContactSyncrAdapterOnPerformSync()

SyncService

<action android:name=" android:name="android.content.SyncAdapter" />" />

通讯录同步

Page 30: Android账户同步备份框架 | 盛大乐众ROM 郭振
Page 31: Android账户同步备份框架 | 盛大乐众ROM 郭振

功能需求

使用盛大账户登录,且登录之后,其他应用无需再登录

将通讯录和日历信息同步到服务器上

将通话记录,短信,系统设置备份到存储卡

Page 32: Android账户同步备份框架 | 盛大乐众ROM 郭振

Google如何设计的数据备份的?

Page 33: Android账户同步备份框架 | 盛大乐众ROM 郭振

App  

GoogleTransaportor

BackupManagerService  

BackupAgent  

LocalTransport

ServiceKey

Cache

dataChanged

云端存储

Page 34: Android账户同步备份框架 | 盛大乐众ROM 郭振

BackupAgent

CalllogBackupAgentonBackup()和onRestore()

在manifest文件内用android:backupAgent属性声明备份代理和backup key

Page 35: Android账户同步备份框架 | 盛大乐众ROM 郭振

我们怎么做?

Page 36: Android账户同步备份框架 | 盛大乐众ROM 郭振

1:抛弃框架,直接读写数据库

2:获得Root权限,通过shell命令将应用的data数据强制拷贝到sd卡下

3:扩展备份系统

Page 37: Android账户同步备份框架 | 盛大乐众ROM 郭振

•  扩展Transport,负责与存储信息 IBackupTransport.Stub

performBackup preformRestore

•  版本管理 •  界面开发

扩展备份系统

Page 38: Android账户同步备份框架 | 盛大乐众ROM 郭振
Page 39: Android账户同步备份框架 | 盛大乐众ROM 郭振

功能需求

使用盛大账户登录,且登录之后,其他应用无需再登录

将通讯录和日历信息同步到服务器上

将通话记录,短信,系统设置,应用程序备份到存储卡

Page 40: Android账户同步备份框架 | 盛大乐众ROM 郭振

回顾

•  账户管理 •  同步管理 •  备份管理

Page 41: Android账户同步备份框架 | 盛大乐众ROM 郭振

乐众ROM:娱乐+大众

Page 42: Android账户同步备份框架 | 盛大乐众ROM 郭振

娱乐:依托盛大集团资源打造手机娱乐平台

Page 43: Android账户同步备份框架 | 盛大乐众ROM 郭振

大众:高、中、低端 16款机型全面覆盖

Page 44: Android账户同步备份框架 | 盛大乐众ROM 郭振

Q&A

Email: [email protected]: weibo.com/guozhen01