207.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
2
Gliederung1. Continuous Integration
1. Einführung2. Vorgehensweise3. Build-Management-Tools4. Continuous Integration Tools
2. Einsatz von Android-App1. Build-Prozess des Android-App2. Build-Prozess als ANT-Skript3. Automatisierung des Build-Prozesses4. Pina-Collada
307.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
3
1. Continuous Integration1- Einführung
Entwickler
Repository
Commit / push
Check out / update
Person 1. Überwachung
2. Kenntnis des Build-Prozesses
3. Build erstellen
4. Benachrichtigung
407.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
4
1. Continuous Integration2- Vorgehensweise:
Entwickler
Repository
Commit / push
Check out / update
Build-Management-Tool
Build erstellen / testen
Bericht versenden
Continuous Integration
507.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
5
1. Continuous Integration3- Build-Management-Tools:
Werkzeuge zum automatisierten Erzeugen aus Quelltexten Tools-Beispiele: Ant, Maven, Rake, Make Benötigen einer Datei für die Beschreibung des Prozesses
607.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
6
1. Continuous Integration3- Build-Management-Tools (Ant):
Apache-Projekt basiert auf Java Open Source entwickelt von James Duncan Davidson
Quelle: http://de.wikipedia.org/wiki/Apache_Ant
707.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
7
1. Continuous Integration3- Build-Management-Tools (Ant):
Häufig verwendete Tasks: Javac Copy Delete Replace JUnit Mail Exec
Über 150 Task
807.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
8
1. Continuous Integration3- Build-Management-Tools (Ant):
Beispiel: build.xml
Kommandozeile:
1. ant 2. ant build.start3. ant task.1 4. ant task.2
907.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
9
1. Continuous Integration3- Build-Management-Tools (Ant):
Eigenen Task erstellenA.java
Build.xml
1007.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
10
1. Continuous Integration4- Continuous Integration Tools:
Hudson Jenkins CruiseControll Continuum FinalBuilder
1107.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
11
1. Continuous Integration4- Continuous Integration Tools (Jenkins):
Webanwendung basiert auf Java Open Source entwickelt von
„Kohsuke Kawaguchi“ verfügbar als WAR-Datei verfügbar mit eigenem Server Erweiterung durch Plugins
Quelle: http://jenkins-ci.org
Quelle: http://kohsuke.org/about/
Kohsuke Kawaguchi
1207.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
12
2. Einsatz von Android-App1. Build-Prozess des Android-App
Quelle: Einführung in die Android Entwicklung
1307.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
13
2. Einsatz von Android-App1. Build-Prozess des Android-App Generierung von APK-Datei:
Inhalt: Dalvik-Bytecode: *.dex Ressourcen: Bilder, Sound, Videos, XML-dateien, …usw. Native Bibliotheken: C/C++-Bibliotheken
1407.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
14
2. Einsatz von Android-App2. Build-Prozess als ANT-Skript
„Es mag so aussehen, als müssten Sie bei Android in Bezug auf Java erheblich mehr Dinge tun. Aber diese Kompilationsschritte
werden von Werkzeugen wie Eclipse und Ant automatisiert, so dass Sie sie überhaupt gar nicht bemerken werden. „
-- Marko Gargenta
1507.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
15
2. Einsatz von Android-App2. Build-Prozess als ANT-Skript
*.java -----> *.class
*.class -----> classes.dex
1607.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
16
2. Einsatz von Android-App2. Build-Prozess als ANT-Skript
Generierung von APK-Datei
1707.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
17
2. Einsatz von Android-App3. Automatisierung des Build-Prozesses
Automatische Generierung von ANT-Skript:
Generierung von APK-Datei
android update project --path <Projekt-Pfad>
ant debug
1807.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
18
2. Einsatz von Android-App4. Pina-Collada
Der Build-Prozess besteht aus zwei Teilen:1. Die Umwandlung von OBJ-Dateien in Java-Dateien und das
Kopieren dieser Dateien in den Src-Ordner von Pina-Collada.2. Die Generierung von APK-Datei.
1907.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
19
2. Einsatz von Android-App4. Pina-Collada
OBJ-Parser
Pina-Collada
*.jj *.java
*.class*.java
*.java*.obj
javacc
javac
Source Ordner
Kopieren
Java Befehl mit der OBJ-Datei als Argument
Die nötigen Klassen für die Klasse Generator
Hier wird die Klasse Generator die OBJ-Dateien in Java-Klassen umwandeln
2007.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
20
2. Einsatz von Android-App4. Pina-Collada
*.jj *.java
2107.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
21
2. Einsatz von Android-App4. Pina-Collada
*.obj *.java
2207.05.2012 INF 6 – Lekbir Ouadghiri IdrissiContinuous Integration
22
Quelle1. http://de.wikipedia.org/wiki/Jenkins_%28Software%292. http://kohsuke.org/3. http://de.wikipedia.org/wiki/Apache_Ant4. http://jenkins-ci.org/5. http://www.youtube.com/watch?v=ILKGgxLF1X4&feature=related6. Marko Gargenta 2011, Einführung in die Android Entwicklung,
Verlag O’REILLY