環境變數

您可以透過設定環境變數,來設定 Android Studio 和指令列工具的行為。ANDROID_HOME 是您可設定最實用的環境變數之一,許多工具都會讀取這項變數來判斷 Android SDK 安裝目錄。 如要在不加入執行檔完整路徑的情況下,透過指令列來執行工具,請將指令搜尋路徑的環境變數設定為加入 ANDROID_HOME/toolsANDROID_HOME/tools/binANDROID_HOME/platform-tools

如何設定環境變數

以下示範如何在不同作業系統的終端機視窗和殼層指令碼中設定環境變數。終端機視窗中的變數設定是會在視窗處於開啟狀態時生效。在 macOS 和 Linux 上,每次有新殼層啟動時,系統都會在殼層初始化指令碼中進行變數設定。在 Windows 系統中,您可以透過系統設定來進行變數設定。

Windows:在終端機視窗中輸入以下內容:

set HTTP_PROXY=myserver:1981

您也可以透過 Windows UI 來新增以上內容。如需操作方式,請參閱所用 Windows 版本的說明文件。

macOS 和 Linux:設定環境變數的方法具體取決於您使用的殼層。如要判斷正在執行的殼層是什麼類型,請輸入以下內容:

echo $0

Gnu BashZsh 等殼層中,設定變數的語法如下:

export VARIABLE_NAME=<new-value>

在其他殼層 (例如 TCSH) 中,設定變數的語法如下:

setenv VARIABLE_NAME <new-value>

您可以將這些指令加到殼層初始化指令碼,以便在每次執行新的殼層執行個體時設定變數。

殼層初始化指令碼的位置取決於所用的殼層。 如果是 Gnu Bash,指令碼的位置可能是 ~/.bash_profile。如果是 Zsh,指令碼的位置可能是 ~/.zprofile。如果是 TCSH,指令碼的位置可能是 ~/.cshrc。請查看所用殼層的說明文件來確認指令碼位置。

您也可以更新 PATH 環境變數來加入工具位置。

Gnu Bash 或 Zsh:

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

TCSH:

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

變數參考資料

下表說明 Android SDK 工具常用的環境變數。

表 1:環境變數

Android SDK 環境變數
ANDROID_HOME 設定 SDK 安裝目錄的路徑。設定完成後,這個值通常不會變更,而且可由同一部裝置上的多位使用者共用。 同樣指向 SDK 安裝目錄的 ANDROID_SDK_ROOT 已淘汰。如果您繼續使用已淘汰的變數,Android Studio 和 Android Gradle 外掛程式會檢查新舊變數的一致性。
ANDROID_USER_HOME 針對 Android SDK 中的工具,設定使用者偏好設定目錄的路徑。這個變數預設為 $HOME/.android/

部分較舊的工具 (例如 Android Studio 4.3 及以下版本) 不會讀取 ANDROID_USER_HOME。 如要覆寫這些較舊工具的使用者偏好設定位置,請找出要在哪個父項目錄底下建立 .android 目錄,然後將 ANDROID_SDK_HOME 設為該父項目錄。

REPO_OS_OVERRIDE 使用 sdkmanager 下載與目前裝置不同的作業系統套件時,請將此變數設為 windowsmacosxlinux
Android Studio 設定環境變數
Android Studio 設定變數包含自訂設定檔位置和 JDK 位置的設定。啟動時,Android Studio 會檢查這些變數來確認設定。詳情請參閱「設定 Android Studio」一文。
STUDIO_VM_OPTIONS 設定 studio.vmoptions 檔案的位置。這個檔案含有會影響 Java HotSpot 虛擬機器效能特性的設定。您也可以透過 Android Studio 存取此檔案。請參閱「自訂 VM 選項」一節。
STUDIO_PROPERTIES 設定 idea.properties 檔案的位置。此檔案可讓您自訂 Android Studio IDE 屬性,例如使用者安裝外掛程式的路徑,以及 IDE 支援的檔案大小上限。請參閱「自訂 IDE 屬性」一節。
STUDIO_JDK 設定 Android Studio 在 JDK 的執行位置。IDE 在啟動時會依序檢查 STUDIO_JDKJDK_HOMEJAVA_HOME 環境變數。
STUDIO_GRADLE_JDK 設定 Android Studio 用來啟動 Gradle Daemon 的 JDK 位置。IDE 在啟動時會先檢查 STUDIO_GRADLE_JDK。如未定義 STUDIO_GRADLE_JDK,IDE 會採用專案架構設定中定義的值。
模擬器環境變數
根據預設,模擬器會將設定檔和 AVD 資料分別儲存在 $HOME/.android/$HOME/.android/avd/ 底下。您可以藉由設定下列環境變數來覆寫預設值。 emulator -avd <avd_name> 指令會依序按照 $ANDROID_AVD_HOME$ANDROID_USER_HOME/avd/$HOME/.android/avd/ 中的值搜尋 avd 目錄。

