http://blog.csdn.net/yapian8/article/details/46710063 http://blog.csdn.net/yapian8/article/details/41985089