1. 程式人生 > >Android studio新增第三方庫和so

Android studio新增第三方庫和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 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.tofu.chat" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'
), 'proguard-rules.pro' } }
sourceSets { main { jniLibs.srcDirs = ['libs'] } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile project(':common'
) compile files('libs/kandy-1.6.244.jar') }
原文:
使用Gradle引入第三方庫檔案的總結

不知不覺,使用Android Studio開發App已有一段時間了,接觸到了各式各樣的第三方庫檔案的引入,也是時候總結一波了。

使用Android Studio開發Android應用時,避免不了需要藉助Gradle引入各式各樣的第三方庫檔案,幫助我們更好的開發App,常見的引入方式有:Jar檔案,so檔案,Library庫檔案,aar檔案,遠端jcenter、maven倉庫檔案。這幾種引入方式各有利弊,對應的gradle配置也有所不同,本文根據平時的使用經驗,做一個簡單的總結,幫助大家更好的利用Gradle引入第三方庫檔案。

jar檔案

將jar檔案複製至app module目錄下的libs資料夾下,然後開啟app module目錄下的build.gradle配置檔案,在dependencies項中新增配置命令,這裡有兩種配置方式可供選擇:

  • 一次性引入libs目錄下所有jar檔案
compile fileTree(include: ['*.jar'], dir: 'libs')
  • 1
  • 單個逐一引入jar檔案
compile files('libs/universal-image-loader-1.8.6-with-sources.jar')
  • 1

so檔案

  • Gradle 舊版本

將so檔案(包含arm64等資料夾)複製app module下面的libs資料夾中,和jar檔案類似,然後在build.gradle的android欄目下新增一個task:指定so檔案的目錄,並將其轉化為Jar檔案。命令如下:

task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {  
        destinationDir file("$projectDir/libs")  
        baseName "Native_Libs2"  
        extension "jar"  
        from fileTree(dir: "libs", include: "**/*.so")  
        into "lib"  
    }  

    tasks.withType(JavaCompile) {  
        compileTask -> compileTask.dependsOn(nativeLibsToJar)  
    }  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Gradle 新版本

新版Gradle實現了自動打包編譯so檔案的功能,並且為so檔案指定了預設的目錄app/src/main/jniLibs,當然預設是沒有這個資料夾的,我們只需要新建一個jniLibs資料夾,並將so檔案複製到該資料夾下,編譯執行即可。

