Android studio中導(dǎo)入第三方lib的幾種方式

前言:寫此文章的目的是為了梳理并加強自己對于導(dǎo)入第三方lib包細節(jié)知識的記憶。

我們平時在開發(fā)的過程中蝗碎,都會遇到要實現(xiàn)某一個特效或者具體的功能,如android仿iOS滾輪效果旗扑,如實現(xiàn)分享等第三方平臺功能蹦骑,而這些我們?nèi)绻慷甲约簛鞢oding的話,估計費老鼻子勁了臀防,所以都會從網(wǎng)上找一些開源的眠菇、好用的、成熟的主要是省事的第三方lib包導(dǎo)入系統(tǒng)袱衷,再次就梳理一下在導(dǎo)包的過程中可能遇到的問題捎废。

項目引入第三方代碼有幾種方式,分別是開源的致燥、直接集成好的jar包登疗,原則上如果有源代碼,就導(dǎo)入源代碼嫌蚤,這樣也方便個性化定制以及去除無用的代碼辐益。導(dǎo)入的形式又份本地的和網(wǎng)絡(luò)的。下面就分別來說說各自的方式脱吱。

1荷腊、集成好的jar包

1.1 本地的jar包

一般情況我們都放到主工程下面的libs文件夾下,然后通過gradle編譯


示例圖

上圖中急凰,libs中除了文件夾類型后面再議外女仰,看到很多*.jar文件猜年,其中前面帶箭頭的代表已經(jīng)通過編譯了,不帶箭頭的疾忍,代表還沒有編譯過(沒有編譯過是不能引用其中的類)乔外。下面我們來對其進行編譯。

找到對應(yīng)的build.gradle文件一罩,看到其中有這么一段話

dependencies {

compile fileTree(include: ['*.jar'],dir:'libs')

compile project(':library')

compile files('libs/open_sdk_r5509_lite.jar')

compile files('libs/jcc-bate-0.7.3.jar')

}

這里重點說一下杨幼,其實有最上面的

compile fileTree(include: ['*.jar'],dir:'libs')

已經(jīng)代表每一次gradle都會對libs文件夾下的jar文件進行編譯,通俗點就是聂渊,導(dǎo)入一個jar包后差购,再點擊一下

就妥妥的了。


妥妥的

就是說汉嗽,上面的gradle文件可以改成

dependencies {

compile fileTree(include: ['*.jar'],dir:'libs')

compile project(':library')(這個是這個項目要導(dǎo)入的其他lib)

}

ps:在導(dǎo)入第三方j(luò)ar包的時候欲逃,一定要注意其對應(yīng)的是否有對應(yīng)的so庫,以及so庫支持的CPU類型饼暑。有的時候第三方提供的so庫對應(yīng)的cpu類型不全稳析,其中的坑誰用誰知道,放一個鏈接弓叛,不懂的童鞋可以看看:

http://blog.csdn.net/u013278099/article/details/50414438

http://blog.csdn.net/ouyang_peng/article/details/51168072

ps:上面鏈接我隨手搜到的彰居,如果有更好的到時候再更新。(估計也就是說說撰筷,別當真)

1.2 網(wǎng)絡(luò)lib包

原諒我這無知的人對于網(wǎng)絡(luò)上的倉庫什么Maven Central什么JCenter之類的一知半解陈惰,為了不出洋相就不多闡述,但是還是很厚道的放一個鏈接:

http://blog.csdn.net/lu_xin_/article/details/51134849

我們通常使用的都是JCenter(如果遇到需要通過meven的人家的網(wǎng)站上都會詳細說明一步一步怎么做毕籽,照做就好)抬闯,貼出項目的build.gradle中的配置,就妥妥的使用了jcenter了:

allprojects{

repositories {

jcenter()

}

}

然后在application中的build.gradle中加上如下內(nèi)容


示例圖

然后再次gradle一下影钉,就又不出意外的妥妥導(dǎo)入進去了


有一個示例圖

2画髓、導(dǎo)入源代碼

2.1 直接將源文件添加進項目代碼中

這種方式很粗暴的說,比如直接把人家的類作為自己的寫的類來使用平委,適用于特殊場景的奈虾,比如自定義圖片、自定義簡單的view廉赔,這種一般就是一個文件搞定肉微,不是一個項目的方式導(dǎo)入進去。

2.2 將源代碼整個項目作為lib庫導(dǎo)入


又要妥妥的了~

這個就是項目源代碼作為lib導(dǎo)入蜡塌,首先需要聲明其是一個lib而不是一個application碉纳,在其對應(yīng)的build.gradle文件中最開頭加上一句:

apply plugin:'com.android.library'

然后在整個項目的setting.gradle中include進去

include':wheel'

再次要注意的是,上面的寫法代表這個項目是和我們的application是在同一個文件夾下的馏艾,如果這個項目(指的是wheel)作為一個公共的(多個項目都使用到的)lib被用到劳曹,每一個項目中都添加一遍也不利于變動修改奴愉,所以可以在項目的setting.gradle指定具體路徑的項目作為lib:

include':wheel'

project(':wheel').projectDir = file("../android-tools/trunk/wheel")

上面..代表上級路徑哈!

這也聲明了是lib也include了進去铁孵,下一步就該使用了锭硼,在application中(或者在使用的項目lib中)的build.gradle文件下

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

compile project(':wheel')

}

這樣就成了。

最后說一句大家都知道的東西蜕劝,就是lib可以相互繼承檀头,把A、B項目作為lib后岖沛,如果B中的build.gradle添加了compile A項目暑始,再在C項目中compile B,C項目也可以使用A項目的代碼婴削。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廊镜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子馆蠕,更是在濱河造成了極大的恐慌期升,老刑警劉巖惊奇,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互躬,死亡現(xiàn)場離奇詭異,居然都是意外死亡颂郎,警方通過查閱死者的電腦和手機吼渡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乓序,“玉大人寺酪,你說我怎么就攤上這事√媾” “怎么了寄雀?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陨献。 經(jīng)常有香客問我盒犹,道長,這世上最難降的妖魔是什么眨业? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任急膀,我火速辦了婚禮,結(jié)果婚禮上龄捡,老公的妹妹穿的比我還像新娘卓嫂。我一直安慰自己,他們只是感情好聘殖,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布晨雳。 她就那樣靜靜地躺著行瑞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪餐禁。 梳的紋絲不亂的頭發(fā)上蘑辑,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音坠宴,去河邊找鬼洋魂。 笑死,一個胖子當著我的面吹牛喜鼓,可吹牛的內(nèi)容都是我干的副砍。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼庄岖,長吁一口氣:“原來是場噩夢啊……” “哼豁翎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起隅忿,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤心剥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后背桐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體优烧,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年链峭,在試婚紗的時候發(fā)現(xiàn)自己被綠了畦娄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡弊仪,死狀恐怖熙卡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情励饵,我是刑警寧澤驳癌,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站役听,受9級特大地震影響颓鲜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜禾嫉,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一灾杰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熙参,春花似錦艳吠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凛篙。三九已至,卻和暖如春栏渺,著一層夾襖步出監(jiān)牢的瞬間呛梆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工磕诊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留填物,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓霎终,卻偏偏與公主長得像滞磺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子莱褒,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容