我写了一个Android应用程序,它不使用任何依赖项或模块,只有一个Activity和一个布局文件。如何在不使用Gradle(或其他“构建系统”或“依赖项管理”软件)的情况下在命令行上构建应用的apk文件?
zynd9foi1#
如果您不想使用ant/gralde构建,请使用以下步骤手动构建您的apk。但是你必须至少安装Android SDK。
aapt
R.java
javac
*.class
d8
dx
dex
classes.dex
AndroidManfiest.mk
MyApplication.apk.unaligned
zipalign
MyApplication-debug.apk
MyApplication-release.apk
我已经创建了一个示例脚本来完成上述所有工作,请参阅here实际上,一些文章已经讨论了这个主题,请参阅以下链接。https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-linehttps://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/
am46iovg2#
尝试从命令行使用支持库构建应用程序。https://github.com/HemanthJabalpuri/AndroidExplorer
rta7y2nd3#
alijandro给出了完美的答案。我设法编写了简单的ANT脚本,它使用AdMob构建生产APK,而不使用gradle。一些有用的评论:
1.如果你想混淆类,你必须jar编译好的类(在javac和dx步骤之间),然后运行proguard
proguard
AdMob
C:\Users\<User>\AppData\Local\Android\sdk\extras\google\m2repository\com\google\android\gms\play-services-ads\10.2.6\play-services-ads-10.2.6.aar
这些归档文件应在javac和dx中传递1.对于AdMob,还有几个额外的简单配置步骤Gradle在android项目中做了很多混乱的事情,所以自己的脚本看起来像是要投入生产的项目的单一解决方案。
Gradle
yyhrrdl84#
不久前,我在对Android Studio和Gradle感到沮丧后偶然发现了这个线程。受到alijandro和this template from authmane512的答案的启发,我编写了一系列脚本来编译Java或Kotlin中的Android应用程序(包括依赖项/包),而无需任何外部构建系统。链接:https://github.com/jbendtsen/tiny-android-template这里涉及到一点DIY,但考虑到这是像Gradle这样的东西会为你做的事情,我认为知道它是有用的。此外,它就像 wayyyy 不那么慢,你有更多的控制你的应用程序如何组装。
4条答案
按热度按时间zynd9foi1#
如果您不想使用ant/gralde构建,请使用以下步骤手动构建您的apk。但是你必须至少安装Android SDK。
aapt
创建R.java
javac
将所有java源代码编译为*.class
d8
(或旧版SDK中的dx
)将所有*.class
转换为dex
文件,例如输出为classes.dex
AndroidManfiest.mk
创建APK的初始版本,例如输出为MyApplication.apk.unaligned
aapt
将步骤3中生成的classes.dex
添加到MyApplication.apk.unaligned
MyApplication.apk.unaligned
进行签名zipalign
对齐最终APK,例如,如果使用发布密钥签名,则输出为MyApplication-debug.apk
或MyApplication-release.apk
我已经创建了一个示例脚本来完成上述所有工作,请参阅here
实际上,一些文章已经讨论了这个主题,请参阅以下链接。
https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-line
https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/
am46iovg2#
尝试从命令行使用支持库构建应用程序。https://github.com/HemanthJabalpuri/AndroidExplorer
rta7y2nd3#
alijandro给出了完美的答案。我设法编写了简单的ANT脚本,它使用AdMob构建生产APK,而不使用gradle。一些有用的评论:
1.如果你想混淆类,你必须jar编译好的类(在
javac
和dx
步骤之间),然后运行proguard
AdMob
,您必须从zip压缩文件中提取以下jar文件(如C:\Users\<User>\AppData\Local\Android\sdk\extras\google\m2repository\com\google\android\gms\play-services-ads\10.2.6\play-services-ads-10.2.6.aar
):这些归档文件应在
javac
和dx
中传递1.对于
AdMob
,还有几个额外的简单配置步骤Gradle
在android项目中做了很多混乱的事情,所以自己的脚本看起来像是要投入生产的项目的单一解决方案。yyhrrdl84#
不久前,我在对Android Studio和Gradle感到沮丧后偶然发现了这个线程。受到alijandro和this template from authmane512的答案的启发,我编写了一系列脚本来编译Java或Kotlin中的Android应用程序(包括依赖项/包),而无需任何外部构建系统。
链接:https://github.com/jbendtsen/tiny-android-template
这里涉及到一点DIY,但考虑到这是像Gradle这样的东西会为你做的事情,我认为知道它是有用的。此外,它就像 wayyyy 不那么慢,你有更多的控制你的应用程序如何组装。