versionCode versionName minSdkVersion targetSdkVersion各有什么用?解决方法

versionCode versionName minSdkVersion targetSdkVersion各有什么用?
versionCode?
versionName:作为版本号,可以显示给用户看
minSdkVersion:机器最小版本,否则程序跑不了
targetSdkVersion?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.repeatingalarm"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="17" />

------解决方案--------------------
versionCode:版本号,在上传市场中用于判断用户已安装版本是否需要升级,例如用户本手机已安装了版本号是100的程序,市场程序发现现在市场里面的程序版本号是101,则会提示用户更新本程序。

targetSdkVersion:目标SDK版本,系统会对该版本进行充分匹配,保证在该版本上没有问题,意义不大。