2013-03-08 19 views
20

Ich bin daran interessiert, Android Apps on demand zu machen. Abhängig von der Client-Anforderung, würde meine Website mir eine JSON-Datei direkt an eine Windows-Anwendung senden, die ich in Delphi erstellt habe. Dieser würde die Datei im Quellordner der Android-App speichern und dann eine Befehlszeile ausführen, die den Android-Compiler anweist, die APK-Datei zu generieren und sie an meinen Client zu senden, und das alles ohne meine Anwesenheit.Wie kompiliere ich APK von der Kommandozeile?

Das Android-Projekt wurde mit MotoDev gemacht. Und es verwendet das Android-SDK, das in meinem Stamm ist.

Wie sollte ich die Befehlszeile konfigurieren, um dies in meinem Delphi-Programm zu erreichen?

Ich muss auch das Manifest ändern, um eine neue Versionsnummer zu setzen, damit es nicht Konflikte mit anderen Client-Version.

Antwort

31

Android verwendet das Ant-Build-System, so dass Sie eine build.xml und build.properties Datei für Ihr Projekt erstellen können.

Sie müssen die build.xml Datei jedoch zuerst erstellen:

android update project -p . 

Diese eine build.xml Datei generieren. Sie sollten wahrscheinlich die Build-Schritte und Ziele für Ihr Projekt anpassen. Eine gute Idee in Ihrem Fall wäre, die build.properties Datei von Ihrer Website für den spezifischen Build generiert zu haben ... Dann schließen Sie es über die Datei build.xml. Insbesondere müssen Sie in der build.properties-Datei angeben, wo die Signaturschlüssel sind und was das Passwort ist:

Build.Properties:

key.store=keystore.dat 
key.alias=signing_key 
key.store.password=password123 
key.alias.password=password123 

Der Build-Prozess ermöglicht es Ihnen, auch mit ant zu Ersetze Variablen in Java-Dateien, was vielleicht eine andere Idee ist. Dadurch können Sie den Build-Prozess für jeden Client individuell anpassen.

Standardmäßig wird die Build ausgelöst durch:

ant clean 
ant release 

Eine andere nette Idee: Haben Sie Ant kopiert die resultierende APK zu einer Netzwerkfreigabe von der Website zugänglich Datei durch eine < copy ... /> Linie im < target name="release" > Abschnitt platzieren.

+0

ja dieses build.properties ist auch eine XML-Datei? Würden Sie mir ein vollständiges Beispiel dieser beiden Dateien zeigen? – PSyLoCKe

+0

Wie macht man das gleiche in PHP Server? @Andrew –

+2

Ich sehe keine build.xml-Datei in meinem vorhandenen Projektverzeichnis ... Sie sagen 'Sie müssen die build.xml-Datei erstellen, aber warum würde dies nicht bereits erstellt werden, wenn ich bereits kompilieren durch, sagen wir ... Eclipse/ADT? – Michael

5

erstellen build.xml bei der Projekterstellung Zeit

Wenn Sie mit einem neuen Projekt starten:

android create project \ 
    --target 1 \ 
    --name MyName \ 
    --path . \ 
    --activity MyActivity \ 
    --package com.yourdomain.yourproject 

die build.xml von ant verwendeten Datei generiert werden.

Das Tool android ist im Verzeichnis tools/ des SDK enthalten, das Sie heruntergeladen haben.

erstellen Debug-Meldungen

Zudem:

ant release 

für die endgültige Versionen, können Sie auch mit Debug-Meldungen erstellen:

ant debug 

Lage von apk erzeugt

Generierte apk sind unter bin/ platziert.

Die wichtigsten Ergebnisse sind:

MyName-debug.apk 
MyName-release.apk 

aber einige Zwischen APKs sind insbesondere auch nicht ausgerichtet und nicht signierte Versionen erzeugt.

Aber die meiste Zeit können Sie vergessen, wo sie erstellt wurden, und führen Sie einfach:

ant debug install 
ant release install 

bekommen sie installiert. Aber stellen Sie sicher, dass es zuerst mit adb arbeiten: adb devices command not working

Getestet auf Ubuntu 15.10, Android 23.

Verwandte Themen