Ⅰ 各位,工程下libs文件夾與android Private Libraries有什麼區別
Android工程中三種庫的區別:Private Libraries、Referenced Libraries、Dependency Libraries
一、v4、v7、v13的作用和用法
1、Android Support V4, V7, V13是什麼?
本質上就是三個java library。
2、為什麼要有support庫?
是為了解決軟體的兼容問題。如果在低版本Android平台上開發一個應用程序,而應用程序又想使用高版本才擁有的功能,就需要使用Support庫。
android api向來是高版本兼容低版本.如api-8(android2.2)必會兼容api-4(android 1.6).但是反之則不會,你使用2.2的平台版本build了一個apk,若想能在1.6上運行,則需要做向下兼容.
android support-xx是google官方的向下兼容包.如名所示,會幫助構建程序向下兼容到1.6版本.不過也並非萬能的,還是會受限制.
Android 為了兼容2.X以下的版本,所以出了android.support.v4的包,該包的主要作用是便於開發者在2.X的開發環境中,使用4.0的控制項。
3、三個Support 庫的區別和作用是什麼?
簡單說明下這幾個版本間的區別:
Android Support v4: 這個包是為了照顧1.6及更高版本而設計的,這個包是使用最廣泛的,eclipse新建工程時,都默認帶有了。
Android Support v7: 這個包是為了考慮照顧2.1及以上版本而設計的,但不包含更低,故如果不考慮1.6,我們可以採用再加上這個包,另外注意,v7是要依賴v4這個包的,即,兩個得同時被包含。
Android Support v13 :這個包的設計是為了android 3.2及更高版本的,一般我們都不常用,平板開發中能用到。
4、Android Support 包里究竟有什麼
隨著Android5.0 Lollipop 的發布,Android 又為我們提供了更多的支持包,但是我相信大部分開發者都同我之前一樣不知道這些包里究竟有些什麼東西,我們應該在什麼時候使用它。現在,我們就來逐個看看每一個版本的 Support 包中所擁有的東西,讓用到他的時候不再迷茫。
首先,你需要了解每一個 Support 包版本後綴 vX 所代表的含義。當然我相信來看博客的諸位都一定知道 Android 對於每一個版本都有一個版本號,例如2.1是7,4.0是14,5.0是21。而這里,v 之後的數字,就代表著他能夠被使用的最低版本等級,之所以無法在更低版本進行使用的原因,是因為隨著版本的升級,在新版本中有很多之前不支持的特性或者 API,因此如果你在老版本中使用了這些支持包,就可能會導致應用崩潰。
現在,我們從頭開始逐個瀏覽目前所支持的 support 包:
(1)support-v4
support-v4包算是 Android 最低等級的支持包。所謂的 v4,代表著它最低支持 Android1.6(API Level4),這個版本算得上是一個真正意義上比較成熟的 Android版本,更何況現在我們寫應用的時候一般都只最低支持到 Android 2.x 系統,對於1.x 的系統基本已經已經完全拋棄了,因此你可已經他作為最基本的系統組件使用。
在 support-v4包中,它所擁有的類還是很多的,主要包含了對應用組件的支持,用戶交互體驗的一些工具類,一些數據網路方面的工具類,相面我們將詳細來看看它裡面具體的一些類。
1.系統組件部分
Fragment:其實 Fragment 是直到 Android3.0才正式進入 Android 框架體系的,但是 Android 為了低版本的兼容,因此他幫我們在低版本也適配了 Fragment 框架
NotificationCompat:這是通知欄的一些適配,可以幫助你在低版本的通知欄顯示更加豐富的信息
LocalBroadcastManager:這個是用於本地廣播通知的,當你希望發送的通知只被本應用接收時,你就應該使用它
2.用戶界面交互部分
ViewPager,這個相信我不用怎麼說了,他主要用於幫助我們進行界面間的滑動交互
PagerTitleStrip,PagerTabStrip 這兩個算是 ViewPager 的幫助類吧,他們的作用是進行 Tab 欄的切換輔助顯示
DrawerLayout,主要用於側滑欄的實現
SlidingPaneLayout,這個類也是用於側滑欄的實現,和 DrawerLayout 不同的是,DrawerLayout 側滑欄出來的時候,默認是覆蓋在當前頁面上,而 SlidingPaneLayout 則是會將當前頁面移走。
3. Accessbility訪問的幫助類
ExploreByTouchHelper,幫助自定義 View 實現 Accessibility 的工具類
AccessbilityEventCompat, AccessbilityNodeInfoCompat, , AccessbilityDelegateCompat,這幾個都是用作 Accessibility 功能適配的類
4.數據訪問幫助類
Loader,主要用於非同步載入數據
FileProvider,提供應用間的文件分享功能
(2)support-v7
1.Appcompat
這個包的主要作用是為了在低版本實現 Android 的 Holo 風格界面而引入的,與之類似的有一個開源項目叫做 SherlockActionbar
2.CardView
卡片布局是最近在 android5.0發布的時候才引入的新包,在我看來,他主要效果是讓應用進行卡片花顯示
3.GridLayout
網格布局能夠幫助你將整個布局按照一格兩格的格子形式進行排列
4.MediaRouter
這個布局主要是用來支持 GoogleCast 的,主要用於進行設備間的音頻,視頻交換顯示
5.Palette
這個包也是最新出來的,他的作用是幫助 Android 實現他的 MaterialDesign,讓你的 Actionbar 能夠根據界面進行對應的顏色改變
7.RecyclerView
這個包同樣也是剛出來的,他的作用是替換 ListView 和 GridView,但是可惜是沒有實現 OnItemClick 這些介面,你需要自己處理它
(3)support-v8
support-v8中其實只有一格特性,就是用來渲染腳本
(4)support-v13
這個包的作用主要是為 Android3.2級以上的系統提供更多地 Framgnet 特性支持,使用它的原因在於,android-support-v4包中雖然也對 Fragment 做了支持,由於要兼容低版本,導致他是自行實現的 Fragment 效果,在高版本的 Fragment 的一些特性丟失了,而對於 v13以上的 sdk 版本,我們可以使用更加有效,特性更多的代碼
(5)support-v17
這個包得主要作用是用於支持電視設備,並為電視設備提供了很多組件
例如下面的:
BrowseFragment, DetailFragment, PlaybasckOverlayFragment, SearchFragment
二、看一個javaee項目(使用myeclipse開發)
eclipse 中 構建路徑下的 order and export 是干什麼用的
構建順序和 導出的時候要導出哪些資源,order就是使用class的順序(因為可能出現class同名的情況),export就是把用到的一些的lib和project同時發布。
在order and Export條目中,不能重復將jar包打入到APK中,現在android將導出的jar包分為Android Dependencies和Android Private libraries兩種,目的是供開發者選擇,但是一般這兩個都要打入Apk中!