Ubuntu/Android/SDK/AVD

From r00tedvw.com wiki
Jump to: navigation, search

Contents

 [hide

Overview

Done on Ubuntu 20.04 LTS.
Installed without Android Studio

Download Prerequisites

Get the commandline tools.
https://developer.android.com/studio > Download options > commandlinetools-linux-7583922_latest.zip

~$ wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip

Make the directory Android SDK/AVD will live in.

~$ sudo mkdir /opt/android

Unzip

~$ sudo unzip ~/commandlinetools-linux-7583922_latest.zip -d /opt/android

Move sdkmanager

~$ sudo mkdir /opt/android/cmdline-tools/latest
~$ sudo mv /opt/android/cmdline-tools/bin/sdkmanager /opt/android/cmdline-tools/latest

Set Env Vars and Path

I had to do this in a few places. root, user, and sudoers.

root & user

Create a bash_alias for root, modify .profile for user. Same data in both.

~$ sudo touch /root/.bash_aliases
~$ sudo vim /root/.bash_aliases
~$ sudo vim ~/.profile

# set PATH so it includes android sdk emulator if it exists
if [ -d "/opt/android/emulator" ] ; then
    PATH="/opt/android/emulator:$PATH"
fi

# set PATH so it includes android sdk platform tools if it exists
if [ -d "/opt/android/platform-tools" ] ; then
    PATH="/opt/android/platform-tools:$PATH"
fi

# set PATH so it includes android sdk command line tools if it exists
if [ -d "/opt/android/cmdline-tools" ] ; then
    PATH="/opt/android/cmdline-tools:$PATH"
fi

# set PATH so it includes android sdk command line tools bin if it exists
if [ -d "/opt/android/cmdline-tools/bin" ] ; then
    PATH="/opt/android/cmdline-tools/bin:$PATH"
    ANDROID_SDK_ROOT="/opt/android"
    ANDROID_HOME="/opt/android"
fi

# set PATH so it includes android sdk command line tools if it exists
if [ -d "/opt/android/cmdline-tools/latest" ] ; then
    PATH="/opt/android/cmdline-tools/latest:$PATH"
fi

sudoers

use sudo visudo then add the following to the Defaults secure_path=

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/android/cmdline-tools/bin:/opt/android/cmdline-tools/latest:/opt/android/emulator:/opt/android/platform-tools"

Install Android packages

~$ cd /opt/android/
~$ sudo sdkmanager --sdk_root="/opt/android" --install "platforms;android-31"
~$ sudo sdkmanager --sdk_root="/opt/android" --install "system-images;android-31;google_apis_playstore;x86_64"
~$ sudo sdkmanager --sdk_root="/opt/android" --install "build-tools;31.0.0"
~$ sudo sdkmanager --sdk_root="/opt/android" --licenses

Verify you can see them.

~$ sudo avdmanager list target
Warning: Observed package id 'build-tools;31.0.0' in inconsistent location '/opt/android/build-tools/31.0.0' (Expected '/opt/build-tools/31.0.0')
Warning: Observed package id 'emulator' in inconsistent location '/opt/android/emulator' (Expected '/opt/emulator')
Warning: Observed package id 'patcher;v4' in inconsistent location '/opt/android/patcher/v4' (Expected '/opt/patcher/v4')
Warning: Observed package id 'platform-tools' in inconsistent location '/opt/android/platform-tools' (Expected '/opt/platform-tools')
Warning: Observed package id 'platforms;android-31' in inconsistent location '/opt/android/platforms/android-31' (Expected '/opt/platforms/android-31')
Warning: Observed package id 'system-images;android-31;google_apis_playstore;x86_64' in inconsistent location '/opt/android/system-images/android-31/google_apis_playstore/x86_64' (Expected '/opt/system-images/android-31/google_apis_playstore/x86_64')
Warning: Observed package id 'tools' in inconsistent location '/opt/android/tools' (Expected '/opt/tools')
Available Android targets:==============] 100% Fetch remote repository...       
----------
id: 1 or "android-31"
     Name: Android API 31
     Type: Platform
     API level: 31
     Revision: 1

Create AVD

~$ /opt/android/cmdline-tools/bin/avdmanager create avd --force -n Tablet -k "system-images;android-31;google_apis_playstore;x86_64"
Warning: Observed package id 'build-tools;31.0.0' in inconsistent location '/opt/android/build-tools/31.0.0' (Expected '/opt/build-tools/31.0.0')
Warning: Observed package id 'emulator' in inconsistent location '/opt/android/emulator' (Expected '/opt/emulator')
Warning: Observed package id 'patcher;v4' in inconsistent location '/opt/android/patcher/v4' (Expected '/opt/patcher/v4')
Warning: Observed package id 'platform-tools' in inconsistent location '/opt/android/platform-tools' (Expected '/opt/platform-tools')
Warning: Observed package id 'platforms;android-31' in inconsistent location '/opt/android/platforms/android-31' (Expected '/opt/platforms/android-31')
Warning: Observed package id 'system-images;android-31;google_apis_playstore;x86_64' in inconsistent location '/opt/android/system-images/android-31/google_apis_playstore/x86_64' (Expected '/opt/system-images/android-31/google_apis_playstore/x86_64')
Warning: Observed package id 'tools' in inconsistent location '/opt/android/tools' (Expected '/opt/tools')
Auto-selecting single ABI x86_64========] 100% Fetch remote repository...       
Do you wish to create a custom hardware profile? [no]

Verify you can see it:

avdmanager list avd
Available Android Virtual Devices:
    Name: Tablet
    Path: /root/.android/avd/Tablet.avd
  Target: Google Play (Google Inc.)
          Based on: Android 12 Preview (S) Tag/ABI: google_apis_playstore/x86_64
  Sdcard: 512 MB

Launch emulator

Verify you can see the AVD

~$ emulator -list-avds
Tablet

Launch

~$ emulator -avd Tablet
emulator: Android emulator version 30.7.5.0 (build_id 7491168) (CL:N/A)
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/opt/android]!
Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki