Android Support Library學習入門

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應用出現“A功能”。可是你調用這個api寫出的App應用在舊版Android手機上卻無法展示“A功能”,甚至都無法安裝運行。這時候就該Support Library出馬了,Support Library可以讓新api特性在指定版本的Android上也能正常運行。(請注意這裏的“新api特性”和“指定版本”,在使用Support Libary時,首先要確定這兩點:你要使用什麼新api特性以及最低支持到哪個版本的Android。)

即:Support Library 是用來支持新版本Android框架的新特性,在老版本Android手機(框架)上實現。

對於做過VC++開發的,Google的這種兼容方式看着太眼熟了。每一次Visual Studio的升級都會帶來新版本的MFC庫,程序發佈時一定要同時打包相應版本的MFC庫,才能在各個版本的Windows中運行。只是Google沒有直接通過Google API庫來實現這種兼容性,而是單獨搞出個Support Library來。

官方文檔上提到,對於應用開發者,根據應用程序支持的系統版本和使用的API函數,最好在Android工程中包含相應的Support Libary以使用新特性,這樣不僅可以把你應用程序的界面由窮D絲變成白富美,更重要的是可以擴大你的用戶羣體。
對於Android開發者,由於要面對各種各樣的設備類型、高低不同的系統版本,,能夠熟練處理兼容性問題是必不可缺的基本功之一。爲此要熟知每一個特性是在哪一個API level上加入的,在查閱官方手冊Api Reference時多留心右上角的API level。
在這裏插入圖片描述
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主要涉及程序組件,新的用戶界面特效,網絡連接等比較基礎的變動,因此我們平時比較常用到。

  1. 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的應用商店是進行版本判斷的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章