オプションに「--profile」をつけて Run時間が1分から2秒になった話

開発中に何十回, 何百回と端末またはエミュレータで動かしてテストしていると思います.

回数が多い分, 数十秒でも大きく生産性に影響します.

Terminal からの選択しながらのビルドや Gradle コンソールで詳細を確認したりする方法は, まあ, あるっちゃああるけどもいちいちそんなの調べてやるのもなんだかめんどくさかったりして.

「ビルド時間の短縮」というようなキーワードでググればまあそれなりに似たような結果がみつかる.

Android お手軽なビルド時間の短縮メモ

今回, なんとなくいちいちHTMLで結果が出力されるという

「コマンドラインオプションに --profile をつける」

というのをなんとなくやってみたら, Runから実行までの時間が 1分から2秒 になったのでまあ書いてみるが.

Preferences

とするだけ.

「Run」するたびにHTMLで, build/reports/profile/ 以下 にそれぞれにかかった時間をまとめたHTMLファイルが出力される.

AnalyticsApplication_java_-_Android_Studio_2_0_Beta_6

閲覧するには, Run後出力されたHTMLから右クリックでブラウザを起動するといい.

Android_Studio_2_0_Beta_6

こんなかんじで出力された.

Profile_report

Profile_report

50秒のうち45秒が「Crashlystis」の処理に使われている.

デバッグ時には, このような処理は当然必要ない.

しかも謎なのは Fabric は使っているが Crashlytics は使っていないのだが.

この処理を殺す.

-_Android_Studio_2_0_Beta_6

その後結果.

Profile_report

Profile_report

いろいろ謎なことは多いが, オプション「--profile」をつけるだけで一回の「ビルド→実行」時間が数十倍に短縮された.

やみくもにググるよりか, いわゆる「ログ」のような「profile」を見ながらググるほうが効率的.

なぜなら, GUIダイアログから「--profile」と入力しておくだけだもの.


コマンドラインで stackoverflow を快速に検索できる「how2」

使い方はこうです.

usage: how2 [-l python/ruby/etc.] search string

コマンドである「how2」に続いて, 検索したいキーワードを入力します.

bz2

言語 (タグ?) を限定する場合はオプション「 -l 」を付けます.

例えば, キーワードを「retrolambda」「RxJava」として android 関連の情報を探します.

$ how2 -l android retrolambda rxjava

how2

さらに他に情報を見たい場合は [SPACE] を押すと一覧で表示されて選択できます.

__—_how2 2

__—_how2 3

__—_how2 4

これはもう「tldr」よりも広く分かりやすい説明をみつけることができそうです.

インストールは以下で.

$ brew install node
$ npm install -g how2

santinic/how2: stackoverflow from the terminal

man は長すぎるので「tldr」


【AndroidStudio 不要】サンプルアプリは「dryrun」で試してすぐ捨てよう

参考にしたいサンプルアプリをGiHubで見つけて試してみる場合は以下のような手順

1. サンプルアプリのリポジトリを探す.
2. zip をダウンロードする.
3. それを展開する.
4. AndroidStudio などIDEを開く.
5. インポートする.
6. Gradle が sync する.
7. プロジェクトを run.
8. 実行するデバイスを選択する.
9. 実際に動かしてみる.
10. zipファイルとプロジェクトフォルダを捨てる.

となりますが,「dryrun」をインストールすると

$ gem install dryrun
...
$ dryrun -h
Usage: dryrun GITHUB_URL [OPTIONS]

Options
    -m, --module MODULE_NAME         Custom module to run
    -p, --path PATH                  Custom path to android project
    -h, --help                       Displays help
    -v, --version                    Displays version

dryrun: Try the demo project of any Android Library

リポジトリのURLのみでターミナルからの一行で起動までが可能になります. AndroidStudioなどIDEは起動しなくてよいです.

プロジェクトディレクトリは残りません.

$ dryrun https://github.com/cesarferreira/android-helloworld

usage_v2

cesarferreira_dryrun__Try_the_demo_project_of_any_Android_Library

アプリ起動後, 動かしてみて, いらなくなったらターミナル出力の最終行に表示されているadbコマンドでアンインストール.

...
> If you want to remove the app you just installed, execute:
adb uninstall github.cesarferreira.helloworld

あなたのマシンには試したテストアプリの不要なプロジェクトディレクトリがたくさんありませんか?

man は長すぎるので「tldr」