1. 程式人生 > >android studio 將已有的專案 以module Library的 形式引入到 自己的專案中

android studio 將已有的專案 以module Library的 形式引入到 自己的專案中

1、什麼是Module Library

android  將專案  分成   project 和 Module

module  其實也是一個專案   他裡面也有  res  、 java 、 AndroidManifiest等檔案  其實也是一個可以獨立執行的專案 

只是   build.gradle中  標記了是library型別的


而 project是   

apply plugin: 'com.android.application'




2、module library 匯入到自己專案中的意義

如果是將  一個外部的module library想匯入到當前的工程作為   library  作為一個,  可以看作是與當前專案的  合併  ,在主專案中可以 直接使用  module library專案中的資原始檔等。 總之就等效於  將module library專案中的檔案複製到了主專案的對應資料夾中了。

必須明白上面這一點,  這也是  ModuleLibrary  存在的意義

3、將module library 匯入到自己專案

1)如果是android studio  的module Library   那麼可以直接匯入。

注意:但是 由於module Library 使用的gradle版本和當前專案的gradle不一樣,那麼android studio就會去電腦中找是否有對應的gradle ,如果 沒有那麼他就去網上下載,但是伺服器在國外,國內下載很慢,所以在匯入前可以修改一下版。改為自己對應已有的版本。

檢視 gradle 的版本    開啟當前專案的檔案中的gradle檔案

用記事本開啟上面的 檔案看最後一句

https\://services.gradle.org/distributions/gradle-2.8-all.zip  說明版本是 2.8

然後開啟要匯入的module library的  對應的gradle-wrapper.properties   將版本改為2.8  這樣可以匯入快一點。    

其實從網上下載下來的專案  用自己的android studio 開啟前  也可以這麼做,這樣開啟的也會快一點。

2)如果是  android  studio 的專案 或者 eclipse的專案  或者eclipse的library專案匯入到當前的專案作為  module library那麼 步驟如下

(1)新建一個library形式的module,刪掉這個module中src/main目錄裡面的所有檔案(包括刪掉java、res、AndroidManifest.xml)

(2)複製第三方庫的AndroidMainfest.xml、res、src檔案(夾)到庫目錄的src/main目錄中

(3)將src/main目錄下的src目錄重新命名(Shift+F6)為java

(4)刪除庫module中的build.gradle檔案(注意不要修改錯了地方)中的dependencies和release模組(這一步可以不做)

注意:除了上面三個檔案  還有 libs  、assest等等檔案對應複製就可以了

  如果libs 檔案中有.so檔案(就是jni)   ,android studio 是將jar包和.so檔案分開放的,jar包還放在libs中,so檔案放在jniLibs中   兩種解決方法

方法1、 新建一個 在src/main檔案中新建 jniLibs資料夾,將.so檔案都拷貝進去

方法2、.so檔案還是放在libs中但是,要告訴android studio去哪裡找.so檔案

修改當前module的build.gradle檔案。
sourceSets {
 main {
 jniLibs.srcDirs = ['libs']
}
}

以上兩種方法 結果都是一樣的效果一樣。

在工程中可以看到多出了jniLibs的資料夾如圖


總結:其實.so檔案一般都是一些驅動硬體的程式  ,執行起來都是在如下的路徑中

   執行到手機中的時候 這些.so檔案     既不是在libs中也不是在jniLibs中,以上兩個都是開發時候看見的路徑,實際打包成apk的時候是在lib 資料夾中。

這是監控列印的路徑    System.out:      so檔案的路徑::::/data/data/專案名稱/lib/XXX.so 

所以放在哪裡都一樣,這要最終android  studio 可以找得到並且打包到apk 的 lib中就可以了!

4、將 module library 新增給當前的專案


完成了!

寫的不太好只有自己能夠看得懂,就當是筆記!