我想以编程方式从给定路径创建APK文件到目录(其中包含Java源代码)。我知道这可以通过使用android工具的命令行完成,但是如何使用Java代码完成?如何以编程方式将文件打包到APK档案中
回答
正如我在评论指出,大部分的构建过程是通过命令行的二进制文件,你不太可能在位置移植到Java的,如javac
处理,dx
,并aapt
。
如果我在你身边,我会考虑Gradle的IDE集成钩子,并使用它加上合适的build.gradle
及相关文件来驱动Java代码的构建过程。能够使用Gradle作为一个真正的自动化系统是Gradle for Android工作背后的关键之一。
否则,你所建议的是不使用任何现有的构建自动化选项为Android(摇篮,蚂蚁,Maven的,再加上Eclipse构建过程中的东西),而是建立另一个之一。如果你有几十个开发人员和几个月的时间,并且你想要走这条路,那么当然欢迎你这样做。你会想看看上述的想法实现。
我想我现在明白你的意思了,但是,由于我正在使用的项目已经使用了Maven,所以我认为如果我坚持Maven代替Gradle 或者你会推荐使用Gradle方式吗? – Pawan
@Pawan:I对Android的Maven支持没有经验,所以我不能评论它与Gradle的比较。这就是说,我相信这是一个更好的解决方案,创建自己的。 – CommonsWare
您可以请我指向Ant文件的源代码,该文件定义了如何构建android apk?或者就此而言,Gradle插件? – Pawan
我有一个类似的问题,经过一番研究,我最终通过调用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”部件。
- 1. 如何将多个库档案(.a)打包到一个档案文件中?
- 2. 如何以编程方式将DataReport打印到PDF文件?
- 3. 以编程方式打印文档
- 4. 以编程方式打印HTML文档
- 5. 以编程方式打印PDF文档
- 6. 将文件资源打包到apk中?
- 7. 以便携式方式以编程方式打开文档
- 8. 以编程方式将文件上传到Google文档
- 9. 如何以编程方式将文件添加到解决方案?
- 10. 如何停止在android中以编程方式打开文档和pdf文件?
- 11. 如何在iOS中以编程方式打开设备的文档文件
- 12. 如何以编程方式在Google文档中创建文档?
- 13. 如何以编程方式读取apk文件的内容?
- 14. 如何以编程方式列出Android APK文件的内容?
- 15. 如何以编程方式从Google Play下载APK文件?
- 16. 如何以编程方式安装apk文件
- 17. 如何以编程方式将文档保存在OpenOffice.org中?
- 18. 如何以编程方式将JasperViewer保存到文件/流中?
- 19. 以编程方式将InkPicture添加到word文档中
- 20. 以编程方式将WPF中的xml文档绑定到treeview
- 21. 如何以编程方式将文本插入到SWF文件
- 22. 如何以编程方式从Sharepoint文档库下载文件
- 23. 如何以编程方式操作本地Google文档文件
- 24. 如何以编程方式上传Google文档上的文档?
- 25. 以编程方式将docx文件转换为文档
- 26. 以编程方式打印excel文件
- 27. 以编程方式打开pdf文件
- 28. 以编程方式将APK推送到系统/应用程序
- 29. 如何以编程方式将注释插入Microsoft Word文档?
- 30. 如何以编程方式将图像插入Word文档?
你想完成什么?您无法从JAVA创建APK。 – Booger
如果您知道可以通过命令行来完成,那么尝试在Java中调用命令行。 –
@Booger我正在尝试将一个目录打包到APK存档中。为什么不能完全从Java完成?这只是一个档案,就像拉链一样,对吧? – Pawan