Ağ Trafiği aracı kullanımdan kaldırıldı. Android Studio 3.0 veya sonraki bir sürümü kullanıyorsanız uygulamanızın bir ağ üzerinden nasıl ve ne zaman veri aktardığını incelemek için Network Profiler'ı (Ağ Profil Aracı) kullanmanız gerekir.
Önceki bölümde uygulama kodunuzu trafik tanımlayıcılarıyla etiketler, testler çalıştırır ve toplanan verilerle karşılaşırsınız. Bu derste, topladığınız ağ trafiği verilerine nasıl bakacağınızı öğretecek ve sizi, uygulamanızın ağ iletişimi performansını iyileştirecek ve güç tüketimini azaltacak işlemlere yönlendirecektir.
Uygulama ağ trafiğini analiz etme
Bir uygulamanın ağ kaynaklarını verimli bir şekilde kullanması, ağ donanımının kullanılmadığı önemli sürelerle kendini gösterir. Mobil cihazlarda, veri göndermek veya almak için radyoyu başlatmak ve mobil radyoyu uzun süre etkin tutmak yüksek bir maliyete neden olur. Uygulamanız ağa verimli bir şekilde erişiyorsa ağ üzerinden iletişimlerinin sıkı bir şekilde bir araya getirilmiş olduğunu ve uygulamanın bağlantı isteğinde bulunmadığı dönemlerle aralıklı olarak toplanmış olması gerekir.
Şekil 1'de, Ağ Trafiği aracı tarafından ölçüldüğü şekliyle bir uygulamadan gelen optimum olmayan ağ trafiği gösterilmektedir. Uygulama sık sık ağ isteklerinde bulunuyor. Bu trafik, radyonun bekleme, düşük güç moduna geçebileceği birkaç dinlenme süresine sahiptir. Bu uygulamanın ağ erişimi davranışı, radyoyu uzun süre açık tutabilir. Bu da pil tasarrufu sağlar.
Şekil 2'de optimum ağ trafiği kalıbı gösterilmiştir. Uygulama, ağ isteklerini seri halinde gönderir. Bu istekler, radyonun bekleme moduna geçebileceği uzun süreli trafik olmayan zamanlara göre ayrılır. Bu grafik, Şekil 1'dekiyle aynı miktarda iş yapıldığını gösterir ancak istekler, radyonun çoğu zaman beklemede kalmasına olanak tanıyacak şekilde kaydırılmış ve gruplanmıştır.
Uygulamanızın ağ trafiği Şekil 2'deki grafiğe benziyorsa iyi durumdasınız demektir. Tebrikler! Genel Ağ Kullanımını Optimize Etme bölümünde açıklanan tekniklere göz atarak ağ iletişimi verimliliğini artırmak isteyebilirsiniz.
Uygulamanızın ağ trafiği Şekil 1'deki grafiğe daha çok benziyorsa uygulamanızın ağa nasıl eriştiğini daha ayrıntılı bir şekilde incelemenin zamanı gelmiş demektir. Uygulamanızın ne tür ağ trafiği oluşturduğunu analiz ederek başlamalısınız.
Ağ trafiği türlerini analiz etme
Uygulamanızın oluşturduğu ağ trafiğine bakarken, uygun şekilde optimize edebilmek için trafiğin kaynağını anlamanız gerekir. Uygulamanızın sık yaptığı ağ etkinlikleri, kullanıcı işlemlerine yanıt veriyorsa tamamen uygun olabilir, ancak uygulamanız ön planda değilse veya cihaz cebinizde ya da çantadaysa tamamen uygun değildir. Bu bölümde, uygulamanızın oluşturduğu ağ trafiği türlerini nasıl analiz edeceğiniz açıklanmakta ve performansı artırmak için yapabileceğiniz işlemlere yönlendirmektedir.
Bir önceki derste, Şekil 3'te gösterildiği gibi, uygulama kodunuzu farklı trafik türleri için etiketlediniz ve uygulamanızdan veri toplamak ve bir etkinlik grafiği oluşturmak üzere Ağ Trafiği aracını kullandınız.
Ağ Trafiği aracı, trafiği önceki derste oluşturduğunuz etiketlere göre renklendirir. Renkler, uygulama kodunuzda tanımladığınız trafik türü sabitlerine dayanır. Hangi sabitlerin kullanıcı, uygulama veya sunucu tarafından başlatılan trafiği temsil ettiğini doğrulamak için uygulama kodunuza bakın.
Aşağıdaki bölümlerde ağ trafiği türlerine nasıl bakılacağı anlatılmakta ve trafiğin nasıl optimize edileceğiyle ilgili öneriler sunulmaktadır.
Kullanıcı tarafından başlatılan ağ trafiğini analiz etme
Kullanıcı tarafından başlatılan ağ etkinliği, kullanıcı uygulamanızla belirli bir etkinliği gerçekleştirirken etkili bir şekilde birlikte gruplandırılabilir veya kullanıcı uygulamanızın alması gereken ek bilgileri istediğinde eşit olmayan şekilde yayılabilir. Kullanıcı tarafından başlatılan ağ trafiğini analiz etmedeki amacınız, zaman içinde sık ağ kullanımı kalıpları aramak ve ağa erişilmeyen dönemler oluşturmaya ya da bu dönemlerin boyutunu artırmaya çalışmaktır.
Kullanıcı isteklerinin öngörülemez olması, uygulamanızda bu tür ağ kullanımını optimize etmeyi zorlaştırır. Ayrıca, kullanıcılar bir uygulamayı aktif olarak kullandıklarında hızlı yanıtlar beklerler. Bu nedenle, verimlilik taleplerinin gecikmesi, kötü kullanıcı deneyimlerine yol açabilir. Genel olarak, bir kullanıcı doğrudan uygulamanızla etkileşimde bulunurken ağın verimli kullanımı yerine kullanıcıya hızlı yanıt vermeye öncelik vermelisiniz.
Aşağıda, kullanıcı tarafından başlatılan ağ trafiğini optimize etmeye yönelik bazı yaklaşımlar verilmiştir:
- Ağ Verilerini Önceden Getirme - Kullanıcı, uygulamanızda bir işlem gerçekleştirdiğinde, uygulama sonraki kullanıcı işlemleri için hangi verilerin gerekebileceğini öngörür, verileri tek bir bağlantıyla toplu olarak getirir ve kullanıcı istekte bulunana kadar saklar.
- Bağlantı olup olmadığını kontrol etme veya değişiklikleri dinleme - Güncelleme gerçekleştirmeden önce ağ bağlantısını kontrol edin veya bağlantı değişikliklerini dinleyin.
- Bağlantı Sayısını Azaltın - Verilerin kümeler halinde indirilmesine olanak tanıyan sunucu API'lerini kullanın.
Uygulama tarafından başlatılan ağ trafiğini analiz etme
Uygulama kodunuz tarafından başlatılan ağ etkinliği genellikle ağ bant genişliğinin verimli kullanımı üzerinde önemli ölçüde etki yaratabileceğiniz bir alandır. Uygulamanızın ağ etkinliğini analiz ederken etkin olmayan dönemleri arayın ve bu sürelerin artırılıp artırılamayacağını belirleyin. Uygulamanızdan tutarlı ağ erişimi kalıpları görürseniz cihaz radyosunun düşük güç moduna geçmesine izin vermek için bu erişimleri aralıklı olarak ayarlamanın yollarını arayın.
Uygulama tarafından başlatılan ağ trafiğini optimize etmeye yönelik bazı yaklaşımlar aşağıda verilmiştir:
Toplu İşlem ve Ağ İstekleri - Uygulamanızın ağ isteklerini, birlikte ve pil ömrü açısından avantajlı bir zamanda işlenebilmesi için erteleyin.
Sistemin Bağlantıyı Kontrol Etmesine İzin Ver - Uygulamanız uyurken sistemin denetimi çalıştırmasına izin verebildiğinizde, yalnızca ağ bağlantısı olup olmadığını kontrol etmek için uygulamanızı çalıştırma maliyetinden kaçının.
Sunucu tarafından başlatılan ağ trafiğini analiz etme
Uygulamanızla iletişim kuran sunucuların başlattığı ağ etkinliği de genellikle ağ bant genişliğinin verimli kullanımı üzerinde önemli bir etki yaratabileceğiniz bir alandır. Sunucu bağlantılarındaki ağ etkinliğini analiz ederken, etkin olmayan dönemlere bakın ve bunların uzatılıp artırılamayacağını belirleyin. Sunuculardan gelen tutarlı ağ etkinliği kalıpları görürseniz cihaz radyosunun düşük güç moduna geçmesine izin vermek için bu etkinlikte boşluk bırakmanın yollarını arayın.
Aşağıda, sunucu tarafından başlatılan ağ trafiğini optimize etmeye yönelik bir yaklaşım gösterilmektedir:
- Sunucu Güncellemeleri için FCM'yi kullanın - Sunucu tarafı güncellemeler için yoklama yerine Firebase Cloud Messaging hizmetini kullanabilirsiniz.