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

sye*_*d99 7 android apk

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

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

有人可以指导我吗?谢谢

感谢您提供的答案.对于那些答案,我需要通过Gradle或Ant.如果必须,我会这样做.但是,我正在寻找其他选择.

use*_*633 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);
    }
   }
   }
Run Code Online (Sandbox Code Playgroud)

要创建build.xml文件,请转到Eclipse => Your Project =>右键单击=> Export => General => Ant Buildfiles.之后你需要运行:

android update project --name <project_name> --target <target_ID> --path <path_to_your_project>
Run Code Online (Sandbox Code Playgroud)