Android Support Library介绍

Android Support Library为开发者提供向后兼容的新特性,包括UI元素、工具方法等,确保app在不同版本Android上运行一致。它包含多个子库,如v4、v7和v8等,提供Fragment、Action Bar、RecyclerView等组件支持。推荐开发者使用v4和v7 appcompat库。通过在Gradle配置中添加依赖,开发者可以轻松集成并利用这些库提供的功能。
摘要由CSDN通过智能技术生成

我们知道,android自第一代发布以来,它的版本更新迭代的速度可以说是非常快的,但是android又是一个移动操作系统,是面对所有的用户的,并不是一个行业专用的系统,这就是要求这个系统在频繁的更新中,必须使得已经存在运行的大规模的系统能够被新的版本兼容。要做到这一点主要就是要做好API的兼容问题,老的接口被废弃了,但是在新的系统版本上必须还能使用;新的接口老版本上没有,但是提供了极好的特性,开发者想在老的系统平台上使用;这些问题都是android发展中的问题,那么这些问题怎么解决呢?Google引入了Support Library这个玩意儿。本文就本人的开发经验来聊一聊Support Library,旨在向新手介绍一下这个东西。本文写作的时候,借鉴了google官方关于Support Library的介绍,并且加入了一些自己的理解,若有偏差,在所难免,希望大家即使指正。
Google Support Library的介绍地址:
https://developer.android.com/topic/libraries/support-library/index.html
中文版的(热心网友翻译):
http://blog.csdn.net/crazybigfish/article/details/18363351
另外,如果你下载了android的sdk之后Support Library的jar和源码存放的路径是:

<YOUR SDK DIR>/extras/android/support/

内容大概像这样:
这里写图片描述

概述

Android Support Library提供了很多没有编译进framework的特性,这些库提供了很多向后兼容的新特性,提供了在framework中没有的很有用的UI元素,还提供了很多app可以使用的工具。在很多情况下,一些特性对有很多app的开发者而言是很有价值的,但是这些特性如果包含在framework中就不是很合适。比如说,某个app可能需要一个针对某个特定的使用场景下的特性,并不是一个通用的场景特性,这个时候如果把它放到framework中去的话,就会使得framework变得越来越臃肿,并且可能导致API混乱,这些对于一个操作系统来说都是致命的。
但是这些需求,android不能不管不问,所以android提供了一系列的支持包来支持这些需求,这些支持包的呈现形式是一个jar包,app开发者只要把这个jar包添加到app工程中去就可以使用其中的特性和API了。Support Library提供了以下基本特性:
1. 版本向后兼容:保证新版的特性在老版本上依然可以运行
2. 实现了android布局模式的UI元素
3. 支持不同形式的元素
4. 多种多样的工具方法函数
Android Support Library提供了这么多的特性,所以google建议所有的app开发者应该使用Support Library进行开发。下面我们逐个梳理下这些特性:

向后兼容

Support Library允许app在老旧的android版本上使用新的android版本上才能使用的特性。举个例子来说,假如你开发了一个app,这个app使用了android 5.0的材料设计,整个app的界面风格都是材料设计的风格,看起来很漂亮!这个app在5.0,6.0上运行一点问题都没有,但是一旦到4.4之前的系统上运行的话,所有的材料设计风格全部没有了,而且看来很丑。。。。。怎么办?根本的原因就是4.4之前的版本就不支持材料设计这个玩意儿!!!但是Support Library的appcompat library就可以解决,只要你的app包含了这个库,并且声明使用他里面的材料设计主题就可以在很老的android版本上使用材料设计了!是不是很简单,是的!之所以简单的原因是google把复杂的事情替你做完了,你只要使用就可以了。这样一来,你的app就可以在很多的android版本中保持用户体验的一致性了!
在某些情况下,Support Library的行为还是会受制于具体android平台的,因为它最终还是需要使用系统的接口的。这些情况下,如果一个app调用了Support Library的一个方法,那么这个方法的行为就会取决于app运行的平台版本。如果framework提供了此方法必要的方法,那么Support Library就会调用这个方法来完成工作;如果app是运行在老旧的版本上的话,并且framework没有提供必要的接口的话,那么Support Library就会尝试调用自己内部的接口来完成这个工作或者最糟糕的就是压根调用就没有反应。但是绝对不会导致app崩溃或者出现很奇怪的BUG!这个时候Support Library表现的出来的行为就是不可预期的,保证最差的结果就是没有结果,绝对不会给出一个错误的结果。同时app不应该自己去判断系统平台的版本,这个工作应该由Support Library自己来完成,凡是类名以Compat结尾的都会自动做这样的判断,比如ActivityCompat这个类。这部分接口在使用的时候,需要仔细查看相关的api文档说明。
另外,比较重要的就是,Support Library也会提供一些完整的,完全独立的接口类,这些类和系统平台的framework没有任何关系,在任何平台上的表现都是一样的。这部分的接口可以放心地使用!
再次说明一下,在以上两种情况下app都不应该主动去检查系统平台的版本,这部分的工作应该由Support Library内部完成的。

支持通用布局模式

Support Library提供了不被android framework影响的UI元素,举个例子来说,android Support Library提供了一个额外的布局类:DrawerLayout。这些类的设计遵循了android系统设计的基本实践原则,比如Design Library遵循了android 5.0的材料设计全部原则,这样的话这个库在很多android版本上的运行表现都是一样的。
如果你使用support library的话,你就可以避免陷入重复造车轮的困境。如果你的app有一个特定的UI需求,你就可以使用这些现成的代码,这些库提供了用户一直熟悉的界面风格和设计,这对于保证app的用户体验一致性是非常重要的。这些类还可以帮助你构建出一个看起来很像and

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值