阅读 https://www.cnblogs.com/strugglion/p/5929821.html 和http://blog.csdn.net/jing_valora/article/details/51915573