🗑️

開発中アプリのアンインストールを効率化する

2024/04/12に公開

はじめに

Androidアプリを開発していると、「アプリをアンインストールしたい」ときがそれなりにあると思います。
繋いでいる端末やエミュレータのUIを使ってアンインストールする方法が一般的ですが、回数が多くなると面倒感じたので効率化してみました。
具体的には、Appleのアプリケーションを作成し、ランチャーアプリからそれを呼び出すことですぐに開発アプリをアンインストール出来るようにしました。

環境

  • Mac
  • AlfredやRaycastなどのランチャーアプリが入っている(これがなくてもある程度効率化は出来ます)
  • adbの環境設定が出来ている

実現できること

ランチャーアプリにアプリケーション名(今回はuninstall debug app)を入れて、Enterキーを押すだけで、繋いでいる端末のアプリがアンインストール出来ます。

成功・失敗の通知が出ます。

成功時


失敗時

実現方法

AppleScriptからシェルスクリプトを実行する形で実現します。

シェルスクリプト

adbコマンドを使ってアプリをアンインストールします。

adb_uninstall.sh
export PATH=$PATH:${HOME}/Library/Android/sdk/platform-tools
RESULT=$(adb uninstall $1)
osascript -e "display notification \"${RESULT}\""

ポイント

  • AppleScriptから起動されるときは、環境変数が設定されていないため、シェルスクリプト側でadbのパスを通す必要があります
  • 第一引数にパッケージ名を入れ、そのアプリをアンインストールするスクリプトにしています
    • $1 がパッケージ名
  • 結果を通知したいため、adb uninstall $1の結果を変数に入れています
  • osascriptでシェルスクリプトからAppleScriptのコマンドを呼び出せます
    • display notificationで通知が出せるので、そこに結果を入れてPCで見られるようにしています

AppleScript

AppleScriptはAppleのスクリプトエディタで作ることが出来ます。

uninstall debug app
do shell script "${HOME}/tools/adb_uninstall.sh com.morayl.footprint.app.debug"

ポイント

  • do shell scriptでシェルスクリプトを実行できます
  • シェルスクリプトのパスは適宜自分の環境に合わせてください
    • パッケージ名も同様です
  • AppleScriptを保存するときにファイルフォーマットで「アプリケーション」を選ぶことで、ランチャーアプリから起動できるアプリケーション(.app)を作ることが出来ます

ランチャーアプリを使っていない場合でも、アプリケーションを実行する(ダブルクリックなど)ことで簡単に定義したアプリをアンインストールすることが出来ます。

おわりに

今回はちょっとした効率化をしてみました。
ランチャーアプリはステートレスで「今何を起動しているか」に関わらず呼び出して実行出来るので便利です。
adbコマンドにある命令は同じ感じで何でも実装出来るので、よく使う操作があればアプリケーションを作ってみてはいかがでしょうか。

Discussion