我需要通过一些Java程序生成或构建一个APK文件,我选择Android源项目。假设我在网页上有一个按钮。单击时,它会生成.apk
文件。
我见过我们可以通过Ant和Gradle构建APK文件。但这贯穿命令shell。我不想在命令shell中这样做。我想写一个Java程序。或者我可以通过Java程序运行shell命令。
有人可以指导我吗?感谢
感谢您提供的答案。对于那些答案,我需要通过Gradle或Ant。如果必须,我会这样做。但是,我正在寻找替代方案。
答案 0 :(得分:5)
您可以使用ANT广告ant.jar
和ant-launcher.jar
在这种情况下,应完全指定build.xml
的路径。
以这种方式从Java类中调用它:
public class AntTest {
public static void main(String[] args) {
String build = "D:/xampp/htdocs/aud/TempProject/build.xml";
generateApkThroughAnt(build);
}
/*
* Generate APK through ANT API Method
*/
public static void generateApkThroughAnt(String buildPath) {
File antBuildFile = new File(buildPath);
Project p = new Project();
p.setUserProperty("ant.file", antBuildFile.getAbsolutePath());
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
BuildException ex = null;
try {
p.fireBuildStarted();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, antBuildFile);
p.executeTarget("clean");
p.executeTarget("release");
} catch (BuildException e) {
ex = e;
} finally {
p.fireBuildFinished(ex);
}
}
}
要创建build.xml
文件,请转到Eclipse =>您的项目=>右键单击=>导出=>一般=> Ant Buildfiles。
之后,您将需要运行:
android update project --name <project_name> --target <target_ID> --path <path_to_your_project>
答案 1 :(得分:1)
我想你回答自己的问题:使用Runtime.getRuntime()并使用ant或gradle构建apk。
答案 2 :(得分:0)
apk文件基本上是zip文件。它包含您的资源和类dex文件。 Zygote创建dalvik进程,dalvikvm执行你的java代码。你不能programaticcally创建apk文件,因为它看起来像classdex + resourcesmap。如果你以编程方式创建apk在文本文件中写一些ascii字符你的绘图是什么?你的应用图标在哪里?但是你将执行java类使用dalvikvm。 (基本上运行类命令-c ...)
答案 3 :(得分:-1)
签出this question并将示例中的cmd命令替换为构建命令。