先看看eclipse引用外部Jar:
選中項(xiàng)目右鍵--->Build Path ---> Configure Build Path ---> Libraries --->Add External Jars...--->選中jar打開(kāi)就可以了流纹。
(直接引用:把jar放在libs下面 Build Path ---> Add To Build Path
)
AndroidStudio引用外部Jar:
- 如果沒(méi)有l(wèi)ibs目錄糜烹,需要在module主目錄下新建libs目錄(
so文件在src目錄下新建jniLibs
)。
- 將jar放入
libs
目錄下 ---> 選中jar右鍵 ---> Add As Library... ---> 點(diǎn)擊ok ---> 等gradle加載完就算ok了(按住ctrl可以多選漱凝。到這里算直接引用
) -
第三步設(shè)置成外部引用:
選中module右鍵 ---> Open Module Settings ---> Dependencis ---> 會(huì)發(fā)現(xiàn)剛才引用的jar的scope
為Compile ---> 改為 Provided(這樣就為外部引用了
)
可能有些人并不知道外部引用和直接引用的區(qū)別
主要區(qū)別是:
外部引用只參與編譯疮蹦,并不打包進(jìn)apk。
直接引用會(huì)打包進(jìn)apk茸炒。
為什么要引用外部的Jar? 為什么要引用只參與編譯的Jar?
主要是為了方便安全愕乎,有很多定制化的手機(jī)/平板會(huì)里的多個(gè)app(
一般是內(nèi)置的阵苇,需要root權(quán)限才能卸載
)會(huì)用到同一個(gè)Jar(so也一樣
),那就把這個(gè)jar就放在系統(tǒng)里面感论,這樣可以減小app大小绅项,而且放到系統(tǒng)里面,可以防止安裝在其他android設(shè)備上面比肄。很多廠商對(duì)于安全性要求高的app都會(huì)采用這樣的方法快耿。
注:jar放在系統(tǒng)里面,需要在AndroidManifest.xml里面的<Application/>標(biāo)簽中申明<uses-library/>屬性芳绩。如下:
<uses-library
android:name=""
android:required="true|false"/>
父標(biāo)簽:<application/>
name : libs目錄下的jar文件名掀亥。
required : true 代表系統(tǒng)需要有這個(gè)庫(kù),沒(méi)有不能安裝妥色。
required : false 代表系統(tǒng)可以沒(méi)有這個(gè)庫(kù)搪花,也可以安裝,(這樣的會(huì)在用這個(gè)庫(kù)的時(shí)候進(jìn)行判斷這個(gè)庫(kù)時(shí)候存在嘹害,一般用反射判斷
)
如何看Jar時(shí)候打包進(jìn)Apk呢撮竿?
- 首先我們需要生成一個(gè)Apk: 點(diǎn)擊Build ---> Build Apk 這樣就會(huì)生成一個(gè)apk,目錄是module的build下:build\outputs\apk\app-debug.apk
- 點(diǎn)擊build ---> Analyze Apk
---> 點(diǎn)擊ok 會(huì)彈出如下界面 --->選中classes.dex就可以查看有木有jar的包
注:改為provided將沒(méi)有這些目錄『鹩担可以自己嘗試倚聚。
增加
Android gradle 3.0 插件有4種引入方式
- implementation 相當(dāng)于原來(lái)的compile
- api 相當(dāng)于原來(lái)的compile
- compileOnly 相當(dāng)于原來(lái)的provided
- runtimeOnly 相當(dāng)于原來(lái)的apk
參考網(wǎng)址:
關(guān)于Android的.so文件你所需要知道的
AndroidStudio中多個(gè)Module依賴同一個(gè)jar的解決方案
使用Android Studio3.0新功能,加快Android Studio的構(gòu)建速度