16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[速報] Android Studio 2.0pで、Androidの高速デプロイを体験。genymotionいらず...になっていくのかな。

Last updated at Posted at 2015-11-25

#序 Android Studio 2.0p登場

夜中に目が覚めた勢いで、年の瀬向けのkotlin1.0beta + AndroidStudio1.5環境を構築した。一作業を終えた爽やかさで、swiftとkotlinのMVVMパターンの比較などをやっていたところ、、Android Studio 2.0がリリース、エミュレータの改良でビルド〜デプロイ過程を大幅に高速化 *(Original:Google Launches Android Studio 2.0 With Improved Android Emulator And New Instant Run Feature)*なるtechcrunchの記事が飛び込んできた。まさかの、Android Studio1.5 、一晩で陳腐化!?

引用:

Googleが今日(米国時間11/23)、同社のモバイルオペレーティングシステムAndroidのアプリを書くための統合開発環境(integrated development environment, IDE)Android Studioの、バージョン2.0をリリースした。
既製の人気IDE IntelliJをベースとするAndroid Studioは2013年に登場し、1年前にベータを脱した。‘統合’の名のとおり、そこにはコードエディタやコード分析ツール、GoogleのすべてのAndroidプラットホームのエミュレータなど、デベロッパがアプリを作るために必要なものがすべて含まれている。
...
今回のアップデートでは、たとえばデプロイのスピードを大幅に上げた。Cuthbertsonによると、フルビルドの場合スピードはこれまでより2倍ないし2.5倍速いという。デベロッパにとってそれはもちろん嬉しいことだが、今度のバージョンでもっと嬉しいのは、”Instant Run”という新しい機能が加わったことだろう。HTMLの場合は、エディットしてブラウザで読みこめばすぐに結果が分かるが、”Instant Run”はそれと同じ即時性をAndroidで目指している。ただしモバイルアプリの場合は、いくらビルドのスピードが上がったといっても、そのロードはHTML + ブラウザほど速くはない。
しかしInstant Runを使うと、エミュレータの上でも物理デバイスの上でも、アプリのビルドとデプロイを一度にできる。そして、コードの一部を変えて再デプロイすると、エミュレータでも実機でも数秒(2〜3秒)以内に、新しいアプリが動いている様子を見られる。この機能は、AndroidのIce Cream Sandwich以降のバージョンで使える。Instant Runの内部的な仕組みについては、今後詳しいドキュメンテーションを出すからそれまで待ってくれ、ということだ。
Androidのエコシステムはとても大きいから、デベロッパが自分のアプリを人気機種のすべてで開発の初期からテストしていくことは、ほとんど不可能だ。XamarinのTest CloudやAWSのDevice Farm、あるいはGoogle自身のTest Labなどを利用すれば、完成間近のアプリをいろんなオプションでテストできるが、開発途上のアプリはエミュレータでテストすることが多い。Googleがこれまで提供していたエミュレータは、必ずしも、最速で使いやすいとは言いがたい(だからMicrosoftは自社製品をリリースした)。
しかし今回のアップデートで一新されたエミュレータは、今の最新のハードウェアの上なら、どんな物理デバイスよりも速い。インタフェイスも改良されたから、カメラで写真を撮るなど、モバイル上のいろんなアクションを、前よりも簡単に起動できる。ネットワークのさまざまな条件やGPSもエミュレートできる(後者では既製のパスも提供される)。エミュレータから、Google Playの各種サービスにアクセスできる。さらに便利なのは、想定する実機の画面サイズに合わせて、エミュレータのウィンドウのサイズを変えられることだ。

おいおい、マジかよ、数時間前に"Android Studioにgenymotionプラグインを導入・・して、Androidエミュレータ環境を高速化"とか書いた自分が完全に古い人状態!?

... 見落としてましたよ、中ほどの一文を。

ニューバージョンは現在、Android StudioのCanary(先行)リリースチャネルでプレビューを入手できる。

釣られて悔しいので、Android Studio 2.0 Previewをためしてみることにした。釣られて悔しいので、この記事では、Android Studio 2.0 Previewを、適宜、Android Studio 2.0 *p(ピー)*と呼ぶことにする。。

#1) Linuxへのインストール(失敗)
直近Windows機にAndroidStudio1.5をインストールし環境設定を整えたばかりなので、サブ機のLinuxMint機に入れてみることにした。
もともとWindowsXPが入っていた古いマシン(RAM 4GB)なので、プレビューのzipの展開からマシンの動作が心配な感じ。
Screenshot_from_2015-11-25 21:34:19.png

解凍後、インストーラーを立ち上げると、なんかIoTっぽくなった今風のWelcome画面が現れている横で、JVMが不穏なエラーを出す。。。
Screenshot_from_2015-11-25 21:41:19.png

3回トライしたが、それぞれ別のエラーで起動に失敗。Android Studio 2.0 pを試す人は、スペックに自信のあるマシンにしたほうが良さそうだね。

#2) Windowsへのインストール

ということで、環境設定済AndroidStudio1.5が入っているWindows機にインストールしwindows機にAndroid Studio 2.0 pのzipをダウンロードし展開。

windows版は/binフォルダ以下のstudio(64).exeをクリックして起動する形式らしい。
image

普通のインストーラーが走り、前のバージョンの環境設定を引き継ぎますか、に[Y]と答えてみたところ、Android Studio 2.0 pが、AndroidStudio1.5の設定をほぼそのまま引き継いで立ち上がった(日本語設定だけはが引き継がれなかった):
as2p.PNG

Kotlinもそのままビルドできる。
ということで、いよいよ高速デプロイを試そう。まずは、実行対象ハードウェアを選択し、AVDを作成する。TVとかWearとかいろいろ選べる:
HD.PNG

試しにAndroid Studio 2.0 pベースのandroidエミュレータを作ってみて、いざ実行。。。おっ確かに素早くandroidエミュレータが立ち上がった。
エミュレータ自体の立ち上がりはgenymotionより早い。が、現時点では、立ち上がった後の動作はgenymotionより遅いかな。

アプリは自動では立ち上がらなかったが、普通に動作する:

desuno.PNG
フォントはちょっと怪しい。

#3) AndroidStudio2.0プレビュー 感想
Android Studio 2.0 プレビュー版が入っていても、当然、別フォルダにいるAndroidStudio1.5は今まで通り動作する。AndroidStudio自体の起動もエミュレータの起動も2.0プレビュー版の方が速いので、せっかちな人は試してみてもいいかも。
まだ、ちょっとさわっただけなのだけれども、Android Studio 2.0 プレビュー版も、安心のIntelliJクオリティを維持している気がする。
今後のベータ版などにも期待。

# 一点だけ注意点。今回やったように既存の1.5のプロジェクトをそのまま2.0で動作させることは止めよう(両者がコンフリクトする可能性あり)。2.0 プレビュー版を入れた人は、一度、2.0の方で新規プロジェクトを立ち上げてから、お試ししよう。

16
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?