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