http://blog.csdn.net/yuquan0821/article/details/7329958 http://blog.csdn.net/kevinpake/article/details/12878921