Android 18章:Android Studioパッケージjarファイル
1474 ワード
誰かが私に尋ねた
Android Studioはjarファイルをどのようにパッケージ化しますか.
通常、Android Studioプロジェクトにはlibraryが含まれています.libraryに対応するbuild/intermediates/bundles/release/classesです.jar.このclasses.jarはlibraryに対応するjarファイルです.ps:libraryに対応するaarファイルはbuild/outputs/aar/xxx.aar次はテーマに直行します.
jarのパッケージ化方法
対応するclassファイルをjarにパッケージしたいだけです.
ここではjarコマンドを使用します
BBBディレクトリの下のすべてのclassファイルをAAAというjarにパッケージするという意味です.
build/intermediates/classes/release/にはlibraryが生成したすべてのclassファイルがあります.だから私たちはこのフォルダの下のすべてのclassファイルをパッケージすればいいです.対応するmoduleやライブラリのbuildにあります.gradleファイルの下で、手書きtask、例えば以下
Windowsの場合はbatスクリプトを書いてbuild/intermediates/classesルートディレクトリの下にスクリプトを置いてbatファイルをダブルクリックしてコマンドを実行することもできます.
上は私たちが梱包したプロセス全体です.
まとめコマンドjar cvf xxを使用する.jar -C xxx/. classファイルをjarファイル にパッケージ化
Android Studioはjarファイルをどのようにパッケージ化しますか.
通常、Android Studioプロジェクトにはlibraryが含まれています.libraryに対応するbuild/intermediates/bundles/release/classesです.jar.このclasses.jarはlibraryに対応するjarファイルです.ps:libraryに対応するaarファイルはbuild/outputs/aar/xxx.aar次はテーマに直行します.
jarのパッケージ化方法
対応するclassファイルをjarにパッケージしたいだけです.
ここではjarコマンドを使用します
jar cvf AAA.jar -C BBB/ .
BBBディレクトリの下のすべてのclassファイルをAAAというjarにパッケージするという意味です.
build/intermediates/classes/release/にはlibraryが生成したすべてのclassファイルがあります.だから私たちはこのフォルダの下のすべてのclassファイルをパッケージすればいいです.対応するmoduleやライブラリのbuildにあります.gradleファイルの下で、手書きtask、例えば以下
/* jar */
def JAR_NAME="AAA.jar";
/* jar */
def TARGET_FOLDER="build/"
/* class */
def CLASS_FOLDER="build/intermediates/classes/release/"
/* jar cvf xx.jar -C xxx/ . */
def makeJar(String target,String classDir){
exec{
executable "jar"
args "cvf",target
args "-C",classDir
args " ","."
}
}
task buildJarTask(dependsOn:['build'])<
Windowsの場合はbatスクリプトを書いてbuild/intermediates/classesルートディレクトリの下にスクリプトを置いてbatファイルをダブルクリックしてコマンドを実行することもできます.
@ECHO OFF
Echo Auto-Jar Created By ppjun
Echo start to jar the folder
jar cvf apple.jar -C release/ .
Echo jar Complete
Pause
EXIT
上は私たちが梱包したプロセス全体です.
まとめ