SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
Android DevCamp




Produced by CSDN

Website: http://devcamp.csdn.net/
Weibo: http://weibo.com/cmdnclub/
Android的账户同步备份框架


          乐众Rom架构师	

          盛大创新院 	

          郭振	

北漂,攻城狮


                     霍华德图片

     http://p.yoho.cn/11670215.jpg
服务
Google Service Framework

•  账户:Gmail,Google play,G+,Google Now
•  同步: Google Sync
•  备份:Google Data Backup
设计⼀一个同步备份的软件
功能需求


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



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



将通话记录,短信,系统设置等信息备份到存储卡
交互界面
交互界面
交互界面
盛大账户的设计
一般的账户模块设计

    输入用户名和密码




      发送登录请求


                    读
                        取


    登录成功,获得Token   存储登录信息       数据库


                            取
                        读

   加入Token构造网络请求
账户管理是什么
提供了集中的账户访问接口
AccoutManager
public Account[] getAccountsByType(String type)
public getAuthToken()

管理多账户和存储账户信息
结构
           app                              framework


            app                           AccountManager




   AccountAuthenticator

                              binder   AccountManagerService
AccountAuthenticatorService




                                              SQLite
手机

                   app




                   token
          toke
                  账户系统
              n




                           tok
                               en




Web service       token             Passport
AccountAuthenticatorActivity          AbstractAccountAuthenticator




        SndaAccountActivity
      用户输入用户名和密码                              SndaAuthenticator

      连接到账户server进行验证                    1:getAuthToken(Account)
                                         2:addAccount(AccountType)
      把获得的证书存储到设备上                               。。。。




mAccountManager.addAccountExplicitly
                                                        AuthenticaltorService
    (account, mPassword, null);


                                                <action android:name=
                                                  "android.accounts.
                                               AccountAuthenticator" />
注意


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

2:注意账户信息的安全
如何调用


1:GET_ACCOUNTS权限
2:请求流程:
AccountType:com.snda
   
getAccountsByType




        是否有账户            否        addAccount



            是


getAuthToken/blockingGetAut
          hToken




     根据token构造请求




       token是否过期         是    invalidateAuthToken



            否


       继续app处理
Account & Sync的设置
功能需求


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



将通讯录和日历信息同步到服务器上
PIM同步设计
同步Server   用户验证     解析同步包      冲突解决   响应同步结果




             SymcML协议,HTTP请求




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


 – 处理基于账户的信息同步
 – 只负责调度控制各同步流程,具体协议,
   服务,操作各App自行开发
 – gmail的通讯录,calendar同步,
   FaceBook自动更新
架构图
          app                        framework

                                    SyncManager
           app




                                         SyncQueue
AbstractThreadSyncAdapter


       SyncService
                                   AlarmManager


                                  ActiveSyncContext


                                  SyncStorageEngine
通讯录同步                  AbstractThreadSyncAdapter




                            ContactSyncrAdapter
ContactManager                OnPerformSync()
SyncContacts()




                                             SyncService




                                <action android:name=
                 " android:name="android.content.SyncAdapter" />" />
功能需求


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



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



将通话记录,短信,系统设置备份到存储卡
Google如何设计的数据备份的?
App	
  


            BackupAgent	
  




                           dataChanged



        BackupManagerService	
  
                                                    ServiceKey




LocalTransport                                        云端
                               GoogleTransaportor     存储




        Cache
BackupAgent




          CalllogBackupAgent
       onBackup()和onRestore()




在manifest文件内用android:backupAgent
   属性声明备份代理和backup key
我们怎么做?
1:抛弃框架,直接读写数据库

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

3:扩展备份系统
扩展备份系统

•  扩展Transport,负责与存储信息
IBackupTransport.Stub
performBackup
preformRestore
•  版本管理
•  界面开发
功能需求


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



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



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

•  账户管理
•  同步管理
•  备份管理
乐众ROM:娱乐+大众
娱乐:依托盛大集团资源打造手机娱乐平台
大众:高、中、低端 16款机型全面覆盖
Q&A



      Email:   guozhen@sdna.com
      weibo:   weibo.com/guozhen01

Más contenido relacionado

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

淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
taobao.com
 
通行证项目技术分享
通行证项目技术分享通行证项目技术分享
通行证项目技术分享
Tony Deng
 
存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0
hupo136
 
M P R Tech 2008 R T E
M P R Tech 2008  R T EM P R Tech 2008  R T E
M P R Tech 2008 R T E
andychang
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
colderboy17
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除
5045033
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
evercislide
 
Google cloud message by sean
Google cloud message by seanGoogle cloud message by sean
Google cloud message by sean
Sean Lee
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
John Chang
 

Similar a Android账户同步备份框架 | 盛大乐众ROM 郭振 (20)

淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
 
通行证项目技术分享
通行证项目技术分享通行证项目技术分享
通行证项目技术分享
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0存量房银行按揭接口客户端系统建设方案V1.0
存量房银行按揭接口客户端系统建设方案V1.0
 
Aliyun Function Compute Primer
Aliyun Function Compute PrimerAliyun Function Compute Primer
Aliyun Function Compute Primer
 
CAREY-Tech SSO
CAREY-Tech SSOCAREY-Tech SSO
CAREY-Tech SSO
 
M P R Tech 2008 R T E
M P R Tech 2008  R T EM P R Tech 2008  R T E
M P R Tech 2008 R T E
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
Lean Message Architecture Highlights
Lean Message Architecture HighlightsLean Message Architecture Highlights
Lean Message Architecture Highlights
 
LeanMessage 实时通信云架构
LeanMessage 实时通信云架构LeanMessage 实时通信云架构
LeanMessage 实时通信云架构
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
使用IT服务管理软件,改进8个关键业务流程
使用IT服务管理软件,改进8个关键业务流程使用IT服务管理软件,改进8个关键业务流程
使用IT服务管理软件,改进8个关键业务流程
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
Google cloud message by sean
Google cloud message by seanGoogle cloud message by sean
Google cloud message by sean
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
Cas Sso Intro
Cas Sso IntroCas Sso Intro
Cas Sso Intro
 
twMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure Functions
 

Más de imShining @DevCamp

Más de imShining @DevCamp (10)

和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
 
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
 
Android音频口数据通信开发 | 爱图腾 李鹏军
Android音频口数据通信开发 | 爱图腾 李鹏军Android音频口数据通信开发 | 爱图腾 李鹏军
Android音频口数据通信开发 | 爱图腾 李鹏军
 
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
 
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
 
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
 
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
 

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