Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android資訊 >> Android Support Library 學習入門

Android Support Library 學習入門

編輯:Android資訊

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開發吧。路漫漫其修遠兮,吾只能不停的上下折騰。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved