AndroidStudio 項目打包成jar
一.步驟(AndroidStudio):
1.像平常一個樣新建一個項目(步驟省略):
2.(在步驟1的基礎(chǔ)上)點擊File-->New-->New Module—>選擇[Android]
(http://lib.csdn.net/base/android "Android知識庫") Library-->點擊Next(如下圖:)
生成新library module 結(jié)果如下:
新建test 項目中會自動引入該Module (app下的build.gradle):
添加 implementation project(':librarytest')
3.生成jar:
librarytest module 工程中建一個工具類
(1)在librarydemo工程下的build.gradle中加上:
task makeJar(type: Copy) {
//這行表示如果你已經(jīng)打過一次包了,再進行打包則把原來的包刪掉
delete 'build/libs/test.jar'
//這行表示要打包的文件的路徑师骗,根據(jù)下面的內(nèi)容历等,其實是該路徑下的classes.jar
from('build/intermediates/packaged-classes/release/')
//這行表示打包完畢后包的生成路徑,也就是生成的包存在哪
into('build/libs/')
//看到這行辟癌,如果你對分包有了解的話寒屯,你就可以看出來這行它只是將一些類打包了
include('classes.jar')
rename ('classes.jar', 'test.jar')
}
makeJar.dependsOn(build)
(2)terminal 命令行 使用 gradlew makeJar 打jar
(3) 生成的jar如下圖:
二、使用jar和arr:
二者區(qū)別:
jar: 只包含了class文件與清單文件 黍少,不包含資源文件寡夹,如圖片等所有res中的文件。
aar: 包含jar包和資源文件厂置,如圖片等所有res中的文件菩掏。
個人覺得還是用as提供的aar包比較好,編譯完就生成了aar了昵济,不用擔(dān)心資源問題智绸,
- aar使用:
導(dǎo)入aar(jar一樣):
(1) app下的build.gradle 添加如圖所示,
repositories {
flatDir {
dirs 'libs'
}
}
implementation (name:'librarytest',ext:'aar')
(2) Sync Now 一下野揪,看到如下:
-
jar導(dǎo)入:
導(dǎo)入jar(同arr一樣)-->選中jar-->右鍵-->點擊Add As Library-->點擊Ok
- 聲明:打出來的jar只有源代碼的.class 文件,不包含資源文件
有人會想怎么把資源(圖片瞧栗,布局斯稳,string等)打進jar包呢?
例如:jar中有一個activity用到了布局文件和圖片資源迹恐,那么怎么辦呢挣惰?
解決如下:由于打包出來的jar只有源代碼的.class 文件,不包含資源文件殴边,我們就把jar包中用到的資源放到你使用
該jar的工程里面憎茂。然后通過反射即可,具體參考該篇文章實現(xiàn):