compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系
2017-05-01 20:15
405 查看
前言
要升级应用的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支持库,点击查看
相关文章推荐
- compileSdkVersion,minSdkVersion,targetSdkVersion作用和如何选择关系
- targetSdkVersion、minSdkVersion和CompileSdkVersion之间的关系
- Android开发之项目初建时设置minSdkVersion,maxSdkVersion,targetSdkVersion,compile作用
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- AS中的minSdkVersion、compileSdkVersion、targetSdkVersion、buildTools及tools关系和区别
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- Android minSdkVersion、targetSdkVersion、Compile with/即project.propertities中target值 分析
- compileSdkVersion, minSdkVersion 和 targetSdkVersion详解
- Android Studio 使用教程(二十)之如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- compileSdkVersion,minSdkVersion ,targetSdkVersion 的区别
- compileSdkVersion,targetSdkVersion,minSdkVersion,buildToolsVersion,兼容包版本
- compileSdkVersion, minSdkVersion 和 targetSdkVersion,傻傻分不清楚
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- Android6.0权限和targetSdkVersion之间的关系
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion