[Android] 公開・未公開アプリの実行ファイルapk をインストールするには

Google Playに公開されているアプリのapkファイルや未公開のアプリの実行ファイルapkを別端末、あるいはemulatorでテストしてみたいと思います。
 
デレステをスマホにダウンロードして、Android Studioのemulatorで動かした例です。

 



apk ファイルのインストール

 
apkをGoogle Play以外でのインストールでは2つの状況があると思います。

  • 開発中の公開されていないapkをテストとして最終確認
  • 公開されているアプリのapkをインストールする
    • 何の意味があるかわかりませんが、まあPCで遊べるとか?課金はできないでしょうね

 

開発中の公開されていないapkをテストとして最終確認

 
アプリを公開する前に実際にapkを作成して、実機で最終テストしてみることが必要です。
できれば自分以外の他の人にテストしてもらうのがいいのですが、開発環境を持っている人であればadb コマンドでできます。

ex: abd install com.kenchington.testapp.apk
ただ時々、apk ファイルをそのまま渡してインストールしたいことがあります。例えば、開発段階で幾つかの実機で手っ取り早く動作の確認をしたい場合とか、誰か(開発環境を持っていない人)に渡して、試してもらうなど
 

apkをメールに添付

 
メールにアタッチされたapkファイルを叩くと簡単にインストールできます。

メールといっても、Gmailがいいでしょう。添付ファイルの上限が10MBくらいまで許されているのでドコモメールなどでは、添付できるファイル容量が足りずメールが送れないことがあります。

実機の設定

 
通常のGoogle Playからダウンロードしていない場合は
セキュリティでブロックされます
開発者用に設定があります
「設定」「セキュリティ」にて
「提供元不明のアプリ」をチェックします
 
apk-install_2
 

apkファイル名

 
Android Studio で作成されるapkは
app-release.apk
のように一般的な名前で出力されます
これをこのままメールにアタッチしても、送られた側ではインストールできません
 
adb コマンドでインストールするときに対象を
[パッケージ名].apk
としたように、アタッチしたファイル名を[パッケージ名].apkにすればインストールできます。

また adb コマンドであれば

adb install app-release.apk

でもインストールできてしまいます
ややこしいですが

 

公開されているアプリのapkをインストールする

 
ここでは、公開しているものを一旦端末にダウンロードして、apkを抜き出し他のアンドロイド環境で起動させることを指しています。
また開発環境がなければできません。

パッケージネーム:
これがとても重要になってきます。

公開中のURLから推測できます

Google Chromeの例
https://play.google.com/store/apps/details?id=com.android.chrome&hl=ja

この場合は「com.android.chrom」がパッケージネームとなります。

以降は、com.example.testexternalstoragefile というパッケージネームのアプリを想定していきます。
端末にインストールした後で、このパッケージネームからapkが存在するパスを取得します

 

 
これはMacの場合でWindowsでは一度adb shell でシェルに入ってからコマンドを打たないといけないかもしれません

実際にこのapkをPC側にコピーして引き抜いてみると
 

 
確かにDesktop上に存在しています。
この場合はMacですが、Winowsであればコピー先を C:¥temp などにすればいいでしょう

このapkファイルですが、base.apkでは都合がわるいです。この名前を元々のパッケージネームに変更します。
com.example.testexternalstoragefile.apk
とします

これで adb install com.example.testexternalstoragefile.apk
とすれば Android Studio のemulatorや他の端末にインストールできます。

実際にこちらのデレステをダウンロードして、Android Studioのemulatorで楽しんでみました