Android Wearアプリ開発にエミュレータを利用する

Android Wearアプリを開発する際にエミュレータを利用する場合の話です。 開発中のアプリを実行してデバッグを行うためには、エミュレータなり実機なりを用意する必要があります。Wearアプリの場合、スマホとWear端末が必要になるため、普通のスマホアプリを開発するより用意するものが多くて面倒なところです。 最も簡単なのはスマホとWear端末共に実機を用意することです。既にペアリングを行った実機があれば、その2つをパソコンにUSB接続すればデバッグできます。特に設定を要しません。 一方で、片側をエミュレータ、もしくは両方をエミュレータでデバッグしたい場合は話がややこしくなります。 エミュレータを利用するにしてもスマホは実機で エミュレータではBluetooth通信まではエミュレートしてくれないので、ポートフォワーディングを利用してスマホ・Wear端末間の通信を再現します。 片方をエミュレータにする場合でも簡単なのはスマホを実機で、Wear端末はエミュレータでやる方法です。 というのもAndroid Wearとのペアリングを行うためには、スマホ側で「Android Wear」というアプリを操作する必要があります。 スマホをエミュレータに置き換えてやろうとすると、このAndroid Wearを使えるようにするのが難しいようなので大変だと思います。どうも直接apkを拾ってきてエミュレータにインストールしないといけないようなので・・・。 Android Wearアプリを開発する場合、基本的にはスマホもWear端末も実機を用意するのがオススメです。実行速度の観点からもそれが一番だと思います。 Android WearのエミュレータはAVDを利用せざるを得ず、上述のポートフォワーディングを利用してペアリングを行ったとしても、端末間の通信は実機に比べるとだいぶタイムラグが生じます。 スマホ実機とWearエミュレータをペアリング パソコンにスマホ実機をUSBで接続し、AVDでWearエミュレータを起動した状態から始めます。 まずターミナルからポートフォワーディングを行うようコマンドを入力します。 adb -d forward tcp:5601 tcp:5601 ポート番号は何でもいいようです。(ただし現在使われていないものでないとダメ) ちなみに-dはUSBで接続されているデバイスという意味です。-dをつけるか、デバイスを直接指定しないとerror: more than one device and emulatorとエラーが出ます。 特にエラーメッセージが表示されなければ成功です。 スマホからAndroid Wearアプリを起動し、右上の三点ドットをタップ→新しいウェアラブルとペア設定を選びます。(歯車アイコンの設定ではないです) 端末を選択画面が表示されるので、右上の三点ドットをタップして「エミュレータをペア設定」を選べばエミュレータと接続完了します。 どうでもいいことですが、ペアリングが完了するまでの速度だけは実機より早いです。 Wear端末(実機)とペアリングし直す場合は、エミュレータから切断を行った後、端末を選択画面から自分の使っているWear端末を選べばペアリングし直されます。 adbによるポートフォワーディングについて補足 ちなみに現在adbでポートフォワードを行っているポートを確認するには以下のコマンドを使います。 adb forward --list 現在行っているポートフォワーディングを止めるには以下のコマンドを使います。 adb -d forward --remove ポート番号 全てのポートフォワーディングを解除してしまって問題ないならadb forward --remove-allでもいけます。–remove-allの方が入力する量が少なくて楽かもしれません。

GitHubで公開されているプロジェクトをAndroid Studioで開く

GitHubで公開されているサンプルやライブラリプロジェクトをローカルに拾ってきて、そのプロジェクトをAndroid Studioで開く方法についてです。 GitHubからソースコードをcloneする 取得したいプロジェクトをgit cloneなりDownload ZIPなりでリポジトリから取得してきます。 今回はandroidmvp – GitHubをcloneしてみました。 ソースコードを保管したいディレクトリに移動して次のコマンドを叩きます。 git clone リポジトリのURL (ディレクトリ名:省略可) 今回の場合だと、git clone https://github.com/antoniolg/androidmvp AndroidMvpという感じです。ディレクトリ名はつけなかったらリポジトリのものがそのまま使われます。私は分かりやすいようにと、既存のプロジェクトと名前を揃える意味でAndroidMvpとしました。 gitコマンドなんてよく分からないという人は、素直にDownload ZIPでソースコードを拾ってくるといいでしょう。 Android Studioで開く Open an exisiting Android Studio projectではなくImport Project (Eclipse ADT, Gradle, etc.)を選ぶのがポイントです。 Gradle形式のプロジェクトだから、前者で開くのかなと思ったら全然開けなくて困りました。 プロジェクトによっては開けるのかもしれませんが、Gradle Homeの場所を指定するように言われる場合は、後者のImportの方を選ぶといいです。 この場合、/Applications/Android Studio.app/Contents/plugins/gradle/libを指定するといいなんて情報を見かけたのですが、指定してもうまくいきませんでした。 Gitで管理するプロジェクトファイルの設定によって変わってくるものなのかもしれませんが、GitHubなどで公開されているプロジェクトをAndroid Studioで開くには、Import projectで読み込むようにしたほうが無難なのかもしれません。 Android Studioで直接GitHubで公開されているリポジトリをcloneする GitHubに公開されているソースコードは、Android Studioからcloneすることも可能です。 まずCheck out project from Version ControlからGitHubを選びます。 GitHubの設定をしていない場合、ログインアカウントとパスワードを尋ねられるので設定してやります。 そうするとcloneするリポジトリを聞いてくるので、リポジトリのURLや保存先などを指定してやります。 こうすることでもリポジトリのcloneは可能です。 ただしこの方法でcloneしたとしてもGradle Homeを指定するように言われてしまったので、改めてImportしてやらないと開けませんでした。

Wear端末をパソコンに接続し、Android Studioでデバッグできるようにする方法

せっかくAndroid Wear端末を手に入れたのだから、Wearアプリも作ってみようかなと思いましたが、Wear端末をAndroid Studioに認識させるのも一苦労です。 Android Wearアプリのデバッグやら実行状況を確認するのにUSBで接続するには、クレードル経由でパソコンに接続する必要があります。しかしクレードルを持ち運ばないといけないのは非常に面倒くさいです。 ちなみにクレードル経由でUSB接続すれば、パソコンにAndroid Wearが認識されてlogcatも確認できます。(クレードルとWear端末は充電端子でしか繋がっていないのに、いったいどういう仕組でLogcatが確認できるんでしょうか・・・) それはともかく、USB経由で繋ぐにはクレードルを持ち運ばなければならず、腕にはめたままデバッグできないのは面倒くさいです。 そんな場合に備えてBluetooth経由でデバッグすることも可能です。 Bluetooth経由で接続する方法 Bluetooth経由はクレードルを持ち運ばなくて済む点はGoodですが、一方でその他の面で面倒くさいです。 Wear端末とペアリングしているスマホをパソコンにUSBで接続する。 スマホ側でAndroid Wearアプリを起動し、設定(歯車のアイコン)→Bluetooth経由のデバッグを有効にする Wear端末側でBluetooth経由のデバッグを有効にする(事前に開発者モードを有効にしておく必要あり) パソコン側でadbコマンドを打ち込み接続を行う 以上のステップを踏むことで、パソコンにWear端末が認識されるようになります。 Wear端末の開発者モードを有効にするには、設定→端末情報→ビルド番号を7回タップします。 adbコマンド adb forward tcp:4444 localabstract:/adb-hub adb connect localhost:4444 ポートは自分で決めていいみたいです。 Android StudioのTerminalタブで打つなり、Macのターミナルを起動して打つなりすればOKです。 スマホを繋いだ時に自動的には認識してはくれないので、毎回このコマンドを打たなければなりません。 スマホのAndroid Wearアプリの表示 Bluetooth経由のデバッグを有効にすると、その下にホストとターゲットの表示が出てきます。 ホストはパソコンのことで、adbコマンドを打って接続してやる必要があります。 ターゲットはWear端末のことです。Wear端末でBluetooth経由のデバッグを有効にすれば接続状態になります。 ホストとターゲットの両方が接続状態になると、パソコンからWear端末が認識できるようになります。 ちなみにWear端末のBluetooth経由でバッグをオフにする度に、再度adbコマンドを打ち込まなくてはなりません。 Bluetoothデバッグ中のAndroid Wear Bluetooth経由のデバッグを有効にすると、常に「Bluetooth経由のデバッグが有効です」と表示され、他のWearアプリを動かしたりできなくなります。 開発中のアプリをWear端末で実行することはできますが、Wear端末からは設定を開く以外なにもできなくなります。 結局どっちがいいのか スマホとWear端末を行き来する必要があるので、Bluetooth経由でのデバッグも面倒くさいです。 Bluetooth経由だと、Wear端末にデバッグ対象のアプリが転送されるのに時間がかかります。スマホのアプリみたいに即座に起動したりはしません。転送に時間がかかっているのか、それとも失敗しているのかよく分からなくて困ります。 USB経由でも転送されるのにラグを感じますが、Bluetoothよりは早い気がします。 そういう観点からは、やっぱりクレードル経由の方が開発には向いている気がします。 普段はUSB経由で開発を行い、パソコンにUSBポートが2つもない(スマホと同時に接続できない)とか、クレードルを持ち運べないとか、クレードルを持ってくるのを忘れた時など、そういう場合にはBluetooth経由で開発するようにしたらいいと思います。 参考サイト Android Developers – Debugging over Bluetooth Qiita – 15分ではじめるAndroid Wear開発 – 実機を使った開発環境の作り方

Android StudioでLogcatが表示されず、何が原因でアプリが落ちてるのかわからなくて困った話

Android Studioでデバッグ実行を行った際に、起動直後にアプリが終了してしまう症状に悩まされました。通常ならLogcatが表示されるはずなのに、それすら表示されなかったため、何が原因で落ちてるのかすら分かりませんでした。 通常、デバッグを実行すると、 Logcatが表示されるのですが、何の反応もなくアプリだけが落ちているという状況に陥ったのです。 他のプロジェクトだと普通に表示されるのに、特定のプロジェクトでだけLogcatも何も表示されずに落ちるのです。アプリが落ちる原因もわからない上に、Logcatが表示されない理由も分からないと、ムダにハマってしまいました。 最終的には、使っていたFragmentのonCreate()でsuper()を呼び出していなかったことが原因でアプリは落ちていました。たったそれだけなのに、Logcatが確認できないせいで迷走してしまったのです。 今回記事を書くに当たり、super()をわざと呼び出さないサンプルプロジェクトを作って再現するかどうか試してみたんですが、普通にLogcatが表示されました。super()呼ばなかったせいで表示されなかったのかなと思ったのですが、どうも違うようです。 なぜAndroid StudioでLogcatが表示されなかったのかはよく分かりませんが、もし同様のトラブルに遭遇した場合に備えて、ADMでLogcat確認できないか試してみましょうというお話です。 そんなときはADMを使う Android StudioでLogcatが見えなければADMを使います。 Android Studioの右上にあるドロイド君のアイコンを押せば、Android Device Monitorが起動します。(Android SDK > Tools > Monitorが実体です) 何かいろいろありすぎてよく分かりませんが、本格的なデバッグはこれを使うといいと思います。Android Studioからデバッグできなくとも、ADMのLogcatなら表示されていました。 adb kill-serverとかしても効果がなかった ちなみにadbの調子が悪いのかと、adb kill-serverとadb start-serverも試してみたのですが全く効果がありませんでした。 というか他のプロジェクトだとLogcatは表示されていましたし、該当のプロジェクトでも単にActivityだけを表示させたらLogcat普通に出ていたので、adbのせいではなかったんでしょうけどね。 そもそもなんかおかしかったら再起動が吉 わざわざADMを使うよりも、素直にエミュレータ、Android Studioを再起動、(それでもうまくいかないならOSごと再起動)するのが一番いいかもしれません。 使っているうちに終了したつもりがプロセスが生きたままになってるということはまれによくあることです。 私はエミュレーターにGenymotion使っていますが、終了させたのにVirtual Box上では動きっぱなしになっていることがよくあります。 本題でないところにこだわって無為に時間を使うより、さっさと再起動した方が早かったように思います。

Android Studioをインストールする(Windows 8.1 64bit)

