2013-10-22 9 views
5

Androidソースプロジェクトを選択するJavaプログラムを使用してAPKファイルを生成または構築する必要があります。 Webページにボタンがあるとします。クリックすると、.apkファイルが生成されます。javaコードを使用してapkファイルをプログラムで生成する方法

私は、AntとGradleを使用してAPKファイルを作成できることを確認しました。しかし、これはコマンドシェルで実行されます。私はコマンドシェルでそれをやりたいとは思わない。私はJavaプログラムを作成したい。あるいは、私はJavaプログラムを通してシェルコマンドを実行できます。

誰かが私にこれを案内できますか?ありがとう

お返事ありがとうございます。それらの回答については、私はGradleまたはAntを経由する必要があります。もし私がする必要があれば、私はそれを行います。しかし、私は代替案を探しています。

答えて

5

ANTジャーant.jarおよびant-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); 
    } 
    } 
    } 

=>あなたのプロジェクト=>右クリック=>エクスポート=>一般=> AntのビルドファイルをEclipseに行くbuild.xmlファイルを作成します。 その後、実行する必要があります:

android update project --name <project_name> --target <target_ID> --path <path_to_your_project> 
+0

この「アンドロイド更新プロジェクト...」を実行するにはどうすればよいですか? – syed99

+0

私はプログラムを実行することができていますが、このようなエラーがリリース「BUILDは ターゲットをFAILED 『『MYPROJECTを』プロジェクトに存在しません』取得。 – syed99

+0

あなたが参照するファイルに local.properties project.properties を編集する必要が正しいパスsdk.dir = 同様に build.propertiesとant.properties もしあなたがAPK に署名し、build.xmlファイルを持つプロジェクトテンプレートでこのアンドロイド更新プロジェクトを実行しなければならない場合は – user1283633

0

this questionを確認し、この例のcmdコマンドをビルドコマンドに置き換えてください。

2

あなたは自分の質問に答えてください:Runtime.getRuntime()を使用し、apkをantまたはgradleを使ってビルドします。

+0

Javaではコマンドラインを使用したくないですか? – lithos35

+1

はい、私はあなたが私がそれをantやgradleで作ることができるコマンドを知っているなら、私は使っていました。 – syed99

+0

あなたは[Android doc](http://developer.android.com/tools/building/building-cmdline.html)の基礎を持ち、ビルドルールもカスタマイズできます。基本的な使い方はとても簡単です。 – lithos35

0

apkファイルは基本的にzipファイルです。あなたのリソースとクラスdexファイルが含まれています。 Zygoteはdalvikプロセスを作成し、dalvikvmはJavaコードを実行します。 apkファイルは、classdex + resourcesmapのように見えるので、programaticcallyで作成することはできません。あなたがプログラムでapkを作成した場合、テキストファイルにいくつかのascii文字を書くことがあなたのドロウアブルですか?あなたのアプリのアイコンはどこですか?しかし、あなたはdalvikvmを使用してJavaクラスを実行します。 (Basiccally classコマンド-c ...を実行してください)

関連する問題