参考资料:
https://www.jianshu.com/p/4b4b6f3590a4/
https://blog.csdn.net/android_java/article/details/109459765
https://www.cnblogs.com/garfieldcgf/p/13469519.html
https://blog.csdn.net/luo15242208310/article/details/122648136