Hiyerarşi Görüntüleyici kullanımdan kaldırıldı. Android Studio 3.1 veya sonraki bir sürümü kullanıyorsanız çalışma zamanında uygulamanızın görünüm hiyerarşisini incelemek için Düzen Denetleyici'yi kullanmanız gerekir. Uygulamanızın düzeninin oluşturma hızını belirlemek için bu blog yayınında açıklandığı şekilde Window.OnFrameMetricsAvailableListener etiketini kullanın.
Hiyerarşi Görüntüleyici, düzen hiyerarşinizdeki her görünüm için düzen hızını ölçmenize olanak tanıyan ve Android Cihaz Monitörü'nde yerleşik olarak bulunan bir araçtır. Görünüm hiyerarşinizin yapısından kaynaklanan performans sorunlarını bulmanıza yardımcı olabilir.
Not: Hiyerarşi Görüntüleyici artık geliştirilmemektedir. Çalışma zamanında görünüm hiyerarşinizdeki özellikleri incelemek için bunun yerine Android Studio'daki Layout Inspector aracını kullanmanız gerekir. Ancak Layout Inspector, şu anda düzen performansınız hakkında profil çıkarma ayrıntıları sağlamamaktadır.
Bu sayfada Hiyerarşi Görüntüleyicisi tanıtımı ve düzeninizin profilini çıkarmanız için adım adım açıklamalı kılavuz sunulmaktadır.
Hazırlanın
Android Emülatör'ü kullanıyorsanız bu bölümü atlayabilirsiniz. Aksi takdirde, cihazınızı aşağıdaki gibi ayarlamanız gerekir.
Not: Cihazınız Android 4.1 veya sonraki bir sürümünü çalıştırıyor olmalıdır.
- Cihazınızda Geliştirici Seçenekleri'ni etkinleştirin.
- Geliştirme makinenizde
ANDROID_HVPROTO=ddm
ortam değişkenini ayarlayın.Bu değişken, Hiyerarşi Görüntüleyici'ye cihaza DDMS protokolüyle aynı olan
ddm
protokolünü kullanarak bağlanmasını bildirir. Dikkat edilmesi gereken nokta, ana makinede cihaza bağlanan yalnızca bir işlem olabileceğidir. Bu nedenle, Hiyerarşi Görüntüleyici'yi çalıştırmak için diğer tüm DDMS oturumlarını sonlandırmanız gerekir.
Hiyerarşi Görüntüleyicisini Başlat
- Cihazınızı bilgisayarınıza bağlayın. Cihazda USB üzerinden hata ayıklamaya izin verilsin mi? sorusunu soran bir iletişim kutusu gösterilirse Tamam'a dokunun.
- Projenizi Android Studio'da açın, cihazınızda oluşturup çalıştırın.
- Android Cihaz Monitörü'nü başlatın.
Cihaza adb aracılığıyla aynı anda yalnızca bir işlem bağlanabileceği ve Android Cihaz Monitörü bağlantı isteğinde bulunduğu için Android Studio, Adb entegrasyonunu devre dışı bırak iletişim kutusunu gösterebilir.
Bu nedenle Evet'i tıklayın.
Şekil 1'de Android Cihaz Monitörü'nde ilk olarak neyin görünmesi gösterilmektedir.
- Menü çubuğunda, Pencere > Perspektifi Aç'ı seçin ve ardından Hiyerarşi Görünümü'nü tıklayın.
Şekil 2'de gösterilene benzer bir düzen görürsünüz. Görmüyorsanız varsayılan düzene dönmek için Pencere > Perspektifi Sıfırla'yı seçin.
- Soldaki Windows sekmesinde uygulamanızın paket adını çift tıklayın. Bu, bölmeleri uygulamanızın görünüm hiyerarşisiyle doldurur.
Araçları tanıma
Hiyerarşi Görüntüleyici aşağıdaki bölmeleri sağlar (şekil 2'de gösterildiği gibi):
- Ağaç Görünümü (ortada): Görünüm hiyerarşinizin ağaç görünümünü gösterir.
Farenizi ve alt kısımdaki zum denetimini kullanarak ağacı sürükleyebilir ve yakınlaştırabilirsiniz.
Her düğüm,
View
sınıf adını ve kimlik adını belirtir. - Ağaçlara Genel Bakış (sağ üst): Uygulamanızın tam görünüm hiyerarşisini kuş bakışı olarak gösterir. Ağaç Görünümü'nde görünen görüntü alanını değiştirmek için gri dikdörtgeni hareket ettirin.
- Düzen Görünümü (sağ alt): Düzeninizin tel çerçeve görünümünü gösterir.
O anda seçili olan görünümün ana hattı kırmızı, üst görünümü ise açık kırmızıdır.
Buradaki bir görünümü tıkladığınızda, söz konusu görünüm Ağaç Görünümü'nde de seçilir (veya tersi).
Görünüm hiyerarşisi, düzenin anlık görüntüsüdür, dolayısıyla otomatik olarak güncellenmez. Hiyerarşi görünümünü güncellemek için Görünüm hiyerarşisini yeniden yükle'yi tıklayın .
Bir görünümü geçersiz kılmak için (bir sonraki düzen güncellemesinde sistemin onDraw()
yöntemini çağırmasını isteyin) hiyerarşide bir görünüm seçip Düzeni geçersiz kıl'ı tıklayın (bu, görünümde invalidate()
çağrısı yapmakla aynıdır).
Görünümün (ve alt öğelerin) gerçekte nasıl düzenleneceğini öğrenmek için Yerleşim iste'yi tıklayın.
Farklı bir uygulamaya giderseniz görünüm hiyerarşisini görüntülemek için sol bölmedeki Windows sekmesinden söz konusu uygulamayı seçmeniz gerekir.
Ölçüm, düzen ve çizim süreleri dahil olmak üzere görünüm hakkındaki ayrıntıları (şekil 3'te gösterildiği gibi) görüntülemek için Ağaç Görünümü'nde görünümü tıklayın. Büyütmek için görünümü çift tıklayın.
Görünümün özelliklerini görmek için şekil 4'te gösterildiği gibi sol bölmede Görünüm Özellikleri sekmesini tıklayın.
Düzeninizin katmanlı ekran görüntüsünü bir Adobe Photoshop (PSD) dosyasına kaydetmek için araç çubuğunda Pencere katmanlarını yakala'yı tıklayın. Her görünüm kendi katmanı olarak kaydedilir, böylece her görünümü gizleyip ayarlayarak kolayca yeni bir model oluşturabilirsiniz.
Düzeniniz için profil oluşturun
Artık araçta nasıl gezineceğinizi bildiğinize göre, bu aracı görünüm hiyerarşinizin profilini çıkarmak ve sonuçları yorumlamak için kullanabilirsiniz.
- Ağaç Görünümü veya Düzen Görünümü'nde, alt öğelerini profil oluşturmak istediğiniz görünüm düğümünü tıklayın.
- Profil oluşturmayı başlatmak için Ağaç Görünümü'nün üst kısmındaki Düzen zamanlarını al
seçeneğini tıklayın.
Geniş görünüm hiyerarşilerinde profil oluşturma işlemi birkaç saniye sürebilir.
Seçtiğiniz düğümün her alt görünümünde yeşil, sarı veya kırmızı olabilecek üç nokta bulunur.
- Soldaki nokta, oluşturma ardışık düzeninin çizim işlemini temsil eder.
- Ortadaki nokta, düzen aşamasını temsil eder.
- Sağdaki nokta yürütme aşamasını temsil eder.
Bu noktalar kabaca işleme ardışık düzeninin ölçme, düzen ve çizim aşamalarına karşılık gelir. Noktaların rengi, bu düğümün yerel ailedeki diğer tüm profilli düğümlere kıyasla göreli performansını gösterir.
- Yeşil, görüntünün diğer görünümlerin en az yarısından daha hızlı oluşturulduğu anlamına gelir.
- Sarı, görünümün diğer görünümlerin alt yarısından daha hızlı oluşturulduğu anlamına gelir.
- Kırmızı, görüntülemenin en yavaş yarısı arasında olduğu anlamına gelir.
Sonuçları yorumlama
Hiyerarşi Görüntüleyici, her düğümün performansını kardeş görüntülemelere göre ölçer. Bu nedenle, tüm görüntülemeler aynı performans göstermediği sürece profilde her zaman kırmızı düğümler bulunur ve bu, kırmızı düğümün kötü performans gösterdiği anlamına gelmez (yalnızca bu, yerel görüntüleme grubundaki en yavaş görüntüleme olduğu anlamına gelmez).
Hiyerarşi Görüntüleyici, zamanlama bilgilerini almak için düzeninizi pikselleştirir. Pikselleştirme, daire veya vektör yazı tipi gibi üst düzey bir temel öğenin alıp ekranda piksellere dönüştürme işlemidir. Pikselleştirme genellikle cihazınızdaki GPU tarafından yapılır ancak yazılım pikselleştirmesi durumunda oluşturma işlemi, sıradan yazılımla CPU üzerinde yapılır. Bu durum, mutlak olarak bildirilen zamanlamaların birbirlerine göre doğru olduğu anlamına gelir. Ancak bu zamanlamalar fazladır ve cihazınız ile geliştirme makinenizdeki genel ve değişen CPU iş yüküne bağlı olarak farklılık gösterir. Bu nedenle, bir cihazdaki gerçek performans hızlarını yansıtmaz. Bu nedenle, ortalama ölçümleri anlamak için profili birden çok kez eklemeniz gerekir.
Kırmızı düğüm, uygulamanızın performansının beklenmedik şekilde yavaşladığı her durumda potansiyel bir sorundur. Göreli bir ayarda her zaman en yavaş bir düğüm vardır. Bunun beklediğiniz düğüm olduğundan emin olmanız yeterlidir. Aşağıdaki örneklerde kırmızı noktaların nasıl yorumlanacağı gösterilmektedir.
- Yaprak düğümlerindeki kırmızı noktaları arayın veya yalnızca birkaç alt çocuğu olan grupları görüntüleyin. Bu, bir soruna işaret edebilir. Uygulamanız yavaş olmayabilir veya cihazınızda yavaş olmayabilir. Ancak bu noktanın neden kırmızı olduğunu bilmeniz gerekir. Systrace veya Traceview size ek bilgiler sağlayabilir.
- Çok sayıda çocuk içeren bir görüntüleme grubunuz ve kırmızı ölçüm aşaması varsa performanslarını görmek için çocuklara göz atın.
- Sarı veya hatta kırmızı noktaları olan bir görünüm cihazda yavaş performans göstermiyor olabilir. Gerçek sayılar bu noktada fayda sağlar. Systrace veya Traceview size ek bilgiler sağlayabilir.
- Bir hiyerarşinin kök görünümünde kırmızı ölçme aşaması, kırmızı düzen aşaması ve sarı çizim aşaması varsa bu durum tipik bir durumdur çünkü bu görünüm diğer tüm görünümlerin üst öğesidir ve düzeni alt öğeler tamamlanana kadar tamamlanmaz.
- 20'den fazla görünümü olan bir ağaçtaki yaprak düğümünde kırmızı çizim aşaması varsa bu durum bir sorun olur. Orada olmaması gereken kod için
onDraw()
yönteminizi kontrol edin.
Düzen hakkında daha fazla ipucu için Düzen Performansını İyileştirme bölümüne bakın.