Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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 が表示されれば成功です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away