compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系

前言

要升级应用的sdk版本,
需要弄清楚compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系,
以保证应用的配置正确,升级后能让应用在不同的系统上都正常使用。


1、各Version的含义与关系

  • compileSdkVersion:应用编译时使用的sdk版本(仅编译时生效,与运行时无关)
我们日常开发中编译、打包apk时使用的android sdk版本就是由compileSdkVersion指定的。
代码中可用的api也与该版本对应,高于声明版本的api则无法找到、使用。
顺带一提,buildtools的版本要与compileSdkVersion保持一致


  • minSdkVersion:应用可以运行的最低系统版本
比如设置了minSdkVersion为14(对应android版本是4.0)后,在android4.0以下的系统就安装不了该应用了


  • targetSdkVersion:应用运行时使用的sdk版本( 这个参数很重要! )
    该参数指定的android sdk的功能特性,将在运行时生效。
举个例子,比如android6.0(api 23)系统的动态权限检查功能
1、targetSdkVersion<23时:
该应用安装在android6.0的手机上后,
不会执行android6.0系统以上特有的动态权限检查逻辑,
而是仍继续执行以前的权限检查逻辑。

2、当targetSdkVersion变为23后:
android6.0系统的动态权限检查特性将生效。

3、当targetSdkVersion为25(代表android7.0)>23:
安装在android6.0的设备上时,
仍只能执行6.0及其以下的功能特性,无法执行7.0的新特性。

通常targetSdkVersion 小于等于 compileSdkVersion,
一般都是在compileSdkVersion指定的版本编译并测试过相关特性没有问题后,
才将targetSdkVersion改为compileSdkVersion的版本


  • 综上所述,最好的关系是:
    minSdkVersion <= targetSdkVersion = compileSdkVersion。
    用较低的 minSdkVersion 来覆盖最大的人群,
    用最新的 SDK 设置 target 和 compile 来获得最好的外观和行为

2、android support支持库

  • 什么是支持库:
    集成了特定框架组件、UI元素的功能库,通常用于向低版本提供高版本才有的功能

  • 支持库有多个,每个库支持特定范围的android版本,推荐添加v4和v7appcompat库

  • v4:最低支持android1.6,包含ViewPager、Fragment等
    v7:最低支持android2.3,v7依赖于v4,包含ActionBar、receyclerview等
    设计支持库(Material Design):提供了一些符合设计风格的控件,比如悬浮操作按钮

  • 注意:Support库的大版本号要与compileSdkVersion的大版本号相同

3、实际举例:

在应用的build.gradle里,配置如下

android {
    buildToolsVersion "22"
    compileSdkVersion 22

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:22.0.0'
}


4、参考文章

1、如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion,点击查看

2、【需翻墙】android官方文档:
介绍compileSdkVersion, minSdkVersion 和 targetSdkVersion等,点击查看

3、【需翻墙】android官方文档:
介绍 support支持库,点击查看

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值