Android開発に便利かなって思っているエイリアス環境を公開します。
$ANDROID_SDK
の箇所は自分のAndroid SDKのパスを設定しておく必要があります。
SDK Managerを起動する
Android Studioを立ち上げている時だったら1クリックで立ち上げられますが
Android StudioをSDK Managerのためだけに立ち上げるのは面倒です。
alias sdk=$ANDROID_SDK"/tools/android"
これでsdk
と打ち込むだけで起動できます。
ADBの再起動
USBでつながっているはずなのに急に認識しなくなったってときに
端末を抜き差しするのはなんかなって感じなのでADBを再起動させる。
alias readb="adb kill-server; adb start-server"
スクリーンショットを撮影しファイルを開く
DDMSからスクリーンショットを取ることもできますが
サッと取りたいとき便利。
デスクトップに保存します。
function sshot() {
file=$(date "+%Y%m%d-%H%M%S").png
adb shell screencap -p /sdcard/$file
adb pull /sdcard/$file ~/Desktop/$file
adb shell rm /sdcard/$file
}
こうしておくことでファイル名の指定ができ複数枚取得しても上書きされることなく保存できます。
起動中のActivityを確認
プロジェクトが大きくなってくるとパッケージ名やクラス名で探すのに手間取ることがよくありますので、
今見ているActivity名を一瞬でわかるようにしておきます。
alias activitys="adb shell dumpsys activity | grep -B 1 "Run #[0-9]*:""
Android Device Monitorを開く
Android Device Monitorを開けるようにしておきます。
alias monitor=$ANDROID_SDK"/tools/monitor"
9patchツールを起動
9patchツールって使うときは頻繁に使うので。
alias 9patch=$ANDROID_SDK"/tools/draw9patch"
UI Automator
レイアウトを作成しているとき、なぜか上手く表示することができないってなったときには、
どのViewGroupのなかにいて、どういう設定値が入っているのか手軽に見れるようにしてます。
alias uiat=$ANDROID_SDK"/tools/uiautomatorviewer"
Hierarchy Viewer
Viewの構造をみたいときに。
alias hierarchy=$ANDROID_SDK"/tools/hierarchyviewer"
動画の撮影
サッと端末上での動作を動画で撮影できるようにします。
alias rmovie="adb shell screenrecord /sdcard/movie.mp4"
動画の取り出し
function dmovie() {↲
TIME=`date "+%s"`
adb pull /sdcard/movie.mp4 $1
mv movie.mp4 $(date "+%Y%m%d-%H%M%S").mp4
}
mp4だと大きくて困る場合はGifアニメーションでも出力できるようにしておきます。
簡単な手順で動画を取り出すこともできるのですが
そうするとファイルサイズが大きすぎるため一手間かけてあげます。
ffmpegとgifsicleが必要になるので
入っていない場合は先に入れておきます。
brew install ffmpeg
brew install gifsicle
今回は1MBに抑えられるように短い動画&小さいサイズで設定します。
function dmovie() {
adb pull /sdcard/movie.mp4 $1;
ffmpeg -i movie.mp4 -vf "scale=min(iw\,400):-1" -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=15 --colors 128 > movie.gif $1;
}
こんな感じで画像が作られました。
おまけ
いろいろ設定してもあまり使わないコマンドは忘れちゃうので
毎回起動のたびにエイリアスを表示するようにしています。
echo "### Android Develop ###";
echo "sdk readb sshot 9patch monitor";
echo "uiat rmovie dmovie hierarchy";
echo "activitys";
まとめ
以上の設定をzshrcに設定しています。
#SDK Manager
alias sdk=$ANDROID_SDK"/tools/android"
#ADBの再起動
alias readb="adb kill-server; adb start-server"
# スクリーンショットを撮影しファイルを開く
alias sshot=$ANDROID_SDK"/tools/screenshot2 ~/Desktop/screenshot.png; open ~/Desktop/screenshot.png";
# Android Monitorを開く
alias monitor=$ANDROID_SDK"/tools/monitor"
# 9patchツールを起動
alias 9patch=$ANDROID_SDK"/tools/draw9patch"
# UI Automator
alias uiat=$ANDROID_SDK"/tools/uiautomatorviewer"
# Hierarchy Viewer
alias hierarchy=$ANDROID_SDK"/tools/hierarchyviewer"
# 動画の撮影
alias rmovie="adb shell screenrecord /sdcard/movie.mp4"
# 動画の取り出し
function dmovie() {
adb pull /sdcard/movie.mp4 $1;
ffmpeg -i movie.mp4 -vf "scale=min(iw\,400):-1" -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=15 --colors 128 > movie.gif $1;
}
# ADB-PECO
alias adbp=$ANDROID_SDK"/tools/adb-peco/bin/adbp"
alias pidcatp=$ANDROID_SDK"/tools/adb-peco/bin/pidcatp"
alias adb="adbp"
alias pidcat="pidcatp"
# Android設定の表示
echo "### Android Develop ###";
echo "sdk readb sshot 9patch monitor";
echo "uiat rmovie dmovie hierarchy";
echo "activitys";