如需模擬器環境變數的說明,請在指令列中輸入 emulator -help-environment。如要瞭解 emulator 指令列選項,請參閱「透過指令列啟動模擬器」一文。

ANDROID_EMULATOR_HOME 設定使用者專用模擬器設定目錄的路徑。這個變數預設為 $ANDROID_USER_HOME

較舊的工具 (例如 Android Studio 4.3 及以下版本) 不會讀取 ANDROID_USER_HOME。這些工具的預設值是 $ANDROID_SDK_HOME/.android

ANDROID_AVD_HOME 設定內含所有 AVD 專用檔案的目錄路徑,這些檔案主要是由非常大的磁碟映像檔構成。預設位置為 $ANDROID_EMULATOR_HOME/avd/。如果預設位置的磁碟空間不多,建議您指定新的位置。
Android 模擬器會在啟動時查詢下列環境變數:
ANDROID_LOG_TAGS 請見 ANDROID_LOG_TAGS
HTTP_PROXY

包含全域 HTTP Proxy 的 HTTP/HTTPS Proxy 設定。主機名稱和通訊埠之間應加上冒號 (:) 分隔符,例如:set HTTP_PROXY=myserver:1981

這與透過指令列執行模擬器時指定 -http-proxy proxy 引數的做法相同。

ANDROID_VERBOSE 請見 ANDROID_VERBOSE
ANDROID_HOME 請見 ANDROID_HOME
ANDROID_EMULATOR_USE_SYSTEM_LIBS 包含 0 (預設) 或 1 的值。如果這個值為 1,表示會使用系統的 libstdc++.so 檔案,而不是模擬器隨附的檔案。 當模擬器因系統程式庫發生問題而無法在 Linux 系統上啟動時,才要設定這個環境變數。舉例來說,某些 Linux Radeon GL 驅動程式庫需要較新的 libstdc++.so 檔案。
快速模擬器 (QEMU) 音訊
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV 在 Linux 中,您可以將 QEMU_AUDIO_DRV 環境變數設為下列其中一個值,藉此變更模擬器的預設音訊後端:
  • alsa:使用 Advanced Linux Sound Architecture (ALSA) 後端
  • esd:使用 Enlightened Sound Daemon (EsounD) 後端
  • sdl:使用 Simple DirectMedia Layer (SDL) 音訊後端 (不支援音訊輸入功能)
  • oss::使用 Open Sound System (OSS) 後端
  • none::不支援音訊功能
set QEMU_AUDIO_DRV=alsa

您也可以針對音訊輸入和音訊輸出功能使用不同的後端,做法是為 QEMU_AUDIO_OUT_DRVQEMU_AUDIO_IN_DRV 環境變數選取其中一個 QEMU 值:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

如要停用音訊支援,請使用 emulator -no-audio 選項,或是將 QEMU_AUDIO_DRV 設為 none。 碰到下列情況時,您可能需要停用音訊:

  • 在極少數情況下,音訊驅動程式可能會在執行模擬器時導致 Windows 重新啟動。
  • 在某些 Linux 電腦上,模擬器如果啟用音訊支援,可能會在啟動時停止運作。
ADB 環境變數
ANDROID_SERIAL 使用這個變數向 adb 指令提供模擬器序號,例如 emulator-5555。如果您設定了這個變數,但使用 -s 選項從指令列指定序號,指令列輸入內容就會覆寫 ANDROID_SERIAL 中的值。

下列範例會設定 ANDROID_SERIAL 並呼叫 adb install helloworld.apk,然後在 emulator-5555 上安裝 Android 應用程式套件。

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk

ADB Logcat 環境變數
ANDROID_LOG_TAGS 透過開發用的電腦執行 logcat 時,使用此環境變數來設定預設的篩選運算式,例如:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

這與透過指令列執行模擬器時指定 -logcat tags 引數的做法相同。

如需詳細資訊和範例,請參閱「篩選記錄輸出」一節。

ADB_TRACE 包含要記錄的偵錯資訊清單 (以半形逗號分隔)。 可能的值:alladbsocketspacketsrwxusbsyncsysdepstransportjdwp

如要顯示 adb 用戶端和 adb 伺服器的 adb 記錄,請將 ADB_TRACE 設為 all,然後呼叫 adb logcat 指令,如下所示:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE 包含模擬器使用的詳細資訊輸出選項 (偵錯標記) 清單 (以半形逗號分隔)。以下範例顯示使用 debug-socketdebug-radio 偵錯標記定義的 ANDROID_VERBOSE
set ANDROID_VERBOSE=socket,radio

這與透過指令列執行模擬器時一併指定 -verbose -verbose-socket -verbose-radio 引數的做法相同。

系統會忽略不支援的偵錯標記。如要進一步瞭解偵錯標記,請使用 emulator -help-debug-tags