参考博客:方法发及使用场景:https://my.oschina.net/linktime/blog/151871
部分源码解析:https://www.cnblogs.com/shizhengwen/p/7716178.html
https://www.jianshu.com/p/b8cb3d295f8f
https://blog.csdn.net/u013007900/article/details/78110891