2014-05-20 13 views
0

我想以编程方式从给定路径创建APK文件到目录(其中包含Java源代码)。我知道这可以通过使用android工具的命令行完成,但是如何使用Java代码完成?如何以编程方式将文件打包到APK档案中

+0

你想完成什么?您无法从JAVA创建APK。 – Booger

+0

如果您知道可以通过命令行来完成,那么尝试在Java中调用命令行。 –

+0

@Booger我正在尝试将一个目录打包到APK存档中。为什么不能完全从Java完成?这只是一个档案,就像拉链一样,对吧? – Pawan

回答

2

正如我在评论指出,大部分的构建过程是通过命令行的二进制文件,你不太可能在位置移植到Java的,如javac处理,dx,并aapt

如果我在你身边,我会考虑Gradle的IDE集成钩子,并使用它加上合适的build.gradle及相关文件来驱动Java代码的构建过程。能够使用Gradle作为一个真正的自动化系统是Gradle for Android工作背后的关键之一。

否则,你所建议的是不使用任何现有的构建自动化选项为Android(摇篮,蚂蚁,Maven的,再加上Eclipse构建过程中的东西),而是建立另一个之一。如果你有几十个开发人员和几个月的时间,并且你想要走这条路,那么当然欢迎你这样做。你会想看看上述的想法实现。

+0

我想我现在明白你的意思了,但是,由于我正在使用的项目已经使用了Maven,所以我认为如果我坚持Maven代替Gradle 或者你会推荐使用Gradle方式吗? – Pawan

+0

@Pawan:I对Android的Maven支持没有经验,所以我不能评论它与Gradle的比较。这就是说,我相信这是一个更好的解决方案,创建自己的。 – CommonsWare

+0

您可以请我指向Ant文件的源代码,该文件定义了如何构建android apk?或者就此而言,Gradle插件? – Pawan

0

我有一个类似的问题,经过一番研究,我最终通过调用Java(Eclipse)的命令行,然后给出了我使用的命令作为参数。我为每个想要构建的项目在循环中重复了这一点,并且它工作得很好。

http://geosoft.no/development/android.html此网站显示您可能需要遵循的在命令行中构建Android程序的每一步。我只关心.apk部分,所以第14步就够了,但你可以检查整个页面。

使用APK命令在该页面中,我创建了一个的ProcessBuilder代码:

ProcessBuilder pb = new ProcessBuilder 
     (new String[] {ANDROID_HOME + "\\build-tools\\android-4.4W\\aapt.exe", 
       "package", 
       "-v", 
       "-f", 
       "-M", projectRootDirPath + "\\AndroidManifest.xml", 
       "-S", projectRootDirPath + "\\res", 
       "-I", ANDROID_HOME + "\\platforms\\android-20\\android.jar", 
       "-F", projectRootDirPath + "\\bin\\" + [APK_file_name] + ".apk", 
       projectRootDirPath + "\\bin"}); 

ANDROID_HOME是你的SDK路径,projectRootDirPath是项目目录的路径,当然[APK_file_name]应该是合适的名称为您的.apk文件。

此外,您可能需要根据所使用的版本更改“android-4.4W”和“android-20”部件。

相关问题