http://blog.csdn.net/likika2012/article/details/14043667 http://www.cnblogs.com/elaron/p/3325937.html