Help us understand the problem. What is going on with this article?

Android開発で便利なエイリアス

More than 1 year has passed since last update.

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() {
     echo "ファイル名を入力"
     read file
     adb shell screencap -p /sdcard/$file.png
     adb pull /sdcard/$file.png ~/Desktop/$file.png
     adb shell rm /sdcard/$file.png
}

こうしておくことでファイル名の指定ができ複数枚取得しても上書きされることなく保存できます。

起動中の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"

動画の取り出し

「こんな感じの動作ですー」って共有するときに
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;
}

こんな感じで画像が作られました。

movie.gif

おまけ

いろいろ設定してもあまり使わないコマンドは忘れちゃうので
毎回起動のたびにエイリアスを表示するようにしています。

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";
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした