Android Studio 添加第三方庫
本文演示怎么添加第三方庫:
- so文件
- Jar文件
- Library庫文件
- arr文件
- jcenter、maven倉庫文件
so文件
方法一:
1.在src/main中新建jniLibs文件夾,把.so復制進去即可
方法二:
1.在app/中新建libs文件夾,吧.so復制進去
2.在app/build.gradle中添加以下五行腳本即可(注:以下腳本意思是會把libs文件夾當成jniLibs文件夾,可以直接用so庫了)
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
貼上完整的app/build.gradle文件,紅色的部分是新增的
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.0"
defaultConfig {
applicationId "com.example.firstapplication"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
2.Jar文件
將jar文件復制至app module 目錄下的libs文件夾下,然后打開app module目錄下的build.gradle配置文件,在dependencies項中添加配置命令,這里有兩種配置方式可供選擇:
- 一次性引入libs目錄下所有jar文件
compile fileTree(include: ['*.jar'], dir: 'libs')
- 單個逐一引入jar文件
compile files('libs/universal-image-loader-1.8.6-with-sources.jar')
3.Library庫文件
將第三方Library庫文件復制到項目根目錄下,打開項目根項目目錄下的settings.gradle文件,添加配置命令,如:
include ':app', ':PullToRefresh'
然后打開app module目錄下build.gradle,添加配置命令,如:
compile project(':PullToRefresh')
小技巧: 推薦在項目根目錄下新建一個文件夾,如extras文件夾,將所有Library庫文件都復制到該文件夾下,方便統一瀏覽管理,這樣上面兩步對應的配置命令將變成:
include ':app', ':extras:PullToRefresh'
和
compile project(':extras:PullToRefresh')
4.aar文件
aar其實也是一個壓縮文件,相比jar文件,它能夠含帶res資源文件等,aar文件的引入方法有兩種:
- Module形式引入
選擇File菜單,或者打開Project Structure界面,添加新的Module(New Module...),選擇Import .JAR/.AAR Package,選擇目標aar文件導入.導入之后,在項目根目錄會自動生成一個新的文件夾放置aar文件及其配置文件,如:
然后打開app module 目錄下的build.gradle配置文件,在dependencies依賴中添加配置文件即可:
compile project(':qiniu-android-sdk-7.2.0')
注意:這種引入方式無法查看aar文件中的代碼和資源等文件.
- libs目錄中引入
將aar文件復制到app module目錄下的libs目錄下的libs文件夾下,然后打開app module目錄下的build.gradle配置文件,在android一欄添加依賴:
repositories { flatDir { dirs 'libs' } }
然后再在dependencies一欄中添加:
compile(name:'qiniu-android-sdk-7.2.0', ext:'aar')
對應完整的app module目錄下的build.gradle配置文件如:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.feng.demo" minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } repositories { flatDir { dirs 'libs' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile project(':extras:PullToRefresh') compile 'com.squareup.okhttp3:okhttp:3.2.0' compile(name:'qiniu-android-sdk-7.2.0', ext:'aar') }
重新同步,編譯工程,然后可以在app的build目錄下生產對應aar的臨時文件,可以看到aar文件中的jar文件,資源文件等,看上去更像是一個解壓縮文件夾:
5.jcenter、maven倉庫文件
在項目根目錄的build.gradle文件中添加倉庫,如:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
然后再各個Module的build.gradle配置文件的dependencies項中添加依賴,格式為: compile 'name:version', 如:
compile 'com.squareup.okhttp3:okhttp:3.2.0'
總結
以上便是針對Android Studio引入第三方庫文件的幾種方式,它們各有利弊,總結來看,就是在包含內容、源碼修改、版本更新三方面上的差異。Jar文件只包含java代碼,不像aar等其他文件能夠包含res資源文件;Library文件形式的引入可以讓開發人員根據自己的需求修改庫文件源碼,以達到適應自己項目的目的;而遠程倉庫形式的引入可以實現版本的自動檢測更新,保證自己項目使用的第三方庫文件始終是最新版本。
當然,一個優秀的第三方庫一般會提供多種方式的引入,考慮到Eclipse和AS用戶,至少要包含Jar文件和Gradle構建這兩種,其他一些供應者會根據自己的功能模式提供其他引入方式,比如七牛雲存儲便提供了aar的引入方式。大家可以根據自己的項目需求選擇合適的引入方式,畢竟,適合自己的才是最好的。
最后:請留下您的贊!阿里嘎多.