通常,為了更好地管理第三方庫檔案,或者更簡單地將Eclipse專案轉化為Android Studio專案,建議將jar檔案和so檔案放在一起,統一擱置在app/libs目錄下,此時,我們只需要在build.gradle的android一欄中新增如命令,指定so檔案的目錄即可:

    sourceSets {
        main {
                jniLibs.srcDirs = ['libs']
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5

通過這種方式,編譯過後,將專案目錄切換至Android試圖,可以看到,app目錄下多了一個jniLibs資料夾,裡面包含了引入的so檔案和jar包,如下圖所示,表示整合成功。

Library庫檔案

將第三方Library庫檔案複製到專案根目錄下,開啟專案根目錄下的settings.gradle檔案,新增配置命令,如:

include ':app', ':PullToRefresh'
  • 1

然後開啟app module目錄下的build.gradle,新增配置命令,如:

compile project(':PullToRefresh')
  • 1

小技巧:推薦在專案根目錄下新建一個資料夾,如extras資料夾,將所有Library庫檔案都複製到該檔案下,方便統一瀏覽管理,這樣上面兩步對應的配置命令將變成:

include ':app', ':extras:PullToRefresh'
  • 1

compile project(':extras:PullToRefresh')
  • 1

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')
  • 1

注意:這種引入方式無法檢視aar檔案中的程式碼和資源等檔案。

  • libs目錄中引入

將aar檔案複製到app module目錄下的libs資料夾中,然後開啟app module目錄下的build.gradle配置檔案,在android一欄中新增依賴:

repositories {
    flatDir {
        dirs 'libs'
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5

然後再在dependencies一欄中新增:

compile(name:'qiniu-android-sdk-7.2.0', ext:'aar')
  • 1

對應完整的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')
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

重新同步,編譯工程,然後可以在app的build目錄下生成對應aar的臨時檔案,可以看到aar檔案中的jar檔案、資原始檔等,看上去更像是一個解壓縮資料夾:

這裡寫圖片描述

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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

然後再各個Module的build.gradle配置檔案的dependencies項中新增依賴,格式為`compile ‘name:version’`,如:

compile 'com.squareup.okhttp3:okhttp:3.2.0'
  • 1

總結

以上便是針對Android Studio引入第三方庫檔案的幾種方式,它們各有利弊,總結來看,就是在包含內容、原始碼修改、版本更新三方面上的差異。Jar檔案只包含java程式碼,不像aar等其他檔案能夠包含res資原始檔;Library檔案形式的引入可以讓開發人員根據自己的需求修改庫檔案原始碼,以達到適應自己專案的目的;而遠端倉庫形式的引入可以實現版本的自動檢測更新,保證自己專案使用的第三方庫檔案始終是最新版本。

當然,一個優秀的第三方庫一般會提供多種方式的引入,考慮到Eclipse和AS使用者,至少要包含Jar檔案和Gradle構建這兩種,其他一些供應者會根據自己的功能模式提供其他引入方式,比如七牛雲端儲存便提供了aar的引入方式。大家可以根據自己的專案需求選擇合適的引入方式,畢竟,適合自己的才是最好的。


相關推薦

Android studio新增第三方so

原文: 以下兩種方式二選一 方法一: 1.在src/main中新建jniLibs資料夾 ,把.so複製進去即可 方法二: 1.在app/中新建libs資料夾,把.so複製進去 2.在app/build.gradle中新增以下五行指令碼即可(注:以下指令碼意思是會把

Android studio新增第三方so

原文: 以下兩種方式二選一 方法一: 1.在src/main中新建jniLibs資料夾 ,把.so複製進去即可 方法二: 1.在app/中新建libs資料夾,把.so複製進去 2.在app/build.gradle中新增以下五行指令碼即

Android Studio 新增第三方的6種方式(Jar,module,so等)

前幾篇我們講過了AS3種新增外掛的方式,以及最常用的一些快捷鍵的用法,這篇我們講講新增第三方庫的方法,我這裡講的是最實用、最簡單也是最有效的方法,網上很多方法雜七雜八的而且有的已盡很老了在新的版本中根本不起作用,好了開始教程: 點選專案設定按鈕 依次選擇

android studio 新增第三方libjar包 apk

新增第三方lib到apk 1. 將新增的lib copy到app下面的libs資料夾: 2. 在app下面的build.gradle中新增如下程式碼,注意要新增在android作用域下面,不然沒有作用: 新增framework.jar到apk: 1. 將android原

Android studio新增第三方時出現的版本不相容問題

Android studio新增第三方類庫時可能會出現版本不相容問題,今天我就遇到了一個這樣的問題。 新增RecycleView的support類庫時報錯: Error:Execution failed for task ':app:processDebugManifest

Android studio 引入第三方(github開源

現在github越來越火,也是個人的招牌了。很多很好的公開庫,都可以直接使用,可以使自己的app效果更加的炫,還可以縮短開發週期。 這裡就主要說下,如何匯入github上的專案,並如何引用。一開始匯入,會遇到挺多問題,也不知道咋處理,慢慢摸索了兩天,終於弄好了。 一、下載g

Pycharm如何新增第三方外掛

Pycharm是我比較喜歡的一款編輯器。   學習python有半年左右,安裝第三方庫都是通過 pip install 或者 easy_install。每次都要開啟命令列感覺太麻煩。還好Pycharm提供了安裝第三方庫和安裝外掛的功能。   首先開啟Pycharm,

Android Studio匯入第三方(SlidingMenu)教程

注意:本教程針對像SlidingMenu這樣使用Android Studio結構的第三方庫。可以免去繁瑣的gradle修改 開始: 第一步,去GitHub下載SlidingMenu (下載地址:https://github.com/jfeinstein1

Android Studio匯入第三方SDK(jar)的方法

Android Studio匯入第三方庫SDK(.jar)的方法: 1.把第三方庫SDK(.jar)拷貝到專案的app\libs目錄,舉例volley.jar庫說明 2.選單點選File->ProjectStructure 3.選擇app->Dependen

Android Studio 匯入第三方

匯入“***.jar”檔案(以UniversalImageLoader為例) 1、將“***.jar”檔案複製至專案中“libs”資料夾中; 2、將“***.jar”檔案右鍵單擊Add As Libr

Android Studio 權威教程]AS新增第三方的6種方式(Jar,module,so等)

前幾篇我們講過了AS3種新增外掛的方式,以及最常用的一些快捷鍵的用法,這篇我們講講新增第三方庫的方法,我這裡講的是最實用、最簡單也是最有效的方法,網上很多方法雜七雜八的而且有的已盡很老了在新的版本中根本不起作用,好了開始教程: 點選專案設定按

Android Studio匯入第三方、jar包so

http://blog.csdn.net/lincyang/article/details/43951527/ 第三方類庫原始碼 將一網友的XMPP程式碼從ADT轉到AS時,發現其使用了第三方類庫,原始碼放在了lib下,直接在AS中Import project,第三方

android如何新增第三方依賴

android開發中經常會需要引用第三方的程式包,一般有兩種方式:一種是將依賴包直接拷貝到本地工程的libs目錄下;另一種是線上依賴,即通過gradle指令碼新增依賴關係,在工程編譯時通過pom檔案去下載對應的依賴包。 今天主要講第二種依賴方式,如果我想依賴某一固定版本的程式包,可以採用如下

Android系統編譯:新增OpenCV模型配置檔案

一、新增 libopencv_java3.so庫至/system/lib64/ 在Android原始碼目錄的hardware/libgesture/目錄下建立libopencvhw資料夾,並將libo

Android筆記--Android Studio 引用第三方開源類okhttp、gson時的打包混淆

在工程下找到proguard-rules.pro檔案下: -dontwarn #okhttp混淆配置 -keep class com.squareup.okhttp.** { *;} -dontw

android呼叫第三方——第二篇——編寫android程式直接呼叫第三方libhello.so

0:前言 1:本文主要作為丙方android公司的身份來寫 2:作者有不對的地方,請指出,謝謝 1:場景:公司接到任務,說配合乙方C++公司開發android識別程式,專案佈置到專案經理,然後經理把任務交給你來做,你自然是先抱怨一番,活多錢少讓我這新人來幹,哎沒辦法啊

android studio新增project libs步驟

在Eclipse中選擇要匯出的專案,然後依次選擇選單 file->export->Android->Generate Gradle build files. 之後依次點選nex

android studio匯入第三方依賴遇到的問題

主要是遇到了兩個異常 1、 Error:Execution failed for task ':app:transformClassesWithJarMergingForHezongDebug'. > com.android.build.api.transform.T

AS新增第三方的6種方式(Jar,module,so等)

點選專案設定按鈕 依次選擇 App > Dependencies 1. 直接搜尋法 依次選擇 + > Library dependency 這裡的搜尋一定要是全名的,不然搜不到哦 下圖所表示的庫和Gradle檔

Android Studio匯入第三方java類含原始碼包

下面演示如何在本專案中匯入第三方的原始碼類庫,這裡例子是匯入photoedit類庫。 先把photoedit類庫copy到你專案的目錄下,如下圖所示: 新增後android studio的專案下會