windowsでpecoを使う

Android開発を爆速にする10のコマンドラインスクリプト
の話をwinで使いたい為に調べたメモ



■下記Windows環境用(peco)

  1. peco for winのバイナリをダウンロード
  2. 解凍してSetEnv.bat等で環境パスを通す
  3. pgradle.bat をpecoフォルダに入れておく



  1. mainプロジェクト直下で と実行
  • pgradle.bat
@echo off
for /f %%i in ('gradlew tasks --offline ^| peco') do (
  echo gradlew %%i
  gradlew %%i --offline
  break
)

> --offline

指定をしておくと若干早くなります(そこだけ改変して使ってる)


関連)
vertualBoxのイメージ名に空白を入れない と変更するのであれば
下記のようなスクリプトでgenymotionもpeco対応に出来ます
(前提としてVirtualBoxのPathは通しておいてください)

  • genymotion player起動用
    • pplay.bat
@echo off
set player=D:/soft/Genymotion/player.exe

for /f %%i in ('VBoxManage list vms ^| peco') do (

  echo boot %%i
  start /b %player% --vm-name %%i
  break
)
  • genymotion player強制終了用
    • pstop.bat
@echo off
for /f %%i in ('VBoxManage list vms ^| peco') do (

  echo stop %%i
  VBoxManage controlvm %%i poweroff
  break
)



  • 深い階層のapkをインストール&起動する用(gradleビルドは階層が深い)

実はASを使うようになってココらへんが出来ないとすごく不便
なのに気が付きました。
ココらへんの小物スクリプトを用意しておかないと結構ストレスが溜まることに。。。

  • apkインストール用
    • pinstall.bat
@echo off
rem alias installapp='find ./ -name *.apk | peco | xargs adb install -r'

set PACKAGE=com.irof.irof_history
set ACTIVITY=.IrofActivity

for /f %%i in ('dir /s /b *.apk ^| peco') do (
  echo apk file %%i

  for /f %%j in ('adb devices -l ^| peco') do (
     echo device %%j
     adb -s %%j shell rm -fr /data/local/tmp/*
     adb -s %%j shell am force-stop %PACKAGE%
     adb -s %%j install -r %%i
     adb -s %%j shell rm -fr /data/local/tmp/*
     adb -s %%j shell am start -n %PACKAGE%/%ACTIVITY% --activity-clear-top
     break
  )
  break
)
  • apkアンインストール用
    • pdel.bat
@echo off
set PACKAGE=com.irof.irof_history

for /f %%j in ('adb devices -l ^| peco') do (
   echo device %%j
   adb -s %%j shell am force-stop %PACKAGE%
   adb -s %%j uninstall %PACKAGE%
   break
)

ただイマイチだと感じたのは
1deviceの時もadb選択画面が出てしまうことだよな。。。
選択なしで実行させたいかも。

あとは
>adb devices -l

自体が4系の端末でないと機種名が出てこなかったりも。
ここらへんはOS依存っぽいから仕方ないのかもしれない。。

追記)
何気に役立つディレクトリ移動pecoファイル
pcd.batと名前変えて使わしていただいてます