CompileSdkVersion、buildToolVersion、minSdkVersion、targetSdkVersion、maxSdkVersion

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49336889 文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

1、CompileSdkVersion
SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。这个属性理论上用越高版本越好~

2、buildeToolVersion
构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX
例如I/O2014大会上发布了API20对应的build-tool的版本就是20.0.0,在这之间可能有小版本,例如20.0.1等等。
You can use a higher version of the build-tools than your compileSdkVersion, in order to pick up new/better compiler while not changing what you build your app against.
我建议是版本越高越好

3. minSdkVersion

指明应用程序运行所需的最小API level。如果不指明的话,默认是1。也就是说该应用兼容所有的android版本。我们应该总是声明这个属性。

如果系统的API level低于android:minSdkVersion设定的值,那么android系统会阻止用户安装这个应用。下载将android:minSdkVersion设置为11, 并且将该应用安装在android 2.3的手机上(对应API level 9),在安装时会有如下提示:
这里写图片描述
提示手机API level的版本太低,安装失败。


如果设置了minSdkVersion,但在项目中使用了高于这个API level的API, 那么会在编译时报错。
将CompileSdkVersion设为最新的android- 19,那么就会使用最新的android-19下的android.jar来编译项目。将minSdkVersion设置为8。在使用的android.jar中,调用Activity.getActionBar()和ActionBar.getHeight()方法(需要API level 11)。因为minSdkVersion指明的API level 8中不存在ActionBar相关的API。所以报错
这里写图片描述

由此可见,minSdkVersion不仅在程序安装时起作用,也会在项目构建时起作用。


如果没有设置minSdkVersion属性,那么默认是1。
表明程序兼容所有的Android系统,能够在所有Android系统上运行。如果使用了高于API level 1 的API, 如ActionBar。那么在构建项目时,会提示和上面相同的错误,项目构建失败。

min看你最低支持多少了,现在4.0.4以下的设备已经只有10%以内了,可以写到4.0.4以上

4.targetSdkVersion
标明应用程序目标API Level的一个整数。如果不设置,默认值和minSdkVersion相同。

这个属性通知系统,你已经针对这个指定的目标版本测试过你的程序,系统不需要使用兼容模式来让你的应用程序向前兼容这个目标版本。应用程序也可以在低于targetSdkVersion的系统上运行。

targetSdkVersion这个属性是在程序运行时期起作用的,系统根据这个属性决定要不要以兼容模式运行这个程序。

腾讯技术人员给我说这个属性越主流的版本越好。但网上说这个属性的值设置为最新的API level 值,以发挥新版本系统上的新特性。(因为在github上看到很多项目,这个值设置都比较新,否则我还是比较相信鹅厂的)

5.maxSdkVersion

标明可以运行你的应用的最高API Level版本。

Android1.5, 1.6, 2.0 和2.0.1上,在安装应用或系统升级这两种情况下,系统会检查这个值。如果应用设置的maxSdkVersion 值低于系统本身使用的API Level,系统将不会允许安装该应用。在系统升级后,新系统会重新校验这个值,如果新系统的API Level高于这个值,新系统会删除你的应用。

在高于2.0.1的系统上,安装应用时不会再检验应用中设置的maxSdkVersion值,在系统升级后也不会重新校验这个值。但是在向用户展示可用的应用时,Google Play会继续使用这个属性进行过滤。

maxSdkVersion这个属性本来是在程序安装时和系统升级后起作用的。但是根据官方文档中的说明, 已经不再推荐使用这个属性。这个值已经不再起作用。


【Android SDK 功能解析】

先来看一下SDK比较重要的目录:
【build-tools】里面是不同版本(例如21.1.1)的build工具,这些工具包括了aapt打包工具、dx.bat、aidl.exe等等
【platform】是存放不同API-level版本SDK目录的地方
【platform-tools】是一些android平台相关的工具,adb、fastboot等
【tools】是指的安卓开发相关的工具,例如android.bat、ddms.bat(Dalvik debug Monitor Service)、draw9patch.bat等等

拓展:Android SDK的基本内容

参考:
http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsversion-vs-compilesdkversion
http://blog.csdn.net/zhangjg_blog/article/details/17142395
http://www.tqcto.com/article/mobile/1419.html

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛瑄

文章不错,请博主吃包辣条

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值