[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がいいでしょう。添付ファイルの上限が25MBくらいまで許されているのでドコモメールなどでは、添付できるファイル容量が足りずメールが送れないことがあります。

 

実機の設定

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

 

apkファイル名

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

また adb コマンドであれば

adb install app-release.apk

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

 

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

 
ここでは、公開しているものを「端末にダウンロード」して、apkを抜き出し他のアンドロイド環境で起動させることを指しています。

またadbコマンドが使える開発環境をセットします。

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

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

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

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

以降は、com.example.testexternalstoragefile というパッケージネームのアプリを想定していきます。

端末にインストールした後で、このパッケージネームからapkが存在するパスを取得します

 

 
Mac:

ここで
/data/app/com.example.testexternalstoragefile-2/base.apk
のbase.apkを取り出したいわけです。

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

 
確かにDesktop上に存在しています。
この場合はMacです

Windows:

一度shellがら出でからpullします

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

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

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