http://blog.csdn.net/yangchao228/article/details/7583868 http://blog.csdn.net/marising/article/details/3981819