משתני סביבה

אפשר להגדיר את ההתנהגות של Android Studio ושל כלי שורת הפקודה באמצעות הגדרה במשתני סביבה. אחד ממשתני הסביבה השימושיים ביותר להגדיר ANDROID_HOME, שכלים רבים יכולים לקרוא לקבוע את ספריית ההתקנה של ה-SDK של 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 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 להפעלת דימון (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 שולח שאילתה למשתני הסביבה הבאים כשהוא מופעל:
ANDROID_LOG_TAGS פרטים נוספים זמינים בכתובת ANDROID_LOG_TAGS.
HTTP_PROXY

מכיל Proxy ל-HTTP/HTTPS עבור שרת proxy גלובלי של 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 הוא 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: שימוש בקצה העורפי המתקדם של Linux Sound Architecture (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. יכול להיות שתצטרכו להשבית את האודיו במצבים הבאים:

  • במקרים נדירים, מנהלי התקנים של אודיו עלולים לגרום להפעלה מחדש של 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 שימוש במשתנה הסביבה הזה כדי להגדיר מסנן ברירת מחדל כאשר מריצים את 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:
set ANDROID_VERBOSE=socket,radio

הערך הזה זהה לציון -verbose -verbose-socket -verbose-radio כמה ארגומנטים כשמריצים את האמולטור משורת הפקודה.

המערכת מתעלמת מתגי ניפוי באגים שלא נתמכים. לקבלת מידע נוסף מידע על תגי ניפוי באגים, יש להשתמש ב- emulator -help-debug-tags.