繁体   English   中英

如何以编程方式将文件打包到APK存档中

[英]How to package files into an APK archive programmatically

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

正如我在评论中指出的那样,大部分构建过程都是从命令行二进制文件处理的,你不太可能将它移植到Java,例如javacdxaapt

如果我在你的位置,我会看看Gradle的IDE集成挂钩,并使用它以及合适的build.gradle和相关文件从Java代码中驱动构建过程。 能够使用Gradle作为一个真正的构建自动化系统是Gradle for Android工作背后的关键点之一。

否则,你提出的建议是不要使用Android的任何现有构建自动化选项(Gradle,Ant,Maven,以及Eclipse构建过程的东西),而是构建另一个 如果您有几十个开发人员需要几个月的时间,并且您想要走这条路,那么您肯定会这样做。 您可能希望查看上述实现的想法。

我有一个类似的担忧,经过一些研究,我最终通过从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”部件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM