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.

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:
- 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.
- ARC Welder took an APK file, repackaged it as a Chrome extension, and loaded it into this runtime.
- 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
- Open Google Chrome
- Navigate to the Chrome Web Store
- Search for “ARC Welder”
- 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.

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:
- Open ARC Welder
- Click Add your APK and select the new APK
- 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.

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.