手势解锁知识点学习

最近看到了手势解锁的源码,听说是从原生代码中提取出来的,确实值得学习一下。

解读代码的时候,发现又有很多知识点需要学习,特此记录一下:

1. FileObserver

http://blog.csdn.net/archer_zoro/article/details/35797509



2. AtomicBoolean

起到一个原子操作的作用,他有一个常用方法compareAndSet(boolean expect, boolean update)

用于先比较,再赋值,将这一个动作做成了一个原子操作,中间不会被插入其他的操作。

应用场景:

http://kabike.iteye.com/blog/1775379

http://blog.csdn.net/wenwenshi5/article/details/14454337



3. hash加密算法 sha1和md5

sha-1是160位的,md5是120位的

都是不可能的单向算法,产生固定位数的hash值

用于加密



4. MessageDigest

http://blog.csdn.net/hudashi/article/details/8394158

java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。


5. 手势编码

9个点,根据行数和列数依次编号为0-8,

按手势的顺序分别变成一个byte,那么密码就是byte[]

然后进行sha-1加密即可


6. SystemClock.elapsedRealtime()

  • elapsedRealtime() and elapsedRealtimeNanos() return the time since the system was booted, and include deep sleep. This clock is guaranteed to be monotonic, and continues to tick even when the CPU is in power saving modes, so is the recommend basis for general purpose interval timing.

(http://developer.android.com/reference/android/os/SystemClock.html)

简答来说,就是自从开机之后到现在的时间,包括深度睡眠。


7. sendAccessibilityEvent

sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);

android4.0之后提供的一个辅助功能,用于给那些感知功能有缺失的人服务(视力、听力、触觉),调用这个函数就是发出一个这样的提示

<span style="white-space:pre">	</span>private void sendAccessEvent(int resId) {
		setContentDescription(getContext().getString(resId));
		sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
		setContentDescription(null);
	}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值