【APK, Android Studio】WindowsでAndroidアプリのAPKを抽出・インストールする方法

## 環境
+ Microsoft Windows 10.0.22000.978
+ Android 9

## 目次
前半：[APKを抽出する手順](#apkを抽出する手順)
後半：[APKをインストールする手順](#apkをインストールする手順)

## APKを抽出する手順
Android Studioをインストール済みの場合は [2. abdコマンドのパスを通す](#2-abdコマンドのパスを通す) へ。

### 1. SDKのインストール（Android Studioをインストールしていない場合）
[Android Studio 公式サイト](https://developer.android.com/studio/?hl=ja)からAndroid Studio（Download Android Studioをクリック）またはコマンドラインツール（Download optionsをクリック → Command line tools only）をダウンロード

### 2. abdコマンドのパスを通す
Android Studioをインストールすると、以下の場所に `adb.exe` が存在するので、このパスを環境変数として登録する。

```:コピーしておく
C:\Users\USERNAME\AppData\Local\Android\Sdk\platform-tools
```

１. Win+R → `sysdm.cpl` と入力 → Enter で「システムのプロパティ」を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/b14a1bd3-3876-56c2-56dc-12ae00ac0fbd.png)

２. 「詳細設定」タブの「環境変数」をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/451dba2a-d10e-564c-c315-81b4b81a7de6.png" width="400" alt="「詳細設定」タブ">

３. 「システムの環境変数」の `Path` を選択 →「編集」→「新規」
（`Path` がない場合は「新規」をクリックして変数名に `Path` を入力）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/f2f8b8b3-cc1b-9327-b91e-a5763bd9d860.png)

４. 先程コピーしたパスを Ctrl+V で貼り付ける →「OK」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/3b930143-6b2b-156f-871a-351bf35ab66e.png)

５. Windowsを再起動して環境変数を反映させる（結果的に再起動しなくても反映されていたが、再起動するのが確実らしい）

６. Win+R → `cmd` と入力 → Enter でコマンドプロンプトを開き、`adb version` を実行しバージョンが表示されることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/60992a55-c413-6b87-c4bb-9758fbd3afc0.png)

### 3. Androidの設定で「USBデバッグ」を有効にする
Androidで「設定」→「システム」→「端末情報」で「ビルド番号」を7回タップすると「開発者向けオプション」が表示される。「USBデバッグ」を有効にし、PCにUSB接続する。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/6247be0f-27f7-7923-ae4e-fab0df99eb98.png" width="400" alt="「USBデバッグ」を有効にする">

:::note warn
機種やバージョンによって設定場所が異なる場合がある。
:::

### 4. APKファイルを抽出する
まず、アプリのパッケージ名を調べる。[Google Play](https://play.google.com/store/games?hl=ja)で調べたいアプリを検索し、URLの `id=[パッケージ名]` を確認する。

```:例
# アプリのURL
https://play.google.com/store/apps/details?id=com.appname.android&hl=ja

# アプリのパッケージ名
com.appname.android
```

Win+R → `cmd` と入力 → Enter でコマンドプロンプトを開き、以下を実行する。

```posh:コマンドプロンプト
# 1. ダウンロードフォルダに移動（違う場所でも可）
cd "C:\Users\USERNAME\Downloads"

# 2. パッケージを探す
adb shell pm list packages -f | find "パッケージ名"
# → package:/data/app/com.appname.android-xxxxxxx==/base.apk=com.appname.android

# 3. apkを取得（2の出力からコピーして貼り付ける）
adb pull /data/app/com.appname.android-xxxxxxx==/base.apk
# → base.apkがカレントディレクトリに保存される
```

## APKをインストールする手順
### 1. Androidの設定で「USBデバッグ」を有効にする
Androidで「設定」→「システム」→「端末情報」で「ビルド番号」を7回タップすると「開発者向けオプション」が表示される。「USBデバッグ」を有効にし、PCにUSB接続する。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/6247be0f-27f7-7923-ae4e-fab0df99eb98.png" width="400" alt="「USBデバッグ」を有効にする">

:::note warn
機種やバージョンによって設定場所が異なる場合がある。
:::

### 2. Androidの設定で「USB経由のアプリを確認」を無効にする
Androidで「設定」→「システム」→「詳細設定」→「開発者向けオプション」で「USB経由のアプリを確認」を無効にする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1946472/04e60dec-ffd4-9243-daba-d1f1abcce1c8.png" width="400" alt="「USB経由のアプリを確認」を無効にする">

### 3. Androidにアプリをインストールする
Win+R → `cmd` と入力 → Enter でコマンドプロンプトを開き、以下を実行する。

```posh:コマンドプロンプト
# パスはファイルをドラッグ＆ドロップして入力することもできる
adb install "C:\Users\USERNAME\Downloads\base.apk"
# → Success
```

:::note
既存のアプリをデータを保持したまま再インストールする場合
```posh:コマンドプロンプト
adb install -r "C:\Users\USERNAME\Downloads\base.apk"

# ダウングレードする場合は
adb install -r -d "C:\Users\USERNAME\Downloads\base.apk"
```
:::

## 参考
https://loumo.jp/archives/18715

https://akira-watson.com/android/path-environment.html

https://qiita.com/greencoffeemaker/items/01f7d1758ed137aecae7

https://sp7pc.com/google/android/31148

https://sp7pc.com/google/android/31029