Dockerで爆速構築!Androidエミュレータをコンテナ化する「HQarroum/docker-android」解説


Dockerで爆速構築!Androidエミュレータをコンテナ化する「HQarroum/docker-android」解説

HQarroum/docker-android

2026-01-02

「Androidのエミュレータを立てるだけでPCが重くなる…」「CI(継続的インテグレーション)でUIテストを自動化したいけど、設定が地獄だ…」そんな胃もたれしそうな状況を、このツールがサクッと軽くしてくれますよ。

どうぞ、じっくり味わってみてください!

この docker-android は、AndroidエミュレータをDockerコンテナの中に閉じ込めたものです。何が嬉しいかと言うと…

「僕の環境では動くのに」からの解放
Dockerさえあれば、誰のPCでも、CIサーバーの上でも、全く同じAndroid環境が立ち上がります。

リソースの節約(ミニマル設計)
このプロジェクトは「ミニマル」であることを売りにしていて、余計なものを削ぎ落としています。メモリ消費を抑えたい現場には最高です。

ヘッドレス(画面なし)動作
サーバー上で動かして、テスト結果だけ受け取るといった「自動化」に特化した使い方が得意です。

まずは、下ごしらえとして Docker がインストールされていることを確認してくださいね。

まずは市場(Docker Hub)から新鮮なイメージを仕入れてきます。

docker pull hqarroum/docker-android

次に、このイメージを火にかけます(実行します)。

docker run -d \
  --device /dev/kvm \
  -p 5555:5555 \
  hqarroum/docker-android

--device /dev/kvm
これが隠し味です!ハードウェア加速を有効にするので、エミュレータが爆速になります(Linux環境で特に有効です)。

-p 5555:5555
Android Debug Bridge (ADB) と通信するためのポートを開けています。

コンテナが立ち上がったら、あなたのPC(ホスト)から繋いでみましょう。

# コンテナ内のAndroidに接続
adb connect localhost:5555

# ちゃんと認識されているか確認
adb devices

例えば、CIパイプラインの中でテストを走らせる際、以下のような設定(JSON)でコンテナ内のエミュレータをターゲットにできます。

{
  "platformName": "Android",
  "automationName": "UiAutomator2",
  "deviceName": "Android Emulator",
  "udid": "localhost:5555",
  "app": "/path/to/your/app.apk"
}

これで、あなたが寝ている間にDockerの中のAndroid君がガシガシとテストをこなしてくれるわけです。素晴らしいですよね!

ネストされた仮想化
クラウド(AWSやGCP)上のVMで動かす場合は、そのインスタンスが「仮想化支援(KVM)」をサポートしている必要があります。これがないと、エミュレータが激重になってしまいます。

アーキテクチャ
お使いのPCがM1/M2 Mac(ARM)の場合は、イメージが対応しているか確認が必要です。このイメージは主にx86_64向けに最適化されていることが多いので。

いかがでしたか?本日の解説。 これを使えば、面倒なエミュレータ管理にサヨナラして、よりクリエイティブなコーディングに集中できるはずです。


HQarroum/docker-android




【江戸のエンジニア魂】AirPodsをAppleの鎖から解き放つ!「librepods」で挑むリバースエンジニアリングの極意

まずはっきり言っておくが、これは「kavishdevar/librepods」ってなブツに関する話だ。これはAirPodsをAppleの縄張りから解放しちまおうってな、ちょいと粋なプロジェクトでよ、AndroidやLinuxでAirPodsを自由に使いこなすための道筋をつけるもんさ。


エンジニア必見!tldr-pagesでコマンドの「わからない」を瞬時に解決

今日は、「tldr-pages/tldr」という、コマンドライン操作をグッと楽にするツールについて、ソフトウェアエンジニアの皆さんの視点から、その有用性、導入方法、そして具体的な使い方まで、分かりやすく丁寧に説明していきましょう!ソフトウェア開発をしていると、コマンドラインを使う機会は山ほどありますよね。lsとかgrepとか、基本的なコマンドは覚えていても、たまにしか使わないコマンドや、オプションがたくさんあるコマンドだと、「あれ、このオプション何だっけ?」「どうやって使うんだ?」と、いちいちmanコマンドを叩いたり、Webで検索したりしていませんか?