Android Studioをダウンロードしてきてインストーラーを起動してインストールします。 Android Studioをインストールするには、まずJDK1.7以上が必要です。 JDKをインストールしていない、もしくはインストールしているがJDKへのパスが通っていない場合、Android Studioのインストーラーで「JDKの場所を指定してください」というメッセージが表示されます。 この画面が表示されたら、一旦インストールを中止し、JDKのインストールと環境変数の設定を行いましょう。 JDKをインストールしている場合、JDKの場所を指定してやれば先へ進めるかと思います。しかしここで場所を指定するより、環境変数の設定を行った方が後々便利だと思うので、後述する環境変数の設定を行うことをオススメします。 JDKのダウンロードとインストール OracleのサイトからJDKをダウンロードしてインストールします。 Oracle – Java SE Downloads JDKは開発ツールが含まれたものになります。JREとは違うので注意してください。 ダウンロードページに飛んだら、Accept Licenseにチェックをつけて、自分のWindowsが32bit版ならWindows x86を、64bit版ならWindows x64をダウンロードしてインストールします。 JDK1.8でもいいのか このスクリーンショットはJDK1.8(JDK 8)のダウンロードとインストールを行っています。 1.8だとエラーが出るというような情報もあるので、1.8だとインストール出来ないのだろうかと試してみた際に撮ったものだからです。 1.8でもAndroid Studioのインストール、Wizardを使って作ったHello Worldプロジェクトの実行までは無事にできました。 ただ公式にはJDK1.7(JDK 7)が必須とあるので、敢えて1.8で冒険する必要はないような気もします。 1.8だと問題あるのかよく分からないので、詳しい方は教えてくださると助かります。 環境変数の設定 JDKをインストールし終わったら、今度は環境変数の設定を行い、JDKへのパスを通します。 Windows 8.1の場合、コントロールパネル→システムとセキュリティ→システムを開き、システムの詳細設定を開きます。 そうするとシステムのプロパティが開くので、詳細設定のタブの下にある環境変数のボタンを押します。 ユーザー環境変数とシステム環境変数と2つありますが、どちらに追加しても構いません。ユーザー環境変数だと、現在Windowsにログインしているユーザーだけ有効になるだけです。今回はシステム環境変数で設定します。 新規ボタンを押し、変数名にJAVA_HOME、変数値にJDKのインストール先を指定します。特に変更していなければ、C:¥Program Files¥Java¥jdk1.8.0_31という感じになっていると思います。(数字はインストールしたJDKのバージョンによって異なるので、自分の環境に合わせて指定しましょう) 以上で環境変数の設定は完了です。 Android Studioのインストール 環境変数の設定さえしてあれば、Android Studioのインストーラーの指示にしたがって「次へ次へ・・・」と進んでいけば特に迷うところはないと思います。 Android SDKのダウンロードと設定も、デフォルトでやってくれるようになっているので、特に設定を変更することなく進めばいいです。 Android Studioのインストールが終われば、「以前のバージョンの設定を引き継ぐかどうか」と聞いてきますが、新規でインストールする場合関係ない話です。 そのままOKを押せばいいです。 Android Studioのインストールが終わると、今度はAndroid SDKのダウンロードと設定が始まります。 いろいろダウンロードしてくるため時間がかかりますが、これが終わればAndroid Studioのインストールは終了です、お疲れ様でした。 以下はWindowsのユーザー名に日本語が含まれている方向けの話です。 Android SDKについて ここでダウンロードされるのは最新バージョンのみなので、Android Studioのセットアップが終了したら自分の環境に合わせて設定を行うといいです。 ドロイド君のお腹が下矢印になっているアイコンを押すと、Android SDK Managerが起動します。 さらに、Android SDKのダウンロードされる場所ですが、ユーザーディレクトリのAppDataディレクトリになります。 ここで、Windowsのユーザーディレクトリが日本語の場合、ちょっと気持ち悪いことになります。(私の場合ユーザー名が日本語になっているので、モザイクの部分が日本語になってます) Android Studioでは、プロジェクトの保存先に日本語が含まれている場合怒られるなど、パスに日本語が含まれているとうまく動作しません。(たぶんしません) Android SDKについてもそれはおそらく当てはまるので、このままにしておくのは良くない気がします。 対策はAndroid SDKの保存先を変えることです。 日本語パス対策 Android SDKの保存先を変更する まずはAndroid Studioを終了させます。 そうしたらAndroid SDKのフォルダを表示し、切り取ってCドライブ直下へ移動させます。 C:¥Users¥ユーザー名¥AppData¥Local¥Android¥sdk AppDataフォルダは隠しフォルダなので、初期状態では表示されません。すべてのファイルとフォルダを表示するようにして、Anroidフォルダをカット&ペーストで移動させます。 移動が完了したらAndroid Studioを起動します。起動するとAndroid SDKの場所を聞かれるので、改めて移動先のAndroid SDKの場所を指定してやります。 Cドライブ直下に移動していればC:¥Android¥sdkです。 こうすることでユーザー名が日本語でもAndroid Studioを使うことができます。プロジェクトの保存先に日本語名を含まないようにしてやれば、問題なくAndroid Studioを運用できると思います。 ちなみに、Android SDKの場所はProject Structureからも指定可能です。 Android SDKを手動でダウンロードしていてそちらを使いたい場合はここで設定できます。

