http://blog.csdn.net/a_ran/article/details/43937041 http://blog.csdn.net/ruglcc/article/details/7814546/