Android 使用命令行工具构建
Android Build with command-line tools
我试图了解 .apk
文件是如何从源代码构建的。我知道使用 Android Studio 或命令 gradlew
可以轻松完成构建。 Android Sdk 提供了多种用于构建 .apk 的工具,其中大部分我都知道它们的作用:
d8
: java 字节码到 dalvik 字节码
aapt2
:编译资源并link它们。此工具创建一个 .apk
编译资源文件。 (它还会创建 R.java
以引用代码中的资源。)
apksigner
:取.apk
并签名。否则,它无法安装在 Android 设备上。
zipalign
:对齐.apk
的未压缩数据
最后两个工具用于 apk
,其中已包含所有文件。我不明白的是编译代码和编译资源是如何组合的?在aapt2
之前是用aapt
打包的东西,但在Androids Documentation上什至没有列出。但是,aapt
仍在 Android Sdk 构建工具中。新的 aapt2
没有打包选项。
那么,问题是使用哪些命令行工具以及以何种顺序从源代码创建完整的 .apk
?谢谢!
编辑: 我正在寻找的内容类似于 this,其中 .apk
是使用命令行逐步创建的。只有答案使用旧的aapt
,我认为不再使用它了。
编辑 2:
感谢 Allen Shaw 为我提供了缺失的信息。我现在可以用 aapt2
编译一个应用程序。我的问题的答案只是压缩 aapt2
输出和 classes.dex
.
您也可以使用aapt2
命令
aapt2 link -o output.apk
参考 google 文档 here
将 .dex 文件添加到 apk 中:
zip -ur app-debug.apk classes.dex
我试图了解 .apk
文件是如何从源代码构建的。我知道使用 Android Studio 或命令 gradlew
可以轻松完成构建。 Android Sdk 提供了多种用于构建 .apk 的工具,其中大部分我都知道它们的作用:
d8
: java 字节码到 dalvik 字节码
aapt2
:编译资源并link它们。此工具创建一个 .apk
编译资源文件。 (它还会创建 R.java
以引用代码中的资源。)
apksigner
:取.apk
并签名。否则,它无法安装在 Android 设备上。
zipalign
:对齐.apk
最后两个工具用于 apk
,其中已包含所有文件。我不明白的是编译代码和编译资源是如何组合的?在aapt2
之前是用aapt
打包的东西,但在Androids Documentation上什至没有列出。但是,aapt
仍在 Android Sdk 构建工具中。新的 aapt2
没有打包选项。
那么,问题是使用哪些命令行工具以及以何种顺序从源代码创建完整的 .apk
?谢谢!
编辑: 我正在寻找的内容类似于 this,其中 .apk
是使用命令行逐步创建的。只有答案使用旧的aapt
,我认为不再使用它了。
编辑 2:
感谢 Allen Shaw 为我提供了缺失的信息。我现在可以用 aapt2
编译一个应用程序。我的问题的答案只是压缩 aapt2
输出和 classes.dex
.
您也可以使用aapt2
命令
aapt2 link -o output.apk
参考 google 文档 here
将 .dex 文件添加到 apk 中:
zip -ur app-debug.apk classes.dex