Android StudioでButterKnifeを使う

ButterKnifeはViewのインジェクションに特化したライブラリです。 Android Studioで利用する場合はとても簡単で、app/build.gradleのdependenciesに1行追加するだけです。 compile 'com.jakewharton:butterknife:6.1.0' これだけで使えるようになります。 ButterKnifeを使うことでfindViewById()をコードからなくすことができるので、ActivityやFragmentのコードがすっきりします。 public class MainActivity extends ActionBarActivity { @InjectView(R.id.test) TextView mTextTest; @InjectView(R.id.hello) TextView mTextHello; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); mTextTest.setText("ButterKnife Sample!!!"); mTextHello.setText("Next text here!!"); } } @InjectView(ViewのID)で、TextViewなどを保持するクラスフィールドを指定してやります。 後はonCreate()内でButterKnife.inject(this)を実行すれば、findViewById()を使うことなく、Viewに対する操作ができるようになります。 扱うViewが多くなればなるほど、その効用が実感できるようになります。 ButterKnifeを使わない場合、以下のようになります。 public class MainActivity extends ActionBarActivity { TextView mTextTest; TextView mTextHello; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); (TextView) mTextTest = (TextView) findViewById(R.id.test); (TextView) mTextHello = (TextView) findViewById(R.id.hello); mTextTest.setText("ButterKnife Sample!!!"); mTextHello.setText("Next text here!!"); } } Android Studioだとbuild.gradleに1行追加するだけで使えるようになるので、とても便利ですね。 GitHub – ButterKnife

Android5.0の端末をUSBデバッグできるようにする

Nexus5(Android5.0.1)を購入したのですが、そのままではUSBデバッグができなくて困りました。 パソコンに繋いでもAndroid Studioから端末が認識されません。設定画面を探しまわってもそれらしい設定項目がありませんが、どうもデフォルトでは表示されないようになっているようです。 これを表示させるためには、Androidの設定画面を表示し、一番下にある端末情報を開きます。そして更にその画面の一番下にある「ビルド番号」を連続でタップします。 そうすることで開発者向けオプションが表示されるようになります。 後は開発者向けオプションの設定メニューから、USBデバッグを有効にするにチェックをつけ、端末をパソコンに接続すればAndroid Studioから認識されるようになります。

Android Studioで新規プロジェクト作成時のテンプレートを作る

【Android】もっと先へ「加速」したくはないか、少年 〜Project Template編〜を見て、実際に自分でも試してみました。 パッケージ構成はBest practices in Android developmentの通りに再現することにしました。 パッケージ構成以外に、リソースファイルもテンプレートで追加させることができるので、color.xmlなどよく使うものがあれば追加してやると便利かもしれません。 AndroidStudio.appの中に直接作成したら、アップデートの際にどうなるか分からなかったので、Gitで別途管理することにしました。作成したテンプレートはGitHubで公開しています。 注意点 テンプレートファイルを書き換えても、都度Android Studioを再起動させないと変更が反映されません。ちょっと変わった処理をしようと思うと、動作確認が面倒くさいです。 ディレクトリにファイルを置けばそれが反映されるわけではなく、recipe.xml.ftlで指定したファイルが作成されます。rootディレクトリ以下に作ったディレクトリが勝手に再現されるのかと思っていたら全然違いました。 template.xml template.xmlはテンプレートファイルの名前や入力項目などを決めるファイルになっています。 <parameter>タグを追加することで、入力項目を増やすことができます。 ちなみにこのテンプレートでは、package-info.javaの@authorを変更できるようにしてみました。 <parameter id="author" name="Author" type="string" default="Gen" help="This uses javadoc @autohr in package-info.java." /> package-info.javaでは以下のようにして参照できました。idで指定した文字列で参照できるみたいです。 /** * Activities. * @author ${author} */ package ${packageName}.activities; 参考 Custom Projects In Android Studio Android Studioのバージョンアップができない 注意点として上記のテンプレートを追加すると、以下ののようなメッセージが表示されAndroid Studioのバージョンアップができません。 そのため、バージョンアップする際には追加したテンプレートを手動で削除してやる必要があります。 バージョンアップすると追加したテンプレートは消されてしまうのではと思っていたのですが、そもそもバージョンアップ自体ができませんでした。 プロジェクトテンプレートを自分で追加する場合、テンプレートで得られるメリットと、バージョンアップ時に手動で消さなければならないというデメリットを天秤にかけてから行うようにしてください。