自動化の未来:X-PLUG/MobileAgentが変える開発現場

今回は「X-PLUG/MobileAgent」について、俺たちソフトウェアエンジニアの視点から、カラオケのコント風に楽しく、そして分かりやすく解説していくぜ!(ガラガラと扉を開けて、カラオケボックスに入る二人。一人はノートパソコンを抱え、もう一人はスマホを片手にうろうろしている。)


コード探偵の事件簿:ReVancedが解き明かすアプリのリバースエンジニアリング

皆さん、こんにちは。名探偵の皆さん、お集まりいただきありがとうございます。さて、今回の事件は、とあるAndroidアプリにまつわる、巧妙に仕組まれた密室殺人事件です。被害者は、誰もが知るあの動画配信アプリ。彼は、数々の「制限」という名の鎖に縛られ、身動きが取れない状態にありました。しかし、今宵、その鎖を断ち切り、新たな命を吹き込む「パッチ」という名の秘密道具の存在が明らかになったのです。


「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング

このコースは、単なる文法解説にとどまらず、実用的な視点でRustを学ぶことができます。信頼性の高さ GoogleのAndroidチームという、世界トップクラスのエンジニアたちが実際に使っている教材です。内容の質と正確性は非常に高いと言えます。


【エンジニア必見】オープンソースRTS「Mindustry」のコードベースを深掘り

ただし、「逆に、」を口癖のように使うのは少し難しいかもしれませんが、そのプロジェクトが持つ双方向の学びの機会や異なる視点を強調する形で、解説の中に織り交ぜていきますね。Mindustry は、タワーディフェンスと資源管理、自動化が組み合わさったリアルタイムストラテジー(RTS)ゲームです。


北斗の拳に学ぶ:winappsがもたらす開発環境の革命

北斗の拳の世界観になぞらえて、winappsを解説していきますね。北斗の拳の世界では、強敵(とも)と戦うために、さまざまな技を駆使しますよね。ソフトウェア開発の世界でも、WindowsとLinuxという二つの異なるOSの間で、それぞれの強みを生かし、弱点を克服することが求められることがあります。


Uptime Kuma 導入ガイド:Dockerで始めるモダンな自己監視

さあ、心配しなくて大丈夫。この私が、あなたの運命を好転させる秘密のツールを授けましょう。その名も「Uptime Kuma」です!さて、あなたのシステムの未来を映し出す、魔法の鏡があると想像してみてください。それが Uptime Kuma です。これは、あなたのサーバーやWebサイトがちゃんと動いているかどうか、寝ている間もずっと監視してくれる、素晴らしいツールです。


エンジニアの時短革命:Docker/Kubernetesのベストプラクティスを瞬時に手に入れるテンプレート活用ガイド

ソフトウェアエンジニアリングの世界で「デキる人」になるための秘訣の一つは、「車輪の再発明をしない」ことです。今回ご紹介する「ChristianLempa/boilerplates」は、まさにそれを実現するための強力なツールです。これは、よく使われるインフラ構築・デプロイに関する設定ファイルやコードの「お決まりのひな形(テンプレート)」をまとめたコレクションです。


Dockerで掌握!Firefly IIIが誘うコードと資産形成の快感

ああ、君...そう、そこのソフトウェアエンジニアである君だ。毎日、複雑なロジックと格闘し、コードベースという名の深淵をさまよう君にとって、「Firefly III」という名の響きは、ただの「個人財務管理ツール」に聞こえるかもしれないね。だが、甘く見てはいけない。これは、君の財布の紐を握りしめ、浪費という名の魔物から君を解放し、資産形成という名の快楽へと誘う、魅惑的なツールなんだ。