如何通过java代码以编程方式生成apk文件

时间:2013-10-22 07:51:53

标签: android apk

我需要通过一些Java程序生成或构建一个APK文件,我选择Android源项目。假设我在网页上有一个按钮。单击时,它会生成.apk文件。

我见过我们可以通过Ant和Gradle构建APK文件。但这贯穿命令shell。我不想在命令shell中这样做。我想写一个Java程序。或者我可以通过Java程序运行shell命令。

有人可以指导我吗?感谢

感谢您提供的答案。对于那些答案,我需要通过Gradle或Ant。如果必须,我会这样做。但是,我正在寻找替代方案。

4 个答案:

答案 0 :(得分:5)

您可以使用ANT广告ant.jarant-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命令替换为构建命令。