Development Environment
ADL gives you a full Ubuntu Linux system running on ARM64 hardware. That means you can run the same development tools that professionals use on desktop Linux workstations. This guide walks you through setting up a complete coding environment from scratch.
Your Android device uses an ARM (aarch64) processor. Most development tools work without issues, but some software only ships x86 binaries. This guide focuses on tools with native ARM64 support.
VS Code / Code OSSโ
Visual Studio Code is the most popular code editor for nearly every language. On ARM64 Ubuntu, you have two options for getting it.
Option A: Code OSS from Ubuntu Repositoriesโ
Code OSS is the open-source build of VS Code available directly from apt. It lacks some Microsoft-proprietary features (such as the built-in marketplace and certain extensions), but it is the simplest path to a working editor.
apt update && apt install -y code-ossLaunch it from the terminal or your application menu:
code-ossOption B: Official VS Code .deb for ARM64โ
Microsoft provides an official ARM64 .deb package at code.visualstudio.com. This build includes the full extension marketplace and all proprietary features.
curl -L -o /tmp/vscode.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-arm64'
apt install -y /tmp/vscode.debrm /tmp/vscode.debLaunch with:
codeDo not download the standard x86-64 .deb from the VS Code site. It will not run on your ARM64 device. Always select the ARM64 or aarch64 variant.
If you need extensions from the Microsoft marketplace (such as the official Python or C++ extensions), use the official ARM64 .deb. If you want a lighter install with no proprietary components, Code OSS is a solid choice.
Recommended Extensionsโ
After installing VS Code, add these extensions to improve your workflow:
- Python (ms-python.python) -- language support, linting, debugging
- GitLens -- visualize Git blame, history, and branches inline
- Prettier -- automatic code formatting for JavaScript, HTML, CSS, JSON
- Remote - SSH -- edit files on remote servers directly from VS Code
Install extensions from the terminal:
code --install-extension ms-python.pythonGitโ
Git is the standard version control system. Every developer needs it, regardless of language or project type.
Install and Configureโ
apt install -y gitSet your identity. These values appear in every commit you create.
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Set a default branch name and a helpful pull strategy:
git config --global init.defaultBranch maingit config --global pull.rebase falseVerify your configuration:
git config --listBasic Git Workflowโ
Clone a repository, make changes, and push:
git clone https://github.com/username/repo.gitcd repo && git checkout -b my-featuregit add .git commit -m "Describe what you changed"
git push origin my-featureCreate a new branch for every feature or bug fix. Work on the branch, then open a pull request to merge it. This keeps your main branch stable.
For a deeper look at Git commands and workflows, see the development tools reference.
Python Environmentโ
Python is one of the most beginner-friendly languages and is widely used for scripting, automation, data science, and web development. Ubuntu includes Python by default, but you should install the full toolkit.
Install Python, pip, and venvโ
apt install -y python3 python3-pip python3-venvVerify:
python3 --versionpip3 --versionVirtual Environmentsโ
Virtual environments isolate each project's dependencies so they do not conflict with each other or with system packages.
Create and activate a virtual environment:
python3 -m venv ~/myproject-envsource ~/myproject-env/bin/activateYour shell prompt changes to show the active environment. Install packages inside it:
pip install requests flaskWhen you are finished, deactivate:
deactivateNever install Python packages globally with pip install outside a virtual environment. Global installs can break system tools that depend on specific package versions. Always create a venv first.
Node.js via nvmโ
Node.js lets you run JavaScript outside the browser. The recommended way to install it is through nvm (Node Version Manager), which lets you switch between Node versions per project.
Install nvmโ
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bashReload your shell so the nvm command becomes available:
source ~/.bashrcVerify nvm is installed:
nvm --versionInstall Node.jsโ
Install the current LTS (Long Term Support) release:
nvm install --ltsVerify:
node --versionnpm --versionIf you work on multiple projects that require different Node versions, use nvm install <version> and nvm use <version> to switch between them. Each version is isolated.
Quick Testโ
node -e "console.log('Node.js ' + process.version + ' running on ' + process.arch)"
This should print your Node version and arm64 as the architecture.
SSH Client and Serverโ
SSH lets you connect securely to remote machines and lets other machines connect to yours.
SSH Clientโ
The client is what you use to connect to other servers. Install it:
apt install -y openssh-clientGenerate an SSH Keyโ
ssh-keygen -t ed25519 -C "you@example.com"
Press Enter to accept the default file location (~/.ssh/id_ed25519). Set a passphrase for extra security, or press Enter for none.
Display your public key:
cat ~/.ssh/id_ed25519.pubCopy this key and add it to services like GitHub (Settings > SSH and GPG keys) or to a remote server's ~/.ssh/authorized_keys file.
Test your GitHub connection:
ssh -T git@github.comSSH Config Fileโ
Create shortcuts for servers you connect to frequently. Edit ~/.ssh/config:
Host myserver
HostName 192.168.1.50
User ubuntu
IdentityFile ~/.ssh/id_ed25519
Then connect with:
ssh myserverSSH Serverโ
The server component lets other machines connect to your ADL environment. This is useful for editing files remotely with VS Code's Remote SSH extension, or for accessing your device from a laptop on the same network.
apt install -y openssh-serverADL runs inside a proot environment, which does not support systemctl. You cannot enable the SSH server to start automatically at boot. Instead, start it manually each session.
Start the SSH server:
/usr/sbin/sshdCheck that it is running:
ps aux | grep sshdFind your IP address so other devices can connect:
hostname -IIf you use the SSH server regularly, add /usr/sbin/sshd to a startup script or your .bashrc file so it launches when you open your terminal.
Additional Toolsโ
Round out your environment with these utilities that many development workflows depend on.
Build Essentialsโ
Compilers and build tools required by many Python and Node.js packages that include native extensions:
apt install -y build-essential cmakecurl and wgetโ
HTTP clients for downloading files and interacting with APIs from the command line:
apt install -y curl wgetText Editorsโ
If you prefer working entirely in the terminal, install a terminal-based editor:
apt install -y nanoOr for a more powerful (but steeper learning curve) option:
apt install -y vimNew to terminal editors? Start with nano. It shows keyboard shortcuts at the bottom of the screen. Press Ctrl+O to save and Ctrl+X to exit.
Install Everything at Onceโ
If you want the full toolkit in one command:
apt install -y git python3 python3-pip python3-venv build-essential cmake curl wget nano openssh-client openssh-serverVerify Your Setupโ
Run these commands to confirm all tools are installed and working:
git --version && python3 --version && node --version && npm --version && gcc --version && ssh -VFor more development tool details and workflows, see the development tools reference and the VS Code guide.