Android Support Library 学习入门

0. 文前闲话

作为一个由原生桌面应用程序开发者(VC、Delphi)转行的Android菜鸟,虐心的事真是数不胜数:安装个开发工具下载个SDK需要整整一夜;早晨一上班点开Android Studio(简称AS),去倒个水回来了还不见它开始工作;开发工具一忙起来就会忘记你这个开发者,不知过了多久后才给你一句:“去TMD的GFW,我啥也没干成,你自己看着办吧!”。

对于我们这些已经被微软、Borland、Sybase洗脑多年的开发者,除了开发工具的不适应,最大的壁垒其实是大脑中已经固有的思维方式,往往在接受新概念时总要习惯性的去跟以往已经认知的东西做对比,这就要比一个New Comer耗费更多的时间和体力。比如说本文要谈的Android Support Library,一直被我望文生义的当做系统底层的支持库,在我的身边不停的出现,可是始终没有进入我的脑袋。于是经过一番搬梯翻墙,查阅了官网资料,在这儿试着弄个水落石出。

要想真正的掌握Android Support Library,没有其它什么捷径,窍门。只有一条路,就是阅读官方的API参考,一个类一个函数的逐个搞明白。那就让本文做你开始品尝"API参考"大餐前的一道开胃菜吧。

1. Support Library 介绍

