之前有發(fā)過創(chuàng)建Jar包的流程礼殊,可隨著AS版本的更新,方法并沒有那么好用依疼,有童鞋問到了這個問題,用這篇再來總結(jié)一下而芥。
總的來說律罢,AS打包生成jar包可以分成兩類:
- 第一類是將應(yīng)用模塊application轉(zhuǎn)換成庫模塊library后生成jar包
- 第二類是通過新建module庫模塊的方式生成jar包
下面我們就看看這兩類分別是怎么生成jar包的,我們根據(jù)之前demo實例來演示棍丐。
第一類:將應(yīng)用模塊application轉(zhuǎn)換成庫模塊library后生成jar包
1误辑、首先打開build.gradle文件,注意這里是app目錄下的歌逢,在這個文件我們需要做兩個操作:
- 將com.android.application改成com.android.library
- 注釋掉applicationId
如圖所示:
2巾钉、打開清單文件AndroidManifest.xml
-
首先將application配置的屬性去掉
在這里插入圖片描述 -
然后再去掉Activity入口,防止引入后運行有兩個圖標(biāo)
在這里插入圖片描述
這個時候就把應(yīng)用模塊轉(zhuǎn)換成庫模塊啦趋翻,接下來就可以打jar包了睛琳。由于生成jar包方式都相同,所以先介紹完兩類后再往下走踏烙。
第二類:通過新建module方式生成jar包
1师骗、新建module,F(xiàn)ile->New->New Module...
2讨惩、選擇Android Library ->Next
3辟癌、填寫Moudle名稱,點擊Finish荐捻,一個新的Moudle就完成啦
4黍少、這個時候我們來看看生成的build.gradle文件寡夹,就是我們需要的庫模塊
5、這個時候?qū)?yīng)用模塊中需要打包成jar包的代碼文件厂置,復(fù)制粘貼到對于的位置就可以了菩掏,例如我這里想將Test文件中的getTodayDateTime()方法暴露出去給別人調(diào)用。
到這里兩類方式就都已經(jīng)介紹完了昵济,這兩類生成方法都是相同的智绸,我下面就拿第一類做演示。
接下來就看看是如何生成jar包的:
1访忿、首先也是打開app目錄下的build.gradle文件瞧栗,在這個文件我們需要添加下面代碼:
task makeJar(type: Copy) {
//刪除存在的
delete 'build/libs/myjar.jar'
//設(shè)置拷貝的文件
from('build/intermediates/aar_main_jar/release/')
//打進(jìn)jar包后的文件目錄
into('build/libs/')
//將classes.jar放入build/libs/目錄下
//include ,exclude參數(shù)來設(shè)置過濾
include('classes.jar')
//重命名
rename ('classes.jar', 'myjar.jar')
}
makeJar.dependsOn(build)
將上面的代碼添加到gradle里面的android目錄下即可。
2海铆、添加完后就可以生成啦迹恐,這里也有兩種方式:
- 通過cmd命令行方式
在AndroidStudio->Terminal中輸入命令:
gradlew makeJar
回車,等生成就可以啦卧斟,如圖所示即成功啦:
-
通過Android Studio右邊的Gradle的makeJar命令
image
image
找到makeJar后雙擊即可自動生成jar包啦殴边,如圖所示:
生成jar包的測試:
接下來將生成的jar包放入到另一個項目中進(jìn)行測試
1、將生成的jar包復(fù)制到新之前的demo中測試唆涝,如圖所示:
2找都、將jar包添加進(jìn)項目
3、以下是在onCreate方法中調(diào)用jar包里的方法:
String todayDateTime = Test.getTodayDateTime();
Toast.makeText(MainActivity.this, "調(diào)用jar包方法測試時間:"+todayDateTime, Toast.LENGTH_SHORT).show();
4廊酣、最后看看效果圖:
這說明已經(jīng)調(diào)用jar包中的方法成功啦能耻。