Continuous Integration Vorbereitet von: Lekbir Ouadghiri Idrissi
Gliederung Continuous Integration Einsatz von Android-App Einführung Vorgehensweise Build-Management-Tools Continuous Integration Tools Einsatz von Android-App Build-Prozess des Android-App Build-Prozess als ANT-Skript Automatisierung des Build-Prozesses Pina-Collada 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 2
1. Continuous Integration 1- Einführung Überwachung Kenntnis des Build-Prozesses Build erstellen Benachrichtigung Commit / push Person Entwickler Repository Check out / update 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 3
1. Continuous Integration 2- Vorgehensweise: Bericht versenden Commit / push Build erstellen / testen Entwickler Build-Management -Tool Repository Continuous Integration Check out / update 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 4
1. Continuous Integration 3- 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 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 5
1. Continuous Integration 3- Build-Management-Tools (Ant): Apache-Projekt basiert auf Java Open Source entwickelt von James Duncan Davidson Quelle: http://de.wikipedia.org/wiki/Apache_Ant 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 6
1. Continuous Integration 3- Build-Management-Tools (Ant): Häufig verwendete Tasks: Javac Copy Delete Replace JUnit Mail Exec Über 150 Task 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 7
1. Continuous Integration 3- Build-Management-Tools (Ant): Beispiel: build.xml Kommandozeile: ant ant build.start ant task.1 ant task.2 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 8
1. Continuous Integration 3- Build-Management-Tools (Ant): Eigenen Task erstellen A.java Build.xml 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 9
1. Continuous Integration 4- Continuous Integration Tools: Hudson Jenkins CruiseControll Continuum FinalBuilder 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 10
1. Continuous Integration 4- 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 Kohsuke Kawaguchi Quelle: http://kohsuke.org/about/ 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 11
2. Einsatz von Android-App 1. Build-Prozess des Android-App Quelle: Einführung in die Android Entwicklung 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 12
2. Einsatz von Android-App 1. 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 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 13
2. Einsatz von Android-App 2. 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 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 14
2. Einsatz von Android-App 2. Build-Prozess als ANT-Skript *.java -----> *.class *.class -----> classes.dex 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 15
2. Einsatz von Android-App 2. Build-Prozess als ANT-Skript Generierung von APK-Datei 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 16
2. Einsatz von Android-App 3. Automatisierung des Build-Prozesses Automatische Generierung von ANT-Skript: Generierung von APK-Datei android update project --path <Projekt-Pfad> ant debug 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 17
2. Einsatz von Android-App 4. Pina-Collada Der Build-Prozess besteht aus zwei Teilen: Die Umwandlung von OBJ-Dateien in Java-Dateien und das Kopieren dieser Dateien in den Src-Ordner von Pina-Collada. Die Generierung von APK-Datei. 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 18
2. Einsatz von Android-App 4. Pina-Collada OBJ-Parser *.jj javacc *.java Die nötigen Klassen für die Klasse Generator *.java javac *.class Hier wird die Klasse Generator die OBJ-Dateien in Java-Klassen umwandeln *.obj Java Befehl mit der OBJ-Datei als Argument *.java Kopieren Pina-Collada Source Ordner 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 19
2. Einsatz von Android-App 4. Pina-Collada *.jj *.java 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 20
2. Einsatz von Android-App 4. Pina-Collada *.obj *.java 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 21
Quelle http://de.wikipedia.org/wiki/Jenkins_%28Software%29 http://kohsuke.org/ http://de.wikipedia.org/wiki/Apache_Ant http://jenkins-ci.org/ http://www.youtube.com/watch?v=ILKGgxLF1X4&feature=related Marko Gargenta 2011, Einführung in die Android Entwicklung, Verlag O’REILLY 07.05.2012 INF 6 – Lekbir Ouadghiri Idrissi Continuous Integration 22
Danke für das Zuhören Noch Fragen ?