Ağ Denetleyicisi ile ağ trafiğini inceleme

Ağ İnceleyici, gerçek zamanlı ağ etkinliğini bir zaman çizelgesi üzerinde görüntüleyerek gönderilen ve alınan verileri gösterir. Ağ Denetleyicisi, uygulamanızın verileri nasıl ve ne zaman aktardığını incelemenize ve temel kodu uygun şekilde optimize etmenize olanak tanır.

Ağ Denetleyicisi'ni açmak için aşağıdaki adımları uygulayın:

  1. Android Studio gezinme çubuğundan Görünüm > Araç Pencereleri > Uygulama Denetleme'yi seçin. Uygulama denetleme penceresi otomatik olarak uygulama işlemine bağlandıktan sonra sekmelerden Network Inspector'ı seçin.
    • Uygulama inceleme penceresi bir uygulama işlemine otomatik olarak bağlanmazsa uygulama işlemini manuel olarak seçmeniz gerekebilir.
  2. Uygulama Denetleme penceresinden incelemek istediğiniz cihazı ve uygulama işlemini seçin.

Network Inspector'a genel bakış

Ağ Denetleyicisi penceresinin üst kısmında etkinlik zaman çizelgesini görebilirsiniz. Zaman çizelgesinin bir bölümünü seçmek ve trafiği incelemek için tıklayıp sürükleyin.

Ağ Denetleyicisi penceresi
Şekil 1. Ağ Denetleyicisi penceresi.

Ayrıntı penceresindeki zamanlama grafiği, performans sorunlarının nerede meydana geldiğini belirlemenize yardımcı olabilir. Sarı bölümün başlangıcı, gönderilen isteğin ilk baytına karşılık gelir. Mavi bölümün başlangıcı, alınan yanıtın ilk baytına karşılık gelir. Mavi bölümün sonu, alınan yanıtın son baytına karşılık gelir.

Zaman çizelgesinin altındaki bölmede, zaman çizelgesinin seçilen bölümündeki ağ etkinliği hakkında daha ayrıntılı bilgi için aşağıdaki sekmelerden birini seçin:

  • Bağlantı Görünümü: Uygulamanızın tüm CPU iş parçacıklarında zaman çizelgesinin seçilen kısmında gönderilen veya alınan dosyaları listeler. Her istek için boyut, tür, durum ve iletim süresini inceleyebilirsiniz. Bu listeyi sıralamak için sütun başlıklarından birini tıklayın. Her bir dosyanın ne zaman gönderildiğini veya alındığını gösteren zaman çizelgesinin seçilen kısmının ayrıntılı bir dökümünü de görebilirsiniz.
  • İş Parçacığı Görünümü: Uygulamanızın her bir CPU iş parçacığındaki ağ etkinliğini gösterir. Şekil 2'de gösterildiği gibi bu görünüm, her ağ isteğinden hangi iş parçacıklarının sorumlu olduğunu incelemenize olanak tanır.

    Ağ isteklerini ileti dizisi görünümünde uygulama iş parçacığına göre inceleme
    Şekil 2. Thread View'da ağ isteklerini uygulama iş parçacığına göre inceleyin.
  • Kural Görünümü: Kurallar, uygulamanızın farklı durum kodları, başlıklar ve gövdelere sahip yanıtlarla karşılaştığında nasıl davrandığını test etmeye yardımcı olur. Yeni bir kural oluştururken yeni kuralınıza bir ad verin ve müdahale etmek istediğiniz yanıtın kaynağıyla ilgili bilgileri Kaynak alt bölümüne ekleyin. Yanıt alt bölümünde, yanıtı nerede ve nasıl değiştireceğinizi belirtebilirsiniz. Örneğin, kuralı belirli bir durum koduna sahip yanıtlarda yürütülecek şekilde ayarlayabilir ve bu durum kodunu değiştirebilirsiniz. Üstbilgi kuralları ve Gövde kuralları alt bölümlerinde, yanıt üstbilgileri veya gövdeleri ekleyen ya da değiştiren alt kurallar oluşturun. Kurallar, listelendikleri sırayla uygulanır. Kuralın yanındaki Etkin kutusunu işaretleyerek hangi kuralın etkinleştirileceğini veya devre dışı bırakılacağını seçin.

    Ağ İnceleyici Kuralları ve Kural Ayrıntıları bölmeleri
    Şekil 3. Network Inspector Kurallar ve Kural Ayrıntıları bölmeleri.

Bağlantı Görünümü veya İleti Dizisi Görünümü'nde, gönderilen veya alınan veriler hakkında ayrıntılı bilgileri incelemek için bir istek adını tıklayın. Yanıt başlığını ve gövdesini, istek başlığını ve gövdesini veya çağrı yığınını görüntülemek için sekmeleri tıklayın.

Yanıt ve İstek sekmelerinde, biçimlendirilmiş metni görüntülemek için Ayrıştırılmış olarak göster bağlantısını tıklayın. İşlenmemiş metni görüntülemek için Kaynağı Görüntüle bağlantısını tıklayın.

İşlenmemiş metin ve biçimlendirilmiş metin arasında geçiş yapın
Şekil 4. İlgili bağlantıyı tıklayarak işlenmemiş metin ile biçimlendirilmiş metin arasında geçiş yapın.

Network Inspectoror, HttpsURLConnection için ağ isteklerinin yanı sıra OkHttp özelliğini de destekler. Retrofit gibi bazı üçüncü taraf ağ kitaplıkları dahili olarak OkHttp kullandığı için Network Inspector, ağ etkinliklerini incelemenize olanak tanır. Now In Android örnek uygulaması, ağ işlemleri için OkHttp kullanır ve bu uygulamayı çalışırken görmek için iyi bir yerdir.

HttpsURLConnection API'yi kullanıyorsanız aşağıdaki örnekte gösterildiği gibi, İstek sekmesinde yalnızca setRequestProperty yöntemini kullanarak kodunuza eklediğiniz başlıklar görürsünüz:

Kotlin

val url = URL(MY_URL_EN)
val urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection
...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity")

Java

URL url = new URL(MY_URL_EN);
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
//...
// Sets acceptable encodings in the request header.
urlConnection.setRequestProperty("Accept-Encoding", "identity");

Ağ bağlantısı sorunlarını giderme

Ağ İnceleyici, trafik değerlerini algılarsa ancak desteklenen ağ isteklerini tanımlayamazsa aşağıdaki hata mesajını alırsınız:

**Network Inspector Data Unavailable:** There is no information for the
  network traffic you've selected.

Ağ Denetleyicisi şu anda ağ bağlantıları için yalnızca HttpsURLConnection ve OkHttp kitaplıklarını desteklemektedir. Uygulamanız başka bir ağ bağlantısı kitaplığı kullanıyorsa ağ etkinliğinizi Ağ Denetleyicisi'nde görüntüleyemeyebilirsiniz. Bu hata mesajını aldıysanız ancak uygulamanız HttpsURLConnection veya OkHttp kullanıyorsa bir hata bildirin ya da sorun izleyicide arama yaparak sorununuzla ilgili mevcut bir rapora geri bildiriminizi ekleyin. Bu kaynakları, ek kitaplıklar için destek istemek için de kullanabilirsiniz.