Java 開発未経験者が Android Studio をインストールして Hello World する

  • 28
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Intro

Java 開発も Android 開発もしたことない自分が Android Studio をインストールしてエミュレータで Hello World するまでのメモです。

環境

debian/sid 64bit です。

$ uname -a
Linux debian-sid64 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08) x86_64 GNU/Linux

Android Studio

インストールする Android Studio のバージョンは 1.0.2 です。

JDK をインストール

まずは JDK をインストールします。Open JDK だと Android Studio が警告を出すようなので Oracle JDK を入れます。インストールは下記のサイトを参考にしました。

Debian系LinuxへOracle JDKをインストールする

Oracle のサイトから tar ボールを持ってきて展開して /usr/lib/jvm/ にコピーします。

$ cp -R ~/tmp/jdk1.8.0_25 /usr/lib/jvm/jdk1.8.0_25

update-alternatives コマンドを実行します。

$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_25/bin/java" 1
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_25/bin/javac" 1
$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_25/bin/javaws" 1

追加した java を使用するようにします。

$ sudo update-alternatives --config java
  選択肢    パス                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      自動モード
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      手動モード
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手動モード
  3            /usr/lib/jvm/jdk1.8.0_25/bin/java                1         手動モード
(3 をタイプ)

JAVA_HOME 環境変数を設定します。

$ export JAVA_HOME='/usr/lib/jvm/jdk1.8.0_25'
$ echo "JAVA_HOME='/usr/lib/jvm/jdk1.8.0_25'" >> ~/.bashrc

Android Studio をインストール

Android Studio のサイトから zip ファイルを持ってきて解凍し、android-studio/bin/studio.sh を実行します。

$ cp -R ~/tmp/android-studio ~/android-studio
$ cd ~/android-studio/bin
$ ./studio.sh

Android Studio が起動します。この時 Android SDK のインストールが始まりますので、SDK のインストールが終わったら Android/Sdk/toolsAndroid/Sdk/platform-tools にパスを通しておきます。

$ export PATH=${PATH}:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools
$ echo "export PATH=${PATH}:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools" >> ~/.bashrc

また、以下の様なメッセージが表示されて Android SDK をインストール出来ないことがあります。

Unable to run mksdcard SDK tool

32bit 版のライブラリが足りていないので、ごっそりインストールします。

$ sudo aptitude install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 libc6-i386 lib32gcc1

エミュレータを作る

下記のコマンドで SDK Manager を起動します。

$ android

必要な API レベルのイメージにチェックを入れてインストールします。(Intel CPU のイメージをインストールしておきましょう。)

下記のコマンドで AVD Manager を起動します。

$ android avd

create... ボタンをクリックして仮想デバイスを作ります。(ウィザードに従います。)

空のプロジェクトを作る

念の為 Android Studio を起動しなおします。

メニュー File > New Project... を選択して新しいプロジェクトを作成します。(ウィザードに従います。)プロジェクト作成直後は Gradle が何やら忙しそうにしているのでしばし待ちます。

空のプロジェクトを実行

メニュー Run > Run 'app' を選択すると利用するエミュレータを聞かれますので先ほど作ったエミュレータを選択します。エミュレータの起動には時間がかかるとのことなので気長に待ちます。

エミュレータが遅い

・・・いつまで経ってもエミュレータが起動しません。(正確には起動はしているようですが、黒い画面のまま動きません。)

ググると Android のエミュレータは遅いことで有名なようです。Windows 版エミュレータでは SDK Manager から HAXM をインストールして CPU の仮想化支援機構を利用することで高速に動作可能なようですが、Linux 向けの HAXM は提供されていません。

KVM を使う

が、Linux の場合は KVM を使ってエミュレータの高速化が可能なようです。下記のサイトを参考にしました。

個人的な φ(`д´)メモメモ…: LinuxでもKVMを使用してAndroid Virtual Device (AVD)の高速実行

BIOS の設定画面で仮想化支援機構を有効にします。(Intel CPU の場合は Virtualization Technology のような項目を探して有効にします。)

下記のコマンドの結果が 1 以上であることを確認します。

$ egrep -c '(vmx|svm)' /proc/cpuinfo
1

KVM をインストールします。

$ sudo aptitude install qemu-kvm libvirt-bin
$ sudo adduser `id -un` libvirt

下記のコマンドでエミュレータが高速に実行されれば成功です。

$ emulator -avd <仮想デバイス名> <その他のオプション> -qemu -m 512 -enable-kvm

※ KVM を使った高速化は x86 のエミュレータでのみ有効です。

32bit 版のライブラリをインストール

私の環境ではこれだけでは起動できませんでした。(エラーメッセージを失念・・・)どうやら 64bit 版 Debian では 32bit 版のライブラリをインストールする必要があるようです。以下のサイトを参考にして必要なライブラリをインストールしました。

Android SDK on a 64-bit linux machine - Stack Overflow

$ sudo aptitude install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 libc6-i386 lib32gcc1

Android Studio でも高速エミュレータを使う

メニュー Run > Edit Configurtions...Emulatorタブ > Addtional command line options: に以下を設定します。

-qemu -m 512 -enable-kvm

空のプロジェクトを実行 (2回目)

先ほどと同じく実行します。エミュレータの画面に Hello World が表示されれば成功です。