Cài đặt Android Emulator không cần Android Studio

Thông thường cách đơn giản để sử dụng Android Emulator là cài đặt Android Studio và tạo thiết bị từ đó. Tuy nhiên Android Studio rất nặng trong khi ta chỉ muốn dùng mỗi Android Emulator thì làm thế nào?

Cài đặt Android Emulator không cần Android Studio
Cài đặt Android Emulator không cần Android Studio

Sau đây là các bước đơn giản để cài đặt Android Emulator mà không cần cài đặt Android Studio.

Tải về bộ công cụ dòng lệnh Android

Tải về file .zip tương ứng với hệ điều hành đang dùng tại mục Command line tools only trên website Android Studio. Ở đây tôi tải về cho Linux vào thư mục ~/Downloads.

wget -P ~/Downloads https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip

Ta tạo một thư mục chứa bộ công cụ dòng lệnh tại ~/android/cmdline-tools (trong đó thư mục cuối cmdline-tools là bắt buộc, còn bạn có thể thay ~/android bằng gì cũng được). Giải nén file .zip nói trên vào thư mục này và đổi tên thành latest.

mkdir -p ~/android/cmdline-tools
cd $_
unzip ~/Downloads/commandlinetools-linux-*_latest.zip
mv cmdline-tools latest

Cấu trúc thư mục cuối cùng trông như sau:

~
└─ android
   └─ cmdline-tools
      └─ latest
         └─ bin
         └─ lib
         └─ NOTICE.txt
         └─ source.properties

Tiếp theo ta sẽ thiết lập biến môi trường dành cho Android SDK là ANDROID_HOME trong file .bashrc. Biến này trỏ vào thư mục chứa thư mục cmdline-tools (ví dụ ở đây là ~/android). Ngoài ra ta cũng thiết lập biến PATH trỏ vào thư mục bin là nơi chứa các lệnh như sau:

~/.bashrc
export ANDROID_HOME=~/android
export PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${PATH}

Đại khái như vậy là cài đặt xong bộ công cụ dòng lệnh. Tuy nhiên để sử dụng được bộ công cụ này thì ta cần có Java Development Kit.

Tải Java Development Kit (JDK)

Với Android command line tools cũ (version 8 trở xuống), ta hay sử dụng JDK 8. Tuy nhiên từ phiên bản 9, nếu tiếp tục dùng phiên bản JDK này sẽ dính lỗi:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Vì vậy, ta hãy tải về phiên bản JDK mới nhất, ví dụ JDK 19, và giải nén vào thư mục nào đó ví dụ ~/jdk.

wget -P ~/Downloads https://download.oracle.com/java/19/archive/jdk-19.0.2_linux-x64_bin.tar.gz
mkdir -p ~/jdk
cd $_
tar xf ~/Downloads/jdk-*_linux-x64_bin.tar.gz

Ta sẽ thiết lập biến môi trường dành cho JDK là JAVA_HOME trong file .bashrc. Biến này trỏ vào thư mục chứa thư mục JDK vừa giải nén. Ngoài ra ta cũng thiết lập biến PATH trỏ vào thư mục bin là nơi chứa các lệnh java như sau:

~/.bashrc
export JAVA_HOME=~/jdk/jdk-19.0.2
export PATH=${JAVA_HOME}/bin:${PATH}

Lưu lại .bashrc rồi mở một terminal mới. Hãy thử kiểm tra phiên bản java đang sử dụng:

$ java -version

java version "19.0.2" 2023-01-17
Java(TM) SE Runtime Environment (build 19.0.2+7-44)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.2+7-44, mixed mode, sharing)

Tải về các package cần thiết

Sử dụng lệnh sdkmanager để hiển thị danh sách các package có thể tải về:

sdkmanager --list

Từ danh sách trên, ta cần tải về các package cần thiết, bao gồm:

  • Bộ công cụ Android SDK platform-tools.
  • Bộ thư viện phát triển platforms;android-*.
  • Hệ điều hành Android trên emulator system-images;android-*;...

Trong đó *API level. Bạn có thể chọn những package khác nếu muốn nhưng nhớ gõ đúng tên package nhé.

