http://blog.csdn.net/ye1992/article/details/46516313 http://blog.csdn.net/ns_code/article/details/17465497