官方文档上(原文:http://developer.android.com/tools/support-library/index.html)第一句话就指明了Support Library的作用:“Android Support Library代码包使新版本的Android框架中的最新特性能够兼容之前版本Android框架“。也就是说Support Library为不断升级的Android系统提供了向下兼容性。

上面的翻译还是不太直白,还是打个比方吧:假设Google发布的新版本Android API提供了一个新特性:你只需要调用一个简单的api函数就可以实现在App应用出现车辆照片时自动识别车辆品牌,并振动提醒用户,真是太酷了。可是你调用这个api写出的App应用在旧版Android手机上却无法展示如此狂拽酷炫diao炸天的车震特效,甚至都无法安装运行,真是让人沮丧。这时候就该Support Library出马了,Support Library可以让新api特性指定版本的Android上也能正常运行。(请注意这里的“新api特性”和“指定版本”,在使用Support Libary时,首先要确定这两点:你要使用什么新api特性以及最低支持到哪个版本的Android。)

对于做过VC++开发的,Google的这种兼容方式看着太眼熟了。每一次Visual Studio的升级都会带来新版本的MFC库,程序发布时一定要同时打包相应版本的MFC库,才能在各个版本的Windows中运行。只是Google没有直接通过Google API库来实现这种兼容性,而是单独搞出个Support Library来。

官方文档上提到,对于应用开发者,根据应用程序支持的系统版本和使用的API函数,最好在Android工程中包含相应的Support Libary以使用新特性,这样不仅可以把你应用程序的界面由穷D丝变成白富美,更重要的是可以扩大你的用户群体。

对于Android开发者,由于要面对各种各样的设备类型、高低不同的系统版本,因此在由一坨Android开发的小鲜肉变成老腊肉的演变过程中,能够熟练处理兼容性问题是必不可缺的基本功之一。为此要熟知每一个特性是在哪一个API level上加入的,在查阅官方手册Api Reference时多留心右上角的API level。

另外还要把下一节所介绍的Support Library Features原文多读几遍。

2. Support Library Features

Support Library其实是多个库(jar包)的组合,这里不得不说,它的jar包名比较有迷惑性,对于我这样的初学者来说,容易形成错误的“想当然认知”判断。例如下面的

    com.android.support:support-v4:21.0.0

我一开始就粗心的把v4当成了版本号(21.0.0才是真正的版本号),因此总是迷惑什么情况选择v4版,什么情况选择v7版?是不是还有v5, v6?其实v4、v7都是Support Library中不同的库名称而已。包名中的v4不是版本号,只不过表明了它不凡的身世:“我的诞生,是为了照亮Android1.6(API  level 4)用户的!”

Support Library的第1版(2011年3月发布)就只包含v4库,之后的版本不断地在完善v4库。一直到2年后(2013年5月)的第13版,为了兼容API level 7(android2.1)增加了v7这个库(v7其实也是一组库的组合)。此时已经Android4.3(API level 18)的时代。

随着Google为了提升用户体验,不断的解决版本兼容性问题,Support Library也越来越大。除了v4和v7这两个最常用的库,Support Library Features还包含了其它10几个库(不知将来Support Library是否会有终点?),关于每一个库的功能特性,在原文中(http://developer.android.com/tools/support-library/features.html)有详细的论述。在这里,只把Support Library包含的库名罗列一下。

  • v4 Support Library
  • Multidex Support Library
  • v7 Support Libraries(注意是复数,因此是一组库)
    • v7 appcompat library(这个最常用吧)
    • v7 cardview library
    • v7 gridlayout library
    • v7 mediarouter library
    • v7 palette library
    • v7 recyclerview library
    • v7 Preference Support Library
  • v8 Support Library
  • v13 Support Library
  • v14 Preference Support Library
  • v17 Preference Support Library for TV
  • v17 Leanback Library
  • Annotations Support Library
  • Design Support Library
  • Custom Tabs Support Library
  • Percent Support Library
  • App Recommendation Support Library for TV

由于v4 Support Library和v7 Support Librarys主要涉及程序组件,新的用户界面特效,网络连接等比较基础的变动,因此我们平时比较常用到。

3.  Support Library的安装

如果你使用的是Android Studio(像我一样的菜鸟肯定选AS了,用过eclipse开发Android的老鸟请飞过这一节),Support Library的安装和使用非常简单。只需要打开SDK Manager,点几下鼠标,再加几行代码就行了。不信请看:

3.1 下载

打开SDK Manager:

官网专门指出,如果你使用Android Studio,选择并安装 Android Support Repository ,不需要选择Android Support Library。

3.2 在程序中加入Support Librarys

在官网介绍中,根据带资源和不带资源两种库分别介绍了不同的使用方法,实际上只是针对eclipse而言。如果使用Android Studio,使用方法是一样的:只需要打开build.gradle文件,增加下面的代码(以v4库为例):

dependencies {
    ...
    compile "com.android.support:support-v4:18.0.+"
}

剩下的事,就是在代码中使用你需要的类了。

 官方提醒:在应用程序中包含了Support Library后,强烈建议在发布程序前,使用ProGuard工具对发布包进行优化。这样除了能够保护你的源码不被别人用反编译工具获取,同时它把你程序所引用的第三方库中并未使用的类都去掉了,让你的应用程序保持尽可能的小,别忘了,手机上的存储可是寸土寸金啊!

3.3 修改Manifest文件

既然你已经使用了Support Library,现在你的应用程序只差一步就能横行天下,兼容更多的系统版本了。那就是修改Manifest文件中的版本声明。打开Manifest.xml文件,找到android:minSdkVersion一项,把它修改的足够的低。

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="17" />

你也许会问:“我改了Manifest.xml给谁看?”。是的,它还真不是给人看的。上面的Manifest.xml告诉Google Play(谷歌官方应用商店),你的程序可以安装在Android 2.1(API 7)版本之上的设备上,低于这个版本的,我猜应该就不给装了。因为我还没用过Google Play(暗自一阵脸红),国内的软件应用商店好象没有版本提示,我只见过Apple的应用商店是进行版本判断的。

4. 结束语

在企业应用中,除了专业化较强的原生桌面应用程序,大多数业务系统已经迁移到了B/S架构的Web方式,随着移动互联网的普及,大量的应用程序将向手机迁移,这里面也会包括原有少量的桌面应用程序。原生桌面应用程序的生存空间越来越小,反之则出现了大量新的移动应用需求,新的机会慢慢来临。原生桌面程序开发人员,为了不被这个时代所淘汰,尽快掌握Android开发吧。路漫漫其修远兮,吾只能不停的上下折腾。

时间: 2024-07-29 01:32:09

Android Support Library 学习入门的相关文章

Android Support library

1, Android Support V4, V7, V13是什么? 本质上就是三个java library. 2, 为什么要有support库? 如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. 3, 三个Support 库的区别和作用是什么? Android Support v4 是最早(2011年4月份)实现的库.用在Android1.6 (API lever 4)或者更高版本之上.它包含了相对V4, V13大的多的功能.

理解安卓支持库(Android Support Library)

安卓平台其中一个很牛逼的地方在于它支持各种不同的设备.从你的平板电脑,到你的手机,电视等,安卓无处不在.安卓想成为一个全领域的移动计算平台.光从它的数量上来说,已经算是很成功了. 支持所有这些设备是有一些挑战的.不管硬件还是软件上的不同,用户希望应用程序可以在每一台设备上用样的运行:同样,对于开发者来说,你不能总指望用户已经升级到最近的安卓版本.事实上,开发者遇到的用户大多使用18个月前或者更老的版本. 如果没有安卓团队的帮助,开发者会不得不做些“丑陋的代码”去兼容那些使用老版本的用户.幸运的是

Android support library支持包常用控件介绍(二)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator

Support v4 v7 v13: Android Support Library

Android Support v4:  这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了. Android Support v7:  这个包是为了考虑照顾2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外 注意,v7是要依赖v4这个包的,即,两个得同时被包含. Android Support v13:这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到. Andro

Android Support Library package简介

转自http://my.oschina.net/chengliqun/blog/148451 N久未做android了,以前做的时候,2.2才刚出来,现在android都更新到了4.3了,而从前一段时间android各个sdk版本市场占有率 来看,1.6.2.1还是占有一定的市场,故在有些时候,我们还是得要考虑兼容这些版本. google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以

[Xamarin.Android] Support Library Tips

[Xamarin.Android] Support Library Tips Support Library支持内容 Xamarin Support Library每个版本支持.那些组件,可以参考这份简报的第8张. Backwards Compatibility in Xamarin.Android Made Easy

Android Support Library介绍

v4 Support Library 这个库是为Android 1.6(API版本为4)及以上的版本设计的,它包含大部分高版本中有而低版本中没有的API,包括application components.user interface features.accessibility.data handling.network connectivity.and programming utilities,下面是对V4中的一些关键API的介绍: App Components Fragment:通过它可以

Android Support Library 23.2

Android Support Library 23.2 When talking about the Android Support Library, it is important to realize this isn't one monolithic library, but a whole collection of libraries that seek to provide backward-compatible versions of APIs, as well as offer

提高Android Support Library稳定性的三个关键方法

在Crashlytics,我们经常帮助开发者探索如何建立最稳定应用的方法.抱着这个想法,最近我们开始研究安卓应用崩溃的普遍原因.尤其令我们好奇的是能否在Android Support Library中找到应用崩溃的一些蛛丝马迹,因为这是安卓应用中最广泛使用的Library之一.(貌似是老外写的) 在我们分析的一亿个崩溃里,发现大约有4%的崩溃与这个Support Library有关.通过更深层次的分析,我们的研究表明,绝大多数的崩溃是由一些常见较小的错误造成,而且这些错误却可以避免的.基于这些分