关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 安卓开发 »Android Support Library 学习入门

    Android Support Library 学习入门

    2015-09-03 00:00:00 出处:胡凯
    分享

    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。

    Android Support Library 学习入门

    另外还要把下一节所介绍的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 Support Library 学习入门

    官网专门指出,假如你使用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开发吧。路漫漫其修远兮,吾只能不停的上下折腾。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    如何从 Windows 11 中完全删除/卸载 OneNote?无解!

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    IT头条

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    阿里千问3开源首战告捷:全球下载破千万,国产AI模型崛起新高度!

    01:22

    DeepSeek R1小版本试升级:网友实测编程能力已达到国际一线水平

    23:15

    NVIDIA 与 Dell 合作,大规模交付 Blackwell AI 系统

    20:52

    Cerebras 以最快的 Llama 4 Maverick 性能引领 LLM 推理竞赛

    20:51

    技术热点

    PHP中的随机性——你觉得自己幸运吗?

    搞定Ubuntu Linux下WPA无线上网

    Java使用内存映射实现大文件的上传

    MySQL安全性指南

    MySQL两项性能的基本测试浅谈

    教您使用UniqueIdentifier选取SQL Server主键

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。