Biến môi trường

Bạn có thể định cấu hình hành vi của Android Studio và các công cụ dòng lệnh bằng cách thiết lập các biến môi trường. Một trong những biến môi trường hữu ích nhất mà bạn nên thiết lập là ANDROID_HOME. Biến này được nhiều công cụ đọc để xác định thư mục cài đặt SDK Android. Để chạy các công cụ từ dòng lệnh mà không cần cung cấp đường dẫn đầy đủ đến tệp thực thi, hãy thiết lập biến môi trường của đường dẫn tìm kiếm lệnh bao gồm ANDROID_HOME/tools, ANDROID_HOME/tools/binANDROID_HOME/platform-tools.

Cách thiết lập biến môi trường

Các ví dụ sau đây minh họa cách thiết lập các biến môi trường trong cửa sổ dòng lệnh và trong tập lệnh shell cho các hệ điều hành khác nhau. Các tuỳ chọn cài đặt biến trong cửa sổ dòng lệnh có hiệu lực trong thời gian cửa sổ đó mở. Trên macOS và Linux, mỗi khi một shell mới bắt đầu, các chế độ cài đặt biến sẽ được thiết lập trong các tập lệnh khởi chạy shell. Trên Windows, bạn có thể thiết lập các chế độ cài đặt biến thông qua phần cài đặt hệ thống.

Windows: Trong cửa sổ dòng lệnh, hãy nhập như sau:

set HTTP_PROXY=myserver:1981

Ngoài ra, bạn có thể thêm mã này thông qua giao diện người dùng Windows. Hãy xem tài liệu dành cho phiên bản Windows của bạn để tìm hiểu cách thực hiện.

macOS và Linux: Phương thức thiết lập biến môi trường chính xác phụ thuộc vào giao diện mà bạn đang sử dụng. Để xác định loại shell đang chạy, hãy nhập như sau:

echo $0

Trong các shell như Gnu Bash hoặc Zsh, các biến được thiết lập bằng cú pháp sau:

export VARIABLE_NAME=<new-value>

Trong các shell khác, chẳng hạn như TCSH, các biến được thiết lập bằng cú pháp sau:

setenv VARIABLE_NAME <new-value>

Bạn có thể thêm các lệnh này vào tập lệnh khởi chạy shell để thiết lập các biến này mỗi khi một thực thể shell mới được chạy.

Vị trí của tập lệnh khởi chạy shell phụ thuộc vào shell đang được sử dụng. Đối với Gnu Bash, vị trí đó có thể là ~/.bash_profile. Đối với Zsh, vị trí đó có thể là ~/.zprofile. Đối với TCSH, vị trí đó có thể là ~/.cshrc. Để chắc chắn, hãy xem tài liệu dành cho loại shell mà bạn đang sử dụng.

Bạn cũng có thể cập nhật biến môi trường PATH để thêm các vị trí công cụ.

Đối với Gnu Bash hoặc Zsh:

export ANDROID_HOME ~/Library/Android/sdk
export PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  

Và đối với TCSH:

setenv ANDROID_HOME ~/Library/Android/sdk
setenv PATH $PATH\:$ANDROID_HOME/tools\:$ANDROID_HOME/tools/bin\:$ANDROID_HOME/platform-tools
  

Tham chiếu biến

Bảng sau đây mô tả các biến môi trường thường dùng cho bộ công cụ SDK Android.

Bảng 1. Biến môi trường

Biến môi trường SDK Android
ANDROID_HOME Thiết lập đường dẫn tới thư mục cài đặt SDK. Sau khi thiết lập, giá trị này thường không thay đổi và có thể được nhiều người dùng trên cùng một máy chia sẻ. Ngừng sử dụng ANDROID_SDK_ROOT (cũng trỏ đến thư mục cài đặt SDK). Nếu bạn tiếp tục sử dụng ứng dụng này, Android Studio và trình bổ trợ Android Gradle sẽ kiểm tra để đảm bảo các biến cũ và biến mới đều giống nhau.
ANDROID_USER_HOME Thiết lập đường dẫn đến thư mục tuỳ chọn người dùng cho các công cụ thuộc SDK Android. Giá trị mặc định là $HOME/.android/.

Một số công cụ cũ, chẳng hạn như Android Studio 4.3 trở xuống, không đọc ANDROID_USER_HOME. Để ghi đè vị trí lựa chọn ưu tiên của người dùng cho các công cụ cũ hơn hãy thiết lập ANDROID_SDK_HOME thành thư mục mẹ mà bạn muốn tạo thư mục .android trong đó.

