Android Support Library 是什么?
这两天刚开始学习安卓,这里记录下这两天遇到的一些小问题。
首先先贴一个安卓 API 等级。
官方地址:https://developer.android.com/about/dashboards/ (可能要FQ)
上图,应该不用我解释了,相信就算是萌新也懂。
在没有接触安卓之前,听说安卓开发需要兼容很多设备和不同版本的系统,今天呢,不同设备咱先不谈(因为我还没学到)
我就在这里对这两天的只是进行一个小结,至于标题为什么是《Android Support Library 是什么?》
,因为我在学习的过程中,一直对这个支持库不太理解,我相信很多萌新也跟我一个状态,而网上对这个东西讲解有点分散,又不容易理解,我这里尽量用一些大白话概括一下,希望能够帮助萌新入门。
我们知道安卓版本是有很多的,每个版本都会有一个开发版本号,也就是上图中的 API 对应的数字,现如今 API 等级已经更新到了 API 29,对应的是 Android 9 系统。
在进行安卓开发的时候,我们通常需要考虑,应该选择什么样的 API 级别进行开发?
谷歌为此也给出了解决方案,我们在开发过程中可以给出三个设置项:
- minSdkVersion
- targetSdkVersion
- compileSdkVersion
萌新在这里就会懵逼了,这三个东西是个啥,我该如何设置呢?
我们先来说一下minSdkVersion
,这个对应的是最小 API 级别,意思就是你需要兼容的最小 API 版本,这主要是根据用户设备占有率来进行选择的,上面图中右侧便是市场占有率了。
这里会选择 19,因为 API 19 对应的是 Android 4.4 系统,我相信都2019年了,用 4.4 以下系统的人应该很少了吧。
接着看targetSdkVersion
,意思就是目标SDK版本,就是说你主要是使用哪个版本进行开发的,并且这个版本你是经过全面测试的,比如这里如果选择了 API 24,也就是 Android 7 系统,在你进行开发的过程中,你主要都是使用的该级别的 API 进行应用开发,而且开发完成后你经过了严格测试,这时你就又会问了,现在安卓都发布到9了,我现在还用7,这不落伍了吗?
对于上面的问题,就需要我们compileSdkVersion
出场的时候了,字面意思也很好理解,编译版本,也就是进行最终编译时需要的版本。
对于开发人员来说,例如在开发过程中,安卓系统只发布到了 API 24,我现在选择了 API 24 进行开发,过了一两年之后 API 发布到了 28,并且有一些 API 28 中的功能 API 24 并不支持,如果我现在想使用 API 28 中的功能,该怎么办?
这里就是需要Android Support Library
的时候了,安卓的支持库目前主要有三个,分别是 V4、V7、V13,我们这里主要关注前面两个,这里不探讨具体的内容,只说明一下这个支持库是个什么东西?什么时候需要用到它?
当我们targetSdkVersion
为 24 时,需要使用 API 28 的新增功能时,这也就是向后兼容,使用低版本的 API 兼容高版本的 API,而支持库就是这个作用,它会跟着每个新发布的 API 级别同步发布,所以这里支持库我们选择与 compileSdkVersion 一样的版本即可。
有些人可能会有疑问,我如果直接使用了支持库,是不是代表不用升级系统了?其实不然,支持库只是让低版本的API可以使用高版本的API时不会出错,并且可以尝试新版本的功能,至于和新系统完全一样,那是不可能滴。
minSdkVersion <= targetSdkVersion <= compileSdkVersion
而现在基本上不需要设置 compileSdkVersion 版本了,因为系统会默认使用最新的版本。
安卓的API级别也是向前兼容的,官方文档给出最新的API是直接兼容以前的API的,只会在新API中作新增,很少进行更改,即便是更改也是一些关于性能方面的考虑,完全不用担心。
说到这里还要提一下 Build Tools Version,这个我们使用官方最新的版本即可,这个工具的版本必须大于等于 compileSdkVersion 版本,否则编译会报错。
下面是官方关于支持库介绍的地址:
Android Support Library 是什么?的更多相关文章
- Android Support Library
title: Android Support Library tags: Support Library,支持库 grammar_cjkRuby: true --- DATE: 2016-5-13. ...
- Android Support Library介绍
v4 Support Library 这个库是为Android 1.6(API版本为4)及以上的版本设计的,它包含大部分高版本中有而低版本中没有的API,包括application component ...
- As环境下添加android support library依赖库
2015年的google大会上,google发布了新的Android Support Design库的新组件之一,以此来全面支持Material Design 设计风格的UI效果,为了可以使用这些新颖 ...
- [Xamarin.Android] Support Library Tips
[Xamarin.Android] Support Library Tips Support Library支持内容 Xamarin Support Library每个版本支持.那些组件,可以参考这份 ...
- eclipse创建android项目失败的问题 [ android support library ]
有根筋搭错了,想起来android应用开发???? 放下两年的手机应用开发,昨天有更新了android SDK, 重新搭建开发环境. 这两年android 变化真TM的大............... ...
- Android Support Library package简介
转自http://my.oschina.net/chengliqun/blog/148451 N久未做android了,以前做的时候,2.2才刚出来,现在android都更新到了4.3了,而从前一段时 ...
- Android Support Library更新到v22.1之AppCompat新特性
构建一个可以跑在不同版本 Android 平台的软件,是非常复杂和耗时的.为了解决这个问题,Android 推出了 Android Support Library (安卓兼容包),让新的UI控件也可以 ...
- Android - 用Fragments实现动态UI - 使用Android Support Library
Android Support Library提供了一个带有API库的JAR文件来让你可以在使用最新的Android API的同时也也已在早期版本的Android上运行.例如,Support Libr ...
- Android support library支持包常用控件介绍(二)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...
随机推荐
- MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录
MongoDB复制集是一个带有故障转移的主从集群.是从现有的主从模式演变而来,增加了自动故障转移和节点成员自动恢复.MongoDB复制集模式中没有固定的主结点,在启动后,多个服务节点间将自动选举产生一 ...
- 11.13 Daily Scrum
今天在实现餐厅列表时,原来使用的百度地图poi搜索接口无法返回餐厅的具体信息. 经过一番周折,找到了一个返回餐厅url的接口.我们调整了一下实现,在点击餐厅列表的某一项点击直接跳到和该餐厅信息有关的网 ...
- [BUAA软工]第一次结对作业
[BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...
- Linux内核第二节
作者:武西垚 深入理解函数调用堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 堆栈的作用 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 esp,堆栈指针,指 ...
- Leetcode 279. 完全平方数
题目描述: https://leetcode-cn.com/problems/perfect-squares/ 解题思路: 同样是dp,一开始的想法是,对于每个数i做拆分为j和(i-j),利用动态转移 ...
- Qt__QWidget::update()与Qwidget::repaint()的区别
QT事件的产生 1.操作系统产生 操作系统将获取的事件,比如鼠标按键,键盘按键等keyPressEvent,keyReleaseEvent,mousePressEvent,mouseReleaseEv ...
- Mac上brew&thrift安装 以及在thrift架构下,自己新作了maven的小例 Demo
1.缘由 前几天偶尔在网上看到thrift的信息,其内容和作用极大的引起了我的兴趣,因为我也是做iOS开发的,通过在网上的查询发现信息虽然很多实用的很少,容易误导他人,经过自己的成功实践,做了笔录,为 ...
- Ajax 新建对象
XMLHttpRequest对象是Ajax的基础,用于后台与服务器进行数据交互. 新的浏览器支撑XMLHttpRequest,而旧的浏览器不支持. var vari; if(window.XMLHtt ...
- C#遍历类的属性,然后给其赋值
public class PP { public string a { get; set; } public string b { get; set; } public string c { get; ...
- 深度学习网络压缩模型方法总结(model compression)
两派 1. 新的卷机计算方法 这种是直接提出新的卷机计算方式,从而减少参数,达到压缩模型的效果,例如SqueezedNet,mobileNet SqueezeNet: AlexNet-level ac ...