AnimationDrawable 静止画を使ったアニメーション

静止画像(pngなどの画像リソース)を用意してパラパラ漫画の要領でアニメーションさせるには、AnimationDrawableクラスを利用します。 Android APIs Reference – AnimationDrawable 文字が変わってるだけですが、3つの画像でアニメーションしてます。画像を準備するのが面倒くさかったので、文字だけの画像を使いました。 アニメーションに使う静止画像 画像は解像度に合わせてres/drawable/hdpiなどのディレクトリに用意します。 今回はanime_test1.png,anime_test2.png,anime_test3.pngの3つの画像ファイルを用意しました。画像と言いつつ数字の1,2,3が書かれているだけの画像です。 ちなみにファイル名として使えるのは小文字のアルファベット、数字、アンダースコア(_)とドット(.)のみです。それ以外の文字(大文字アルファベットなど)を使うと以下のようにコンパイルエラーとなります。 Invalid file name: must contain only lowercase letters and digits ([a-z0-9_.]) アニメーション設定のXMLファイル どの画像を何秒間表示させるのかという設定をXMLファイルに記述します。今回はres/drawable/test_animation.xmlというファイル名にしました。 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/anime_test1" android:duration="500"/> <item android:drawable="@drawable/anime_test2" android:duration="500"/> <item android:drawable="@drawable/anime_test3" android:duration="500"/> </animation-list> android:oneshot=trueで、アニメーションを1回のみ再生する設定になります(最後の画像でアニメーションが止まる)。falseだとループ再生されます。 アニメーションを再生する test_animationは何もしなければ単なる静止画と同じで、Drawableとして扱うことができます。ImageViewのsrc属性に設定したり、TextViewのbackground属性に設定したりすることができます。 今回はImageButtonに上記で作成したdrawableを設定してやり、ボタンを押したらアニメーションが再生されるようにしてみます。 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/image_button" android:src="@drawable/test_animation" /> </RelativeLayout> APIリファレンスではandroid:background属性に設定していますが、これはandroid:src属性に設定しても動きました。src属性にAnimationDrawableを設定した場合、getBackground()ではなくgetDrawable()でAnimationDrawableを取得します。 MainActivity.java(onCreateを抜粋) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageButton imageButton = (ImageButton) findViewById(R.id.image_button); final AnimationDrawable animationDrawable = (AnimationDrawable) imageButton.getDrawable(); imageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { animationDrawable.start(); } }); } AnimationDrawableを取得して、start()メソッドを呼び出せばアニメーションさせることができます。 ただしできるのは再生するか停止するかくらいで、逆再生したりはできないみたいです。

Android Support LibraryのソースコードをGrepCodeを使って確認する

Android Support LibraryのソースコードはAndroid Studioで確認することができません 例えば、android.support.v7.app.ActionBarActivityのソースコードを確認したいとしましょう。その場合、調べたいクラスをCmd+クリックすることで、対象のクラスのソースコードに自動的にジャンプできます。 しかし、サポートライブラリについてはソースコードまでは見つかりません。 ちなみにAndroid SDKのクラスであれば、SDKマネージャーでソースコードまでダウンロードしていれば確認することができます。例えばBundleクラスのソースコードは以下のように確認できます。 サポートライブラリのソースコードを確認するのは、Gitを使ってGoogleのリポジトリから拾ってくる方法もありますが、今回はWebサービスのGrepCodeを利用してみます。 GrepCodeにアクセスして、検索したいクラスを入力します。(今回の場合はandroid.support.v7.app.ActionBarActivity) すると検索結果が表示されるので、調べたいクラスのバージョンを選択します。 他のバージョンとの差異をDiffで確認できるので、バージョンアップでどこが変更されたのかを調べるのにはちょうどいいかもしれません。