Mari luangkan waktu sejenak agar semuanya benar-benar jelas. Kaitannya dengan baterai, jaringan adalah pelaku terbesar, terburuk dan terkotor. Ingat kalau di dalam ponsel terdapat potongan kecil perangkat keras yang secara efektif yaitu HAM radio, bertujuan untuk berkomunikasi dengan menara seluler lokal, dan mengirim data dengan volume tinggi. Tapi cip ini tidak selalu aktif, setelah mengirim paket data, cip radio tetap tinggal sementara waktu untuk berjaga-jaga jika nanti ada respon dari server. Jika tidak ada aktivitas, perangkat keras akan mati untuk menghemat daya baterai. Seperti tadi, terdapat lonjakan besar daya saat pertama kali cip dinyalakan, dan juga saat cip menunggu respon. Pada waktu yang sama akan terus menyerap daya baterai. Ada dua jalan utama dimana kebanyakan aplikasi berinteraksi dengan radio. Pertama-tama, ada kejadian yang harus muncul sekarang ini. Kejadian ini adalah hasil dari tindakan pengguna atau muncul dari kebutuhan mendesak untuk memperbarui UI di aplikasi. Contohnya, bayangkan ketika pengguna meminta memuat batch tweet baru untuk tren hashtag, karena ini Anda harus cepat merespon karena ini adalah langkah awal pengguna. Di sisi lain, seluruh tugas lain yang tidak mendesak, misalnya, mengunggah data pengguna, menyinkronkan statistik latar belakang, atau mengatur ukuran foto. Jadi, set tugas pertama harus cepat dilaksanakan, untuk memberi umpan balik ke pengguna. Set tugas kedua bisa ditunda dulu sampai nanti, dikerjakan saat keadaan baterai efisien. Dan ada kemungkinan besar jika sebagian besar permintaan jaringan di dalam aplikasi masuk ke dalam kategori kedua. [Tertawa] Mengonversi tugas jaringan berlebihan guna mengefisiensi adalah proses dua langkah. Pertama-tama, perhatikan baris radio mobile di dalam tool battery historian aplikasi Anda. Setiap bar merah di sini mewakili radio mobile yang aktif, celah apapun antara bar tersebut mewakili ketika radio tertidur. Jika Anda lihat banyak bar renggang dan celah antara grafik, ini menunjukkan adanya masalah performa, artinya Anda banyak berputar-putar pada siklus bangun dan tidur. Yang seharusnya Anda lihat adalah celah besar di sebelah blok aktivitas besar. Dengan ini Anda mengurangi overhead dengan meminimalisasi jumlah permintaan jaringan, dan yang terbaik adalah tidak usah menyalakan radio. Tunggu sampai terhubung dengan WiFi, biarkan perangkat WiFi mengerjakan semua tugas ini untuk menghemat baterai. Sekarang, masalahnya adalah menulis kode ke batch, cache, dan menunda seluruh permintaan jaringan ini sulit dilakukan, karenanya kami selesaikan untuk Anda. JobScheduler API yang diluncurkan dengan rilis L Android, menyediakan rangkaian penuh API yang melaksanakan semua tugas manajemen permintaan jaringan dan lainnya. Tapi daripada saya menjelaskan tentang API, kenapa tidak coba mempraktikkannya?