Mobil geliştirici olarak genellikle her şeyi bir kerede geliştirmek yerine uygulamanızın kullanıcı arayüzünü adım adım geliştirirsiniz. Android Studio, Jetpack Compose ile bu yaklaşımı benimser. Değerleri incelemek, değiştirmek ve nihai sonucu doğrulamak için tam derleme gerektirmeyen araçlar sağlar.
Canlı Düzenleme
Canlı Düzenleme, emülatörlerdeki ve fiziksel cihazlardaki bileşenleri gerçek zamanlı olarak güncellemenizi sağlayan bir özelliktir. Bu işlev, uygulamanızı yazma ve derleme arasında bağlam geçişlerini en aza indirerek kesintisiz olarak daha uzun süre kod yazmaya odaklanmanızı sağlar.
Canlı düzenlemenin üç modu vardır:
- Manuel: Kod değişiklikleri, Control+' (macOS'te Command+') kullanılarak manuel olarak itildiğinde uygulanır.
- Kaydetme sırasında manuel: Kod değişiklikleri, Control+S (macOS'te Command+S) kullanılarak manuel olarak kaydedildiğinde uygulanır.
- Otomatik: Bir derlenebilir işlevi güncellediğinizde değişiklikler cihazınıza veya emülatörünüze uygulanır.
Canlı düzenleme, kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili kod değişikliklerine odaklanır. Canlı düzenleme, yöntem imza güncellemeleri, yeni yöntem ekleme veya sınıf hiyerarşisi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme'nin Sınırlamaları listesine göz atın.
Bu özellik, uygulamanızı oluşturma ve çalıştırma veya Değişiklikleri Uygulama'nın yerini almaz. Bunun yerine, Compose kullanıcı arayüzünü oluşturmak, dağıtmak ve geliştirmek için yineleme yaparken iş akışınızı optimize etmek üzere tasarlanmıştır.
En iyi uygulama iş akışı aşağıdaki gibidir:
- Uygulamanızı çalıştırılabilir hale getirin.
- Canlı Düzenleme'nin desteklemediği bir değişiklik (ör. uygulama çalışırken yeni yöntemler ekleme) yapmanız gerekene kadar mümkün olduğunca Canlı Düzenleme'yi kullanın.
- Desteklenmeyen bir değişiklik yaptıktan sonra uygulamanızı yeniden başlatmak ve Canlı Düzenleme'yi devam ettirmek için Çalıştır'ı tıklayın.
Canlı düzenlemeyi kullanmaya başlama
Başlamak için aşağıdaki adımları uygulayarak boş bir Oluşturma Etkinliği oluşturun, projeniz için Canlı Düzenleme'yi etkinleştirin ve Canlı Düzenleme ile değişiklik yapın.
Yeni projenizi oluşturma
Başlamadan önce Android Studio Giraffe veya sonraki bir sürümün yüklü olduğundan ve fiziksel cihazınızın ya da emülatörünüzün API düzeyinin en az 30 olduğundan emin olun.
Android Studio'yu açın ve Android Studio'ya Hoşgeldiniz iletişim kutusunda Yeni Proje'yi seçin. Açık bir projeniz varsa Dosya > Yeni > Yeni Proje'ye giderek yeni bir proje oluşturabilirsiniz.
Telefon ve Tablet için Boş E-posta Oluşturma Etkinliği şablonunu seçin ve Sonraki'yi tıklayın.
Yeni Proje iletişim kutusunu ad, paket adı, kayıt konumu, minimum SDK ve derleme yapılandırma dili gibi gerekli bilgilerle doldurun.
Son'u tıklayın.
Canlı düzenlemeyi etkinleştirme
Canlı Düzenleme'yi etkinleştirmek için ayarlara gidin.
- Windows veya Linux'ta Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin.
- macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin.
Ayarlar bölümünden Canlı Düzenleme seçeneğini ve çalıştırmak istediğiniz modu belirleyin.
Manuel modda, Ctrl+' (macOS'te Command+') tuşlarına her bastığınızda kod değişiklikleriniz gönderilir. Manuel modda kaydetme işleminde, kod değişiklikleriniz Ctrl+S (macOS'te Komut+S) tuşlarını kullanarak her manuel kaydetme işleminde uygulanır. Otomatik modda, kod değişiklikleriniz siz değişiklikleri yaparken cihazınıza veya emülatörünüze uygulanır.
Düzenleyicide, uygulamanızın giriş noktası olan
MainActivity
dosyasını açın.Uygulamanızı dağıtmak için Çalıştır'ı tıklayın.
Canlı Düzenle'yi açtıktan sonra Çalışmakta Olan Cihazlar araç penceresinin sağ üst kısmında Güncel yeşil onay işareti görünür:
Değişiklik yapma ve inceleme
Düzenleyicide desteklenen değişiklikleri yaptığınızda sanal veya fiziksel test cihazı otomatik olarak güncellenir.
Örneğin, MainActivity
içindeki mevcut Greeting
yöntemini aşağıdaki şekilde düzenleyin:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
Değişiklikleriniz, Şekil 4'te gösterildiği gibi test cihazında anında görünür.
Canlı düzenlemeyle ilgili sorunları giderme
Düzenlemelerinizi test cihazında görmüyorsanız Android Studio, düzenlemelerinizi güncelleyememiştir. Canlı Düzenleme göstergesinde, Şekil 5'te gösterildiği gibi Güncel Değil ifadesinin olup olmadığını kontrol edin. Bu, derleme hatası olduğunu gösterir. Hata hakkında bilgi edinmek ve hatayı nasıl çözeceğinizle ilgili öneriler almak için göstergeyi tıklayın.
Canlı düzenlemenin sınırlamaları
Mevcut sınırlamaların listesi aşağıda verilmiştir.
[Yalnızca Android Studio Giraffe ve sonraki sürümler için geçerlidir] Canlı Düzenleme özelliği için Compose Runtime 1.3.0 veya sonraki bir sürüm gerekir. Projenizde Düzenle'nin daha eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışıdır.
[Yalnızca Android Studio Giraffe ve sonraki sürümler için geçerlidir] Canlı Düzenleme özelliği için AGP 8.1.0-alpha05 veya sonraki sürümler gerekir. Projenizde daha eski bir AGP sürümü kullanılıyorsa Canlı Düzenleme devre dışıdır.
Canlı düzenleme özelliğini kullanmak için API düzeyi 30 veya üstünü çalıştıran fiziksel bir cihaz ya da emülatör gerekir.
Canlı düzenleme yalnızca işlev gövdesinin düzenlenmesini destekler. Yani işlev adını veya imzasını değiştiremez, işlev ekleyip kaldıramaz ya da işlev dışı alanları değiştiremezsiniz.
Canlı Düzenleme, bir dosyada ilk kez Oluştur işlevini değiştirdiğinizde uygulamanın durumunu sıfırlar. Bu durum yalnızca ilk kod değişikliğinden sonra gerçekleşir. Uygulama durumu, söz konusu dosyada Compose işlevlerinde yaptığınız sonraki kod değişiklikleri tarafından sıfırlanmaz.
Canlı düzenlemeyle değiştirilen sınıflar performans açısından ceza alabilir. Performansını değerlendiriyorsanız uygulamanızı çalıştırın ve temiz bir sürüm derlemesi kullanın.
Hata ayıklayıcının, Canlı Düzenleme ile değiştirdiğiniz sınıflarda çalışabilmesi için tam çalıştırma yapmanız gerekir.
Canlı düzenleme özelliğiyle düzenlediğiniz çalışan bir uygulama kilitlenebilir. Bu durumda, Çalıştır düğmesini kullanarak uygulamayı yeniden dağıtabilirsiniz.
Canlı Düzenleme, projenizin derleme dosyasında tanımlanan herhangi bir bayt kodu değiştirme işlemini gerçekleştirmez. Örneğin, proje Derle menüsündeki seçenekler kullanılarak veya Derle ya da Çalıştır düğmeleri tıklanarak derlenirken uygulanacak bayt kodu değiştirme işlemleri.
Kompozit olmayan işlevler cihazda veya emülatörde canlı olarak güncellenir ve tam yeniden kompozisyon tetiklenir. Tam yeniden derleme, güncellenmiş işlevi çağırmayabilir. Kompozit olmayan işlevler için yeni güncellenen işlevleri tetiklemeniz veya uygulamayı yeniden çalıştırmanız gerekir.
Canlı Düzenleme, uygulama yeniden başlatıldığında devam etmez. Uygulamayı tekrar çalıştırmanız gerekir.
Canlı Düzenleme yalnızca hata ayıklama yapılabilen işlemleri destekler.
Canlı Düzenleme, derleme yapılandırmasında
kotlinOptions
altındamoduleName
için özel değerler kullanan projeleri desteklemez.Canlı düzenleme, birden fazla dağıtım yapılan dağıtımlarda çalışmaz. Bu nedenle, bir cihaza dağıttıktan sonra başka bir cihaza dağıtamazsınız. Canlı Düzenleme yalnızca uygulamanın dağıtıldığı son cihaz grubunda etkindir.
Canlı Düzenleme, çok cihazlı dağıtımlarda (hedef cihaz açılır listesinde Birden fazla cihaz seç aracılığıyla oluşturulan birden fazla cihaza dağıtımlar) çalışır. Ancak bu yöntem resmi olarak desteklenmez ve sorunlar yaşanabilir. Sorun yaşarsanız lütfen bildirin.
Değişiklikleri Uygula/Kod Değişikliklerini Uygula, Canlı Düzenleme ile uyumlu değildir ve çalışan uygulamanın yeniden başlatılmasını gerektirir.
Canlı Düzenleme şu anda Android Automotive projelerini desteklememektedir.
Canlı düzenleme hakkında sık sorulan sorular
Canlı düzenlemenin mevcut durumu nedir?
Canlı düzenleme özelliği Android Studio Giraffe'ta kullanılabilir. Bu özelliği etkinleştirmek için Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin (macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin).
Canlı düzenlemeyi ne zaman kullanmalıyım?
Kullanıcı deneyimi öğelerindeki güncellemelerin (değişken güncellemeleri ve animasyonlar gibi) genel uygulama deneyimi üzerindeki etkisini hızlıca görmek istediğinizde Canlı Düzenleme'yi kullanın.
Canlı Düzenleme'yi ne zaman kullanmamam gerekir?
Canlı düzenleme, kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili kod değişikliklerine odaklanır. Yöntem imza güncellemeleri, yeni yöntem ekleme veya sınıf hiyerarşisi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme'nin sınırlamaları başlıklı makaleyi inceleyin.
Oluşturma Önizlemesi'ni ne zaman kullanmalıyım?
Tek tek kompozisyonlar geliştirirken Oluşturma Önizlemesi'ni kullanın. Önizleme, Oluştur öğelerini görselleştirir ve kod değişikliklerinin etkisini göstermek için otomatik olarak yenilenir. Önizleme, koyu tema, yerel ayarlar ve yazı tipi ölçeği gibi farklı yapılandırmalar ve durumlarda kullanıcı arayüzü öğelerinin görüntülenmesini de destekler.
Değişkenleri canlı düzenleme (desteği sonlandırıldı)
Android Studio, önizlemeler, emülatör ve fiziksel cihazlardaki bileşenlerde kullanılan bazı sabit değişmezleri gerçek zamanlı olarak güncelleyebilir. Desteklenen türlerden bazıları şunlardır:
Int
String
Color
Dp
Boolean
Düzenleme sabitlerinin canlı düzenleme kullanıcı arayüzü göstergesi aracılığıyla sabit süslemeleri etkinleştirerek derleme adımı olmadan gerçek zamanlı güncellemeleri tetikleyen sabit değişmezler görüntüleyebilirsiniz:
Değişiklikleri Uygulama
Değişiklikleri Uygulama, uygulamanızı bir emülatöre veya fiziksel cihaza yeniden dağıtmak zorunda kalmadan kodu ve kaynakları güncellemenize olanak tanır (bazı kısıtlamalar vardır).
Herhangi bir zaman bileşen eklediğinizde, değiştirdiğinizde veya sildiğinizde Kod Değişikliklerini Uygula düğmesini tıklayarak uygulamanızı yeniden dağıtmak zorunda kalmadan güncelleyebilirsiniz:
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Animasyonları özelleştirme {:#customize-animations}
- Değere dayalı animasyonlar
- Parametre ekleme