ตัวแปรสภาพแวดล้อม

คุณกำหนดค่าลักษณะการทำงานของ Android Studio และเครื่องมือบรรทัดคำสั่งได้โดยการตั้งค่า ตัวแปรสภาพแวดล้อม ตัวแปรสภาพแวดล้อมที่มีประโยชน์มากที่สุดตัวหนึ่งที่ควรตั้งค่าคือ ANDROID_HOME ซึ่งเครื่องมือหลายอย่างอ่านเพื่อ กำหนดไดเรกทอรีการติดตั้ง Android SDK หากต้องการเรียกใช้เครื่องมือจากบรรทัดคำสั่งโดยไม่ต้องระบุเส้นทางแบบเต็มไปยังไฟล์ที่เรียกใช้งานได้ ให้ตั้งค่าตัวแปรสภาพแวดล้อมเส้นทางการค้นหาคำสั่งให้มี ANDROID_HOME/tools, ANDROID_HOME/tools/bin และ ANDROID_HOME/platform-tools

วิธีตั้งค่าตัวแปรสภาพแวดล้อม

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าตัวแปรสภาพแวดล้อมในหน้าต่างเทอร์มินัลและใน สคริปต์ของ Shell สำหรับระบบปฏิบัติการต่างๆ การตั้งค่าตัวแปรในหน้าต่างเทอร์มินัลจะคงอยู่ ตราบใดที่หน้าต่างเปิดอยู่เท่านั้น ใน macOS และ Linux ทุกครั้งที่เชลล์ใหม่เริ่มต้น ระบบจะตั้งค่าตัวแปร ในการเริ่มต้นเชลล์ ในสคริปต์การเริ่มต้นเชลล์ ใน Windows คุณสามารถตั้งค่าตัวแปรได้ ผ่านการตั้งค่าระบบ

Windows: ในหน้าต่างเทอร์มินัล ให้พิมพ์คำสั่งต่อไปนี้

set HTTP_PROXY=myserver:1981

หรือจะเพิ่มผ่าน UI ของ Windows ก็ได้ โปรดดูวิธีในเอกสารประกอบสำหรับ Windows เวอร์ชันของคุณ

macOS และ Linux: วิธีการตั้งค่าตัวแปรสภาพแวดล้อมที่แน่นอนจะขึ้นอยู่กับ เชลล์ที่คุณใช้ หากต้องการตรวจสอบว่า Shell ประเภทใดกำลังทำงานอยู่ ให้พิมพ์คำสั่งต่อไปนี้

echo $0

ในเชลล์ เช่น Gnu Bash หรือ Zsh จะมีการตั้งค่าตัวแปรโดยใช้ไวยากรณ์ต่อไปนี้

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 เมื่อตั้งค่าแล้ว โดยปกติค่าจะไม่เปลี่ยนแปลงและผู้ใช้หลายคนในเครื่องเดียวกันสามารถแชร์ค่านี้ได้ ANDROID_SDK_ROOT ซึ่งชี้ไปยังไดเรกทอรีการติดตั้ง SDK ด้วย เลิกใช้งานแล้ว หากคุณยังคงใช้ตัวแปรดังกล่าว Android Studio และปลั๊กอิน Android Gradle จะ ตรวจสอบว่าตัวแปรเก่าและใหม่สอดคล้องกัน
ANDROID_USER_HOME ตั้งค่าเส้นทางไปยังไดเรกทอรีค่ากําหนดของผู้ใช้สําหรับเครื่องมือที่เป็นส่วนหนึ่งของ Android SDK ค่าเริ่มต้นคือ $HOME/.android/

เครื่องมือรุ่นเก่าบางอย่าง เช่น Android Studio 4.3 และเวอร์ชันก่อนหน้า จะอ่าน ANDROID_USER_HOME ไม่ได้ หากต้องการลบล้างตำแหน่งค่ากําหนดของผู้ใช้สําหรับเครื่องมือรุ่นเก่าเหล่านั้น ให้ตั้งค่า ANDROID_SDK_HOME เป็นไดเรกทอรีหลักที่คุณต้องการให้สร้างไดเรกทอรี .android ไว้

