Ortam değişkenleri

Ortam değişkenlerini ayarlayarak Android Studio'nun ve komut satırı araçlarının davranışını yapılandırabilirsiniz. Ayarlanacak en kullanışlı ortam değişkenlerinden biri, Android SDK yükleme dizinini belirlemek için birçok aracın okuduğu ANDROID_HOME değişkenidir. Araçları yürütülebilir dosyanın tam yolunu eklemeden komut satırından çalıştırmak için komut arama yolu ortam değişkeninizi ANDROID_HOME/tools, ANDROID_HOME/tools/bin ve ANDROID_HOME/platform-tools içerecek şekilde ayarlayın.

Ortam değişkenleri nasıl ayarlanır?

Aşağıdaki örneklerde, farklı işletim sistemleri için bir terminal penceresinde ve kabuk komut dosyasında ortam değişkenlerinin nasıl ayarlanacağı gösterilmektedir. Terminal pencerelerindeki değişken ayarları, yalnızca pencere açık olduğu sürece kullanılabilir. macOS ve Linux'ta, yeni bir kabuk her başladığında değişken ayarları kabuk başlatma komut dosyalarında belirlenir. Windows'da değişken ayarları, sistem ayarlarından belirlenebilir.

Windows: Bir terminal penceresine şunu yazın:

set HTTP_PROXY=myserver:1981

Alternatif olarak, Windows kullanıcı arayüzünden ekleyebilirsiniz. Nasıl yapılacağını öğrenmek için Windows sürümünüzle ilgili belgelere göz atın.

macOS ve Linux: Ortam değişkenlerini kesin olarak ayarlama yöntemi, hangi kabuğu kullandığınıza bağlıdır. Hangi kabuk türünün çalıştığını belirlemek için aşağıdakileri yazın:

echo $0

Gnu Bash veya Zsh gibi kabuklarda değişkenler aşağıdaki söz dizimi kullanılarak ayarlanır:

export VARIABLE_NAME=<new-value>

TCSH gibi diğer kabuklarda değişkenler aşağıdaki söz dizimi kullanılarak ayarlanır:

setenv VARIABLE_NAME <new-value>

Bu komutlar, yeni kabuk örneği her çalıştırıldığında değişkenlerin ayarlanması için kabuk başlatma komut dosyasına eklenebilir.

Kabuk başlatma komut dosyasının konumu, kullanılan kabuğa bağlıdır. Gnu Bash için konum ~/.bash_profile olabilir. Zsh için konum ~/.zprofile olabilir. TCSH için konum ~/.cshrc olabilir. Emin olmak için kullandığınız kabuk dokümanlarını kontrol edin.

Ayrıca PATH ortam değişkenini araç konumlarını içerecek şekilde güncelleyebilirsiniz.

Gnu Bash veya Zsh için:

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

TCSH için:

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

Değişkenler referansı

Aşağıdaki tabloda, Android SDK araçları için yaygın olarak kullanılan ortam değişkenleri açıklanmaktadır.

Tablo 1. Ortam değişkenleri

Android SDK ortam değişkenleri
ANDROID_HOME SDK yükleme dizininin yolunu ayarlar. Ayarlandığında değer genellikle değişmez ve aynı makinede birden fazla kullanıcı tarafından paylaşılabilir. SDK yükleme dizinini de işaret eden ANDROID_SDK_ROOT kullanımdan kaldırıldı. Kullanmaya devam ederseniz Android Studio ve Android Gradle eklentisi, eski ve yeni değişkenlerin tutarlı olup olmadığını kontrol eder.
ANDROID_USER_HOME Android SDK'nın parçası olan araçlar için kullanıcı tercihleri dizininin yolunu ayarlar. Varsayılan olarak $HOME/.android/ değerine ayarlanır.

Android Studio 4.3 ve önceki sürümler gibi bazı eski araçlar ANDROID_USER_HOME okumaz. Bu eski araçların kullanıcı tercihleri konumunu geçersiz kılmak için ANDROID_SDK_HOME, .android dizininin oluşturulmasını istediğiniz üst dizine ayarlayın.

REPO_OS_OVERRIDE Mevcut makineden farklı bir işletim sisteminin paketlerini indirmek için sdkmanager kullanırken bu değişkeni windows, macosx veya linux olarak ayarlayın.
Android Studio yapılandırma ortamı değişkenleri
Android Studio yapılandırma değişkenleri, yapılandırma dosyalarının ve JDK'nin konumunu özelleştiren ayarlar içerir. Android Studio, başlangıçta bu değişkenlerin ayarlarını kontrol eder. Daha fazla bilgi için Android Studio'yu yapılandırma bölümüne bakın.
STUDIO_VM_OPTIONS studio.vmoptions dosyasının konumunu ayarlar. Bu dosya, Java HotSpot Sanal Makinesi'nin performans özelliklerini etkileyen ayarları içerir. Bu dosyaya Android Studio'dan da erişilebilir. Sanal makine seçeneklerinizi özelleştirme bölümüne göz atın.
STUDIO_PROPERTIES idea.properties dosyasının konumunu ayarlar. Bu dosya, kullanıcı tarafından yüklenen eklentilerin yolu ve IDE tarafından desteklenen maksimum dosya boyutu gibi Android Studio IDE özelliklerini özelleştirmenizi sağlar. IDE özelliklerinizi özelleştirme bölümünü inceleyin.
STUDIO_JDK Android Studio'nun çalıştığı JDK'nin konumunu ayarlar. IDE'yi başlattığınızda STUDIO_JDK, JDK_HOME ve JAVA_HOME ortam değişkenlerini sırayla kontrol eder.
STUDIO_GRADLE_JDK Android Studio'nun, Gradle arka plan programını başlatmak için kullandığı JDK'nın konumunu ayarlar. IDE'yi başlattığınızda önce STUDIO_GRADLE_JDK kontrol edilir. STUDIO_GRADLE_JDK tanımlanmamışsa IDE, proje yapısı ayarlarında ayarlanan değeri kullanır.
Emülatör ortam değişkenleri
Emülatör, yapılandırma dosyalarını varsayılan olarak $HOME/.android/, AVD verilerini de $HOME/.android/avd/ altında depolar. Aşağıdaki ortam değişkenlerini ayarlayarak varsayılanları geçersiz kılabilirsiniz. emulator -avd <avd_name> komutu, avd dizininde $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ ve $HOME/.android/avd/ içindeki değerlere göre arama yapar.

Emülatör ortam değişkeni yardımı için komut satırına emulator -help-environment yazın. emulator komut satırı seçenekleri hakkında bilgi için Emülatörü komut satırından başlatma bölümüne bakın.

ANDROID_EMULATOR_HOME Kullanıcıya özel emülatör yapılandırma dizininin yolunu ayarlar. Varsayılan olarak $ANDROID_USER_HOME değerine ayarlanır.

Android Studio 4.3 ve önceki sürümler gibi daha eski araçlar ANDROID_USER_HOME okumaz. Bu araçlar için varsayılan değer $ANDROID_SDK_HOME/.android değeridir.

ANDROID_AVD_HOME Çoğunlukla çok büyük disk görüntülerinden oluşan, AVD'ye özgü dosyaların tümünü içeren dizinin yolunu belirler. Varsayılan konum: $ANDROID_EMULATOR_HOME/avd/. Varsayılan konumdaki disk alanı azaldıysa yeni bir konum belirtmek isteyebilirsiniz.
Android emülatörü, başlatıldığında aşağıdaki ortam değişkenlerini sorgular:
ANDROID_LOG_TAGS İlgili konu: ANDROID_LOG_TAGS.
HTTP_PROXY

Genel HTTP proxy'si için HTTP/HTTPS proxy ayarını içerir. Ana makine ile bağlantı noktası arasında iki nokta (:) ayırıcısı kullanır. Örneğin, set HTTP_PROXY=myserver:1981.

Bu, emülatörü komut satırından çalıştırırken -http-proxy proxy bağımsız değişkeninin belirtilmesiyle aynıdır.

