متغیرهای محیط

با تنظیم متغیرهای محیطی می‌توانید عملکرد Android Studio و ابزارهای خط فرمان را پیکربندی کنید. یکی از مفیدترین متغیرهای محیطی برای تنظیم کردن ANDROID_HOME است که بسیاری از ابزارها آن را برای تعیین کردن دایرکتوری نصب «کیت توسعه نرم‌افزار Android» می‌خوانند. برای اجرای ابزارها از خط فرمان بدون درج مسیر کامل فایل اجرایی، متغیر محیطی مسیر جستجوی فرمان را تنظیم کنید تا شامل ANDROID_HOME/tools، ANDROID_HOME/tools/bin، و ANDROID_HOME/platform-tools شود.

نحوه تنظیم متغیرهای محیط

مثال‌های زیر نشان می‌دهد که چگونه متغیرهای محیطی را در پنجره ترمینال و در دستورگان پوسته برای سیستم‌های عامل مختلف تنظیم کنید. تنظیمات متغیر در پنجره‌های ترمینال فقط تا زمانی که پنجره باز است معتبر است. در macOS و Linux، هر بار که پوسته جدیدی شروع می‌شود، تنظیمات متغیر در برنامه‌های راه‌اندازی پوسته تنظیم می‌شود. در Windows، تنظیمات متغیر را می‌توان ازطریق تنظیمات سیستم تنظیم کرد.

Windows: در پنجره ترمینال، موارد زیر را تایپ کنید:

set HTTP_PROXY=myserver:1981

یا آن را ازطریق «میانای کاربر Windows» اضافه کنید. برای آشنایی با نحوه انجام آن، مستندات نسخه Windows خود را بررسی کنید.

macOS و Linux: روش دقیق تنظیم متغیرهای محیطی به پوسته‌ای که استفاده می‌کنید بستگی دارد. برای تعیین اینکه کدام نوع پوسته درحال اجرا است، موارد زیر را تایپ کنید:

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» را شرح می‌دهد.

جدول ۱. متغیرهای محیط

متغیرهای محیط کیت توسعه نرم‌افزار Android
ANDROID_HOME مسیر فهرست راهنمای نصب کیت توسعه نرم‌افزار را تنظیم می‌کند. پس‌از تنظیم، مقدار معمولاً تغییر نمی‌کند و می‌تواند توسط چندین کاربر در یک ماشین هم‌رسانی شود. ‫ANDROID_SDK_ROOT که به دایرکتوری نصب کیت توسعه نرم‌افزار نیز اشاره می‌کند، منسوخ شده است. اگر همچنان از آن استفاده کنید، «استودیو Android» و افزایه Android Gradle بررسی می‌کنند که متغیرهای قدیمی و جدید سازگار باشند.
ANDROID_USER_HOME مسیر فهرستگان اولویت‌های کاربر را برای ابزارهایی که بخشی از «کیت توسعه نرم‌افزار Android» هستند تنظیم می‌کند. پیش‌فرض $HOME/.android/ است.

برخی‌از ابزارهای قدیمی‌تر، مثل Android Studio 4.3 و نسخه‌های قدیمی‌تر، ANDROID_USER_HOME را نمی‌خوانند. برای ملغی کردن مکان اولویت‌های کاربر برای آن ابزارهای قدیمی‌تر، ANDROID_SDK_HOME را روی دایرکتوری والد موردنظرتان تنظیم کنید تا دایرکتوری .android در آن ایجاد شود.

REPO_OS_OVERRIDE وقتی از sdkmanager برای بارگیری بسته‌ها برای سیستم‌عاملی متفاوت از دستگاه فعلی استفاده می‌کنید، این متغیر را روی windows، macosx، یا linux تنظیم کنید.
متغیرهای محیط پیکربندی «استودیو Android»
متغیرهای پیکربندی Android Studio حاوی تنظیماتی است که مکان فایل‌های پیکربندی و JDK را سفارشی‌سازی می‌کند. هنگام راه‌اندازی، Android Studio این متغیرها را برای تنظیمات بررسی می‌کند. برای اطلاعات بیشتر، پیکربندی Android Studio را ببینید.
STUDIO_VM_OPTIONS مکان فایل studio.vmoptions را تنظیم می‌کند. این فایل حاوی تنظیماتی است که بر ویژگی‌های عملکردی ماشین مجازی Java HotSpot تأثیر می‌گذارد. این فایل را می‌توان از داخل Android Studio نیز دردسترس قرار داد. به سفارشی‌سازی گزینه‌های ماشین مجازی مراجعه کنید.
STUDIO_PROPERTIES مکان فایل idea.properties را تنظیم می‌کند. این فایل به شما امکان می‌دهد ویژگی‌های IDE «استودیو Android» را سفارشی‌سازی کنید، مثلاً مسیر افزایه‌های نصب‌شده توسط کاربر و حداکثر اندازه فایل پشتیبانی‌شده توسط IDE. به سفارشی‌سازی کردن دارایی‌های IDE مراجعه کنید.
STUDIO_JDK مکان JDK را که Android Studio در آن اجرا می‌شود تنظیم می‌کند. وقتی IDE را راه‌اندازی می‌کنید، متغیرهای محیطی STUDIO_JDK، JDK_HOME، و JAVA_HOME را به این ترتیب بررسی می‌کند.
STUDIO_GRADLE_JDK مکان JDK را که Android Studio برای شروع کردن «دیوونه Gradle» استفاده می‌کند تنظیم می‌کند. وقتی «محیط توسعه یکپارچه» را راه‌اندازی می‌کنید، ابتدا 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 حاوی مقدار ۰ (پیش‌فرض) یا ۱ است. مقدار ۱ یعنی فایل 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: از زیرینه «معماری صدای پیشرفته Linux» (ALSA) استفاده کنید
  • esd: استفاده از زیرینه «دیو صدای روشن‌فکر» (EsounD)
  • ‫sdl: استفاده از زیرینه صوتی «لایه ساده DirectMedia» (SDL) (ورودی صدا پشتیبانی نمی‌شود)
  • oss:: استفاده از زیرینه «سیستم صدای باز» (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 از این متغیر برای ارائه شماره سریال شبیه‌ساز، مانند شبیه‌ساز-۵۵۵۵، به فرمان adb استفاده کنید. اگر این متغیر را تنظیم کنید اما از گزینه -s برای مشخص کردن شماره سریال از خط فرمان استفاده کنید، ورودی خط فرمان مقدار در ANDROID_SERIAL را ملغی می‌کند.

مثال زیر ANDROID_SERIAL را تنظیم می‌کند و adb install helloworld.apk را فرا می‌خواند، که سپس بسته برنامه Android را در شبیه‌ساز-۵۵۵۵ نصب می‌کند.

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 استفاده کنید.