Mengumpulkan data traffic jaringan dengan alat Traffic Jaringan

Alat Traffic Jaringan sudah tidak digunakan lagi. Jika menggunakan Android Studio 3.0 atau yang lebih baru, Anda harus menggunakan Profiler Jaringan untuk memeriksa cara dan kapan aplikasi mentransfer data melalui jaringan.

Traffic jaringan yang dihasilkan oleh aplikasi dapat memiliki dampak yang signifikan terhadap masa pakai baterai perangkat tempat aplikasi berjalan. Untuk mengoptimalkan traffic tersebut, Anda harus mengukurnya dan mengidentifikasi sumbernya. Permintaan jaringan dapat berasal langsung dari tindakan pengguna, permintaan dari kode aplikasi Anda sendiri, atau dari server yang berkomunikasi dengan aplikasi Anda.

Alat Traffic Jaringan (bagian dari alat DDMS) memungkinkan Anda melihat cara dan kapan aplikasi mentransfer data melalui jaringan.

Pelajaran ini menunjukkan cara mengukur dan mengategorikan permintaan jaringan dengan memberi tag pada kode sumber, lalu menunjukkan cara menerapkan, menguji, dan memvisualisasikan traffic jaringan aplikasi Anda.

Memberi tag pada permintaan jaringan

Aplikasi menggunakan hardware jaringan pada perangkat karena berbagai alasan. Untuk mengoptimalkan penggunaan resource jaringan aplikasi dengan benar, Anda harus memahami seberapa sering aplikasi menggunakan jaringan dan alasannya. Untuk tujuan analisis performa, Anda harus menguraikan penggunaan hardware jaringan ke dalam kategori berikut:

  • Permintaan jaringan yang dimulai oleh pengguna - Permintaan yang dimulai oleh pengguna, seperti permintaan pengguna untuk daftar artikel yang diperbarui di aplikasi berita.
  • Permintaan jaringan yang dimulai oleh aplikasi - Permintaan yang dimulai dalam kode aplikasi Android yang tidak digunakan untuk segera memenuhi tindakan pengguna, seperti permintaan aplikasi untuk menyimpan teks artikel yang belum dibaca ke cache di aplikasi berita.
  • Permintaan jaringan yang dimulai oleh server - Permintaan yang dimulai oleh server untuk aplikasi Anda yang tidak digunakan untuk segera memenuhi tindakan pengguna, seperti notifikasi artikel yang baru saja tersedia di aplikasi berita.

Prosedur ini menunjukkan cara memberi tag pada kode sumber aplikasi Anda dengan konstanta untuk mengategorikan traffic sebagai salah satu dari tiga jenis permintaan ini. Alat Traffic Jaringan merepresentasikan setiap jenis traffic dengan warna yang berbeda, sehingga Anda dapat memvisualisasikan dan mengoptimalkan setiap arus traffic secara terpisah. Teknik yang dideskripsikan di sini melaporkan traffic jaringan berdasarkan eksekusi thread di aplikasi Anda yang diidentifikasi sebagai sumber server, pengguna, atau aplikasi.

  1. Dalam project pengembangan aplikasi Anda, tentukan tiga konstanta untuk merepresentasikan berbagai jenis penggunaan jaringan:

    Kotlin

        const val USER_INITIATED: Int = 0x1000
        const val APP_INITIATED: Int = 0x2000
        const val SERVER_INITIATED: Int = 0x3000
        

    Java

        public static final int USER_INITIATED = 0x1000;
        public static final int APP_INITIATED = 0x2000;
        public static final int SERVER_INITIATED =0x3000;
        
  2. Cari kode jaringan di aplikasi Anda dengan menelusuri class yang paling umum digunakan untuk tujuan ini:
    1. Di Android Studio, pilih Edit > Find > Find in Path.
    2. Tempel string berikut ke dalam kolom Text to find:
      extends GcmTaskService|extends JobService|extends AbstractThreadedSyncAdapter|HttpUrlConnection|Volley|Glide|HttpClient
    3. Centang Regular expression.
    4. Centang File mask(s) dan ketik *.java.
    5. Klik tombol Find.
  3. Berdasarkan temuan Anda pada langkah sebelumnya, beri tag pada penggunaan traffic jaringan oleh aplikasi dengan menambahkan metode setThreadStatsTag(int) ke setiap thread eksekusi di aplikasi Anda yang menggunakan resource jaringan, seperti yang ditunjukkan pada contoh kode berikut.

    Kotlin

        if (BuildConfig.NETWORK_TEST && Build.VERSION.SDK_INT >= 14) {
            try {
                TrafficStats.setThreadStatsTag(USER_INITIATED)
                // make network request using HttpClient.execute()
            } finally {
                TrafficStats.clearThreadStatsTag()
            }
        }
        

    Java

        if (BuildConfig.NETWORK_TEST && Build.VERSION.SDK_INT >= 14) {
            try {
                TrafficStats.setThreadStatsTag(USER_INITIATED);
                // make network request using HttpClient.execute()
            } finally {
                TrafficStats.clearThreadStatsTag();
            }
        }
        

    Catatan: Pastikan tag tidak masuk ke kode produksi Anda dengan membuat penyertaan kode ini bersyarat, berdasarkan jenis build yang digunakan untuk membuat APK. Pada contoh di atas, kolom BuildConfig.NETWORK_TEST mengidentifikasi APK ini sebagai versi uji coba.

