Ortam değişkenleri

Ortam değişkenlerini ayarlayarak Android Studio ve komut satırı araçlarının davranışını yapılandırabilirsiniz. Ayarlanabilecek en kullanışlı ortam değişkenlerinden biri, Android SDK yükleme dizinini belirlemek için birçok aracın okuduğu ANDROID_HOME'tur. 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 örnekler, farklı işletim sistemleri için bir terminal penceresinde ve bir kabuk komut dosyasında ortam değişkenlerinin nasıl ayarlanacağını gösterir. Terminal pencerelerindeki değişken ayarları yalnızca pencere açık olduğu sürece kullanılabilir. macOS ve Linux'ta, her yeni kabuk başladığında kabuk başlatma komut dosyalarında değişken ayarları belirlenir. Windows'da değişken ayarları sistem ayarlarından yapılabilir.

Windows: Bir terminal penceresine aşağıdakileri yazın:

set HTTP_PROXY=myserver:1981

Alternatif olarak, Windows kullanıcı arayüzü üzerinden de ekleyebilirsiniz. Nasıl yapacağınızı öğrenmek için Windows sürümünüze ait dokümanlara göz atın.

macOS ve Linux: Ortam değişkenlerini ayarlamanın kesin 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 kabuğun 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şken 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. Değer ayarlandıktan sonra 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 bir 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ümleri gibi bazı eski araçlar ANDROID_USER_HOME okumaz. Söz konusu eski araçların kullanıcı tercihleri konumunu geçersiz kılmak için ANDROID_SDK_HOME değerini, .android dizininin altında oluşturulmasını istediğiniz üst dizine ayarlayın.

REPO_OS_OVERRIDE Mevcut makineden farklı bir işletim sistemi için paket indirirken 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'nın konumunu özelleştiren ayarlar içerir. Android Studio başlangıçta ayarlar için bu değişkenleri 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çeriyor. Bu dosyaya Android Studio içinden de erişilebilir. Sanal makine seçeneklerinizi özelleştirme başlıklı makaleyi inceleyin.
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ştirebilmenizi sağlar. IDE özelliklerinizi özelleştirme bölümünü inceleyin.
STUDIO_JDK Android Studio'nun çalıştığı JDK'nın konumunu ayarlar. IDE, başlatıldığında 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, başlatıldığında önce STUDIO_GRADLE_JDK öğesini kontrol eder. STUDIO_GRADLE_JDK tanımlanmamışsa IDE, proje yapısı ayarlarında ayarlanan değeri kullanır.
Emülatör ortam değişkenleri
Varsayılan olarak emülatör, yapılandırma dosyalarını $HOME/.android/ ve AVD verilerini $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ümleri gibi eski araçlar ANDROID_USER_HOME okumaz. Bu araçlar için varsayılan değer $ANDROID_SDK_HOME/.android şeklindedir.

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ı azsa yeni bir konum belirtebilirsiniz.
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'sinin HTTP/HTTPS proxy ayarını içerir. Ana makine ile bağlantı noktası arasında iki nokta üst üste (:) ayırıcı 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şkenini belirtmekle 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 desteklemez
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:

  • Nadir durumlarda, ses sürücüleri emülatör çalışırken Windows'un yeniden başlatılmasına neden olabilir.
  • Bazı Linux makinelerinde emülatör, ses desteği etkin durumdayken başlatma sırasında takılabilir.
adb ortam değişkenleri
ANDROID_SERIAL adb komutuna emulator-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 işlem, Android uygulama paketini emulator-5555'e yükler.

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 bir filtre ifadesi ayarlamak için bu ortam değişkenini kullanın. Örneğin:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Bu işlem, emülatörü komut satırından çalıştırırken -logcat tags bağımsız değişkenini belirtmekle 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 kaydedilecek 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 sunucusunun adb günlüklerini görüntülemek için ADB_TRACE öğesini all olarak ayarlayın ve ardından adb logcat komutunu aşağıdaki gibi ç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ış bir listesini içerir. Aşağıdaki örnekte debug-socket ve debug-radio hata ayıklama etiketleriyle tanımlanmış 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 yok sayılır. Hata ayıklama etiketleri hakkında daha fazla bilgi için emulator -help-debug-tags kodunu kullanın.