How to Run Android Apps with ARC Welder in Ubuntu

How to Run Android Apps with ARC Welder in Ubuntu

A complete guide to running Android APKs on Ubuntu using ARC Welder (App Runtime for Chrome) โ€” covering installation, APK sideloading, configuring display modes, troubleshooting compatibility, and understanding the limitations of Chrome's Android runtime.

Tested on: Ubuntu 14.04 LTSUbuntu 14.10Ubuntu 15.04

In April 2015, running Android apps on a Linux desktop was still largely the domain of full-blown emulators โ€” Genymotion, Android Studio’s AVD, or Android-x86 in a VirtualBox instance. All of them worked, but they were heavy: you were spinning up an entire Android system image just to run a calculator or a note-taking app. ARC Welder changed that equation. Google’s App Runtime for Chrome (ARC) brought a lightweight Android runtime to the Chrome browser, and ARC Welder was the tool that let you sideload any Android APK into it. No emulator, no virtual machine, no 2 GB of RAM dedicated to a virtual Android device โ€” just Chrome, an extension, and an APK file. The catch was compatibility: ARC supported a limited subset of Android APIs, so not every app worked. But for the apps that did, it was remarkably convenient. This guide covers installing ARC Welder on Ubuntu, loading an APK, configuring the runtime, and understanding what works (and what does not). We tested ARC Welder with approximately thirty APKs on Ubuntu 14.04 and 15.04, and the hit rate was roughly 60% โ€” enough to be useful, not enough to replace a proper Android device. For related Chrome and application content, see our Google Chrome on Ubuntu 14.04 guide.

ARC Welder interface showing APK loading screen in Chrome on Ubuntu

How ARC Welder Worked

ARC Welder was built on top of Google’s ARC (App Runtime for Chrome) technology, which was originally developed for Chrome OS. The architecture worked like this:

  1. Chrome included a sandboxed Android runtime โ€” a stripped-down version of Android’s Dalvik/ART virtual machine and framework libraries, running inside Chrome’s Native Client (NaCl) sandbox.
  2. ARC Welder took an APK file, repackaged it as a Chrome extension, and loaded it into this runtime.
  3. The Android app ran inside a Chrome window, with its UI rendered through Chrome’s compositor. Touch events were translated from mouse clicks, and Android intents were handled within the sandbox.

The key advantage was efficiency: the runtime was lightweight (approximately 200 MB footprint) and shared Chrome’s process model. The key limitation was API coverage โ€” the runtime did not implement the full Android API surface, so apps that depended on missing APIs crashed or behaved incorrectly.

Prerequisites

  • Ubuntu 14.04 LTS, 14.10, or 15.04
  • Google Chrome (not Chromium โ€” ARC required Chrome’s proprietary NaCl implementation). Version 40 or later.
  • At least 4 GB of RAM (Chrome plus the Android runtime was memory-hungry)
  • APK files for the Android apps you want to run

Install Chrome if you have not already:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install google-chrome-stable

Step-by-Step Installation

Step 1: Install ARC Welder Extension

  1. Open Google Chrome
  2. Navigate to the Chrome Web Store
  3. Search for “ARC Welder”
  4. Click Add to Chrome to install the extension

Alternatively, navigate directly to chrome://extensions, enable Developer Mode, and load the ARC Welder extension if you have it downloaded locally.

Step 2: Launch ARC Welder

Open Chrome’s app launcher or navigate to chrome://apps and click ARC Welder. On first launch, ARC Welder asks you to select a directory for storing its working files. Choose or create a dedicated directory:

mkdir -p ~/ARC

Select ~/ARC in the dialog. ARC Welder uses this directory to store repackaged APKs and runtime data.

Step 3: Load an APK

Click the Add your APK button in ARC Welder’s interface. Navigate to your APK file and select it. ARC Welder analyses the APK and presents configuration options:

Orientation โ€” choose between Landscape, Portrait, or Fullscreen. This controls the window shape and orientation. Most phone apps work best in Portrait; tablet-optimised apps work better in Landscape.

Form Factor โ€” Phone, Tablet, or Maximised. This affects the window size and DPI scaling.

Resize โ€” Enabled, Disabled, or Reconfigurable. Enabled allows the user to resize the window; some apps handle dynamic resizing poorly.

Clipboard access โ€” whether the Android app can access the system clipboard. Enable this for productivity apps; disable for untrusted APKs.

Step 4: Launch the App

Click Test (or Launch). ARC Welder repackages the APK as a Chrome extension and launches it. A new Chrome window appears running the Android app.

The first launch may take 15-30 seconds as the runtime initialises. Subsequent launches of the same app are faster.

Android app running inside ARC Welder in a Chrome window on Ubuntu desktop

Step 5: Interaction Basics

  • Mouse click = touch tap
  • Mouse click and drag = touch swipe
  • Scroll wheel = scroll gesture
  • Keyboard = software keyboard input (the Android on-screen keyboard does not appear; physical keyboard input is mapped directly)
  • Back button = no direct equivalent; some apps respond to Escape or the browser back button

Step 6: Managing Apps

