Android Studio で Android のプログラミングを再び始めてみようと思った

java があまり好きじゃ無かったり eclipse が肌に合わなかったりでモチベーションが持続せず放置していた Android 関連のプログラミングですが、 新しい IDE (Integrated Development Environment) である Android Studio の正式バージョンがリリースされていたので 重い腰を上げて再開してみる事にしました。

Android Studio を使ってみるよ

非公式の妙な知恵を付けないためにも、インストールや開発は公式ガイドに沿っていきます。

Installing the Android SDK | Android Developers
http://developer.android.com/sdk/installing/index.html?pkg=studio

ad-fast-boot

インストールは特に問題なく進みます。初回起動中にjdkが無い場合はインストール先に誘導してくれる等、インストーラーも非常にユーザーフレンドリーでいい感じです。また、android sdkが無い場合も自動でインストールしてくれるようです。

android-studio-boot-splash

起動時にウィザードが立ち上がり次のメニューが選べます。

  • Start a new Android Studio project
    新規のプロジェクト
  • Open an existing Android project
    既存のプロジェクト
  • Import an Android code sample
    サンプルコードの取り込み
  • Check out project from Version Control
    バージョン管理システムからチェックアウト
  • Configre
    設定
  • Docs and How-Tos
    ドキュメント

これを書いている時点でまだ使っていませんが、IDEでの作業でサンプルコードを自分のプロジェクトに取り込めたりするのは微妙にうれしく思います。

android-studio-import-sample

サンプルビューアになっていて使いやすそうに見えます。何か機能を導入するべくサンプルを漁ろうとするとき、こういった物があると色々と捗りそうです。

import-sample-setup

サンプルと取り込みは github から行われます。

build-error-to-auto-instllation

ビルド時にコンポーネントの不足でエラーが出た際には SDK Quickfix Installation で解決してくれるので、SDK マネージャからの不足分のインストール作業に時間を取られることは無さそうです。

run-sample-app

実行時にデバイスが存在しない場合は仮想デバイスを用意して実行してくれます。

android-studio_1_1_0-default-avd-nexus_5_api_21_x86

Android Studio 1.1.0 には「Nexus 5 API 21 x86」というデフォルトの AVD が設定されています。物理端末同様、初回起動は結構時間が掛かります。

Android Studio インストール時にHAXM がインストールされ x86 のイメージが選択され、 Use Host GPU がデフォルトで設定されているので 面倒な高速化作業は必要ありません。

android-studio_1_1_0-default-avd-detail

それにしても、いきなりチョイスしたサンプルがOpenGL ES 2.0 を使用したテクスチャサンプルだった事に気付いて、実行できるかどうか疑いましたが結果はこの通り

failed-execute-opengles20-sample-on-avd

結局物理デバイスで実行を確認する事になりました。

execute-opengles20-sample-on-psyical-machine

シェーダーを使うような高レベルの互換性は無いって事ですね…。Androidの仮想デバイスの実行環境もそろそろシェーダーレベルでの互換性がないと困るような気もしますが、実際開発に力を入れている人とかはどうなのでしょう。

Using the Emulator | Android Developers
http://developer.android.com/tools/devices/emulator.html

  • OpenGL® Graphics – Emulation of OpenGL ES graphics may not perform at the same level as an actual device.

3rd Party製の実行環境

Genymotion

android-studio-with-genymotion

実行テストと割り切るなら Genymotion のようなサードパーティ製の実行環境の検討はありかなと思っています。avd が QEMU ベースのマルチアーキテクチャのエミュレーションなのに対して、こちらは VirtualBoxのPC Emulationを拡張したフロントエンドです。OpenGL ES の実行確認も出来きました。

昨今のバージョンのデバイスイメージは Play Store が削除されていますが XDA Developers に導入用の記事が公開されていました。

[GUIDE] Genymotion | Installing ARM Translat… | Android Development and Hacking | XDA Forums
http://forum.xda-developers.com/showthread.php?t=2528952

この記事のおかげで パッケージファイル をドロップするだけで仮想デバイス上のAndroidにインストール可能な事を知りました。Andro VMからずいぶん進化したものだなぁ

Andyroid

android-studio-with-andyroid

もう一つ同系統のソフトとして Andyroid があります。Genymotionがデヴェロッパー向けなのに対して、こちらPlay Storeが完備されてエンタテイメント性が高い作りになっています。同じく adb から制御できるので実行環境の候補としてはありだと思います。

android-studio-with-andyroid-mickey

多少難はありますがこういうのも動くようです。

終わりに

javaが吐き出す仮想コードを予測して最適化コードを書くなんて事をやり始めると、モチベーションもさらに上がるかなと思いつつ今回はこの辺りで