Une usine logicielle est un ensemble d’outils et de pratiques permettant d’automatiser les différentes étapes du développement d’un logiciel
L'intégration continue est un ensemble de pratiques consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application
Le déploiement continu, prolongement de l'intégration continue, est une pratique visant à réduire le plus possible le temps écoulé entre l'écriture d'une nouvelle ligne de code et l'utilisation réelle de ce même code par des utilisateurs finaux.
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.3" compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { release { runProguard false } } } dependencies { .. }
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>fr.devfest.marseille</groupid> <artifactid>Devfest</artifactid> <version>1.0.0.0</version> <packaging>apk</packaging> <properties> <project.build.sourceencoding>UTF-8</project.build.sourceencoding> </properties> <dependencies> ... </dependencies> <build> <finalname>${project.artifactId}-${project.version}</finalname> <sourcedirectory>src</sourcedirectory> <testsourcedirectory>test</testsourcedirectory> <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.6.0</version> <extensions>true</extensions> <configuration> <!-- <sdk> <platform>16</platform> </sdk> --> <sdk> <path>${env.ANDROID_HOME}</path> <!-- <platform>2.2</platform> --> <platform>17</platform> </sdk> <dex> <jvmarguments> <argument>-Xms512m</argument> <argument>-Xmx1024m</argument> </jvmarguments> </dex> </configuration> <executions> <!-- <execution> <id>startEmulator</id> <phase>initialize</phase> <goals> <goal>emulator-start</goal> </goals> </execution> --> <execution> <id>alignApk</id> <phase>package</phase> <goals> <goal>zipalign</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactid>maven-compiler-plugin</artifactid> <configuration> <source>1.7 <target>1.7</target> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jarsigner-plugin</artifactid> <executions> <execution> <id>signing</id> <goals> <goal>sign</goal> <goal>verify</goal> </goals> <phase>package</phase> <inherited>true</inherited> <configuration> <removeexistingsignatures>true</removeexistingsignatures> <archivedirectory> <includes> <include>${project.build.directory}/${project.artifactId}-${project.version}.apk</include> </includes> ... </archivedirectory></configuration> </execution> </executions> </plugin> <!-- the signed apk then needs to be zipaligned --> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>maven-android-plugin</artifactid> <inherited>true</inherited> <configuration> <sign> <debug>false</debug> </sign> <zipalign> <verbose>true</verbose> <inputapk>${project.build.directory}/${project.artifactId}-${project.version}.apk</inputapk> <outputapk>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk </outputapk> </zipalign> <skip>false</skip> </configuration> <executions> <execution> <id>alignApk</id> <phase>package</phase> <goals> <goal>zipalign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>release</id> <properties> <android.debuggable>false</android.debuggable> <android.release>true</android.release> </properties> </profile> </profiles> </project>
adb shell monkey -p your.package.name -v 500