Ví dụ sau đây tôi tải về API level 33 (tương ứng Android 13) với system image có chứa Google Play Store dành cho CPU x86 64-bit.

sdkmanager "platforms;android-33" "system-images;android-33;google_apis_playstore;x86_64" "platform-tools"

Khi gọi lệnh này, trước tiên ta sẽ cần Đồng ý một loạt các license (cứ OK thôi đừng ngại ngần, cái này chỉ gặp lần đầu tiên).

Sau quá trình tải về và cài đặt, cấu trúc thư mục có sự thay đổi như sau:

~
└─ android
   └─ cmdline-tools
      └─ latest
         └─ bin
         └─ lib
         └─ NOTICE.txt
         └─ source.properties
   └─ emulator
   └─ licenses
   └─ patcher
   └─ platforms
   └─ platform-tools
   └─ sdk
   └─ system-images

Đã xuất hiện thêm 2 thư mục chứa dòng lệnh nữa là emulatorplatform-tools. Vì thế tôi lại điều chỉnh biến môi trường PATH trỏ đến 2 thư mục này trong .bashrc:

~/.bashrc
export PATH=${ANDROID_HOME}/emulator:${ANDROID_HOME}/platform-tools:${PATH}

Mở lại terminal mới để cập nhật lại biến môi trường.

Tạo Android Virtual Device (AVD)

Ta sẽ tạo một “thiết bị ảo” Android sử dụng system image ta vừa tải bằng sdkmanager ở trên. Ở đây tên AVD mới ta sẽ đặt là test_avd_33.

Mở terminal bằng dòng lệnh như sau:

$ avdmanager create avd -n test_avd_33 -k "system-images;android-33;google_apis_playstore;x86_64"

Sau khi tạo xong, ta có thể kiểm tra danh sách các AVD bằng lệnh

$ avdmanager list avd

Available Android Virtual Devices:
    Name: test_avd_33
    Path: /home/icreativ/.android/avd/test_avd_33.avd
  Target: Google Play (Google Inc.)
          Based on: Android 13.0 (Tiramisu) Tag/ABI: google_apis_playstore/x86_64
  Sdcard: 512 MB

Thư mục chứa các AVD mặc định đặt tại ~/.android/avd.

Cuối cùng ta khởi chạy AVD vừa tạo:

emulator -avd test_avd_33

Sẽ mất chút thời gian cho lần khởi động đầu tiên nhé.

Lưu ý

Tùy biến Android Emulator

Lệnh emulator có rất nhiều tham số tùy biến cho máy ảo Android như số nhân CPU, dung lượng RAM, thẻ nhớ, hiển thị và kết nối tới các thiết bị ngoại vi. Ta có thể gõ lệnh với tham số --help để tham khảo.

emulator --help

Ngoài ra ta có thể chỉnh sửa cấu hình của AVD trong file config.ini đặt tại thư mục chứa AVD là $HOME/.android/avd/<AVD name>.avd.

Sửa lỗi nút Back, Home, Overview không hoạt động

Mở file config.ini trong thư mục của AVD tương ứng. Như với AVD có tên test_avd_33 vừa tạo ở trên, file này đặt tại ~/.android/avd/test_avd_33.avd/config.ini.

Tìm khai báo hw.keyboard, đổi từ giá trị no thành giá trị yes. Lưu lại file config.ini rồi khởi động lại emulator.

Hệ điều hành Windows

Bạn cần cài đặt thêm Intel Hardware Accelerated Execution Manager (HAXM), tắt tính năng Hyper-V và bật chức năng hỗ trợ Virtualization trong BIOS để có thể khởi chạy ổn được Emulator.

Hệ điều hành Linux

Do Android Emulator sử dụng KVM, nếu có một máy ảo khác (ví dụ VirtualBox) đang chạy sẽ gặp lỗi:

ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
qemu-system-x86_64: failed to initialize KVM: Device or resource busy

Bạn cần tắt máy ảo đó đi để sử dụng Android Emulator.

Phản hồi về bài viết

Cùng thảo luận chút nhỉ!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.