android 账号系统

为什么要使用账号系统

在应用中使用账号的时候,通常需要保存登陆信息,以避免每次启动应用都需要重新登陆。所以一个很重要的问题就是如何保存账号信息的问题了(通常就是保存userId, serviceToken)之类的信息。这些信息都安全度要求很高,所以需要保存为应用私有数据。最简单的方式应该就是私有的SharedPreferences来保存了。但是使用SharedPreferences保存数据是私有的,也就是这个账号不同提供给其他应用去使用。若是提供公有的SharedPreferences,那毫无安全性可言了。所以使用android提供的账号系统框架了。


使用账号系统有以下几个好处:

1) 很安全的保存账号信息,只有账号所有者和与所有者具有相同签名的应用才能获取账号信息,当然具有root权限的应用随时可以拿到所有的账号信息,所以不要随便root啊

2) 很方便的在有需要的应用中共享账号信息,而同时又不损失安全性

3) 可以在系统设置里面提供账号设置入口

4) 提供了很完善的框架,只要按照规范实现,就能很方便的实现强大的账号系统


几个核心的类:

AccountManager:

Android中所有跟账号相关的接口都是通过这个类提供,可以看到它的一些主要方法:

1) addAccount: 添加一个账号,在通常的视线中,该方法会调起登陆界面

2) addAccountExplicitly: 直接向账号系统中添加一个账号,不会调起登陆界面,通常是登陆验证成功后,通过该方法将账号信息保存到账号系统

3) removeAccount

4) getAuthToken: 获取账号的authToken, 很多情况下,只会使用authToken去访问服务器,用以替代用户名和密码

AccountManagerService:

AccountManager的中的接口基本都是通过这个AccountManagerService实现。


AbstractAccountAuthenticator: 这个类对于账号系统开发者来说是最重要的一个类,AccountManagerService实现AccountManager中的接口,但AccountManagerService会跨进程调用AbstractAccountAuthenticator来进行。例如通过实现AbstractAccountAuthticator来来调起想要调起的登陆页面(intent)。所以账号系统开发者索要做的最重要的事情之一就是实现自己的AccountAuthenticator

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值