REPO_OS_OVERRIDE Hãy thiết lập biến này thành windows, macosx hoặc linux khi bạn sử dụng sdkmanager để tải xuống các gói cho một hệ điều hành khác với máy hiện tại.
Biến môi trường của cấu hình Android Studio
Biến cấu hình trong Android Studio chứa các chế độ cài đặt tuỳ chỉnh vị trí của các tệp cấu hình và JDK. Khi bạn khởi động, Android Studio sẽ kiểm tra các biến này để biết các tuỳ chọn cài đặt. Để biết thêm thông tin, hãy xem phần Định cấu hình Android Studio.
STUDIO_VM_OPTIONS Đặt vị trí của tệp studio.vmoptions. Tệp này chứa các tuỳ chọn cài đặt ảnh hưởng đến đặc điểm hiệu suất của Máy ảo Java HotSpot. Bạn cũng có thể truy cập vào tệp này trong Android Studio. Xem Tuỳ chỉnh máy ảo của bạn.
STUDIO_PROPERTIES Thiết lập vị trí của tệp idea.properties. Tệp này cho phép bạn tuỳ chỉnh các thuộc tính IDE của Android Studio, chẳng hạn như đường dẫn đến trình bổ trợ do người dùng cài đặt và kích thước tối đa của tệp mà IDE hỗ trợ. Xem Tuỳ chỉnh các thuộc tính IDE.
STUDIO_JDK Thiết lập vị trí của JDK mà Android Studio chạy. Khi bạn chạy IDE, hệ thống sẽ kiểm tra các biến môi trường STUDIO_JDK, JDK_HOMEJAVA_HOME theo thứ tự đó.
STUDIO_GRADLE_JDK Thiết lập vị trí của JDK mà Android Studio sử dụng để khởi động trình nền Gradle. Khi bạn chạy IDE, trước tiên máy chủ sẽ kiểm tra STUDIO_GRADLE_JDK. Nếu không xác định được STUDIO_GRADLE_JDK, thì IDE sẽ sử dụng giá trị được thiết lập trong hộp thoại Cấu trúc Dự án.
Biến Môi trường của Trình mô phỏng
Theo mặc định, trình mô phỏng lưu trữ các tệp cấu hình trong $HOME/.android/ và dữ liệu AVD trong $HOME/.android/avd/. Bạn có thể ghi đè các giá trị mặc định bằng cách thiết lập các biến môi trường sau đây. Lệnh emulator -avd <avd_name> tìm kiếm thư mục avd theo thứ tự của giá trị trong $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/$HOME/.android/avd/.

Để được trợ giúp về biến môi trường của trình mô phỏng, hãy nhập emulator -help-environment vào dòng lệnh. Để biết thông tin về các tuỳ chọn dòng lệnh của emulator, hãy xem phần Khởi động trình mô phỏng từ dòng lệnh.

ANDROID_EMULATOR_HOME Thiết lập đường dẫn đến thư mục cấu hình trình mô phỏng cụ thể cho người dùng. Giá trị mặc định là $ANDROID_USER_HOME.

Các công cụ cũ (ví dụ: Android Studio 4.3 trở xuống) không đọc ANDROID_USER_HOME. Đối với các công cụ cũ, giá trị mặc định là $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Đặt đường dẫn tới thư mục chứa tất cả các tệp cụ thể cho AVD, chủ yếu chứa các hình ảnh đĩa rất lớn. Vị trí mặc định là $ANDROID_EMULATOR_HOME/avd/. Bạn nên chỉ định một vị trí mới nếu vị trí mặc định sử dụng gần hết dung lượng ổ đĩa.
Trình mô phỏng Android sẽ truy vấn các biến môi trường sau khi nó khởi động.
ANDROID_LOG_TAGS Xem ANDROID_LOG_TAGS.
HTTP_PROXY

Chứa chế độ cài đặt proxy HTTP/HTTPS cho proxy HTTP chung. Dùng dấu phân cách hai chấm (:) giữa máy chủ và cổng. Ví dụ: set HTTP_PROXY=myserver:1981.

Điều này giống như việc chỉ định đối số -http-proxy proxy khi chạy trình mô phỏng từ dòng lệnh.

