http://blog.csdn.net/marktheone/article/details/52047188http://blog.csdn.net/endlu/article/details/51605861