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

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

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

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

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

set HTTP_PROXY=myserver:1981

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

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 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 هنگامی که sdkmanager برای دانلود بسته های سیستم عاملی متفاوت از دستگاه فعلی استفاده می کنید، این متغیر را روی windows ، macosx یا linux تنظیم کنید.
متغیرهای محیط پیکربندی Android Studio
متغیرهای پیکربندی Android Studio شامل تنظیماتی هستند که مکان فایل‌های پیکربندی و JDK را سفارشی می‌کنند. هنگام راه اندازی، Android Studio این متغیرها را برای تنظیمات بررسی می کند. برای اطلاعات بیشتر، به پیکربندی Android Studio مراجعه کنید.
STUDIO_VM_OPTIONS محل فایل studio.vmoptions را تنظیم می کند. این فایل حاوی تنظیماتی است که بر ویژگی های عملکرد ماشین مجازی جاوا HotSpot تاثیر می گذارد. این فایل از داخل اندروید استودیو نیز قابل دسترسی است. به سفارشی کردن گزینه های 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 برای شروع Daemon 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_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 سیستم به جای فایل همراه با شبیه‌ساز استفاده می‌شود. این متغیر محیطی را فقط زمانی تنظیم کنید که شبیه ساز به دلیل مشکل کتابخانه سیستم در سیستم لینوکس شما راه اندازی نشود. به عنوان مثال، برخی از کتابخانه های درایور لینوکس Radeon GL به یک فایل جدیدتر libstdc++.so نیاز دارند.
شبیه ساز سریع (QEMU) صدا
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV در لینوکس، می‌توانید با تنظیم متغیر محیطی QEMU_AUDIO_DRV روی یکی از مقادیر زیر، پشتیبان صوتی پیش‌فرض شبیه‌ساز را تغییر دهید:
  • alsa : از معماری صوتی پیشرفته لینوکس (ALSA) استفاده کنید
  • esd : از باطن Enlightened Sound Daemon (EsounD) استفاده کنید
  • sdl : از پشتیبان صوتی Simple DirectMedia Layer (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 تنظیم کنید. ممکن است لازم باشد صدا را در شرایط زیر غیرفعال کنید:

  • در موارد نادر، درایورهای صوتی می توانند باعث راه اندازی مجدد ویندوز در حین اجرای شبیه ساز شوند.
  • در برخی از ماشین های لینوکس، شبیه ساز ممکن است در هنگام راه اندازی با فعال بودن پشتیبانی صوتی گیر کند.
متغیرهای محیط adb
ANDROID_SERIAL از این متغیر برای ارائه یک شماره سریال شبیه ساز، مانند emulator-5555، به دستور adb استفاده کنید. اگر این متغیر را تنظیم کنید اما از گزینه -s برای تعیین شماره سریال از خط فرمان استفاده کنید، ورودی خط فرمان مقدار موجود در ANDROID_SERIAL را لغو می کند.

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

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 حاوی یک لیست جدا شده با کاما از اطلاعات اشکال زدایی برای ورود به سیستم است. مقادیر می توانند موارد زیر باشند: 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 debug تعریف شده است:
set ANDROID_VERBOSE=socket,radio

این همانند مشخص کردن آرگومان های -verbose -verbose-socket -verbose-radio هنگام اجرای شبیه ساز از خط فرمان است.

برچسب های اشکال زدایی پشتیبانی نشده نادیده گرفته می شوند. برای اطلاعات بیشتر درباره برچسب‌های اشکال‌زدایی، از emulator -help-debug-tags استفاده کنید.