Android 打包相关学习
APK打包流程图
aapt.exe
call “../aapt.exe” package -f -m -J ../src/main/gen/ -M ../src/main/AndroidManifest.xml -S ../src/main/res -I ..Androidsdk/platforms/android-29/android.jar
-f: 覆盖现有的文件命令,加上后编译生成直接覆盖目前已经存在的R.java
-m: 使生成的包的目录放在-J参数指定的目录
-J: 指定R.java输出的路径
-M: AndroidManifest.xml的路径
-S: 指定资源目录 一般是 res
-I: 指定的SDK版本中android.jar的路径
生成 R.java
javac.exe
call “../OpenJDK/Windows/bin/javac.exe” -d ../src/main/objs/
-source 1.7 -target 1.7
-classpath ../libs/android-arch-core-common-1.1.0.jar;../libs/android-arch-lifecycle-common-1.1.0.jar;../libs/annotations-4.9.0.jar;../libs/disklrucache-4.9.0.jar;../libs/support-annotations-27.1.1.jar;../libs/unity-classes.jar
-sourcepath ../src/main/java/
-bootclasspath ..Androidsdk/platforms/android-29/android.jar ..R.java ..UnityPlayerActivity.java ..Boostrap.java
-d <目录>: 指定放置生成的类文件的位置
-source <发行版>: 提供与指定发行版的源兼容性
-target <发行版>: 生成特定VM版本的类文件
-classpath <路径>: 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径>: 指定查找输入源文件的位置
-bootclasspath <路径>: 覆盖引导类文件的位置
生成 R$attr.class, R$drawable.class, R$mipmap.class, R$string.class, R$style.class, R.class, UnityPlayerActivity.class
dx.bat
call “../dx.bat” –dex –output=../src/main//pkg_raw/classes.dex ../src/main/objs/ ../libs/android-arch-core-common-1.1.0.jar ../libs/android-arch-lifecycle-common-1.1.0.jar ../libs/annotations-4.9.0.jar ../libs/disklrucache-4.9.0.jar ../libs/support-annotations-27.1.1.jar ../libs/unity-classes.jar
生成 ../src/main/pkg_raw/classes.dex
aapt.exe
call “../aapt.exe” package -f -m -F ../src/main//bin/test..unaligned.apk -M ../AndroidManifest.xml -A ../src/main/assets -S ../src/main/res -I ../android.jar D:/NewTSJ/AndoridPlatform/TianShenJie2/TheGodClient//AndroidGradleProject_v1.0/TianShenJie/src/main//pkg_raw
相关参考
AAPT https://www.jianshu.com/p/8d691b6bf8b4
https://www.cnblogs.com/yikemogutou/p/12723299.html
Android 打包相关学习
原文地址:https://www.cnblogs.com/revoid/p/13379960.html