REPO_OS_OVERRIDE ตั้งค่าตัวแปรนี้เป็น windows, macosx หรือ linux เมื่อ ใช้ sdkmanager เพื่อดาวน์โหลดแพ็กเกจสำหรับระบบปฏิบัติการที่แตกต่างจากเครื่องปัจจุบัน
ตัวแปรสภาพแวดล้อมการกำหนดค่า Android Studio
ตัวแปรการกำหนดค่า Android Studio มีการตั้งค่าที่ปรับแต่งตำแหน่งของ ไฟล์การกำหนดค่าและ JDK เมื่อเริ่มต้น Android Studio จะตรวจสอบตัวแปรเหล่านี้ เพื่อดูการตั้งค่า ดูข้อมูลเพิ่มเติมได้ที่ กำหนดค่า Android Studio
STUDIO_VM_OPTIONS ตั้งค่าตำแหน่งของไฟล์ studio.vmoptions ไฟล์นี้มีการตั้งค่าที่มีผลต่อลักษณะประสิทธิภาพของเครื่องเสมือน Java HotSpot นอกจากนี้ คุณยังเข้าถึงไฟล์นี้ได้จากภายใน Android Studio ดู ปรับแต่งตัวเลือก VM
STUDIO_PROPERTIES ตั้งค่าตำแหน่งของไฟล์ idea.properties ไฟล์นี้ช่วยให้คุณปรับแต่งพร็อพเพอร์ตี้ IDE ของ Android Studio ได้ เช่น เส้นทางไปยัง ปลั๊กอินที่ผู้ใช้ติดตั้งและขนาดไฟล์สูงสุดที่ IDE รองรับ ดู ปรับแต่งพร็อพเพอร์ตี้ IDE
STUDIO_JDK กำหนดตำแหน่งของ JDK ที่ Android Studio ทำงาน เมื่อเปิดใช้ IDE ระบบจะตรวจสอบตัวแปรสภาพแวดล้อม STUDIO_JDK, JDK_HOME และ JAVA_HOME ตามลำดับ
STUDIO_GRADLE_JDK ตั้งค่าตำแหน่งของ JDK ที่ Android Studio ใช้เพื่อเริ่มแดมอน Gradle เมื่อคุณ เปิดใช้ IDE ระบบจะตรวจสอบ STUDIO_GRADLE_JDK ก่อน หากไม่ได้กำหนด STUDIO_GRADLE_JDK ไว้ IDE จะใช้ค่าที่ตั้งไว้ใน การตั้งค่าโครงสร้างโปรเจ็กต์
ตัวแปรสภาพแวดล้อมของโปรแกรมจำลอง
โดยค่าเริ่มต้น โปรแกรมจำลองจะจัดเก็บไฟล์การกำหนดค่าไว้ใน $HOME/.android/ และข้อมูล AVD ไว้ใน $HOME/.android/avd/ คุณ ลบล้างค่าเริ่มต้นได้โดยการตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้ คำสั่ง emulator -avd <avd_name> จะค้นหาไดเรกทอรี avd ตามลำดับค่าใน $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ และ $HOME/.android/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/HTTPS สำหรับพร็อกซี HTTP ส่วนกลาง ใช้เครื่องหมายโคลอน (:) เป็นตัวคั่นระหว่างโฮสต์กับพอร์ต เช่น 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 เนื่องจากปัญหาเกี่ยวกับไลบรารีของระบบ เช่น ไลบรารีไดรเวอร์ GL ของ Radeon ใน Linux บางรายการ ต้องใช้ไฟล์ 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 ค่าใดค่าหนึ่งสำหรับตัวแปรสภาพแวดล้อม QEMU_AUDIO_OUT_DRV และ QEMU_AUDIO_IN_DRV

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

หากต้องการปิดใช้การรองรับเสียง ให้ใช้ตัวเลือก emulator -no-audio หรือ ตั้งค่า QEMU_AUDIO_DRV เป็น none คุณอาจต้องปิดใช้เสียงในสถานการณ์ต่อไปนี้

  • ในบางกรณีที่เกิดขึ้นไม่บ่อยนัก ไดรเวอร์เสียงอาจทำให้ Windows รีบูตขณะที่โปรแกรมจำลองกำลังทำงาน
  • ในเครื่อง Linux บางเครื่อง โปรแกรมจำลองอาจค้างที่การเริ่มต้นระบบเมื่อเปิดใช้การรองรับเสียง
ตัวแปรสภาพแวดล้อมของ adb
ANDROID_SERIAL ใช้ตัวแปรนี้เพื่อระบุหมายเลขซีเรียลของโปรแกรมจำลอง เช่น emulator-5555 ให้กับคำสั่ง adb หากคุณตั้งค่าตัวแปรนี้แต่ใช้ตัวเลือก -s เพื่อระบุหมายเลขซีเรียลจากบรรทัดคำสั่ง อินพุตบรรทัดคำสั่งจะลบล้าง ค่าใน ANDROID_SERIAL

ตัวอย่างต่อไปนี้จะตั้งค่า ANDROID_SERIAL และเรียกใช้ adb install helloworld.apk ซึ่งจะติดตั้งแพ็กเกจแอปพลิเคชัน Android ในโปรแกรมจำลอง -5555

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
ตัวแปรสภาพแวดล้อมของ adb logcat
ANDROID_LOG_TAGS ใช้ตัวแปรสภาพแวดล้อมนี้เพื่อตั้งค่านิพจน์ตัวกรองเริ่มต้นเมื่อเรียกใช้ adb logcat จากคอมพิวเตอร์ที่ใช้พัฒนา เช่น
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:S

นิพจน์ตัวกรองใช้ไวยากรณ์เดียวกับตัวเลือก -logcat tags ของโปรแกรมจำลอง

ดูข้อมูลเพิ่มเติมและตัวอย่างได้ที่กรองเอาต์พุตบันทึก

ADB_TRACE มีรายการข้อมูลการแก้ไขข้อบกพร่องที่คั่นด้วยคอมมาเพื่อบันทึก ค่าอาจเป็นค่าใดค่าหนึ่งต่อไปนี้ all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport และ jdwp

หากต้องการแสดงadbบันทึกสำหรับไคลเอ็นต์ adbและเซิร์ฟเวอร์ adb ให้ตั้งค่า ADB_TRACE เป็น all แล้วเรียกใช้คำสั่ง adb logcat ดังนี้

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE มีรายการตัวเลือกเอาต์พุตแบบละเอียดที่คั่นด้วยคอมมา (แท็กข้อบกพร่อง) ที่อีมูเลเตอร์ใช้ ตัวอย่างต่อไปนี้แสดง ANDROID_VERBOSE ที่กำหนดด้วยแท็กข้อบกพร่อง debug-socket และ debug-radio
set ANDROID_VERBOSE=socket,radio

ซึ่งเหมือนกับการระบุอาร์กิวเมนต์ -verbose -verbose-socket -verbose-radio พร้อมกันเมื่อเรียกใช้โปรแกรมจำลองจากบรรทัดคำสั่ง

ระบบจะไม่สนใจแท็กแก้ไขข้อบกพร่องที่ไม่รองรับ ดูข้อมูลเพิ่มเติมเกี่ยวกับแท็กแก้ไขข้อบกพร่องได้ที่ emulator -help-debug-tags