ARC Welder can only hold one APK at a time. To switch apps:

  1. Open ARC Welder
  2. Click Add your APK and select the new APK
  3. The previous app is replaced

For persistent access to multiple Android apps, you could repackage each as a standalone Chrome extension using the Chrome developer tools, but this was a more involved process.

What Worked Well

Based on our testing across approximately thirty APKs:

Good compatibility:

  • Simple utility apps (calculators, unit converters, note-taking apps)
  • Reading apps (PDF viewers, e-book readers without DRM)
  • Casual games with simple touch input (no accelerometer or complex gestures)
  • Basic productivity tools (to-do lists, timers, simple editors)

Poor compatibility:

  • Apps requiring Google Play Services (most Google apps, many social media apps)
  • Games with 3D graphics or complex input
  • Apps using camera, GPS, Bluetooth, or other hardware sensors
  • Apps with heavy native (NDK) code, especially ARM-only native libraries
  • Apps requiring background services or push notifications

Common Pitfalls

“App is not compatible” or immediate crash on launch. The most common cause is the APK depending on Google Play Services (com.google.android.gms). Since the ARC runtime did not include Play Services, any app that calls Play Services APIs at startup will crash immediately. There is no workaround within ARC Welder โ€” these apps simply do not work. Check the APK’s dependencies with aapt dump badging app.apk | grep uses-library to identify Play Services dependencies before attempting to load.

App launches but displays a black screen. This typically means the app’s rendering uses APIs or extensions not supported by the ARC runtime’s OpenGL ES implementation. Games with custom rendering engines were especially prone to this. Try changing the Form Factor setting (Phone vs. Tablet) โ€” some apps initialised rendering differently based on form factor.

Keyboard input not working. Some Android apps expect the soft keyboard to be present and do not accept hardware keyboard input for text fields. If typing does not work, try clicking the text field first to ensure it has focus. In some cases, this was an ARC runtime limitation with no fix.

App runs very slowly. ARC Welder ran Android code in a sandboxed environment with translation overhead. Apps that were already CPU-intensive on Android were significantly slower under ARC. This was most noticeable with games and apps performing heavy computation. Ensure no other resource-intensive Chrome tabs or processes are running.

ARC Welder directory grows very large. Each APK loaded by ARC Welder is repackaged and stored in the working directory. Over time, this directory can grow to several gigabytes. Periodically clean it: rm -rf ~/ARC/* โ€” ARC Welder will recreate its files as needed.

Chrome crashes when loading large APKs. APKs larger than approximately 100 MB could cause Chrome to run out of memory during the repackaging process, especially on machines with 4 GB of RAM or less. Close unnecessary Chrome tabs before loading large APKs.

ARC Welder configuration options showing orientation, form factor, and resize settings

The Legacy of ARC

Google deprecated ARC Welder in 2017 as the focus shifted to running Android apps natively on Chrome OS through the Android container (which provided full Play Store access and much better compatibility). On desktop Linux, the torch passed to projects like Anbox (Android in a Box, using LXC containers) and later Waydroid (which uses Linux namespaces to run a full Android system alongside the Linux desktop). These modern solutions offer far better compatibility than ARC Welder ever did, but ARC Welder was the first tool that made running Android apps on Linux feel casual rather than technical โ€” just load an APK and go. For a 2015 solution, that was genuinely impressive.

Frequently Asked Questions

What is ARC Welder?
ARC Welder (App Runtime for Chrome Welder) was a Google Chrome extension that allowed Android APK files to run inside Chrome on desktop operating systems including Linux, Windows, macOS, and Chrome OS. It used a sandboxed Android runtime environment built into Chrome to execute Android apps without requiring an emulator or virtual machine.
Does ARC Welder still work?
Google deprecated ARC Welder in 2017 and removed it from the Chrome Web Store. Chrome versions after approximately 64 removed the underlying ARC runtime. For running Android apps on modern Linux, alternatives include Anbox, Waydroid, or Android-x86 in a virtual machine. This guide is preserved as historical documentation.
Can ARC Welder run any Android APK?
No. ARC Welder supported a subset of Android APIs. Apps that relied on Google Play Services, hardware sensors (GPS, accelerometer, camera), or native ARM code (without x86 translation) often failed or had limited functionality. Simple apps โ€” calculators, note-taking apps, casual games, readers โ€” had the best compatibility.
Does ARC Welder support Google Play Store?
No. ARC Welder required you to sideload APK files manually. There was no Play Store integration. You needed to obtain APK files from the app developer or from APK repositories.
How does ARC Welder differ from Android emulators like Genymotion?
ARC Welder ran Android apps as Chrome extensions in a sandboxed runtime โ€” no virtual machine, no full Android system image, and significantly less resource usage. However, it supported fewer apps and fewer Android APIs. Full emulators like Genymotion or Android Studio’s AVD provide a complete Android environment with full API support but require more CPU and RAM.
Can I run multiple Android apps simultaneously with ARC Welder?
ARC Welder could only load one app at a time. To switch to a different APK, you had to re-launch ARC Welder and load the new APK. This was a significant limitation for multi-app workflows.