Jenkinsを使ってAndroidアプリを作る方法
この記事では、Jenkinsを使ってAndroidアプリをビルドする方法について説明します。Jenkinsは既にインストールされている必要がありますので、まだインストールしていない場合は、まずこちらの手順に従ってください。この記事では、プロジェクトがGitやSubversionのようなバージョン管理を使用していると仮定します。主にGradleという新しいビルドシステムについて説明しますが、この文章はAntビルドの設定にも使用できます。
必要なソフトウェアのインストール
まず、Android SDKをインストールする必要があります。ダウンロード場所を見つけるには、Android SDKダウンロードページを訪れてください。その後、他のプラットフォーム用のダウンロードをクリックし、Linux版(SDKツールのみ)のリンクをコピーします。
リンクをコピーした後、SSHセッションに切り替えます。/optにcdして、Android SDKをダウンロードします:
cd /opt
wget <link you copied here>
執筆時点で、次のコマンドを実行する必要があります:
wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz
次にファイルを解凍してください:
tar zxvf <filename of the just downloaded file>
今ダウンロードしたファイルを削除できます:
rm <filename of the just downloaded file>
今いくつかの環境変数を設定する必要があります。/etc/profile.d/android.shを編集してください(nano /etc/profile.d/android.sh)そして以下を追加します:
export ANDROID_HOME="/opt/android-sdk-linux"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"
それからファイルを再読み込みしてください:
source /etc/profile
Gitを使用する場合は、Gitもインストールしてください。
sudo apt-get install git-core
Android SDKの設定
プロジェクトを構築するには、Android SDKがいくつかのパッケージを必要とします。まず、SDK自体を更新してください(いくつかのライセンスに同意する必要があります)。
android update sdk --no-ui
これによりすべてのAndroidバージョンがインストールされるため、かなり時間がかかります。すべてのパッケージをインストールしたくない場合は、さらにお読みください。
特定の部分だけをインストールしたい場合は、SDKの更新に関する詳細情報がこのStackOverflowの質問にあります。
必要なパッケージは、次のコマンドでインストールされます(android-19の「19」を最新のAndroid SDKバージョンに置き換えてください):
android update sdk -u --filter platform-tools,android-19
しかし、これではGradleに必要なビルドツールはインストールされません。それには、次のコマンドを実行してください:
android list sdk --all
このリストの中で、Android SDK Build-toolsという項目の最初のアイテムを見つけてください。項目の前に表示されている番号を覚えて、次のことを実行してください:
android update sdk -u --all --filter <number>
これをAndroid Support RepositoryとAndroid Support Libraryにも行ってください。
プロジェクトが特定のバージョンのビルドツールを使用することが分かっている場合は、リストの中からその項目を探してください。それはbuild.gradleファイルの中でbuildToolsVersionとして見ることができます:
android {
buildToolsVersion "18.1.1"
compileSdkVersion 18
}
build.gradleでcompileSdkVersionとして表示される適切なプラットフォームバージョンもインストールしてください。
さて、JenkinsがAndroid SDKにアクセスできるようにするために、次の手順を実行してください:
sudo chmod -R 755 /opt/android-sdk-linux
また、64ビットOSを使用している場合は、32ビットライブラリをインストールしてください:
sudo apt-get install ia32-libs
それからDropletを再起動します:
sudo shutdown -r now
Androidプロジェクトの設定
プロジェクトがまだEclipseで作成されている場合は、ビルドスクリプトを作成する必要があります。最も簡単なオプションは、Eclipseから直接行うことです。ファイル -> エクスポートに移動し、Android -> Gradleビルドファイルの生成を選択します。次に、プロジェクトを選択し、終了をクリックします。これにより、JenkinsでビルドできるGradleプロジェクトが作成されるはずです。
Gradleを使用したくない場合は、Apache Antを使用することもできます。これが何であるか、またはGradleプロジェクトのエクスポートが失敗したときは、この手順をスキップしてもかまいません。必要な唯一のステップは、Android SDKがインストールされているPCで次のコマンドを実行することです:
android update project -p .
Jenkinsの設定
Jenkinsも構成する必要があります。まず、JDKをインストールする必要があります。そのためには、Jenkinsの管理に移動し、システムを構成します。次に、JDKを見つけて「JDKを追加」をクリックします。Oracleアカウントを持っている必要があります。資格情報を入力するには、JDKセクションで「ユーザー名/パスワードを入力してください」をクリックします。アカウントを持っていない場合は、次の画面のリンクに従ってください。それらを入力したら、JDK構成に戻ります。名前を入力します – Javaのバージョンに基づいて名前を付けることをお勧めします。そして、「自動的にインストール」をチェックし、最新のJava SE Development Kitバージョンを選択します。これにより、後でJDKがインストールされるはずです。
Antを使用している場合は、Antセクションの手順を同じように実行してください。
今すぐ「Jenkinsの管理」->「プラグインの管理」->「利用可能」を訪問してください。以下のプラグインにチェックを入れ、「再起動せずにインストール」をクリックしてください:
Gradleプラグイン(Antを使用している場合は必要ありません)
Gitプラグイン(Gitを使用している場合)
エミュレーターを使用する場合は、Androidエミュレータープラグイン
これにより、いくつかの他のプラグインが自動的にインストールされます。Gradleを使用する場合は、JDKと同じ手順を実行してGradleを自動的にインストールしてください。この記事を書いている時点では、Gradle 0.9が必要です。プロジェクトにソース管理にチェックインされたgradlewファイルがあるGradleラッパーを使用している場合は、これは必要ありません。
仕事の設定
さて、ジョブを設定できます。新しいジョブをクリックし、名前を付けてフリースタイルソフトウェアプロジェクトを選択します。それからOKをクリックします。ソースコード管理のセクションで、プロジェクトが使用しているバージョン管理システムを選択し、情報を入力します。次にビルドセクションで、Gradleを使用している場合はGradleスクリプトを呼び出し、Antを使用している場合はAntを呼び出します。すべてのパラメータを入力してください。Gradleの場合、最も可能性の高いパラメータは次の通りです:
そして、これがアリにとってのものです:
これはプロジェクトをビルドしますが、APKファイルはまだ保存されません。これを設定するには、アーティファクトをアーカイブするというポストビルドアクションを追加します。アーカイブするファイルには**/*.apkと入力してください。
保存をクリックすると、ビルドが開始されます!今すぐビルドをクリックしてください。JDKがインストールされ、しばらくするとビルドが完了します!プロジェクトのページには、「最後の成功したアーティファクト」という見出しがあります。ここに生成されたすべてのAPKファイルが表示されます:
それ以上は?
最初のAndroidプロジェクトがあなたのJenkinsインスタンス上に構築されました。おめでとうございます!
Jenkinsインスタンスは1つ以上のジョブを保持できるので、もっと作成してさらに多くのAndroidアプリを開発しましょう!
Gradle はアプリを自動的に署名することもできますが、この機密情報は build.gradle ファイルに保存されるべきであり、これは推奨されていません。以下は Jenkins と組み合わせて使用することができる完全な build.gradle の例です。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
signingConfigs {
release {
storeFile file("keystores/release.keystore")
storePassword "your-keystore-password"
keyAlias "your-alias"
keyPassword "your-alias-password"
}
}
buildTypes {
release {
zipAlign true
signingConfig signingConfigs.release
}
debug {
zipAlign true
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.0'
compile 'com.android.support:support-v4:19.0.0'
}