Catatan: Teknik pemberian tag pada traffic jaringan dari aplikasi Anda bergantung pada cara API yang Anda gunakan mengakses dan mengelola soket jaringan. Beberapa library jaringan mungkin tidak mengizinkan utilitas TrafficStats memberi tag pada traffic dari aplikasi Anda.

Untuk mengetahui informasi selengkapnya tentang cara memberi tag dan melacak traffic jaringan dengan alat Traffic Jaringan, lihat Penggunaan Jaringan Detail di DDMS.

Mengonfigurasi jenis build uji jaringan

Saat menjalankan uji performa, APK Anda harus semirip mungkin dengan build produksi. Untuk mencapai hal ini pada uji jaringan Anda, buat jenis build network-test, daripada menggunakan jenis build debug.

  1. Buka aplikasi Anda di Android Studio.
  2. Buat jenis build yang dapat di-debug untuk pengujian jaringan dengan mengubah file build.gradle project Anda seperti yang ditampilkan pada contoh kode berikut:
        android {
            ...
            buildTypes {
                debug {
                    // debuggable true is default for the debug buildType
                }
                network-test {
                    debuggable true
                }
            }
            ...
        }
        

Men-deploy APK uji jaringan

Untuk men-deploy APK yang dibuat oleh jenis build network-test yang telah dikonfigurasi dalam proses sebelumnya:

  1. Pastikan Opsi Developer telah diaktifkan pada perangkat pengujian Anda. Untuk informasi tentang cara memeriksa dan mengaktifkan opsi ini, lihat Menggunakan Perangkat Hardware.
  2. Dengan menggunakan kabel USB, sambungkan perangkat uji ke komputer pengembangan Anda.
  3. Di Android Studio, pilih Build Variants di tepi kiri jendela.
  4. Klik tombol Sync Project with Gradle Files untuk mengisi daftar Varian Build dengan network-test untuk modul aplikasi.
  5. Pilih network-test dari daftar.
  6. Deploy versi aplikasi yang dapat di-debug ke perangkat Anda dengan memilih Run > Debug.

Menjalankan alat traffic jaringan

Alat Traffic Jaringan di Android Studio membantu Anda melihat cara aplikasi Anda menggunakan resource jaringan secara real time, saat sedang berjalan.

Untuk meningkatkan pengulangan pengujian, Anda harus memulai dengan status awal yang diketahui untuk aplikasi dengan menghapus data aplikasi. Prosedur berikut berisi langkah yang menunjukkan cara menghapus semua data aplikasi termasuk data jaringan dan data yang disimpan dalam cache sebelumnya. Langkah ini mengembalikan aplikasi Anda dalam keadaan yang mengharuskannya melakukan cache ulang semua data cache sebelumnya. Jangan lewati langkah ini.

Untuk memulai alat Traffic Jaringan dan memvisualisasikan permintaan jaringan:

  1. Mulai alat Traffic Jaringan dengan meluncurkan Android Studio dan menyalakan Android Device Monitor. Saat diminta, izinkan koneksi jaringan masuk.
  2. Di jendela Android Device Monitor, klik tombol DDMS di bagian atas dan pilih tab Network Statistics. Jika Anda tidak melihat tab ini, lebarkan jendela, lalu coba pilih Window > Reset Perspective.
  3. Pilih aplikasi untuk melakukan debug dari daftar aplikasi yang dapat di-debug pada perangkat di tab Perangkat, lalu klik tombol Mulai di tab Statistik Jaringan.

    Catatan: Anda mungkin akan diminta untuk Mengizinkan Proses Debug USB pada perangkat. Pilih OK untuk mengizinkan proses debug dilanjutkan.

  4. Hapus data aplikasi Anda menggunakan perintah adb berikut:
        adb shell pm clear package.name.of.app
        
  5. Mulai aplikasi dan jalankan rencana pengujian yang menjalankan kasus penggunaan utama aplikasi Anda. Rencana Anda juga harus mengizinkan waktu tidak aktif aplikasi, saat pengguna sedang tidak berinteraksi dengan aplikasi, untuk memungkinkan munculnya akses jaringan yang dimulai oleh aplikasi dan server.
  6. Ulangi pengujian dengan menghapus data aplikasi dan menjalankan rencana pengujian kembali. Anda harus mengulang pengujian beberapa kali untuk memverifikasi pengulangan data performa.

Penggunaan pemberian tag untuk traffic jaringan membantu Anda membedakan secara visual setiap kategori permintaan dengan menghasilkan warna yang berbeda untuk setiap traffic jaringan di alat Traffic Jaringan, seperti yang ditunjukkan pada Gambar 1.

Gambar 1. Traffic jaringan yang diberi tag untuk tiga kategori.