minSdkVersion与targetSdkVersion区别
minSdkVersion 是支持到手机的最低版本,targetSdkVersion 是你所使用的新特性的版本
例:你的应用程序中应用到了大量的手势操作,android SDK7引入的,这时你可以将你的targetSdkVersion设置为7,但是你的用户群众又有很多3、4的用户 这是你就需要设置你的minSdkVersion为3,程序中进行判断,一旦sdkVersion>=7,即可正常使用手势操作,一旦小于7,便做相应的处理
compileSDKVersion
是AS编译APK使用的API Level,一般修改了CompileSDKVersion不会改变运行时的行为,只是会有可能出现一些警告或者错误,compileSDKVersion并不会被包含到apk中。建议使用最新版本的api进行编译,避免使用废弃api。
题外:app的配置为minSDKVersion为9,targetSdkVersion为23,用compileSDKVersion 23成功编译通过生成apK,但是在程序中使用android 3.0即api11提供的ActionBar类,则应用程序在3.0以上的版本上运行正常,在3.0一下版本便会出现问题。为了避免最新功能开发的app只能在最新版本系统的设备上运行的尴尬,官方把新版系统framework中新增的接口提出来放到了Android support Library(支持包)中,开发者遇到上述情况时,就可以只用支持包中同样功能的ActionBar类,这个支持包会被打包进apk里,这样使用了新版本功能的同时也可以向下兼容老版本。其中V4和V7是使用最广泛的两个支持包。
*在编译的时候使用代码混淆ProGuard,处理可以混淆原代码外,还可以移出依赖库中没有使用到类,达到app瘦身的效果。