ANDROID_VERBOSE Xem ANDROID_VERBOSE.
ANDROID_HOME Xem ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Chứa giá trị là 0 (mặc định) hoặc 1. Giá trị 1 có nghĩa là tệp libstdc++.so của hệ thống được sử dụng thay vì tệp đi kèm với trình mô phỏng. Chỉ thiết lập biến môi trường này khi trình mô phỏng không khởi động trên hệ thống Linux của bạn do sự cố thư viện hệ thống. Ví dụ: một số thư viện trình điều khiển Radeon GL của Linux yêu cầu tệp libstdc++.so mới hơn.
Âm thanh trình mô phỏng nhanh (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Trên Linux, bạn có thể thay đổi phần phụ trợ âm thanh mặc định của trình mô phỏng bằng cách đặt biến môi trường QEMU_AUDIO_DRV thành một trong các giá trị sau:
  • alsa: Sử dụng phần phụ trợ Kiến trúc âm thanh Linux nâng cao (ALSA)
  • esd: Sử dụng phần phụ trợ Trình nền Âm thanh làm sáng (EsounD)
  • sdl: Sử dụng phần phụ trợ âm thanh Lớp DirectMedia Đơn giản (SDL) (không hỗ trợ đầu vào âm thanh)
  • oss:: Sử dụng phần phụ trợ Hệ thống Âm thanh Mở (OSS)
  • none:: Không hỗ trợ âm thanh

set QEMU_AUDIO_DRV=alsa

Bạn cũng có thể sử dụng các phần phụ trợ riêng biệt cho đầu vào âm thanh và đầu ra âm thanh bằng cách chọn một trong các giá trị QEMU cho biến môi trường QEMU_AUDIO_OUT_DRVQEMU_AUDIO_IN_DRV:


set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Nếu bạn muốn tắt tính năng hỗ trợ âm thanh, hãy sử dụng tuỳ chọn emulator -no-audio hoặc thiết lập QEMU_AUDIO_DRV thành none. Có thể bạn cần tắt âm thanh trong những tình huống sau:

  • Trong một số ít trường hợp, trình điều khiển âm thanh có thể khiến Windows khởi động lại khi trình mô phỏng đang chạy.
  • Trên một số máy Linux, trình mô phỏng có thể bị đơ lúc khởi động với tính năng hỗ trợ âm thanh bật.
biến môi trường adb
ANDROID_SERIAL Hãy sử dụng biến này để cung cấp số sê-ri của trình mô phỏng (ví dụ: trình mô phỏng-5555) vào một lệnh adb. Nếu bạn thiết lập biến này nhưng sử dụng tuỳ chọn -s để chỉ định số sê-ri của dòng lệnh, thì giá trị nhập dòng lệnh sẽ ghi đè giá trị trong ANDROID_SERIAL.

Ví dụ sau đây thiết lập ANDROID_SERIAL và gọi adb install helloworld.apk, sau đó sẽ cài đặt gói ứng dụng Android trên trình mô phỏng-5555.


set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
biến môi trường logcat adb
ANDROID_LOG_TAGS Hãy sử dụng biến môi trường này để đặt biểu thức lọc mặc định khi bạn đang chạy logcat trên máy tính dành cho nhà phát triển. Ví dụ:

set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Điều này giống như việc chỉ định đối số -logcat tags khi chạy trình mô phỏng từ dòng lệnh.

Hãy xem bài viết Lọc dữ liệu xuất từ nhật ký để biết thêm thông tin và ví dụ.

ADB_TRACE Chứa danh sách thông tin gỡ lỗi được phân tách bằng dấu phẩy để ghi nhật ký. Bạn có thể sử dụng các giá trị sau: all, adb, sockets ,packets, rwx, usb, sync, sysdeps ,transportjdwp.

Để hiển thị nhật ký adb cho ứng dụng khách adb và máy chủ adb, hãy thiết lập ADB_TRACE thành all rồi gọi lệnh adb logcat như sau:


set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Chứa danh sách các tuỳ chọn đầu ra chi tiết được phân tách bằng dấu phẩy (thẻ gỡ lỗi) mà trình mô phỏng sử dụng. Ví dụ sau đây minh họa ANDROID_VERBOSE được xác định bằng các thẻ gỡ lỗi debug-socketdebug-radio:

set ANDROID_VERBOSE=socket,radio

Điều này cũng giống như việc chỉ định các đối số -verbose -verbose-socket -verbose-radio cùng nhau khi chạy trình mô phỏng từ dòng lệnh.

Các thẻ gỡ lỗi không được hỗ trợ sẽ bị bỏ qua. Để biết thêm thông tin về thẻ gỡ lỗi, hãy sử dụng emulator -help-debug-tags.