(This article is also available in [[1. RayNeo X2에 외부 앱 설치하기|Korean]])
<br>
> This is the first step toward running an app you’ve built directly on RayNeo smart glasses.
> In this article, I’ll walk through the process of installing an external APK on the RayNeo X2.
<br>
### 1. Installing ADB
- To install external apps on the RayNeo device, you first need to install **ADB (Android Debug Bridge)**.
On macOS, you can do this with the following command:
```bash
brew install android-platform-tools
```
> [!info] What is ADB?
> **ADB (Android Debug Bridge)** is a command-line tool that allows developers to control Android devices from a computer.
> It enables app installation, log reading, and system configuration via USB or Wi-Fi connection.
>
> For example, you can install apps on a device, check its status, or modify system settings.
> [!info] What is android-platform-tools?
> **android-platform-tools** is a collection of essential tools (including ADB) for developing and managing Android devices.
<br>
### 2. Enabling External App Installation
- You need to grant permission on the device to install external APK files.
Use the following commands to allow installation:
```bash
adb devices # Check connected devices
adb shell settings put global mercury_install_allowed 1
```
### 3. Installing the APK File
- Once the device is connected, install the APK file:
```bash
adb install [path to apk]
```
![[RayNeo screenshot1.jpg|center|w80]]
<div style="text-align:center"><span style="color:gray;">Lookout and Google Lens were successfully installed.</span></div>
<br><br>
> [!warning] External apps require the RayNeo Ring to run.
> Only apps designed specifically for RayNeo seem to work without the ring.
![[RayNeo screenshot2.jpg|center|w80]]
<br>
### Conditions for Running External Apps
When trying to launch external apps, I found that they wouldn’t run without the ring unless certain conditions were met.
Apps that could run without issue all included the following metadata:
```xml
<application
android:name=".MyApplication"
... >
<meta-data android:name="com.rayneo.mercury.app" android:value="true" />
</application>
```
This seems to be how RayNeo determines whether an app is made for its own Mercury system.
<br>
> [!info] My Understanding of the RayNeo System
>- **RayNeo X2** = Hardware (AR glasses)
> - **Mercury** = The proprietary app interface system (UI framework) for the glasses
> - **ARDK** = The developer SDK used to build apps on Mercury
> - **ViewBinding** = Android layout binding method used within this SDK
<br><br>
Now that the app installation is complete, in the next step, I’ll explore the differences between RayNeo-specific apps and general Android apps and go over various classes provided by the ARDK.
<br>
<br>
<br>
<br>