2014-05-20 35 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」部件。

相關問題