Apks mit Apache Ant erstellen und signieren

Processing Sketch im Android ModeWie bei bereits im Post Apache Ant auf Windows 7 installieren angekündigt hier nun eine Beschreibung des Veröffentlichungsprozesses für mit Processing entwickelte Andorid Apps. Bevor ich auf einzelne Details von Processing im Android Mode oder zu Programmierung mit Processing im Allgemeinen eingehe, möchte ich hier rein auf die Thematik der Erstellung von installierbaren Packages, den apks, und deren (eventuelle) Signierung eingehen. In der aktuellen Version von Processing, 2.0 a5, steht die Funktion Export Signed Package noch nicht zur Verfügung. Da auch noch keine Angaben gemacht wurden, wann diese Möglichkeit wieder funktioniert und die Export Funktion früherer Processing Versionen im Android Mode aufgrund von Änderungen der Google Android Development Tools nicht mehr funktioniert, bleibt nur der Export über Apache Ant. Die folgende Beschreibung bezieht sich auf Betriebssystem ist Windows 7 Home Premium (SP1, 64-Bit), sollte aber auch bei anderen Versionen funktionieren.

Voraussetzungen

Die nächsten Schritte setzen die korrekte Installation der oben genannten Komponenten voraus. Dabei seien hier insbesondere auch auf die im letzten Post angesprochenen Umgebungsvariablen hingewiesen. Ebenso wird empfohlen, nur eine JDK auf den System installiert zu haben, da es sonst zu Problemen bei der Signierung kommen kann.

Genutzte/s Software/OS:

Die Singnaturdatei – Keystore mit Keytool erstellen

Grundsätzlich können zwei verschiedene Installationsdateien erstellt werden: Entweder mit oder ohne Signatur. .apks ohne Signatur können nur installiert werden, wenn diese als Debug Version gekennzeichnet sind. Um die signierte Installationsdateien zu erstellen benötigen wir zunächst eine .keystore Datei. Diese lässt sich mit de, im JDK enthaltenen Tool, keytool erstellen. Enthält die Umgebungsvariable PATH das Binary Verzeichnis der Java Installation (Bsp.: C:\Program Files\java\jdk1.6.0_32\bin), kann keytool in jedem beliebigen Verzeichnis in der Kommandozeileneingabe (Windows-Taste + R) ausgeführt werden. Der folgende Befehl führt keytool aus und erstellt die Datei ironmaiden.keystore für den Alias IronMaiden:

keytool -genkey -v -keystore ironmaiden.keystore -alias IronMaiden -keyalg RSA -keysize 2048 -validity 10000

Die entsprechenden Stellen (Dateiname und Alias) müssen natürlich noch angepasst werden. Datei wird in dem Verzeichnis erstellt, in dem keytool ausgeführt wurde.

Processing Sketch als signierte, installierbare Datei exportieren

  1. Zunächst brauchen wir einen (fehlerfreien) Processing Sketch. Im folgenden wird mit einem Beispiel gearbeitet, welches die angezeigten Frames (frameCount) und die Millisekunden (millis()) seit dem Start der Anwendung anzeigt.
  2. Bevor der Sketch nun als Android Project exportiert wird, sollte zunächst die Datei AndroidManifest.xml ein wenig abgeändert werden. Diese wird sobald man in Processing die Zugriffsrechte ändert (Menüleiste: Android / Sketch Permissions) erstellt.
    Geändert werden sollte auf jeden Fall der package Name (s. <manifest>) und das Label (s. <appilcation>), der Name, der später angezeigt wird.

    AndroidManifest.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              android:versionCode="1"
              android:versionName="1.0"
              package="de.ironmaiden.android_test">
      <uses-sdk android:minSdkVersion="8"/>
      <application android:debuggable="true"
                   android:icon="@drawable/icon"
                   android:label="Android Test 1.0">
        <activity android:name=".android_test_1_0">
          <intent-filter>
            <action android:name="android.intent.action.MAIN">
            <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>
        </activity>
      </application>
    </manifest>

    Weitere Informationen zur AndroidManifest.xml auf developer.android.com.

  3. Nun kann der Sketch als Android Project exportiert werden (Menüleiste: File / Export Android Project). Im Sketch Verzeichnis wurde nun ein Ordner mit dem Namen android erstellt. In diesem befinden sich auch die Datei ant.properties. Auch diese muss noch ein wenig geändert werden, um eine signierte Installationsdatei zu erstellen. Die erste (zunächst einzige) Zeile muss nicht bearbeitet werden und der Wert nach dem Gleichheitszeichen entspricht dem in Schritt 2 angegebenen package Name.
    Hinzuzufügen ist noch der ganze Pfad der erstellten .keystore Datei und der dort eingetragene Alias. Das untere Beispiel muss natürlich noch angepasst werden.

    ant.properties
    application-package=de.ironmaiden.android_test
    key.store=c:/android/keystore/ironmaiden.keystore
    key.alias=IronMaiden
  4. Im letzten Schritt wird zunächst in der der Kommandozeileneingabe (Windows-Taste + R) in den android Ordner im Sketch Verzeichnis gewechselt:
    cd c:\processing\sketchbook\android_test_1_0\andorid

    Im Anschluss führt man Apache Ant mit dem folgenden Befehl aus:

    ant release

    Nach kurzer Zeit wird man nach den Passwörtern der .keystore Datei gefragt. Hat man diese korrekt eingegeben, wird Ant fortgesetzt.

  5. Nach erfolgreichem Abschluss endet der Vorgang mit einer, der folgenden ähnlichen, Nachricht:
    release:
    BUILD SUCCESSFUL
    Total time: 28 seconds
  6. Die fertige apk (mit der Endung ...-release.apk) findet sich nun im bin Ordner des andorid Ordners im Sketch Verzeichnis.
    Bsp.: android_test_1_0-release.apk

Soll die App als Debug Version erstellt werden, so kann man auf die Schritte 2 und 3 verzichten und führt Ant mit dem Befehl ant debug aus. Die erstellten apks enden dann mit …-debug.apk.

Für Hinweise und Anmerkungen bin ich wie immer dankbar. Gerne auch per E-Mail an christian@chartmann.com.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.