ANDROID_VERBOSE İlgili konu: ANDROID_VERBOSE.
ANDROID_HOME İlgili konu: ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS 0 (varsayılan) veya 1 değerini içerir. 1 değeri, emülatörle birlikte gelen dosya yerine sistemin libstdc++.so dosyasının kullanıldığı anlamına gelir. Bu ortam değişkenini yalnızca, sistem kitaplığı sorunu nedeniyle emülatör Linux sisteminizde başlamadığında ayarlayın. Örneğin, bazı Linux Radeon GL sürücü kitaplıkları daha yeni bir libstdc++.so dosyası gerektirir.
Hızlı emülatör (QEMU) ses
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Linux'ta QEMU_AUDIO_DRV ortam değişkenini aşağıdaki değerlerden birine ayarlayarak emülatörün varsayılan ses arka ucunu değiştirebilirsiniz:
  • alsa: Gelişmiş Linux Ses Mimarisi (ALSA) arka ucunu kullanın
  • esd: Enlightened Sound Daemon (EsounD) arka ucunu kullanın
  • sdl: Basit DirectMedia Katmanı (SDL) ses arka ucunu kullanın (ses girişi desteklenmez)
  • oss:: Açık Ses Sistemi (OSS) arka ucunu kullanın
  • none:: Sesi destekleme
set QEMU_AUDIO_DRV=alsa

Ayrıca QEMU_AUDIO_OUT_DRV ve QEMU_AUDIO_IN_DRV ortam değişkenleri için QEMU değerlerinden birini seçerek ses girişi ve ses çıkışları için farklı arka uçlar kullanabilirsiniz:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Ses desteğini devre dışı bırakmak istiyorsanız emulator -no-audio seçeneğini kullanın veya QEMU_AUDIO_DRV öğesini none olarak ayarlayın. Aşağıdaki durumlarda sesi devre dışı bırakmanız gerekebilir:

  • Nadiren, ses sürücüleri emülatör çalışırken Windows'un yeniden başlatılmasına neden olabilir.
  • Bazı Linux makinelerde emülatör, ses desteği etkin durumdayken başlatma sırasında takılabilir.
adb ortam değişkenleri
ANDROID_SERIAL adb komutuna emülator-5555 gibi bir emülatör seri numarası sağlamak için bu değişkeni kullanın. Bu değişkeni ayarlayıp komut satırından seri numarası belirtmek için -s seçeneğini kullanırsanız komut satırı girişi, ANDROID_SERIAL içindeki değeri geçersiz kılar.

Aşağıdaki örnekte ANDROID_SERIAL ve adb install helloworld.apk çağrılır. Daha sonra bu örnekte Android uygulama paketi emulator-5555'e yüklenir.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk

adb logcat ortam değişkenleri
ANDROID_LOG_TAGS Geliştirme bilgisayarınızda logcat çalıştırırken varsayılan filtre ifadesi ayarlamak için bu ortam değişkenini kullanın. Örneğin:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Bu, emülatörü komut satırından çalıştırırken -logcat tags bağımsız değişkeninin belirtilmesiyle aynıdır.

Daha fazla bilgi ve örnek için Günlük çıkışını filtreleme bölümüne bakın.

ADB_TRACE Günlüğe eklenecek hata ayıklama bilgilerinin virgülle ayrılmış listesini içerir. Değerler şunlar olabilir: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport ve jdwp.

adb istemcileri ve adb sunucusuyla ilgili adb günlüklerini görüntülemek için ADB_TRACE öğesini all olarak ayarlayın ve ardından aşağıdaki gibi adb logcat komutunu çağırın:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Emülatör tarafından kullanılan ayrıntılı çıkış seçeneklerinin (hata ayıklama etiketleri) virgülle ayrılmış listesini içerir. Aşağıdaki örnekte debug-socket ve debug-radio hata ayıklama etiketleriyle tanımlanan ANDROID_VERBOSE gösterilmektedir:
set ANDROID_VERBOSE=socket,radio

Bu, emülatörü komut satırından çalıştırırken -verbose -verbose-socket -verbose-radio bağımsız değişkenlerini birlikte belirtmekle aynıdır.

Desteklenmeyen hata ayıklama etiketleri yoksayılır. Hata ayıklama etiketleri hakkında daha fazla bilgi için emulator -help-debug-tags kullanın.